@tricoteuses/assemblee 1.1.4 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api.js +1 -1
- package/lib/bugs/acteur-00010/plugin.test.js +1 -1
- package/lib/bugs/acteur-00010.js +1 -1
- package/lib/bugs/acteur-00010.mjs +1 -1
- package/lib/bugs/agenda-00002/plugin.test.js +1 -1
- package/lib/bugs/agenda-00002.js +2 -2
- package/lib/bugs/agenda-00002.mjs +2 -2
- package/lib/bugs/agenda-00008/plugin.test.js +1 -1
- package/lib/bugs/agenda-00008.js +1 -1
- package/lib/bugs/agenda-00008.mjs +1 -1
- package/lib/bugs/agenda-00011/plugin.test.js +1 -1
- package/lib/bugs/agenda-00011.js +1 -1
- package/lib/bugs/agenda-00011.mjs +1 -1
- package/lib/bugs.js +1 -1
- package/lib/bugs.mjs +1 -1
- package/lib/cleaners/actes_legislatifs.js +1 -1
- package/lib/cleaners/actes_legislatifs.mjs +1 -1
- package/lib/cleaners/acteurs.js +1 -1
- package/lib/cleaners/acteurs.mjs +1 -1
- package/lib/cleaners/amendements.js +1 -1
- package/lib/cleaners/amendements.mjs +1 -1
- package/lib/cleaners/documents.js +1 -1
- package/lib/cleaners/documents.mjs +1 -1
- package/lib/cleaners/dossiers_legislatifs.js +1 -1
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
- package/lib/cleaners/index.js +1 -1
- package/lib/cleaners/organes.js +1 -1
- package/lib/cleaners/organes.mjs +1 -1
- package/lib/cleaners/reunions.js +1 -1
- package/lib/cleaners/reunions.mjs +1 -1
- package/lib/cleaners/scrutins.js +1 -1
- package/lib/cleaners/scrutins.mjs +1 -1
- package/lib/cleaners/xml.js +1 -1
- package/lib/cleaners/xml.mjs +1 -1
- package/lib/datasets.js +1 -1
- package/lib/datasets.mjs +1 -1
- package/lib/dates.js +16 -7
- package/lib/dates.mjs +15 -6
- package/lib/dossiers_legislatifs.js +1 -1
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +2 -2
- package/lib/file_systems.mjs +2 -2
- package/lib/git.d.ts +2 -1
- package/lib/git.js +77 -44
- package/lib/git.mjs +48 -25
- package/lib/index.js +1 -1
- package/lib/inserters.js +1 -1
- package/lib/inserters.mjs +1 -1
- package/lib/loaders.js +1 -1
- package/lib/loaders.mjs +1 -1
- package/lib/organes.js +1 -1
- package/lib/organes.mjs +1 -1
- package/lib/parsers/documents.js +1 -1
- package/lib/parsers/documents.mjs +1 -1
- package/lib/parsers/index.js +1 -1
- package/lib/parsers/recherche_amendements.js +39 -32
- package/lib/parsers/recherche_amendements.mjs +5 -1
- package/lib/raw_types/acteurs_et_organes.js +1 -1
- package/lib/raw_types/acteurs_et_organes.mjs +1 -1
- package/lib/raw_types/agendas.js +1 -1
- package/lib/raw_types/agendas.mjs +1 -1
- package/lib/raw_types/amendements.js +1 -1
- package/lib/raw_types/amendements.mjs +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +1 -1
- package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
- package/lib/raw_types/scrutins.js +1 -1
- package/lib/raw_types/scrutins.mjs +1 -1
- package/lib/scripts/bugs_helper.js +3 -3
- package/lib/scripts/bugs_helper.mjs +3 -3
- package/lib/scripts/clean_data.js +1 -1
- package/lib/scripts/clean_data.mjs +1 -1
- package/lib/scripts/clean_reorganized_data.js +63 -61
- package/lib/scripts/clean_reorganized_data.mjs +55 -48
- package/lib/scripts/diff_amendements.js +1 -1
- package/lib/scripts/diff_amendements.mjs +1 -1
- package/lib/scripts/document_dossiers_legislatifs.js +1 -1
- package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
- package/lib/scripts/get_today_reunions.js +1 -1
- package/lib/scripts/merge_scrutins.js +1 -1
- package/lib/scripts/merge_scrutins.mjs +1 -1
- package/lib/scripts/parse_textes_lois.js +5 -48
- package/lib/scripts/parse_textes_lois.mjs +5 -49
- package/lib/scripts/raw_types_from_amendements.js +1 -1
- package/lib/scripts/raw_types_from_amendements.mjs +1 -1
- package/lib/scripts/reorganize_data.js +231 -239
- package/lib/scripts/reorganize_data.mjs +50 -59
- package/lib/scripts/retrieve_deputes_photos.js +86 -107
- package/lib/scripts/retrieve_deputes_photos.mjs +21 -42
- package/lib/scripts/retrieve_documents.js +3 -3
- package/lib/scripts/retrieve_documents.mjs +3 -3
- package/lib/scripts/retrieve_open_data.js +29 -22
- package/lib/scripts/retrieve_open_data.mjs +9 -4
- package/lib/scripts/retrieve_pending_amendments.js +73 -81
- package/lib/scripts/retrieve_pending_amendments.mjs +19 -26
- package/lib/scripts/retrieve_senateurs_photos.js +65 -87
- package/lib/scripts/retrieve_senateurs_photos.mjs +21 -42
- package/lib/scripts/retrieve_textes_lois.js +32 -71
- package/lib/scripts/retrieve_textes_lois.mjs +6 -44
- package/lib/scripts/test_load.js +1 -1
- package/lib/scripts/test_load_big_files.js +1 -1
- package/lib/scripts/validate_json.js +3 -3
- package/lib/scripts/validate_json.mjs +3 -3
- package/lib/shared_types/codes_actes.js +1 -1
- package/lib/strings.js +1 -1
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +1 -1
- package/lib/types/acteurs_et_organes.mjs +1 -1
- package/lib/types/agendas.js +1 -1
- package/lib/types/agendas.mjs +1 -1
- package/lib/types/amendements.js +1 -1
- package/lib/types/amendements.mjs +1 -1
- package/lib/types/dossiers_legislatifs.js +1 -1
- package/lib/types/dossiers_legislatifs.mjs +1 -1
- package/lib/types/legislatures.js +1 -1
- package/lib/types/scrutins.js +1 -1
- package/lib/types/scrutins.mjs +1 -1
- package/lib/urls.js +1 -1
- package/lib/urls.mjs +1 -1
- package/package.json +6 -5
|
@@ -6,6 +6,7 @@ import path from "path";
|
|
|
6
6
|
// import stream from "stream"
|
|
7
7
|
// import util from "util"
|
|
8
8
|
import { EnabledDatasets } from "../datasets.mjs";
|
|
9
|
+
import * as git from "../git.mjs";
|
|
9
10
|
import { loadAssembleeData } from "../loaders.mjs";
|
|
10
11
|
import { CodeTypeOrgane, TypeMandat } from "../types/acteurs_et_organes.mjs";
|
|
11
12
|
const optionsDefinitions = [{
|
|
@@ -23,6 +24,11 @@ const optionsDefinitions = [{
|
|
|
23
24
|
help: "fetch sénateurs' pictures instead of retrieving them from files",
|
|
24
25
|
name: "fetch",
|
|
25
26
|
type: Boolean
|
|
27
|
+
}, {
|
|
28
|
+
alias: "p",
|
|
29
|
+
help: "pull repositories before proceeding",
|
|
30
|
+
name: "pull",
|
|
31
|
+
type: Boolean
|
|
26
32
|
}, {
|
|
27
33
|
alias: "r",
|
|
28
34
|
help: "push commit to given remote",
|
|
@@ -43,44 +49,6 @@ const optionsDefinitions = [{
|
|
|
43
49
|
const options = commandLineArgs(optionsDefinitions);
|
|
44
50
|
// const pipeline = util.promisify(stream.pipeline)
|
|
45
51
|
|
|
46
|
-
function commitAndPush(repositoryDir, commit, remotes) {
|
|
47
|
-
let error = false;
|
|
48
|
-
if (commit) {
|
|
49
|
-
execSync("git add .", {
|
|
50
|
-
cwd: repositoryDir,
|
|
51
|
-
env: process.env,
|
|
52
|
-
encoding: "utf-8",
|
|
53
|
-
stdio: ["ignore", "ignore", "pipe"]
|
|
54
|
-
});
|
|
55
|
-
try {
|
|
56
|
-
execSync('git commit -m "Nouvelle moisson"', {
|
|
57
|
-
cwd: repositoryDir,
|
|
58
|
-
env: process.env,
|
|
59
|
-
encoding: "utf-8"
|
|
60
|
-
});
|
|
61
|
-
} catch (childProcess) {
|
|
62
|
-
if (childProcess.stderr === null || !/nothing to commit/.test(childProcess.stdout)) {
|
|
63
|
-
console.error(childProcess.output);
|
|
64
|
-
throw childProcess;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
for (const remote of remotes || []) {
|
|
68
|
-
try {
|
|
69
|
-
execSync(`git push ${remote} master`, {
|
|
70
|
-
cwd: repositoryDir,
|
|
71
|
-
env: process.env,
|
|
72
|
-
encoding: "utf-8",
|
|
73
|
-
stdio: ["ignore", "ignore", "pipe"]
|
|
74
|
-
});
|
|
75
|
-
} catch (childProcess) {
|
|
76
|
-
// Don't stop when push fails.
|
|
77
|
-
console.error(childProcess.output);
|
|
78
|
-
error = true;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return error;
|
|
83
|
-
}
|
|
84
52
|
async function retrievePhotosSenateurs() {
|
|
85
53
|
const dataDir = options.dataDir;
|
|
86
54
|
const {
|
|
@@ -124,6 +92,14 @@ async function retrievePhotosSenateurs() {
|
|
|
124
92
|
});
|
|
125
93
|
}
|
|
126
94
|
const photosDir = path.join(dataDir, photosDirName);
|
|
95
|
+
if (options.pull) {
|
|
96
|
+
execSync(`git pull --rebase`, {
|
|
97
|
+
cwd: photosDir,
|
|
98
|
+
env: process.env,
|
|
99
|
+
encoding: "utf-8",
|
|
100
|
+
stdio: ["ignore", "ignore", "pipe"]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
127
103
|
|
|
128
104
|
// Download photos.
|
|
129
105
|
fs.ensureDirSync(photosDir);
|
|
@@ -226,7 +202,10 @@ async function retrievePhotosSenateurs() {
|
|
|
226
202
|
}
|
|
227
203
|
const jsonFilePath = path.join(photosDir, "senateurs.json");
|
|
228
204
|
fs.writeFileSync(jsonFilePath, JSON.stringify(photoByIdSenateur, null, 2));
|
|
229
|
-
|
|
205
|
+
if (options.commit) {
|
|
206
|
+
return git.commitAndPush(photosDir, "Nouvelle moisson", options.remote);
|
|
207
|
+
}
|
|
208
|
+
return 0;
|
|
230
209
|
}
|
|
231
210
|
function stemFromSenateur(senateur) {
|
|
232
211
|
const {
|
|
@@ -242,8 +221,8 @@ function stemFromSenateur(senateur) {
|
|
|
242
221
|
const senateurStem = match[1];
|
|
243
222
|
return senateurStem;
|
|
244
223
|
}
|
|
245
|
-
retrievePhotosSenateurs().then(
|
|
224
|
+
retrievePhotosSenateurs().then(exitCode => process.exit(exitCode)).catch(error => {
|
|
246
225
|
console.log(error);
|
|
247
|
-
process.exit(
|
|
226
|
+
process.exit(1);
|
|
248
227
|
});
|
|
249
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwicGF0aCIsIkVuYWJsZWREYXRhc2V0cyIsImxvYWRBc3NlbWJsZWVEYXRhIiwiQ29kZVR5cGVPcmdhbmUiLCJUeXBlTWFuZGF0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1pdEFuZFB1c2giLCJyZXBvc2l0b3J5RGlyIiwiY29tbWl0IiwicmVtb3RlcyIsImVycm9yIiwiY3dkIiwiZW52IiwicHJvY2VzcyIsImVuY29kaW5nIiwic3RkaW8iLCJjaGlsZFByb2Nlc3MiLCJzdGRlcnIiLCJ0ZXN0Iiwic3Rkb3V0IiwiY29uc29sZSIsIm91dHB1dCIsInJlbW90ZSIsInJldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiZGF0YURpciIsImFjdGV1ckJ5VWlkIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImxlZ2lzbGF0dXJlIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJwaG90b3NEaXIiLCJqb2luIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwibG9nIiwicHJlbm9tIiwibm9tIiwicmVuYW1lU3luYyIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJjb2x1bW5JbmRleCIsImVudHJpZXMiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwibWF0Y2giLCJ0aGVuIiwiZXhpdCIsImNhdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfc2VuYXRldXJzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZFByb2Nlc3MsIGV4ZWNTeW5jIH0gZnJvbSBcImNoaWxkX3Byb2Nlc3NcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG4vLyBpbXBvcnQgZmV0Y2ggZnJvbSBcIm5vZGUtZmV0Y2hcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuLy8gaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbi8vIGltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcblxuaW1wb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGxvYWRBc3NlbWJsZWVEYXRhIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5cbmNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAge1xuICAgIGFsaWFzOiBcIkNcIixcbiAgICBoZWxwOiBcImNsb25lIHJlcG9zaXRvcmllcyBmcm9tIGdpdmVuIGdyb3VwIChvciBvcmdhbml6YXRpb24pIGdpdCBVUkxcIixcbiAgICBuYW1lOiBcImNsb25lXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IHBob3Rvc1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImZcIixcbiAgICBoZWxwOiBcImZldGNoIHPDqW5hdGV1cnMnIHBpY3R1cmVzIGluc3RlYWQgb2YgcmV0cmlldmluZyB0aGVtIGZyb20gZmlsZXNcIixcbiAgICBuYW1lOiBcImZldGNoXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInJcIixcbiAgICBoZWxwOiBcInB1c2ggY29tbWl0IHRvIGdpdmVuIHJlbW90ZVwiLFxuICAgIG11bHRpcGxlOiB0cnVlLFxuICAgIG5hbWU6IFwicmVtb3RlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwic1wiLFxuICAgIGhlbHA6IFwiZG9uJ3QgbG9nIGFueXRoaW5nXCIsXG4gICAgbmFtZTogXCJzaWxlbnRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG4vLyBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuZnVuY3Rpb24gY29tbWl0QW5kUHVzaChcbiAgcmVwb3NpdG9yeURpcjogc3RyaW5nLFxuICBjb21taXQ6IGJvb2xlYW4sXG4gIHJlbW90ZXM/OiBzdHJpbmdbXSxcbik6IGJvb2xlYW4ge1xuICBsZXQgZXJyb3IgPSBmYWxzZVxuICBpZiAoY29tbWl0KSB7XG4gICAgZXhlY1N5bmMoXCJnaXQgYWRkIC5cIiwge1xuICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICAgIHRyeSB7XG4gICAgICBleGVjU3luYygnZ2l0IGNvbW1pdCAtbSBcIk5vdXZlbGxlIG1vaXNzb25cIicsIHtcbiAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoaWxkUHJvY2VzcyBhcyBDaGlsZFByb2Nlc3MpLnN0ZGVyciA9PT0gbnVsbCB8fFxuICAgICAgICAhL25vdGhpbmcgdG8gY29tbWl0Ly50ZXN0KChjaGlsZFByb2Nlc3MgYXMgYW55KS5zdGRvdXQpXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICB0aHJvdyBjaGlsZFByb2Nlc3NcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCByZW1vdGUgb2YgcmVtb3RlcyB8fCBbXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZXhlY1N5bmMoYGdpdCBwdXNoICR7cmVtb3RlfSBtYXN0ZXJgLCB7XG4gICAgICAgICAgY3dkOiByZXBvc2l0b3J5RGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGNoaWxkUHJvY2Vzcykge1xuICAgICAgICAvLyBEb24ndCBzdG9wIHdoZW4gcHVzaCBmYWlscy5cbiAgICAgICAgY29uc29sZS5lcnJvcigoY2hpbGRQcm9jZXNzIGFzIGFueSkub3V0cHV0KVxuICAgICAgICBlcnJvciA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVycm9yXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zU2VuYXRldXJzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIGNvbnN0IHsgYWN0ZXVyQnlVaWQgfSA9IGxvYWRBc3NlbWJsZWVEYXRhKFxuICAgIGRhdGFEaXIsXG4gICAgRW5hYmxlZERhdGFzZXRzLkFjdGV1cnNFdE9yZ2FuZXMsXG4gICAgb3B0aW9ucy5sZWdpc2xhdHVyZSxcbiAgKVxuICBjb25zdCBzZW5hdGV1cnMgPSBPYmplY3QudmFsdWVzKGFjdGV1ckJ5VWlkKVxuICAgIC5maWx0ZXIoKGFjdGV1cikgPT4ge1xuICAgICAgY29uc3QgeyBtYW5kYXRzIH0gPSBhY3RldXJcbiAgICAgIGlmICghbWFuZGF0cykge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1hbmRhdFNlbmF0ZXVyID0gbWFuZGF0cy5maWx0ZXIoXG4gICAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgICBtYW5kYXQueHNpVHlwZSA9PT0gVHlwZU1hbmRhdC5NYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSAmJlxuICAgICAgICAgIC8vIG1hbmRhdC5sZWdpc2xhdHVyZSA9PT0gb3B0aW9ucy5sZWdpc2xhdHVyZSAmJlxuICAgICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5TZW5hdCxcbiAgICAgIClbMF1cbiAgICAgIGlmIChtYW5kYXRTZW5hdGV1ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgeyBhZHJlc3NlcyB9ID0gYWN0ZXVyXG4gICAgICBpZiAoYWRyZXNzZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGxldCB1cmwgPSBudWxsXG4gICAgICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGFkcmVzc2UueHNpVHlwZSA9PT0gXCJBZHJlc3NlU2l0ZVdlYl9UeXBlXCIgJiZcbiAgICAgICAgICBhZHJlc3NlLnR5cGVMaWJlbGxlID09PSBcIlVybCBzw6luYXRldXJcIlxuICAgICAgICApIHtcbiAgICAgICAgICB1cmwgPSBhZHJlc3NlLnZhbEVsZWNcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIEJvb2xlYW4odXJsKVxuICAgIH0pXG4gICAgLnNvcnQoKGEsIGIpID0+XG4gICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgIClcblxuICBjb25zdCBnaXRHcm91cFVybCA9IG9wdGlvbnMuY2xvbmVcbiAgICA/IG9wdGlvbnMuY2xvbmUudHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgICA6IHVuZGVmaW5lZFxuICBjb25zdCBwaG90b3NEaXJOYW1lID0gXCJwaG90b3Nfc2VuYXRldXJzXCJcbiAgaWYgKGdpdEdyb3VwVXJsICE9PSB1bmRlZmluZWQpIHtcbiAgICBleGVjU3luYyhgZ2l0IGNsb25lICR7Z2l0R3JvdXBVcmx9LyR7cGhvdG9zRGlyTmFtZX0uZ2l0YCwge1xuICAgICAgY3dkOiBkYXRhRGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICB9KVxuICB9XG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBwaG90b3NEaXJOYW1lKVxuXG4gIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG4gIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBcImltYWdlcy90cmFuc3BhcmVudF8xNTV4MjI1LmpwZ1wiXG4gICAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX0uanBnYFxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fdGVtcC5qcGdgXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gZm9yIChsZXQgcmV0cmllcyA9IDA7IHJldHJpZXMgPCAzOyByZXRyaWVzKyspIHtcbiAgICAgIC8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAvLyAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSwgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpKVxuICAgICAgLy8gICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBpZiAocmV0cmllcyA+PSAyKSB7XG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtzZW5hdGV1clN0ZW19IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgIClcbiAgICB9XG4gICAgZXhlY1N5bmMoXG4gICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7c2VuYXRldXJTdGVtfS5qcGcgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIG1vc2FpYyBvZiBwaG90b3MuXG4gIGNvbnN0IHBob3RvQnlJZFNlbmF0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IHNlbmF0ZXVySW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuYXRldXJJbmRleCA8IHNlbmF0ZXVycy5sZW5ndGg7XG4gICAgc2VuYXRldXJJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5hdGV1cnMuc2xpY2Uoc2VuYXRldXJJbmRleCwgc2VuYXRldXJJbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5hdGV1cl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZFNlbmF0ZXVyW3NlbmF0ZXVyLnVpZF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBgcGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMjI1LFxuICAgICAgICBsYXJnZXVyOiAxNTUsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTUsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAyMjUsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgc2VuYXRldXJzLmpwZ2AsIHtcbiAgICBjd2Q6IHBob3Rvc0RpcixcbiAgfSlcbiAgZm9yIChjb25zdCByb3dGaWxlbmFtZSBvZiByb3dzRmlsZW5hbWVzKSB7XG4gICAgZnMudW5saW5rU3luYyhwYXRoLmpvaW4ocGhvdG9zRGlyLCByb3dGaWxlbmFtZSkpXG4gIH1cblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRTZW5hdGV1ciwgbnVsbCwgMikpXG5cbiAgcmV0dXJuIGNvbW1pdEFuZFB1c2gocGhvdG9zRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpXG59XG5cbmZ1bmN0aW9uIHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXI6IEFjdGV1cikge1xuICBjb25zdCB7IGFkcmVzc2VzIH0gPSBzZW5hdGV1clxuICBsZXQgdXJsID0gbnVsbFxuICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMhKSB7XG4gICAgaWYgKFxuICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICApIHtcbiAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgIH1cbiAgfVxuICBjb25zdCBtYXRjaCA9IHVybCEubWF0Y2goL15odHRwczpcXC9cXC93d3dcXC5zZW5hdFxcLmZyXFwvc2VuYXRldXJcXC8oLiopXFwuaHRtbCQvKVxuICBjb25zdCBzZW5hdGV1clN0ZW0gPSBtYXRjaCFbMV1cbiAgcmV0dXJuIHNlbmF0ZXVyU3RlbVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKChlcnJvcikgPT4gcHJvY2Vzcy5leGl0KGVycm9yID8gMSA6IDApKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDIpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQXVCQSxRQUFRLFFBQVEsZUFBZTtBQUN0RCxPQUFPQyxlQUFlLE1BQU0sbUJBQW1CO0FBQy9DLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCO0FBQ0EsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFDdkI7QUFDQTtBQUFBLFNBRVNDLGVBQWU7QUFBQSxTQUNmQyxpQkFBaUI7QUFBQSxTQUd4QkMsY0FBYyxFQUdkQyxVQUFVO0FBR1osTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekI7RUFDRUMsS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLCtEQUErRDtFQUNyRUMsSUFBSSxFQUFFLE9BQU87RUFDYkMsSUFBSSxFQUFFQztBQUNSLENBQUMsRUFDRDtFQUNFSixLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsZUFBZTtFQUNyQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFDRDtFQUNFTCxLQUFLLEVBQUUsR0FBRztFQUNWQyxJQUFJLEVBQUUsaUVBQWlFO0VBQ3ZFQyxJQUFJLEVBQUUsT0FBTztFQUNiQyxJQUFJLEVBQUVFO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VMLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSw2QkFBNkI7RUFDbkNLLFFBQVEsRUFBRSxJQUFJO0VBQ2RKLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFRTtBQUNSLENBQUMsRUFDRDtFQUNFRSxhQUFhLEVBQUUsSUFBSTtFQUNuQk4sSUFBSSxFQUFFLGdEQUFnRDtFQUN0REMsSUFBSSxFQUFFLFNBQVM7RUFDZkMsSUFBSSxFQUFFQztBQUNSLENBQUMsQ0FDRjtBQUNELE1BQU1JLE9BQU8sR0FBR2hCLGVBQWUsQ0FBQ08sa0JBQWtCLENBQUM7QUFDbkQ7O0FBRUEsU0FBU1UsYUFBYSxDQUNwQkMsYUFBcUIsRUFDckJDLE1BQWUsRUFDZkMsT0FBa0IsRUFDVDtFQUNULElBQUlDLEtBQUssR0FBRyxLQUFLO0VBQ2pCLElBQUlGLE1BQU0sRUFBRTtJQUNWcEIsUUFBUSxDQUFDLFdBQVcsRUFBRTtNQUNwQnVCLEdBQUcsRUFBRUosYUFBYTtNQUNsQkssR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7TUFDaEJFLFFBQVEsRUFBRSxPQUFPO01BQ2pCQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU07SUFDcEMsQ0FBQyxDQUFDO0lBQ0YsSUFBSTtNQUNGM0IsUUFBUSxDQUFDLGtDQUFrQyxFQUFFO1FBQzNDdUIsR0FBRyxFQUFFSixhQUFhO1FBQ2xCSyxHQUFHLEVBQUVDLE9BQU8sQ0FBQ0QsR0FBRztRQUNoQkUsUUFBUSxFQUFFO01BQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLE9BQU9FLFlBQVksRUFBRTtNQUNyQixJQUNHQSxZQUFZLENBQWtCQyxNQUFNLEtBQUssSUFBSSxJQUM5QyxDQUFDLG1CQUFtQixDQUFDQyxJQUFJLENBQUVGLFlBQVksQ0FBU0csTUFBTSxDQUFDLEVBQ3ZEO1FBQ0FDLE9BQU8sQ0FBQ1YsS0FBSyxDQUFFTSxZQUFZLENBQVNLLE1BQU0sQ0FBQztRQUMzQyxNQUFNTCxZQUFZO01BQ3BCO0lBQ0Y7SUFDQSxLQUFLLE1BQU1NLE1BQU0sSUFBSWIsT0FBTyxJQUFJLEVBQUUsRUFBRTtNQUNsQyxJQUFJO1FBQ0ZyQixRQUFRLENBQUUsWUFBV2tDLE1BQU8sU0FBUSxFQUFFO1VBQ3BDWCxHQUFHLEVBQUVKLGFBQWE7VUFDbEJLLEdBQUcsRUFBRUMsT0FBTyxDQUFDRCxHQUFHO1VBQ2hCRSxRQUFRLEVBQUUsT0FBTztVQUNqQkMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNO1FBQ3BDLENBQUMsQ0FBQztNQUNKLENBQUMsQ0FBQyxPQUFPQyxZQUFZLEVBQUU7UUFDckI7UUFDQUksT0FBTyxDQUFDVixLQUFLLENBQUVNLFlBQVksQ0FBU0ssTUFBTSxDQUFDO1FBQzNDWCxLQUFLLEdBQUcsSUFBSTtNQUNkO0lBQ0Y7RUFDRjtFQUNBLE9BQU9BLEtBQUs7QUFDZDtBQUVBLGVBQWVhLHVCQUF1QixHQUFxQjtFQUN6RCxNQUFNQyxPQUFPLEdBQUduQixPQUFPLENBQUNtQixPQUFPO0VBQy9CLE1BQU07SUFBRUM7RUFBWSxDQUFDLEdBQUdoQyxpQkFBaUIsQ0FDdkMrQixPQUFPLEVBQ1BoQyxlQUFlLENBQUNrQyxnQkFBZ0IsRUFDaENyQixPQUFPLENBQUNzQixXQUFXLENBQ3BCO0VBQ0QsTUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0wsV0FBVyxDQUFDLENBQ3pDTSxNQUFNLENBQUVDLE1BQU0sSUFBSztJQUNsQixNQUFNO01BQUVDO0lBQVEsQ0FBQyxHQUFHRCxNQUFNO0lBQzFCLElBQUksQ0FBQ0MsT0FBTyxFQUFFO01BQ1osT0FBTyxLQUFLO0lBQ2Q7SUFDQSxNQUFNQyxjQUFjLEdBQUdELE9BQU8sQ0FBQ0YsTUFBTSxDQUNsQ0ksTUFBYyxJQUNiQSxNQUFNLENBQUNDLE9BQU8sS0FBS3pDLFVBQVUsQ0FBQzBDLHVCQUF1QjtJQUNyRDtJQUNBRixNQUFNLENBQUNHLFVBQVUsS0FBSzVDLGNBQWMsQ0FBQzZDLEtBQUssQ0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDSixJQUFJTCxjQUFjLEtBQUtNLFNBQVMsRUFBRTtNQUNoQyxPQUFPLEtBQUs7SUFDZDtJQUNBLE1BQU07TUFBRUM7SUFBUyxDQUFDLEdBQUdULE1BQU07SUFDM0IsSUFBSVMsUUFBUSxLQUFLRCxTQUFTLEVBQUU7TUFDMUIsT0FBTyxLQUFLO0lBQ2Q7SUFDQSxJQUFJRSxHQUFHLEdBQUcsSUFBSTtJQUNkLEtBQUssTUFBTUMsT0FBTyxJQUFJRixRQUFRLEVBQUU7TUFDOUIsSUFDRUUsT0FBTyxDQUFDUCxPQUFPLEtBQUsscUJBQXFCLElBQ3pDTyxPQUFPLENBQUNDLFdBQVcsS0FBSyxjQUFjLEVBQ3RDO1FBQ0FGLEdBQUcsR0FBR0MsT0FBTyxDQUFDRSxPQUFPO01BQ3ZCO0lBQ0Y7SUFDQSxPQUFPM0MsT0FBTyxDQUFDd0MsR0FBRyxDQUFDO0VBQ3JCLENBQUMsQ0FBQyxDQUNESSxJQUFJLENBQUMsQ0FBQ0MsQ0FBQyxFQUFFQyxDQUFDLEtBQ1RELENBQUMsQ0FBQ0UsR0FBRyxDQUFDQyxNQUFNLEtBQUtGLENBQUMsQ0FBQ0MsR0FBRyxDQUFDQyxNQUFNLEdBQ3pCSCxDQUFDLENBQUNFLEdBQUcsQ0FBQ0UsYUFBYSxDQUFDSCxDQUFDLENBQUNDLEdBQUcsQ0FBQyxHQUMxQkYsQ0FBQyxDQUFDRSxHQUFHLENBQUNDLE1BQU0sR0FBR0YsQ0FBQyxDQUFDQyxHQUFHLENBQUNDLE1BQU0sQ0FDaEM7RUFFSCxNQUFNRSxXQUFXLEdBQUcvQyxPQUFPLENBQUNnRCxLQUFLLEdBQzdCaEQsT0FBTyxDQUFDZ0QsS0FBSyxDQUFDQyxJQUFJLEVBQUUsQ0FBQ0MsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FDeENmLFNBQVM7RUFDYixNQUFNZ0IsYUFBYSxHQUFHLGtCQUFrQjtFQUN4QyxJQUFJSixXQUFXLEtBQUtaLFNBQVMsRUFBRTtJQUM3QnBELFFBQVEsQ0FBRSxhQUFZZ0UsV0FBWSxJQUFHSSxhQUFjLE1BQUssRUFBRTtNQUN4RDdDLEdBQUcsRUFBRWEsT0FBTztNQUNaWixHQUFHLEVBQUVDLE9BQU8sQ0FBQ0QsR0FBRztNQUNoQkUsUUFBUSxFQUFFLE9BQU87TUFDakJDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTTtJQUNwQyxDQUFDLENBQUM7RUFDSjtFQUNBLE1BQU0wQyxTQUFTLEdBQUdsRSxJQUFJLENBQUNtRSxJQUFJLENBQUNsQyxPQUFPLEVBQUVnQyxhQUFhLENBQUM7O0VBRW5EO0VBQ0FsRSxFQUFFLENBQUNxRSxhQUFhLENBQUNGLFNBQVMsQ0FBQztFQUMzQixJQUFJcEQsT0FBTyxDQUFDdUQsS0FBSyxFQUFFO0lBQ2pCLE1BQU1DLG9CQUFvQixHQUFHLGdDQUFnQztJQUM3RCxLQUFLLE1BQU1DLFFBQVEsSUFBSWxDLFNBQVMsRUFBRTtNQUNoQyxNQUFNbUMsS0FBSyxHQUFHRCxRQUFRLENBQUNFLFNBQVMsQ0FBQ0QsS0FBSztNQUN0QyxNQUFNRSxZQUFZLEdBQUdDLGdCQUFnQixDQUFDSixRQUFRLENBQUM7TUFDL0MsTUFBTUssYUFBYSxHQUFJLEdBQUVGLFlBQWEsTUFBSztNQUMzQyxNQUFNRyxhQUFhLEdBQUc3RSxJQUFJLENBQUNtRSxJQUFJLENBQUNELFNBQVMsRUFBRVUsYUFBYSxDQUFDO01BQ3pELE1BQU1FLGlCQUFpQixHQUFJLEdBQUVKLFlBQWEsV0FBVTtNQUNwRCxNQUFNSyxpQkFBaUIsR0FBRy9FLElBQUksQ0FBQ21FLElBQUksQ0FBQ0QsU0FBUyxFQUFFWSxpQkFBaUIsQ0FBQztNQUNqRSxNQUFNRSxRQUFRLEdBQUksK0JBQThCSixhQUFjLEVBQUM7TUFDL0QsSUFBSSxDQUFDOUQsT0FBTyxDQUFDbUUsTUFBTSxFQUFFO1FBQ25CcEQsT0FBTyxDQUFDcUQsR0FBRyxDQUNSLGlCQUFnQkYsUUFBUyxRQUFPUixLQUFLLENBQUNXLE1BQU8sSUFBR1gsS0FBSyxDQUFDWSxHQUFJLEdBQUUsQ0FDOUQ7TUFDSDtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQSxJQUFJO1FBQ0Z2RixRQUFRLENBQUUsbUJBQWtCaUYsaUJBQWtCLElBQUdFLFFBQVMsRUFBQyxFQUFFO1VBQzNENUQsR0FBRyxFQUFFOEMsU0FBUztVQUNkN0MsR0FBRyxFQUFFQyxPQUFPLENBQUNELEdBQUc7VUFDaEJFLFFBQVEsRUFBRTtVQUNWO1FBQ0YsQ0FBQyxDQUFDOztRQUNGeEIsRUFBRSxDQUFDc0YsVUFBVSxDQUFDTixpQkFBaUIsRUFBRUYsYUFBYSxDQUFDO01BQ2pELENBQUMsQ0FBQyxPQUFPMUQsS0FBSyxFQUFFO1FBQ2RVLE9BQU8sQ0FBQ1YsS0FBSyxDQUFDQSxLQUFLLENBQUM7UUFDcEIsSUFBSXBCLEVBQUUsQ0FBQ3VGLFVBQVUsQ0FBQ1QsYUFBYSxDQUFDLEVBQUU7VUFDaENoRCxPQUFPLENBQUMwRCxJQUFJLENBQUMsNkJBQTZCLENBQUM7UUFDN0MsQ0FBQyxNQUFNO1VBQ0wxRCxPQUFPLENBQUMwRCxJQUFJLENBQUMsd0JBQXdCLENBQUM7VUFDdEN4RixFQUFFLENBQUN5RixZQUFZLENBQUNsQixvQkFBb0IsRUFBRU8sYUFBYSxDQUFDO1FBQ3REO01BQ0Y7SUFDRjtFQUNGOztFQUVBO0VBQ0EsS0FBSyxNQUFNTixRQUFRLElBQUlsQyxTQUFTLEVBQUU7SUFDaEMsTUFBTW1DLEtBQUssR0FBR0QsUUFBUSxDQUFDRSxTQUFTLENBQUNELEtBQUs7SUFDdEMsTUFBTUUsWUFBWSxHQUFHQyxnQkFBZ0IsQ0FBQ0osUUFBUSxDQUFDO0lBQy9DLElBQUksQ0FBQ3pELE9BQU8sQ0FBQ21FLE1BQU0sRUFBRTtNQUNuQnBELE9BQU8sQ0FBQ3FELEdBQUcsQ0FDUixrQkFBaUJSLFlBQWEsUUFBT0YsS0FBSyxDQUFDVyxNQUFPLElBQUdYLEtBQUssQ0FBQ1ksR0FBSSxHQUFFLENBQ25FO0lBQ0g7SUFDQXZGLFFBQVEsQ0FDTCwrQkFBOEI2RSxZQUFhLFFBQU9BLFlBQWEsY0FBYSxFQUM3RTtNQUNFdEQsR0FBRyxFQUFFOEM7SUFDUCxDQUFDLENBQ0Y7RUFDSDs7RUFFQTtFQUNBLE1BQU11QixpQkFBMkMsR0FBRyxDQUFDLENBQUM7RUFDdEQsTUFBTUMsYUFBdUIsR0FBRyxFQUFFO0VBQ2xDLEtBQ0UsSUFBSUMsYUFBYSxHQUFHLENBQUMsRUFBRUMsUUFBUSxHQUFHLENBQUMsRUFDbkNELGFBQWEsR0FBR3RELFNBQVMsQ0FBQ3NCLE1BQU0sRUFDaENnQyxhQUFhLElBQUksRUFBRSxFQUFFQyxRQUFRLEVBQUUsRUFDL0I7SUFDQSxNQUFNQyxHQUFHLEdBQUd4RCxTQUFTLENBQUN5RCxLQUFLLENBQUNILGFBQWEsRUFBRUEsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM5RCxNQUFNSSxlQUF5QixHQUFHLEVBQUU7SUFDcEMsS0FBSyxNQUFNLENBQUNDLFdBQVcsRUFBRXpCLFFBQVEsQ0FBQyxJQUFJc0IsR0FBRyxDQUFDSSxPQUFPLEVBQUUsRUFBRTtNQUNuRCxNQUFNdkIsWUFBWSxHQUFHQyxnQkFBZ0IsQ0FBQ0osUUFBUSxDQUFDO01BQy9DLE1BQU1LLGFBQWEsR0FBSSxHQUFFRixZQUFhLGNBQWE7TUFDbkRxQixlQUFlLENBQUNHLElBQUksQ0FBQ3RCLGFBQWEsQ0FBQztNQUNuQ2EsaUJBQWlCLENBQUNsQixRQUFRLENBQUNiLEdBQUcsQ0FBQyxHQUFHO1FBQ2hDeUMsTUFBTSxFQUFHLG9CQUFtQnZCLGFBQWMsRUFBQztRQUMzQ3dCLGNBQWMsRUFBRyxnQ0FBK0I7UUFDaERDLE9BQU8sRUFBRSxHQUFHO1FBQ1pDLE9BQU8sRUFBRSxHQUFHO1FBQ1pDLFNBQVMsRUFBRVAsV0FBVyxHQUFHLEdBQUc7UUFDNUJRLFNBQVMsRUFBRVosUUFBUSxHQUFHO01BQ3hCLENBQUM7SUFDSDtJQUNBLE1BQU1hLFdBQVcsR0FBSSxPQUFNYixRQUFTLE1BQUs7SUFDekMvRixRQUFRLENBQUUsY0FBYWtHLGVBQWUsQ0FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUUsWUFBV3NDLFdBQVksRUFBQyxFQUFFO01BQ3pFckYsR0FBRyxFQUFFOEM7SUFDUCxDQUFDLENBQUM7SUFDRndCLGFBQWEsQ0FBQ1EsSUFBSSxDQUFDTyxXQUFXLENBQUM7RUFDakM7RUFDQTVHLFFBQVEsQ0FBRSxjQUFhNkYsYUFBYSxDQUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBRSx3QkFBdUIsRUFBRTtJQUN0RS9DLEdBQUcsRUFBRThDO0VBQ1AsQ0FBQyxDQUFDO0VBQ0YsS0FBSyxNQUFNdUMsV0FBVyxJQUFJZixhQUFhLEVBQUU7SUFDdkMzRixFQUFFLENBQUMyRyxVQUFVLENBQUMxRyxJQUFJLENBQUNtRSxJQUFJLENBQUNELFNBQVMsRUFBRXVDLFdBQVcsQ0FBQyxDQUFDO0VBQ2xEO0VBRUEsTUFBTUUsWUFBWSxHQUFHM0csSUFBSSxDQUFDbUUsSUFBSSxDQUFDRCxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7RUFDM0RuRSxFQUFFLENBQUM2RyxhQUFhLENBQUNELFlBQVksRUFBRUUsSUFBSSxDQUFDQyxTQUFTLENBQUNyQixpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFFMUUsT0FBTzFFLGFBQWEsQ0FBQ21ELFNBQVMsRUFBRXBELE9BQU8sQ0FBQ0csTUFBTSxFQUFFSCxPQUFPLENBQUNpQixNQUFNLENBQUM7QUFDakU7QUFFQSxTQUFTNEMsZ0JBQWdCLENBQUNKLFFBQWdCLEVBQUU7RUFDMUMsTUFBTTtJQUFFckI7RUFBUyxDQUFDLEdBQUdxQixRQUFRO0VBQzdCLElBQUlwQixHQUFHLEdBQUcsSUFBSTtFQUNkLEtBQUssTUFBTUMsT0FBTyxJQUFJRixRQUFRLEVBQUc7SUFDL0IsSUFDRUUsT0FBTyxDQUFDUCxPQUFPLEtBQUsscUJBQXFCLElBQ3pDTyxPQUFPLENBQUNDLFdBQVcsS0FBSyxjQUFjLEVBQ3RDO01BQ0FGLEdBQUcsR0FBR0MsT0FBTyxDQUFDRSxPQUFPO0lBQ3ZCO0VBQ0Y7RUFDQSxNQUFNeUQsS0FBSyxHQUFHNUQsR0FBRyxDQUFFNEQsS0FBSyxDQUFDLGtEQUFrRCxDQUFDO0VBQzVFLE1BQU1yQyxZQUFZLEdBQUdxQyxLQUFLLENBQUUsQ0FBQyxDQUFDO0VBQzlCLE9BQU9yQyxZQUFZO0FBQ3JCO0FBRUExQyx1QkFBdUIsRUFBRSxDQUN0QmdGLElBQUksQ0FBRTdGLEtBQUssSUFBS0csT0FBTyxDQUFDMkYsSUFBSSxDQUFDOUYsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUM1QytGLEtBQUssQ0FBRS9GLEtBQUssSUFBSztFQUNoQlUsT0FBTyxDQUFDcUQsR0FBRyxDQUFDL0QsS0FBSyxDQUFDO0VBQ2xCRyxPQUFPLENBQUMyRixJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyJ9
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGVjU3luYyIsImNvbW1hbmRMaW5lQXJncyIsImZzIiwicGF0aCIsIkVuYWJsZWREYXRhc2V0cyIsImdpdCIsImxvYWRBc3NlbWJsZWVEYXRhIiwiQ29kZVR5cGVPcmdhbmUiLCJUeXBlTWFuZGF0Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJTdHJpbmciLCJCb29sZWFuIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsInJldHJpZXZlUGhvdG9zU2VuYXRldXJzIiwiZGF0YURpciIsImFjdGV1ckJ5VWlkIiwiQWN0ZXVyc0V0T3JnYW5lcyIsImxlZ2lzbGF0dXJlIiwic2VuYXRldXJzIiwiT2JqZWN0IiwidmFsdWVzIiwiZmlsdGVyIiwiYWN0ZXVyIiwibWFuZGF0cyIsIm1hbmRhdFNlbmF0ZXVyIiwibWFuZGF0IiwieHNpVHlwZSIsIk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlIiwidHlwZU9yZ2FuZSIsIlNlbmF0IiwidW5kZWZpbmVkIiwiYWRyZXNzZXMiLCJ1cmwiLCJhZHJlc3NlIiwidHlwZUxpYmVsbGUiLCJ2YWxFbGVjIiwic29ydCIsImEiLCJiIiwidWlkIiwibGVuZ3RoIiwibG9jYWxlQ29tcGFyZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInBob3Rvc0Rpck5hbWUiLCJjd2QiLCJlbnYiLCJwcm9jZXNzIiwiZW5jb2RpbmciLCJzdGRpbyIsInBob3Rvc0RpciIsImpvaW4iLCJwdWxsIiwiZW5zdXJlRGlyU3luYyIsImZldGNoIiwibWlzc2luZ1Bob3RvRmlsZVBhdGgiLCJzZW5hdGV1ciIsImlkZW50IiwiZXRhdENpdmlsIiwic2VuYXRldXJTdGVtIiwic3RlbUZyb21TZW5hdGV1ciIsInBob3RvRmlsZW5hbWUiLCJwaG90b0ZpbGVQYXRoIiwicGhvdG9UZW1wRmlsZW5hbWUiLCJwaG90b1RlbXBGaWxlUGF0aCIsInVybFBob3RvIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsInByZW5vbSIsIm5vbSIsInJlbmFtZVN5bmMiLCJlcnJvciIsImV4aXN0c1N5bmMiLCJ3YXJuIiwiY29weUZpbGVTeW5jIiwicGhvdG9CeUlkU2VuYXRldXIiLCJyb3dzRmlsZW5hbWVzIiwic2VuYXRldXJJbmRleCIsInJvd0luZGV4Iiwicm93Iiwic2xpY2UiLCJwaG90b3NGaWxlbmFtZXMiLCJjb2x1bW5JbmRleCIsImVudHJpZXMiLCJwdXNoIiwiY2hlbWluIiwiY2hlbWluTW9zYWlxdWUiLCJoYXV0ZXVyIiwibGFyZ2V1ciIsInhNb3NhaXF1ZSIsInlNb3NhaXF1ZSIsInJvd0ZpbGVuYW1lIiwidW5saW5rU3luYyIsImpzb25GaWxlUGF0aCIsIndyaXRlRmlsZVN5bmMiLCJKU09OIiwic3RyaW5naWZ5IiwiY29tbWl0IiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZSIsIm1hdGNoIiwidGhlbiIsImV4aXRDb2RlIiwiZXhpdCIsImNhdGNoIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfc2VuYXRldXJzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuLy8gaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbi8vIGltcG9ydCBzdHJlYW0gZnJvbSBcInN0cmVhbVwiXG4vLyBpbXBvcnQgdXRpbCBmcm9tIFwidXRpbFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29kZVR5cGVPcmdhbmUsXG4gIE1hbmRhdCxcbiAgUGhvdG8sXG4gIFR5cGVNYW5kYXQsXG59IGZyb20gXCIuLi90eXBlcy9hY3RldXJzX2V0X29yZ2FuZXNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJDXCIsXG4gICAgaGVscDogXCJjbG9uZSByZXBvc2l0b3JpZXMgZnJvbSBnaXZlbiBncm91cCAob3Igb3JnYW5pemF0aW9uKSBnaXQgVVJMXCIsXG4gICAgbmFtZTogXCJjbG9uZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImNcIixcbiAgICBoZWxwOiBcImNvbW1pdCBwaG90b3NcIixcbiAgICBuYW1lOiBcImNvbW1pdFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJmXCIsXG4gICAgaGVscDogXCJmZXRjaCBzw6luYXRldXJzJyBwaWN0dXJlcyBpbnN0ZWFkIG9mIHJldHJpZXZpbmcgdGhlbSBmcm9tIGZpbGVzXCIsXG4gICAgbmFtZTogXCJmZXRjaFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJwXCIsXG4gICAgaGVscDogXCJwdWxsIHJlcG9zaXRvcmllcyBiZWZvcmUgcHJvY2VlZGluZ1wiLFxuICAgIG5hbWU6IFwicHVsbFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogXCJkaXJlY3RvcnkgY29udGFpbmluZyBBc3NlbWJsw6llIG9wZW4gZGF0YSBmaWxlc1wiLFxuICAgIG5hbWU6IFwiZGF0YURpclwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbl1cbmNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zKVxuLy8gY29uc3QgcGlwZWxpbmUgPSB1dGlsLnByb21pc2lmeShzdHJlYW0ucGlwZWxpbmUpXG5cbmFzeW5jIGZ1bmN0aW9uIHJldHJpZXZlUGhvdG9zU2VuYXRldXJzKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBhY3RldXJCeVVpZCB9ID0gbG9hZEFzc2VtYmxlZURhdGEoXG4gICAgZGF0YURpcixcbiAgICBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcyxcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICApXG4gIGNvbnN0IHNlbmF0ZXVycyA9IE9iamVjdC52YWx1ZXMoYWN0ZXVyQnlVaWQpXG4gICAgLmZpbHRlcigoYWN0ZXVyKSA9PiB7XG4gICAgICBjb25zdCB7IG1hbmRhdHMgfSA9IGFjdGV1clxuICAgICAgaWYgKCFtYW5kYXRzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgY29uc3QgbWFuZGF0U2VuYXRldXIgPSBtYW5kYXRzLmZpbHRlcihcbiAgICAgICAgKG1hbmRhdDogTWFuZGF0KSA9PlxuICAgICAgICAgIG1hbmRhdC54c2lUeXBlID09PSBUeXBlTWFuZGF0Lk1hbmRhdFBhcmxlbWVudGFpcmVUeXBlICYmXG4gICAgICAgICAgLy8gbWFuZGF0LmxlZ2lzbGF0dXJlID09PSBvcHRpb25zLmxlZ2lzbGF0dXJlICYmXG4gICAgICAgICAgbWFuZGF0LnR5cGVPcmdhbmUgPT09IENvZGVUeXBlT3JnYW5lLlNlbmF0LFxuICAgICAgKVswXVxuICAgICAgaWYgKG1hbmRhdFNlbmF0ZXVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICBjb25zdCB7IGFkcmVzc2VzIH0gPSBhY3RldXJcbiAgICAgIGlmIChhZHJlc3NlcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgbGV0IHVybCA9IG51bGxcbiAgICAgIGZvciAoY29uc3QgYWRyZXNzZSBvZiBhZHJlc3Nlcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgICAgIGFkcmVzc2UudHlwZUxpYmVsbGUgPT09IFwiVXJsIHPDqW5hdGV1clwiXG4gICAgICAgICkge1xuICAgICAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gQm9vbGVhbih1cmwpXG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEudWlkLmxlbmd0aCA9PT0gYi51aWQubGVuZ3RoXG4gICAgICAgID8gYS51aWQubG9jYWxlQ29tcGFyZShiLnVpZClcbiAgICAgICAgOiBhLnVpZC5sZW5ndGggLSBiLnVpZC5sZW5ndGgsXG4gICAgKVxuXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGNvbnN0IHBob3Rvc0Rpck5hbWUgPSBcInBob3Rvc19zZW5hdGV1cnNcIlxuICBpZiAoZ2l0R3JvdXBVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgIGV4ZWNTeW5jKGBnaXQgY2xvbmUgJHtnaXRHcm91cFVybH0vJHtwaG90b3NEaXJOYW1lfS5naXRgLCB7XG4gICAgICBjd2Q6IGRhdGFEaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJpZ25vcmVcIiwgXCJwaXBlXCJdLFxuICAgIH0pXG4gIH1cbiAgY29uc3QgcGhvdG9zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG4gIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICBleGVjU3luYyhgZ2l0IHB1bGwgLS1yZWJhc2VgLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgfVxuXG4gIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG4gIGlmIChvcHRpb25zLmZldGNoKSB7XG4gICAgY29uc3QgbWlzc2luZ1Bob3RvRmlsZVBhdGggPSBcImltYWdlcy90cmFuc3BhcmVudF8xNTV4MjI1LmpwZ1wiXG4gICAgZm9yIChjb25zdCBzZW5hdGV1ciBvZiBzZW5hdGV1cnMpIHtcbiAgICAgIGNvbnN0IGlkZW50ID0gc2VuYXRldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgICAgY29uc3QgcGhvdG9GaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX0uanBnYFxuICAgICAgY29uc3QgcGhvdG9GaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvRmlsZW5hbWUpXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlbmFtZSA9IGAke3NlbmF0ZXVyU3RlbX1fdGVtcC5qcGdgXG4gICAgICBjb25zdCBwaG90b1RlbXBGaWxlUGF0aCA9IHBhdGguam9pbihwaG90b3NEaXIsIHBob3RvVGVtcEZpbGVuYW1lKVxuICAgICAgY29uc3QgdXJsUGhvdG8gPSBgaHR0cHM6Ly93d3cuc2VuYXQuZnIvc2VuaW1nLyR7cGhvdG9GaWxlbmFtZX1gXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBMb2FkaW5nIHBob3RvICR7dXJsUGhvdG99IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgLy8gZm9yIChsZXQgcmV0cmllcyA9IDA7IHJldHJpZXMgPCAzOyByZXRyaWVzKyspIHtcbiAgICAgIC8vICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcbiAgICAgIC8vICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAvLyAgICAgYXdhaXQgcGlwZWxpbmUocmVzcG9uc2UuYm9keSwgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpKVxuICAgICAgLy8gICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAvLyAgICAgYnJlYWtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gICBpZiAocmV0cmllcyA+PSAyKSB7XG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99ICgke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub219KWApXG4gICAgICAvLyAgICAgY29uc29sZS53YXJuKHJlc3BvbnNlLnN0YXR1cywgcmVzcG9uc2Uuc3RhdHVzVGV4dClcbiAgICAgIC8vICAgICBjb25zb2xlLndhcm4oYXdhaXQgcmVzcG9uc2UudGV4dCgpKVxuICAgICAgLy8gICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAvLyAgICAgICBjb25zb2xlLndhcm4oXCIgID0+IFJldXNpbmcgZXhpc3RpbmcgaW1hZ2VcIilcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgLy8gICAgICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgICBicmVha1xuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICB0cnkge1xuICAgICAgICBleGVjU3luYyhgd2dldCAtLXF1aWV0IC1PICR7cGhvdG9UZW1wRmlsZW5hbWV9ICR7dXJsUGhvdG99YCwge1xuICAgICAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgICAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgICAgICAvLyBzdGRpbzogW1wiaWdub3JlXCIsIFwiaWdub3JlXCIsIFwicGlwZVwiXSxcbiAgICAgICAgfSlcbiAgICAgICAgZnMucmVuYW1lU3luYyhwaG90b1RlbXBGaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBSZXVzaW5nIGV4aXN0aW5nIGltYWdlXCIpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFwiICA9PiBVc2luZyBibGFuayBpbWFnZVwiKVxuICAgICAgICAgIGZzLmNvcHlGaWxlU3luYyhtaXNzaW5nUGhvdG9GaWxlUGF0aCwgcGhvdG9GaWxlUGF0aClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2l6ZSBwaG90b3MgdG8gMTU1eDIyNSwgYmVjYXVzZSBzb21lIGhhdmVuJ3QgZXhhY3RseSB0aGlzIHNpemUuXG4gIGZvciAoY29uc3Qgc2VuYXRldXIgb2Ygc2VuYXRldXJzKSB7XG4gICAgY29uc3QgaWRlbnQgPSBzZW5hdGV1ci5ldGF0Q2l2aWwuaWRlbnRcbiAgICBjb25zdCBzZW5hdGV1clN0ZW0gPSBzdGVtRnJvbVNlbmF0ZXVyKHNlbmF0ZXVyKVxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVzaXppbmcgcGhvdG8gJHtzZW5hdGV1clN0ZW19IGZvciAke2lkZW50LnByZW5vbX0gJHtpZGVudC5ub2194oCmYCxcbiAgICAgIClcbiAgICB9XG4gICAgZXhlY1N5bmMoXG4gICAgICBgZ20gY29udmVydCAtcmVzaXplIDE1NXgyMjUhICR7c2VuYXRldXJTdGVtfS5qcGcgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYCxcbiAgICAgIHtcbiAgICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIENyZWF0ZSBhIG1vc2FpYyBvZiBwaG90b3MuXG4gIGNvbnN0IHBob3RvQnlJZFNlbmF0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG4gIGZvciAoXG4gICAgbGV0IHNlbmF0ZXVySW5kZXggPSAwLCByb3dJbmRleCA9IDA7XG4gICAgc2VuYXRldXJJbmRleCA8IHNlbmF0ZXVycy5sZW5ndGg7XG4gICAgc2VuYXRldXJJbmRleCArPSAyNSwgcm93SW5kZXgrK1xuICApIHtcbiAgICBjb25zdCByb3cgPSBzZW5hdGV1cnMuc2xpY2Uoc2VuYXRldXJJbmRleCwgc2VuYXRldXJJbmRleCArIDI1KVxuICAgIGNvbnN0IHBob3Rvc0ZpbGVuYW1lczogc3RyaW5nW10gPSBbXVxuICAgIGZvciAoY29uc3QgW2NvbHVtbkluZGV4LCBzZW5hdGV1cl0gb2Ygcm93LmVudHJpZXMoKSkge1xuICAgICAgY29uc3Qgc2VuYXRldXJTdGVtID0gc3RlbUZyb21TZW5hdGV1cihzZW5hdGV1cilcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHtzZW5hdGV1clN0ZW19XzE1NXgyMjUuanBnYFxuICAgICAgcGhvdG9zRmlsZW5hbWVzLnB1c2gocGhvdG9GaWxlbmFtZSlcbiAgICAgIHBob3RvQnlJZFNlbmF0ZXVyW3NlbmF0ZXVyLnVpZF0gPSB7XG4gICAgICAgIGNoZW1pbjogYHBob3Rvc19zZW5hdGV1cnMvJHtwaG90b0ZpbGVuYW1lfWAsXG4gICAgICAgIGNoZW1pbk1vc2FpcXVlOiBgcGhvdG9zX3NlbmF0ZXVycy9zZW5hdGV1cnMuanBnYCxcbiAgICAgICAgaGF1dGV1cjogMjI1LFxuICAgICAgICBsYXJnZXVyOiAxNTUsXG4gICAgICAgIHhNb3NhaXF1ZTogY29sdW1uSW5kZXggKiAxNTUsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiAyMjUsXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJvd0ZpbGVuYW1lID0gYHJvdy0ke3Jvd0luZGV4fS5qcGdgXG4gICAgZXhlY1N5bmMoYGdtIGNvbnZlcnQgJHtwaG90b3NGaWxlbmFtZXMuam9pbihcIiBcIil9ICthcHBlbmQgJHtyb3dGaWxlbmFtZX1gLCB7XG4gICAgICBjd2Q6IHBob3Rvc0RpcixcbiAgICB9KVxuICAgIHJvd3NGaWxlbmFtZXMucHVzaChyb3dGaWxlbmFtZSlcbiAgfVxuICBleGVjU3luYyhgZ20gY29udmVydCAke3Jvd3NGaWxlbmFtZXMuam9pbihcIiBcIil9IC1hcHBlbmQgc2VuYXRldXJzLmpwZ2AsIHtcbiAgICBjd2Q6IHBob3Rvc0RpcixcbiAgfSlcbiAgZm9yIChjb25zdCByb3dGaWxlbmFtZSBvZiByb3dzRmlsZW5hbWVzKSB7XG4gICAgZnMudW5saW5rU3luYyhwYXRoLmpvaW4ocGhvdG9zRGlyLCByb3dGaWxlbmFtZSkpXG4gIH1cblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBcInNlbmF0ZXVycy5qc29uXCIpXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRTZW5hdGV1ciwgbnVsbCwgMikpXG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKHBob3Rvc0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbmZ1bmN0aW9uIHN0ZW1Gcm9tU2VuYXRldXIoc2VuYXRldXI6IEFjdGV1cikge1xuICBjb25zdCB7IGFkcmVzc2VzIH0gPSBzZW5hdGV1clxuICBsZXQgdXJsID0gbnVsbFxuICBmb3IgKGNvbnN0IGFkcmVzc2Ugb2YgYWRyZXNzZXMhKSB7XG4gICAgaWYgKFxuICAgICAgYWRyZXNzZS54c2lUeXBlID09PSBcIkFkcmVzc2VTaXRlV2ViX1R5cGVcIiAmJlxuICAgICAgYWRyZXNzZS50eXBlTGliZWxsZSA9PT0gXCJVcmwgc8OpbmF0ZXVyXCJcbiAgICApIHtcbiAgICAgIHVybCA9IGFkcmVzc2UudmFsRWxlY1xuICAgIH1cbiAgfVxuICBjb25zdCBtYXRjaCA9IHVybCEubWF0Y2goL15odHRwczpcXC9cXC93d3dcXC5zZW5hdFxcLmZyXFwvc2VuYXRldXJcXC8oLiopXFwuaHRtbCQvKVxuICBjb25zdCBzZW5hdGV1clN0ZW0gPSBtYXRjaCFbMV1cbiAgcmV0dXJuIHNlbmF0ZXVyU3RlbVxufVxuXG5yZXRyaWV2ZVBob3Rvc1NlbmF0ZXVycygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQVEsZUFBZTtBQUN4QyxPQUFPQyxlQUFlLE1BQU0sbUJBQW1C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
|
|
@@ -4,11 +4,11 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
4
4
|
require("core-js/modules/es.array.slice.js");
|
|
5
5
|
require("core-js/modules/es.function.name.js");
|
|
6
6
|
require("core-js/modules/es.array.from.js");
|
|
7
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
7
8
|
require("core-js/modules/es.symbol.js");
|
|
8
9
|
require("core-js/modules/es.symbol.description.js");
|
|
9
10
|
require("core-js/modules/es.symbol.iterator.js");
|
|
10
11
|
require("core-js/modules/es.array.is-array.js");
|
|
11
|
-
require("core-js/modules/es.promise.js");
|
|
12
12
|
require("core-js/modules/es.symbol.to-primitive.js");
|
|
13
13
|
require("core-js/modules/es.date.to-primitive.js");
|
|
14
14
|
require("core-js/modules/es.number.constructor.js");
|
|
@@ -27,12 +27,13 @@ require("core-js/modules/es.object.create.js");
|
|
|
27
27
|
require("core-js/modules/es.object.get-prototype-of.js");
|
|
28
28
|
require("core-js/modules/es.object.set-prototype-of.js");
|
|
29
29
|
require("core-js/modules/es.array.reverse.js");
|
|
30
|
-
require("core-js/modules/es.
|
|
30
|
+
require("core-js/modules/es.weak-map.js");
|
|
31
|
+
require("core-js/modules/es.object.to-string.js");
|
|
32
|
+
require("core-js/modules/es.promise.js");
|
|
31
33
|
require("core-js/modules/es.array.join.js");
|
|
32
34
|
require("core-js/modules/es.array.sort.js");
|
|
33
35
|
require("core-js/modules/es.array.map.js");
|
|
34
36
|
require("core-js/modules/es.array.filter.js");
|
|
35
|
-
require("core-js/modules/es.object.to-string.js");
|
|
36
37
|
require("core-js/modules/es.object.values.js");
|
|
37
38
|
require("core-js/modules/es.string.starts-with.js");
|
|
38
39
|
require("core-js/modules/es.array.concat.js");
|
|
@@ -42,15 +43,17 @@ require("core-js/modules/web.dom-collections.iterator.js");
|
|
|
42
43
|
require("core-js/modules/web.url.js");
|
|
43
44
|
require("core-js/modules/web.url-search-params.js");
|
|
44
45
|
var _assert = _interopRequireDefault(require("assert"));
|
|
45
|
-
var _child_process = require("child_process");
|
|
46
46
|
var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
|
|
47
47
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
48
48
|
var _nodeFetch = _interopRequireDefault(require("node-fetch"));
|
|
49
49
|
var _path = _interopRequireDefault(require("path"));
|
|
50
50
|
var _datasets = require("../datasets");
|
|
51
|
+
var git = _interopRequireWildcard(require("../git"));
|
|
51
52
|
var _loaders = require("../loaders");
|
|
52
53
|
var _dossiers_legislatifs = require("../types/dossiers_legislatifs");
|
|
53
54
|
var _urls = require("../urls");
|
|
55
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
56
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
54
57
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
55
58
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
|
56
59
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
@@ -62,11 +65,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
62
65
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
63
66
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
64
67
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
65
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
66
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
67
68
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
68
69
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
69
70
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
71
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
72
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
70
73
|
var optionsDefinitions = [{
|
|
71
74
|
alias: "c",
|
|
72
75
|
help: "commit documents",
|
|
@@ -105,59 +108,12 @@ var optionsDefinitions = [{
|
|
|
105
108
|
type: String
|
|
106
109
|
}];
|
|
107
110
|
var options = (0, _commandLineArgs["default"])(optionsDefinitions);
|
|
108
|
-
function commitAndPush(repositoryDir, commit, remotes) {
|
|
109
|
-
var error = false;
|
|
110
|
-
if (commit) {
|
|
111
|
-
(0, _child_process.execSync)("git add .", {
|
|
112
|
-
cwd: repositoryDir,
|
|
113
|
-
env: process.env,
|
|
114
|
-
encoding: "utf-8",
|
|
115
|
-
stdio: ["ignore", "ignore", "pipe"]
|
|
116
|
-
});
|
|
117
|
-
try {
|
|
118
|
-
(0, _child_process.execSync)('git commit -m "Nouvelle moisson"', {
|
|
119
|
-
cwd: repositoryDir,
|
|
120
|
-
env: process.env,
|
|
121
|
-
encoding: "utf-8"
|
|
122
|
-
});
|
|
123
|
-
} catch (childProcess) {
|
|
124
|
-
if (childProcess.stderr === null || !/nothing to commit/.test(childProcess.stdout)) {
|
|
125
|
-
console.error(childProcess.output);
|
|
126
|
-
throw childProcess;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
var _iterator = _createForOfIteratorHelper(remotes || []),
|
|
130
|
-
_step;
|
|
131
|
-
try {
|
|
132
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
133
|
-
var remote = _step.value;
|
|
134
|
-
try {
|
|
135
|
-
(0, _child_process.execSync)("git push ".concat(remote, " master"), {
|
|
136
|
-
cwd: repositoryDir,
|
|
137
|
-
env: process.env,
|
|
138
|
-
encoding: "utf-8",
|
|
139
|
-
stdio: ["ignore", "ignore", "pipe"]
|
|
140
|
-
});
|
|
141
|
-
} catch (childProcess) {
|
|
142
|
-
// Don't stop when push fails.
|
|
143
|
-
console.error(childProcess.output);
|
|
144
|
-
error = true;
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
} catch (err) {
|
|
148
|
-
_iterator.e(err);
|
|
149
|
-
} finally {
|
|
150
|
-
_iterator.f();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
return error;
|
|
154
|
-
}
|
|
155
111
|
function retrieveDocuments() {
|
|
156
112
|
return _retrieveDocuments.apply(this, arguments);
|
|
157
113
|
}
|
|
158
114
|
function _retrieveDocuments() {
|
|
159
115
|
_retrieveDocuments = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
160
|
-
var dataDir, _loadAssembleeData, documentByUid, textesLoisDir,
|
|
116
|
+
var dataDir, _loadAssembleeData, documentByUid, textesLoisDir, _iterator, _step, filename, textesLois, firstUid, skip, _iterator2, _step2, texteLoi, url, filePath, response, page;
|
|
161
117
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
162
118
|
while (1) switch (_context.prev = _context.next) {
|
|
163
119
|
case 0:
|
|
@@ -170,15 +126,15 @@ function _retrieveDocuments() {
|
|
|
170
126
|
_context.next = 24;
|
|
171
127
|
break;
|
|
172
128
|
}
|
|
173
|
-
|
|
129
|
+
_iterator = _createForOfIteratorHelper(_fsExtra["default"].readdirSync(textesLoisDir));
|
|
174
130
|
_context.prev = 7;
|
|
175
|
-
|
|
131
|
+
_iterator.s();
|
|
176
132
|
case 9:
|
|
177
|
-
if ((
|
|
133
|
+
if ((_step = _iterator.n()).done) {
|
|
178
134
|
_context.next = 16;
|
|
179
135
|
break;
|
|
180
136
|
}
|
|
181
|
-
filename =
|
|
137
|
+
filename = _step.value;
|
|
182
138
|
if (!(filename[0] === ".")) {
|
|
183
139
|
_context.next = 13;
|
|
184
140
|
break;
|
|
@@ -195,10 +151,10 @@ function _retrieveDocuments() {
|
|
|
195
151
|
case 18:
|
|
196
152
|
_context.prev = 18;
|
|
197
153
|
_context.t0 = _context["catch"](7);
|
|
198
|
-
|
|
154
|
+
_iterator.e(_context.t0);
|
|
199
155
|
case 21:
|
|
200
156
|
_context.prev = 21;
|
|
201
|
-
|
|
157
|
+
_iterator.f();
|
|
202
158
|
return _context.finish(21);
|
|
203
159
|
case 24:
|
|
204
160
|
textesLois = Object.values(documentByUid).filter(function (document) {
|
|
@@ -214,15 +170,15 @@ function _retrieveDocuments() {
|
|
|
214
170
|
});
|
|
215
171
|
firstUid = options.uid;
|
|
216
172
|
skip = !!firstUid;
|
|
217
|
-
|
|
173
|
+
_iterator2 = _createForOfIteratorHelper(textesLois);
|
|
218
174
|
_context.prev = 28;
|
|
219
|
-
|
|
175
|
+
_iterator2.s();
|
|
220
176
|
case 30:
|
|
221
|
-
if ((
|
|
177
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
222
178
|
_context.next = 56;
|
|
223
179
|
break;
|
|
224
180
|
}
|
|
225
|
-
texteLoi =
|
|
181
|
+
texteLoi = _step2.value;
|
|
226
182
|
if (!skip) {
|
|
227
183
|
_context.next = 38;
|
|
228
184
|
break;
|
|
@@ -279,17 +235,20 @@ function _retrieveDocuments() {
|
|
|
279
235
|
case 58:
|
|
280
236
|
_context.prev = 58;
|
|
281
237
|
_context.t1 = _context["catch"](28);
|
|
282
|
-
|
|
238
|
+
_iterator2.e(_context.t1);
|
|
283
239
|
case 61:
|
|
284
240
|
_context.prev = 61;
|
|
285
|
-
|
|
241
|
+
_iterator2.f();
|
|
286
242
|
return _context.finish(61);
|
|
287
243
|
case 64:
|
|
288
|
-
if (
|
|
289
|
-
|
|
244
|
+
if (!options.commit) {
|
|
245
|
+
_context.next = 66;
|
|
246
|
+
break;
|
|
290
247
|
}
|
|
291
|
-
return _context.abrupt("return",
|
|
248
|
+
return _context.abrupt("return", git.commitAndPush(textesLoisDir, "Nouvelle moisson", options.remote));
|
|
292
249
|
case 66:
|
|
250
|
+
return _context.abrupt("return", 0);
|
|
251
|
+
case 67:
|
|
293
252
|
case "end":
|
|
294
253
|
return _context.stop();
|
|
295
254
|
}
|
|
@@ -297,8 +256,10 @@ function _retrieveDocuments() {
|
|
|
297
256
|
}));
|
|
298
257
|
return _retrieveDocuments.apply(this, arguments);
|
|
299
258
|
}
|
|
300
|
-
retrieveDocuments()
|
|
259
|
+
retrieveDocuments().then(function (exitCode) {
|
|
260
|
+
return process.exit(exitCode);
|
|
261
|
+
})["catch"](function (error) {
|
|
301
262
|
console.log(error);
|
|
302
263
|
process.exit(1);
|
|
303
264
|
});
|
|
304
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJuYW1lIiwidHlwZSIsIkJvb2xlYW4iLCJkZWZhdWx0VmFsdWUiLCJTdHJpbmciLCJtdWx0aXBsZSIsImRlZmF1bHRPcHRpb24iLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY29tbWl0QW5kUHVzaCIsInJlcG9zaXRvcnlEaXIiLCJjb21taXQiLCJyZW1vdGVzIiwiZXJyb3IiLCJleGVjU3luYyIsImN3ZCIsImVudiIsInByb2Nlc3MiLCJlbmNvZGluZyIsInN0ZGlvIiwiY2hpbGRQcm9jZXNzIiwic3RkZXJyIiwidGVzdCIsInN0ZG91dCIsImNvbnNvbGUiLCJvdXRwdXQiLCJyZW1vdGUiLCJyZXRyaWV2ZURvY3VtZW50cyIsImFzc2VydCIsInVpZCIsImRhdGFEaXIiLCJsb2FkQXNzZW1ibGVlRGF0YSIsIkVuYWJsZWREYXRhc2V0cyIsIkRvc3NpZXJzTGVnaXNsYXRpZnMiLCJsZWdpc2xhdHVyZSIsImRvY3VtZW50QnlVaWQiLCJ0ZXh0ZXNMb2lzRGlyIiwicGF0aCIsImpvaW4iLCJmcyIsImVuc3VyZURpclN5bmMiLCJyZWFkZGlyU3luYyIsImZpbGVuYW1lIiwicmVtb3ZlU3luYyIsInRleHRlc0xvaXMiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJkb2N1bWVudCIsInhzaVR5cGUiLCJUeXBlRG9jdW1lbnQiLCJUZXh0ZUxvaVR5cGUiLCJzdGFydHNXaXRoIiwibWFwIiwicmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJEb2N1bWVudFVybEZvcm1hdCIsIlJhd0h0bWwiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwiZmlyc3RVaWQiLCJza2lwIiwidGV4dGVMb2kiLCJzaWxlbnQiLCJsb2ciLCJ1cmwiLCJVUkwiLCJmaWxlUGF0aCIsImhvc3RuYW1lIiwicGF0aG5hbWUiLCJzcGxpdCIsInN0cmljdEVxdWFsIiwiZGlybmFtZSIsImZldGNoIiwicmVzcG9uc2UiLCJ0ZXh0IiwicGFnZSIsIm9rIiwic3RhdHVzIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvZGUiLCJtZXNzYWdlIiwic3RhdHVzVGV4dCIsIndyaXRlRmlsZVN5bmMiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmV0cmlldmVfdGV4dGVzX2xvaXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCB7IENoaWxkUHJvY2VzcywgZXhlY1N5bmMgfSBmcm9tIFwiY2hpbGRfcHJvY2Vzc1wiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IERvY3VtZW50LCBUeXBlRG9jdW1lbnQgfSBmcm9tIFwiLi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQsIHVybEZyb21Eb2N1bWVudCB9IGZyb20gXCIuLi91cmxzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6IFwiY1wiLFxuICAgIGhlbHA6IFwiY29tbWl0IGRvY3VtZW50c1wiLFxuICAgIG5hbWU6IFwiY29tbWl0XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcImxcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwiMTZcIixcbiAgICBuYW1lOiBcImxlZ2lzbGF0dXJlXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiclwiLFxuICAgIGhlbHA6IFwicHVzaCBjb21taXQgdG8gZ2l2ZW4gcmVtb3RlXCIsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogXCJyZW1vdGVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJzXCIsXG4gICAgaGVscDogXCJkb24ndCBsb2cgYW55dGhpbmdcIixcbiAgICBuYW1lOiBcInNpbGVudFwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ1XCIsXG4gICAgaGVscDogXCJVSUQgb2YgZmlyc3QgQXNzZW1ibMOpZSdzIGRvY3VtZW50IHRvIHJldHJpZXZlXCIsXG4gICAgbmFtZTogXCJ1aWRcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJ2XCIsXG4gICAgaGVscDogXCJ2ZXJib3NlIGxvZ3NcIixcbiAgICBuYW1lOiBcInZlcmJvc2VcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgZGVmYXVsdE9wdGlvbjogdHJ1ZSxcbiAgICBoZWxwOiBcImRpcmVjdG9yeSBjb250YWluaW5nIEFzc2VtYmzDqWUgb3BlbiBkYXRhIGZpbGVzXCIsXG4gICAgbmFtZTogXCJkYXRhRGlyXCIsXG4gICAgdHlwZTogU3RyaW5nLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmZ1bmN0aW9uIGNvbW1pdEFuZFB1c2goXG4gIHJlcG9zaXRvcnlEaXI6IHN0cmluZyxcbiAgY29tbWl0OiBib29sZWFuLFxuICByZW1vdGVzPzogc3RyaW5nW10sXG4pOiBib29sZWFuIHtcbiAgbGV0IGVycm9yID0gZmFsc2VcbiAgaWYgKGNvbW1pdCkge1xuICAgIGV4ZWNTeW5jKFwiZ2l0IGFkZCAuXCIsIHtcbiAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYsXG4gICAgICBlbmNvZGluZzogXCJ1dGYtOFwiLFxuICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgfSlcbiAgICB0cnkge1xuICAgICAgZXhlY1N5bmMoJ2dpdCBjb21taXQgLW0gXCJOb3V2ZWxsZSBtb2lzc29uXCInLCB7XG4gICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgZW52OiBwcm9jZXNzLmVudixcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmLThcIixcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoY2hpbGRQcm9jZXNzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZFByb2Nlc3MgYXMgQ2hpbGRQcm9jZXNzKS5zdGRlcnIgPT09IG51bGwgfHxcbiAgICAgICAgIS9ub3RoaW5nIHRvIGNvbW1pdC8udGVzdCgoY2hpbGRQcm9jZXNzIGFzIGFueSkuc3Rkb3V0KVxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgdGhyb3cgY2hpbGRQcm9jZXNzXG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgcmVtb3RlIG9mIHJlbW90ZXMgfHwgW10pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGV4ZWNTeW5jKGBnaXQgcHVzaCAke3JlbW90ZX0gbWFzdGVyYCwge1xuICAgICAgICAgIGN3ZDogcmVwb3NpdG9yeURpcixcbiAgICAgICAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgICAgICAgIGVuY29kaW5nOiBcInV0Zi04XCIsXG4gICAgICAgICAgc3RkaW86IFtcImlnbm9yZVwiLCBcImlnbm9yZVwiLCBcInBpcGVcIl0sXG4gICAgICAgIH0pXG4gICAgICB9IGNhdGNoIChjaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgLy8gRG9uJ3Qgc3RvcCB3aGVuIHB1c2ggZmFpbHMuXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoKGNoaWxkUHJvY2VzcyBhcyBhbnkpLm91dHB1dClcbiAgICAgICAgZXJyb3IgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBlcnJvclxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZURvY3VtZW50cygpOiBQcm9taXNlPERvY3VtZW50W10+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAoY29tbWl0QW5kUHVzaCh0ZXh0ZXNMb2lzRGlyLCBvcHRpb25zLmNvbW1pdCwgb3B0aW9ucy5yZW1vdGUpKSB7XG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH1cbiAgcmV0dXJuIHRleHRlc0xvaXNcbn1cblxucmV0cmlldmVEb2N1bWVudHMoKS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgY29uc29sZS5sb2coZXJyb3IpXG4gIHByb2Nlc3MuZXhpdCgxKVxufSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQTREO0FBQUEsK0NBVDVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVdBLElBQU1BLGtCQUFrQixHQUFHLENBQ3pCO0VBQ0VDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSxrQkFBa0I7RUFDeEJDLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUM7QUFDUixDQUFDLEVBQ0Q7RUFDRUosS0FBSyxFQUFFLEdBQUc7RUFDVkssWUFBWSxFQUFFLElBQUk7RUFDbEJILElBQUksRUFBRSxhQUFhO0VBQ25CQyxJQUFJLEVBQUVHO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VOLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLElBQUksRUFBRSw2QkFBNkI7RUFDbkNNLFFBQVEsRUFBRSxJQUFJO0VBQ2RMLElBQUksRUFBRSxRQUFRO0VBQ2RDLElBQUksRUFBRUc7QUFDUixDQUFDLEVBQ0Q7RUFDRU4sS0FBSyxFQUFFLEdBQUc7RUFDVkMsSUFBSSxFQUFFLG9CQUFvQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsSUFBSSxFQUFFQztBQUNSLENBQUMsRUFDRDtFQUNF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
|
|
265
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfbm9kZUZldGNoIiwiX3BhdGgiLCJfZGF0YXNldHMiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sb2FkZXJzIiwiX2Rvc3NpZXJzX2xlZ2lzbGF0aWZzIiwiX3VybHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsImhhc093biIsInZhbHVlIiwiJFN5bWJvbCIsIlN5bWJvbCIsIml0ZXJhdG9yU3ltYm9sIiwiaXRlcmF0b3IiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwiaXRlciIsImtleXMiLCJ2YWwiLCJvYmplY3QiLCJyZXZlcnNlIiwicG9wIiwic2tpcFRlbXBSZXNldCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJyb290UmVjb3JkIiwicnZhbCIsImV4Y2VwdGlvbiIsImhhbmRsZSIsImxvYyIsImNhdWdodCIsImhhc0NhdGNoIiwiaGFzRmluYWxseSIsImZpbmFsbHlFbnRyeSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwidGhyb3duIiwiZGVsZWdhdGVZaWVsZCIsIl90b0NvbnN1bWFibGVBcnJheSIsImFyciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZW51bWVyYWJsZU9ubHkiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiYXJndW1lbnRzIiwic291cmNlIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJfdG9Qcm9wZXJ0eUtleSIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJ0b1ByaW1pdGl2ZSIsInJlcyIsIk51bWJlciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwibyIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwicyIsIm4iLCJlIiwiX2UiLCJmIiwibm9ybWFsQ29tcGxldGlvbiIsImRpZEVyciIsInN0ZXAiLCJfZTIiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImhlbHAiLCJCb29sZWFuIiwiZGVmYXVsdFZhbHVlIiwibXVsdGlwbGUiLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsInJldHJpZXZlRG9jdW1lbnRzIiwiX3JldHJpZXZlRG9jdW1lbnRzIiwiX2NhbGxlZSIsImRhdGFEaXIiLCJfbG9hZEFzc2VtYmxlZURhdGEiLCJkb2N1bWVudEJ5VWlkIiwidGV4dGVzTG9pc0RpciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZmlsZW5hbWUiLCJ0ZXh0ZXNMb2lzIiwiZmlyc3RVaWQiLCJza2lwIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInRleHRlTG9pIiwidXJsIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsInBhZ2UiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiYXNzZXJ0IiwiY29tbWl0IiwidWlkIiwibG9hZEFzc2VtYmxlZURhdGEiLCJFbmFibGVkRGF0YXNldHMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzIiwibGVnaXNsYXR1cmUiLCJwYXRoIiwiam9pbiIsImZzIiwiZW5zdXJlRGlyU3luYyIsInJlYWRkaXJTeW5jIiwicmVtb3ZlU3luYyIsInQwIiwiZG9jdW1lbnQiLCJ4c2lUeXBlIiwiVHlwZURvY3VtZW50IiwiVGV4dGVMb2lUeXBlIiwic3RhcnRzV2l0aCIsIm1hcCIsInJhd0RvY3VtZW50QXNzZW1ibGVlVXJsIiwidXJsRnJvbURvY3VtZW50IiwiRG9jdW1lbnRVcmxGb3JtYXQiLCJSYXdIdG1sIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInNpbGVudCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJVUkwiLCJob3N0bmFtZSIsInBhdGhuYW1lIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImRpcm5hbWUiLCJmZXRjaCIsInRleHQiLCJvayIsInN0YXR1cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJ3cml0ZUZpbGVTeW5jIiwidDEiLCJjb21taXRBbmRQdXNoIiwicmVtb3RlIiwiZXhpdENvZGUiLCJwcm9jZXNzIiwiZXhpdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3JldHJpZXZlX3RleHRlc19sb2lzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQgKiBhcyBnaXQgZnJvbSBcIi4uL2dpdFwiXG5pbXBvcnQgeyBsb2FkQXNzZW1ibGVlRGF0YSB9IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IFR5cGVEb2N1bWVudCB9IGZyb20gXCIuLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBEb2N1bWVudFVybEZvcm1hdCwgdXJsRnJvbURvY3VtZW50IH0gZnJvbSBcIi4uL3VybHNcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIHtcbiAgICBhbGlhczogXCJjXCIsXG4gICAgaGVscDogXCJjb21taXQgZG9jdW1lbnRzXCIsXG4gICAgbmFtZTogXCJjb21taXRcIixcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwibFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogXCIxNlwiLFxuICAgIG5hbWU6IFwibGVnaXNsYXR1cmVcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG4gIHtcbiAgICBhbGlhczogXCJyXCIsXG4gICAgaGVscDogXCJwdXNoIGNvbW1pdCB0byBnaXZlbiByZW1vdGVcIixcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBuYW1lOiBcInJlbW90ZVwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInNcIixcbiAgICBoZWxwOiBcImRvbid0IGxvZyBhbnl0aGluZ1wiLFxuICAgIG5hbWU6IFwic2lsZW50XCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInVcIixcbiAgICBoZWxwOiBcIlVJRCBvZiBmaXJzdCBBc3NlbWJsw6llJ3MgZG9jdW1lbnQgdG8gcmV0cmlldmVcIixcbiAgICBuYW1lOiBcInVpZFwiLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiBcInZcIixcbiAgICBoZWxwOiBcInZlcmJvc2UgbG9nc1wiLFxuICAgIG5hbWU6IFwidmVyYm9zZVwiLFxuICAgIHR5cGU6IEJvb2xlYW4sXG4gIH0sXG4gIHtcbiAgICBkZWZhdWx0T3B0aW9uOiB0cnVlLFxuICAgIGhlbHA6IFwiZGlyZWN0b3J5IGNvbnRhaW5pbmcgQXNzZW1ibMOpZSBvcGVuIGRhdGEgZmlsZXNcIixcbiAgICBuYW1lOiBcImRhdGFEaXJcIixcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVEb2N1bWVudHMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgYXNzZXJ0KFxuICAgICFvcHRpb25zLmNvbW1pdCB8fCBvcHRpb25zLnVpZCxcbiAgICAnT3B0aW9ucyBcImNvbW1pdFwiICYgXCJ1aWRcIiBhcmUgaW5jb21wYXRpYmxlJyxcbiAgKVxuXG4gIGNvbnN0IGRhdGFEaXIgPSBvcHRpb25zLmRhdGFEaXJcbiAgY29uc3QgeyBkb2N1bWVudEJ5VWlkIH0gPSBsb2FkQXNzZW1ibGVlRGF0YShcbiAgICBkYXRhRGlyLFxuICAgIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gIClcblxuICBjb25zdCB0ZXh0ZXNMb2lzRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFEaXIsXG4gICAgXCJ3d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mclwiLFxuICAgIG9wdGlvbnMubGVnaXNsYXR1cmUsXG4gICAgXCJ0ZXh0ZXNcIixcbiAgKVxuICBmcy5lbnN1cmVEaXJTeW5jKHRleHRlc0xvaXNEaXIpXG4gIGlmICghb3B0aW9ucy51aWQpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGVuYW1lIG9mIGZzLnJlYWRkaXJTeW5jKHRleHRlc0xvaXNEaXIpKSB7XG4gICAgICBpZiAoZmlsZW5hbWVbMF0gPT09IFwiLlwiKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBmcy5yZW1vdmVTeW5jKHBhdGguam9pbih0ZXh0ZXNMb2lzRGlyLCBmaWxlbmFtZSkpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGV4dGVzTG9pcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnRCeVVpZClcbiAgICAuZmlsdGVyKChkb2N1bWVudCkgPT4gZG9jdW1lbnQueHNpVHlwZSA9PT0gVHlwZURvY3VtZW50LlRleHRlTG9pVHlwZSlcbiAgICAuZmlsdGVyKFxuICAgICAgKGRvY3VtZW50KSA9PlxuICAgICAgICBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBJT05BTlwiKSB8fCBkb2N1bWVudC51aWQuc3RhcnRzV2l0aChcIlBSSkxBTlwiKSxcbiAgICApXG4gICAgLm1hcCgoZG9jdW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRvY3VtZW50LFxuICAgICAgICByYXdEb2N1bWVudEFzc2VtYmxlZVVybDogdXJsRnJvbURvY3VtZW50KFxuICAgICAgICAgIGRvY3VtZW50LFxuICAgICAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgICksXG4gICAgICB9XG4gICAgfSlcbiAgICAuc29ydCgoYSwgYikgPT5cbiAgICAgIGEucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAtMVxuICAgICAgICA6IGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGxcbiAgICAgICAgPyAxXG4gICAgICAgIDogYS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybC5sb2NhbGVDb21wYXJlKGIucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpLFxuICAgIClcblxuICBjb25zdCBmaXJzdFVpZCA9IG9wdGlvbnMudWlkXG4gIGxldCBza2lwID0gISFmaXJzdFVpZFxuICBmb3IgKGNvbnN0IHRleHRlTG9pIG9mIHRleHRlc0xvaXMpIHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgaWYgKHRleHRlTG9pLnVpZCA9PT0gZmlyc3RVaWQpIHtcbiAgICAgICAgc2tpcCA9IGZhbHNlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgYFJldHJpZXZpbmcgYmlsbCAke3RleHRlTG9pLnVpZH0gYXQgJHt0ZXh0ZUxvaS5yYXdEb2N1bWVudEFzc2VtYmxlZVVybH1gLFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwgPT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodGV4dGVMb2kucmF3RG9jdW1lbnRBc3NlbWJsZWVVcmwpXG4gICAgY29uc3QgZmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgdXJsLmhvc3RuYW1lLFxuICAgICAgLi4udXJsLnBhdGhuYW1lLnNwbGl0KFwiL1wiKSxcbiAgICApXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRleHRlc0xvaXNEaXIsIHBhdGguZGlybmFtZShmaWxlUGF0aCkpXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSA0MDQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBgRXJyb3Igd2hpbGUgZ2V0dGluZyBwYWdlIFwiJHtcbiAgICAgICAgICAgIHRleHRlTG9pLnJhd0RvY3VtZW50QXNzZW1ibGVlVXJsXG4gICAgICAgICAgfVwiICh1aWQ6ICR7dGV4dGVMb2kudWlkfSk6XFxuXFxuRXJyb3I6XFxuJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIHBhZ2UpXG4gIH1cblxuICBpZiAob3B0aW9ucy5jb21taXQpIHtcbiAgICByZXR1cm4gZ2l0LmNvbW1pdEFuZFB1c2godGV4dGVzTG9pc0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbnJldHJpZXZlRG9jdW1lbnRzKClcbiAgLnRoZW4oKGV4aXRDb2RlKSA9PiBwcm9jZXNzLmV4aXQoZXhpdENvZGUpKVxuICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgY29uc29sZS5sb2coZXJyb3IpXG4gICAgcHJvY2Vzcy5leGl0KDEpXG4gIH0pXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxz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
|