@datagrok/bio 2.0.5 → 2.0.7
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/dist/package-test.js +143 -127
- package/dist/package.js +10 -106
- package/package.json +1 -1
- package/src/calculations/{fingerprints.ts → monomerLevelMols.ts} +12 -15
- package/src/package.ts +10 -18
- package/src/tests/renderers-test.ts +123 -15
- package/src/tests/splitters-test.ts +26 -2
- package/src/utils/convert.ts +1 -0
- package/test-Bio-7770371320b2-4674dcdc.html +0 -363
package/dist/package.js
CHANGED
|
@@ -4459,92 +4459,6 @@ function jaroWinkler(str1, str2, options) {
|
|
|
4459
4459
|
exports.jaroWinkler = jaroWinkler;
|
|
4460
4460
|
|
|
4461
4461
|
|
|
4462
|
-
/***/ }),
|
|
4463
|
-
|
|
4464
|
-
/***/ "./src/calculations/fingerprints.ts":
|
|
4465
|
-
/*!******************************************!*\
|
|
4466
|
-
!*** ./src/calculations/fingerprints.ts ***!
|
|
4467
|
-
\******************************************/
|
|
4468
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
4469
|
-
|
|
4470
|
-
"use strict";
|
|
4471
|
-
__webpack_require__.r(__webpack_exports__);
|
|
4472
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
4473
|
-
/* harmony export */ "getFingerprints": () => (/* binding */ getFingerprints)
|
|
4474
|
-
/* harmony export */ });
|
|
4475
|
-
/* harmony import */ var datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! datagrok-api/grok */ "datagrok-api/grok");
|
|
4476
|
-
/* harmony import */ var datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__);
|
|
4477
|
-
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4478
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4479
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4480
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
4481
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
4482
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
4483
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
4484
|
-
});
|
|
4485
|
-
};
|
|
4486
|
-
|
|
4487
|
-
const V2000_ATOM_NAME_POS = 31;
|
|
4488
|
-
function getFingerprints(mols, monomers) {
|
|
4489
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4490
|
-
const mod = yield datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__.functions.call('Chem:getRdKitModule');
|
|
4491
|
-
const fps = [];
|
|
4492
|
-
let dict = new Map();
|
|
4493
|
-
for (let i = 0; i < monomers.length; i++)
|
|
4494
|
-
dict.set(monomers[i], `R${Math.pow(10, (i + 1))}`);
|
|
4495
|
-
mols = changeToV3000(mols, dict);
|
|
4496
|
-
for (let i = 0; i < mols.length; i++) {
|
|
4497
|
-
const mol = mod.get_mol(mols[i]);
|
|
4498
|
-
const fp = mol.get_pattern_fp_as_uint8array();
|
|
4499
|
-
fps.push(fp);
|
|
4500
|
-
mol === null || mol === void 0 ? void 0 : mol.delete();
|
|
4501
|
-
}
|
|
4502
|
-
return fps;
|
|
4503
|
-
});
|
|
4504
|
-
}
|
|
4505
|
-
function changeToV3000(mols, dict) {
|
|
4506
|
-
for (let i = 0; i < mols.length; i++) {
|
|
4507
|
-
let curPos = 0;
|
|
4508
|
-
let endPos = 0;
|
|
4509
|
-
let molV3000 = `
|
|
4510
|
-
Datagrok macromolecule handler
|
|
4511
|
-
|
|
4512
|
-
0 0 0 0 0 0 999 V3000
|
|
4513
|
-
M V30 BEGIN CTAB
|
|
4514
|
-
`;
|
|
4515
|
-
const mol = mols[i];
|
|
4516
|
-
curPos = mol.indexOf('\n', curPos) + 1;
|
|
4517
|
-
curPos = mol.indexOf('\n', curPos) + 1;
|
|
4518
|
-
curPos = mol.indexOf('\n', curPos) + 1;
|
|
4519
|
-
const atomMonomerCounts = parseInt(mol.substring(curPos, curPos + 3));
|
|
4520
|
-
const bondMonomerCounts = parseInt(mol.substring(curPos + 3, curPos + 6));
|
|
4521
|
-
molV3000 += `M V30 COUNTS ${atomMonomerCounts} ${bondMonomerCounts} 0 0 0\n`;
|
|
4522
|
-
molV3000 += 'M V30 BEGIN ATOM\n';
|
|
4523
|
-
for (let atomRowI = 0; atomRowI < atomMonomerCounts; atomRowI++) {
|
|
4524
|
-
curPos = mol.indexOf('\n', curPos) + 1 + V2000_ATOM_NAME_POS;
|
|
4525
|
-
endPos = mol.indexOf(' ', curPos);
|
|
4526
|
-
const monomerName = mol.substring(curPos, endPos);
|
|
4527
|
-
molV3000 += `M V30 ${atomRowI + 1} ${dict.get(monomerName)} 0.000 0.000 0 0\n`;
|
|
4528
|
-
}
|
|
4529
|
-
molV3000 += 'M V30 END ATOM\n';
|
|
4530
|
-
molV3000 += 'M V30 BEGIN BOND\n';
|
|
4531
|
-
for (let bondRowI = 0; bondRowI < bondMonomerCounts; bondRowI++) {
|
|
4532
|
-
curPos = mol.indexOf('\n', curPos) + 1;
|
|
4533
|
-
const firstMonomer = parseInt(mol.substring(curPos, curPos + 3).trim());
|
|
4534
|
-
const secondMonomer = parseInt(mol.substring(curPos + 3, curPos + 6).trim());
|
|
4535
|
-
const order = parseInt(mol.substring(curPos + 6, curPos + 9).trim());
|
|
4536
|
-
molV3000 += `M V30 ${bondRowI + 1} ${order} ${firstMonomer} ${secondMonomer}\n`;
|
|
4537
|
-
}
|
|
4538
|
-
molV3000 += 'M V30 END BOND\n';
|
|
4539
|
-
molV3000 += 'M V30 END CTAB\n';
|
|
4540
|
-
molV3000 += 'M END';
|
|
4541
|
-
console.log(molV3000);
|
|
4542
|
-
mols[i] = molV3000;
|
|
4543
|
-
}
|
|
4544
|
-
return mols;
|
|
4545
|
-
}
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
4462
|
/***/ }),
|
|
4549
4463
|
|
|
4550
4464
|
/***/ "./src/const.ts":
|
|
@@ -5921,6 +5835,7 @@ function convert(col) {
|
|
|
5921
5835
|
}));
|
|
5922
5836
|
}
|
|
5923
5837
|
}
|
|
5838
|
+
/** Creates a new column with converted sequences and detects its semantic type */
|
|
5924
5839
|
function convertDo(srcCol, targetNotation, separator) {
|
|
5925
5840
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5926
5841
|
const converter = new _datagrok_libraries_bio_src_utils_notation_converter__WEBPACK_IMPORTED_MODULE_3__.NotationConverter(srcCol);
|
|
@@ -6963,7 +6878,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6963
6878
|
/* harmony export */ "importFasta": () => (/* binding */ importFasta),
|
|
6964
6879
|
/* harmony export */ "initBio": () => (/* binding */ initBio),
|
|
6965
6880
|
/* harmony export */ "macromoleculeDifferenceCellRenderer": () => (/* binding */ macromoleculeDifferenceCellRenderer),
|
|
6966
|
-
/* harmony export */ "macromoleculesFingerprints": () => (/* binding */ macromoleculesFingerprints),
|
|
6967
6881
|
/* harmony export */ "monomerCellRenderer": () => (/* binding */ monomerCellRenderer),
|
|
6968
6882
|
/* harmony export */ "multipleSequenceAlignmentAny": () => (/* binding */ multipleSequenceAlignmentAny),
|
|
6969
6883
|
/* harmony export */ "panelMSA": () => (/* binding */ panelMSA),
|
|
@@ -7001,7 +6915,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
7001
6915
|
/* harmony import */ var _datagrok_libraries_utils_src_dataframe_utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @datagrok-libraries/utils/src/dataframe-utils */ "./node_modules/@datagrok-libraries/utils/src/dataframe-utils.js");
|
|
7002
6916
|
/* harmony import */ var _datagrok_libraries_bio_src_utils_splitter__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @datagrok-libraries/bio/src/utils/splitter */ "./node_modules/@datagrok-libraries/bio/src/utils/splitter.js");
|
|
7003
6917
|
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./utils/constants */ "./src/utils/constants.ts");
|
|
7004
|
-
/* harmony import */ var _calculations_fingerprints__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./calculations/fingerprints */ "./src/calculations/fingerprints.ts");
|
|
7005
6918
|
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
7006
6919
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
7007
6920
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -7034,7 +6947,6 @@ const _package = new datagrok_api_dg__WEBPACK_IMPORTED_MODULE_2__.Package();
|
|
|
7034
6947
|
|
|
7035
6948
|
|
|
7036
6949
|
|
|
7037
|
-
|
|
7038
6950
|
//tags: init
|
|
7039
6951
|
function initBio() {
|
|
7040
6952
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -7056,6 +6968,14 @@ function fastaSequenceCellRenderer() {
|
|
|
7056
6968
|
function separatorSequenceCellRenderer() {
|
|
7057
6969
|
return new _utils_cell_renderer__WEBPACK_IMPORTED_MODULE_3__.MacromoleculeSequenceCellRenderer();
|
|
7058
6970
|
}
|
|
6971
|
+
//name: MacromoleculeDifferenceCellRenderer
|
|
6972
|
+
//tags: cellRenderer
|
|
6973
|
+
//meta.cellType: MacromoleculeDifference
|
|
6974
|
+
//meta.columnTags: quality=MacromoleculeDifference
|
|
6975
|
+
//output: grid_cell_renderer result
|
|
6976
|
+
function macromoleculeDifferenceCellRenderer() {
|
|
6977
|
+
return new _utils_cell_renderer__WEBPACK_IMPORTED_MODULE_3__.MacromoleculeDifferenceCellRenderer();
|
|
6978
|
+
}
|
|
7059
6979
|
function checkInputColumnUi(col, name, allowedNotations = [], allowedAlphabets = []) {
|
|
7060
6980
|
const [res, msg] = checkInputColumn(col, name, allowedNotations, allowedAlphabets);
|
|
7061
6981
|
if (!res)
|
|
@@ -7339,14 +7259,6 @@ function convertPanel(col) {
|
|
|
7339
7259
|
function monomerCellRenderer() {
|
|
7340
7260
|
return new _utils_cell_renderer__WEBPACK_IMPORTED_MODULE_3__.MonomerCellRenderer();
|
|
7341
7261
|
}
|
|
7342
|
-
//name: MacromoleculeDifferenceCellRenderer
|
|
7343
|
-
//tags: cellRenderer
|
|
7344
|
-
//meta.cellType: MacromoleculeDifference
|
|
7345
|
-
//meta.columnTags: quality=MacromoleculeDifference
|
|
7346
|
-
//output: grid_cell_renderer result
|
|
7347
|
-
function macromoleculeDifferenceCellRenderer() {
|
|
7348
|
-
return new _utils_cell_renderer__WEBPACK_IMPORTED_MODULE_3__.MacromoleculeDifferenceCellRenderer();
|
|
7349
|
-
}
|
|
7350
7262
|
//name: testDetectMacromolecule
|
|
7351
7263
|
//input: string path {choices: ['Demo:Files/', 'System:AppData/']}
|
|
7352
7264
|
//output: dataframe result
|
|
@@ -7417,18 +7329,10 @@ function getHelmMonomers(seqCol) {
|
|
|
7417
7329
|
const stats = _datagrok_libraries_bio_src_viewers_web_logo__WEBPACK_IMPORTED_MODULE_4__.WebLogo.getStats(seqCol, 1, _datagrok_libraries_bio_src_viewers_web_logo__WEBPACK_IMPORTED_MODULE_4__.WebLogo.splitterAsHelm);
|
|
7418
7330
|
return Object.keys(stats.freq);
|
|
7419
7331
|
}
|
|
7420
|
-
function macromoleculesFingerprints(mcol) {
|
|
7421
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
7422
|
-
datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__.functions.call('Chem:getRdKitModule');
|
|
7423
|
-
const monomers = getHelmMonomers(mcol);
|
|
7424
|
-
const mols = yield datagrok_api_grok__WEBPACK_IMPORTED_MODULE_0__.functions.call('HELM:getMolFiles', { mcol: mcol });
|
|
7425
|
-
return (0,_calculations_fingerprints__WEBPACK_IMPORTED_MODULE_20__.getFingerprints)(mols.toList(), monomers);
|
|
7426
|
-
});
|
|
7427
|
-
}
|
|
7428
7332
|
|
|
7429
7333
|
})();
|
|
7430
7334
|
|
|
7431
7335
|
bio = __webpack_exports__;
|
|
7432
7336
|
/******/ })()
|
|
7433
7337
|
;
|
|
7434
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ2pPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQzhCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJOO0FBQzlCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087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Ozs7Ozs7Ozs7O0FDcEVPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUDtBQUNPO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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LDREQUFlLGFBQWEsNERBQWU7QUFDakU7QUFDQSxJQUFJLHVFQUE2QjtBQUNqQztBQUNBO0FBQ0EscUJBQXFCO0FBQ2Q7QUFDUCxrQkFBa0IsMEZBQWdCLFlBQVksZ0dBQXNCO0FBQ3BFO0FBQ0E7QUFDTztBQUNQO0FBQ0EsUUFBUSw2REFBbUI7QUFDM0I7QUFDQSwyQkFBMkIsNkRBQW1CLHVCQUF1QixZQUFZO0FBQ2pGLGVBQWUsNEVBQWU7QUFDOUIsS0FBSztBQUNMIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BiaW93YXNtL2Fpb2xpL2Rpc3QvYWlvbGkuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvbnVjbGVvdGlkZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmQtcmVnaW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvd2ViLWxvZ28uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3NlcXVlbmNlLXNwYWNlLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9yYW5kb20uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9mYXN0LXNoYTI1Ni9zaGEyNTYuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2Zhc3Rlc3QtbGV2ZW5zaHRlaW4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2phcm8td2lua2xlci10eXBlc2NyaXB0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY2FsY3VsYXRpb25zL2ZpbmdlcnByaW50cy50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY29uc3QudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3NlcV9hbGlnbi50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvYXRvbWljLXdvcmtzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnZlcnQudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvc2VxdWVuY2UtYWN0aXZpdHktY2xpZmZzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9zZXF1ZW5jZS1zcGFjZS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvdXRpbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3dpZGdldHMvcmVwcmVzZW50YXRpb25zLnRzIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCIkXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcIkRHXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcImdyb2tcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwicnhqc1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ1aVwiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ3dVwiIiwid2VicGFjazovL2Jpby93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAoZ2xvYmFsID0gZ2xvYmFsIHx8IHNlbGYsIGdsb2JhbC5BaW9saSA9IGZhY3RvcnkoKSk7XG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICB2YXIgbmFtZSA9IFwiQGJpb3dhc20vYWlvbGlcIjtcbiAgdmFyIHZlcnNpb24gPSBcIjIuNC4wLXJjMlwiO1xuICB2YXIgZGVzY3JpcHRpb24gPSBcIkEgZnJhbWV3b3JrIGZvciBidWlsZGluZyBXZWJBc3NlbWJseS1iYXNlZCBnZW5vbWljcyB0b29sc1wiO1xuICB2YXIgYnJvd3NlciA9IFwiZGlzdC9haW9saS5qc1wiO1xuICB2YXIgd29ya2VyID0gXCJkaXN0L2Fpb2xpLndvcmtlci5qc1wiO1xuICB2YXIgbWFpbiA9IFwiYWlvbGkuanNcIjtcbiAgdmFyIHJlcG9zaXRvcnkgPSB7XG4gIFx0dHlwZTogXCJnaXRcIixcbiAgXHR1cmw6IFwiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9iaW93YXNtL2Fpb2xpLmdpdFwiXG4gIH07XG4gIHZhciBhdXRob3IgPSBcIlJvYmVydCBBYm91a2hhbGlsXCI7XG4gIHZhciBsaWNlbnNlID0gXCJNSVRcIjtcbiAgdmFyIGRlcGVuZGVuY2llcyA9IHtcbiAgXHRjb21saW5rOiBcIl40LjMuMVwiLFxuICBcdFwid2FzbS1mZWF0dXJlLWRldGVjdFwiOiBcIl4xLjIuMTFcIlxuICB9O1xuICB2YXIgZGV2RGVwZW5kZW5jaWVzID0ge1xuICBcdFwiQHJvbGx1cC9wbHVnaW4tY29tbW9uanNcIjogXCJeMTEuMC4xXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1qc29uXCI6IFwiXjQuMS4wXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1ub2RlLXJlc29sdmVcIjogXCJeNy4wLjBcIixcbiAgXHRjeXByZXNzOiBcIl44LjAuMFwiLFxuICBcdHJvbGx1cDogXCJeMS4yOS4wXCIsXG4gIFx0XCJyb2xsdXAtcGx1Z2luLXRlcnNlclwiOiBcIl43LjAuMlwiXG4gIH07XG4gIHZhciBzY3JpcHRzID0ge1xuICBcdGJ1aWxkOiBcInJvbGx1cCAtY1wiLFxuICBcdGRldjogXCJyb2xsdXAgLWMgLXdcIixcbiAgXHR0ZXN0OiBcImN5cHJlc3MgcnVuXCIsXG4gIFx0XCJ0ZXN0LW9wZW5cIjogXCJjeXByZXNzIG9wZW5cIlxuICB9O1xuICB2YXIgZmlsZXMgPSBbXG4gIFx0XCJkaXN0XCJcbiAgXTtcbiAgdmFyIHBrZyA9IHtcbiAgXHRuYW1lOiBuYW1lLFxuICBcdHZlcnNpb246IHZlcnNpb24sXG4gIFx0ZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICBcdGJyb3dzZXI6IGJyb3dzZXIsXG4gIFx0d29ya2VyOiB3b3JrZXIsXG4gIFx0bWFpbjogbWFpbixcbiAgXHRyZXBvc2l0b3J5OiByZXBvc2l0b3J5LFxuICBcdGF1dGhvcjogYXV0aG9yLFxuICBcdGxpY2Vuc2U6IGxpY2Vuc2UsXG4gIFx0ZGVwZW5kZW5jaWVzOiBkZXBlbmRlbmNpZXMsXG4gIFx0ZGV2RGVwZW5kZW5jaWVzOiBkZXZEZXBlbmRlbmNpZXMsXG4gIFx0c2NyaXB0czogc2NyaXB0cyxcbiAgXHRmaWxlczogZmlsZXNcbiAgfTtcblxuICAvKipcclxuICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAgICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gICAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gICAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAgICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gICAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gICAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICAgKi9cclxuICBjb25zdCBwcm94eU1hcmtlciA9IFN5bWJvbChcIkNvbWxpbmsucHJveHlcIik7XHJcbiAgY29uc3QgY3JlYXRlRW5kcG9pbnQgPSBTeW1ib2woXCJDb21saW5rLmVuZHBvaW50XCIpO1xyXG4gIGNvbnN0IHJlbGVhc2VQcm94eSA9IFN5bWJvbChcIkNvbWxpbmsucmVsZWFzZVByb3h5XCIpO1xyXG4gIGNvbnN0IHRocm93TWFya2VyID0gU3ltYm9sKFwiQ29tbGluay50aHJvd25cIik7XHJcbiAgY29uc3QgaXNPYmplY3QgPSAodmFsKSA9PiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwpIHx8IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAvKipcclxuICAgKiBJbnRlcm5hbCB0cmFuc2ZlciBoYW5kbGUgdG8gaGFuZGxlIG9iamVjdHMgbWFya2VkIHRvIHByb3h5LlxyXG4gICAqL1xyXG4gIGNvbnN0IHByb3h5VHJhbnNmZXJIYW5kbGVyID0ge1xyXG4gICAgICBjYW5IYW5kbGU6ICh2YWwpID0+IGlzT2JqZWN0KHZhbCkgJiYgdmFsW3Byb3h5TWFya2VyXSxcclxuICAgICAgc2VyaWFsaXplKG9iaikge1xyXG4gICAgICAgICAgY29uc3QgeyBwb3J0MSwgcG9ydDIgfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xyXG4gICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDEpO1xyXG4gICAgICAgICAgcmV0dXJuIFtwb3J0MiwgW3BvcnQyXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHBvcnQpIHtcclxuICAgICAgICAgIHBvcnQuc3RhcnQoKTtcclxuICAgICAgICAgIHJldHVybiB3cmFwKHBvcnQpO1xyXG4gICAgICB9LFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICogSW50ZXJuYWwgdHJhbnNmZXIgaGFuZGxlciB0byBoYW5kbGUgdGhyb3duIGV4Y2VwdGlvbnMuXHJcbiAgICovXHJcbiAgY29uc3QgdGhyb3dUcmFuc2ZlckhhbmRsZXIgPSB7XHJcbiAgICAgIGNhbkhhbmRsZTogKHZhbHVlKSA9PiBpc09iamVjdCh2YWx1ZSkgJiYgdGhyb3dNYXJrZXIgaW4gdmFsdWUsXHJcbiAgICAgIHNlcmlhbGl6ZSh7IHZhbHVlIH0pIHtcclxuICAgICAgICAgIGxldCBzZXJpYWxpemVkO1xyXG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgICBzZXJpYWxpemVkID0ge1xyXG4gICAgICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogdmFsdWUubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdGFjazogdmFsdWUuc3RhY2ssXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNlcmlhbGl6ZWQgPSB7IGlzRXJyb3I6IGZhbHNlLCB2YWx1ZSB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIFtzZXJpYWxpemVkLCBbXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQpIHtcclxuICAgICAgICAgIGlmIChzZXJpYWxpemVkLmlzRXJyb3IpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihzZXJpYWxpemVkLnZhbHVlLm1lc3NhZ2UpLCBzZXJpYWxpemVkLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRocm93IHNlcmlhbGl6ZWQudmFsdWU7XHJcbiAgICAgIH0sXHJcbiAgfTtcclxuICAvKipcclxuICAgKiBBbGxvd3MgY3VzdG9taXppbmcgdGhlIHNlcmlhbGl6YXRpb24gb2YgY2VydGFpbiB2YWx1ZXMuXHJcbiAgICovXHJcbiAgY29uc3QgdHJhbnNmZXJIYW5kbGVycyA9IG5ldyBNYXAoW1xyXG4gICAgICBbXCJwcm94eVwiLCBwcm94eVRyYW5zZmVySGFuZGxlcl0sXHJcbiAgICAgIFtcInRocm93XCIsIHRocm93VHJhbnNmZXJIYW5kbGVyXSxcclxuICBdKTtcclxuICBmdW5jdGlvbiBleHBvc2Uob2JqLCBlcCA9IHNlbGYpIHtcclxuICAgICAgZXAuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gY2FsbGJhY2soZXYpIHtcclxuICAgICAgICAgIGlmICghZXYgfHwgIWV2LmRhdGEpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCB7IGlkLCB0eXBlLCBwYXRoIH0gPSBPYmplY3QuYXNzaWduKHsgcGF0aDogW10gfSwgZXYuZGF0YSk7XHJcbiAgICAgICAgICBjb25zdCBhcmd1bWVudExpc3QgPSAoZXYuZGF0YS5hcmd1bWVudExpc3QgfHwgW10pLm1hcChmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgIGxldCByZXR1cm5WYWx1ZTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gcGF0aC5zbGljZSgwLCAtMSkucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHBhdGgucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIkdFVFwiIC8qIEdFVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJTRVRcIiAvKiBTRVQgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50W3BhdGguc2xpY2UoLTEpWzBdXSA9IGZyb21XaXJlVmFsdWUoZXYuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJBUFBMWVwiIC8qIEFQUExZICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmF3VmFsdWUuYXBwbHkocGFyZW50LCBhcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJDT05TVFJVQ1RcIiAvKiBDT05TVFJVQ1QgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXcgcmF3VmFsdWUoLi4uYXJndW1lbnRMaXN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHByb3h5KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBjYXNlIFwiRU5EUE9JTlRcIiAvKiBFTkRQT0lOVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvcnQxLCBwb3J0MiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdHJhbnNmZXIocG9ydDEsIFtwb3J0MV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoICh2YWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJldHVyblZhbHVlID0geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJldHVyblZhbHVlKVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAudGhlbigocmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBbd2lyZVZhbHVlLCB0cmFuc2ZlcmFibGVzXSA9IHRvV2lyZVZhbHVlKHJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICBlcC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdpcmVWYWx1ZSksIHsgaWQgfSksIHRyYW5zZmVyYWJsZXMpO1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSBcIlJFTEVBU0VcIiAvKiBSRUxFQVNFICovKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGRldGFjaCBhbmQgZGVhY3RpdmUgYWZ0ZXIgc2VuZGluZyByZWxlYXNlIHJlc3BvbnNlIGFib3ZlLlxyXG4gICAgICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBjYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGVwLnN0YXJ0KSB7XHJcbiAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTWVzc2FnZVBvcnQoZW5kcG9pbnQpIHtcclxuICAgICAgcmV0dXJuIGVuZHBvaW50LmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiTWVzc2FnZVBvcnRcIjtcclxuICB9XHJcbiAgZnVuY3Rpb24gY2xvc2VFbmRQb2ludChlbmRwb2ludCkge1xyXG4gICAgICBpZiAoaXNNZXNzYWdlUG9ydChlbmRwb2ludCkpXHJcbiAgICAgICAgICBlbmRwb2ludC5jbG9zZSgpO1xyXG4gIH1cclxuICBmdW5jdGlvbiB3cmFwKGVwLCB0YXJnZXQpIHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBbXSwgdGFyZ2V0KTtcclxuICB9XHJcbiAgZnVuY3Rpb24gdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNSZWxlYXNlZCkge1xyXG4gICAgICBpZiAoaXNSZWxlYXNlZCkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlXCIpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVByb3h5KGVwLCBwYXRoID0gW10sIHRhcmdldCA9IGZ1bmN0aW9uICgpIHsgfSkge1xyXG4gICAgICBsZXQgaXNQcm94eVJlbGVhc2VkID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwge1xyXG4gICAgICAgICAgZ2V0KF90YXJnZXQsIHByb3ApIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGlmIChwcm9wID09PSByZWxlYXNlUHJveHkpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJveHlSZWxlYXNlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHByb3AgPT09IFwidGhlblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdGhlbjogKCkgPT4gcHJveHkgfTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIiAvKiBHRVQgKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgfSkudGhlbihmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHIudGhlbi5iaW5kKHIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIFsuLi5wYXRoLCBwcm9wXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2V0KF90YXJnZXQsIHByb3AsIHJhd1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNQcm94eVJlbGVhc2VkKTtcclxuICAgICAgICAgICAgICAvLyBGSVhNRTogRVM2IFByb3h5IEhhbmRsZXIgYHNldGAgbWV0aG9kcyBhcmUgc3VwcG9zZWQgdG8gcmV0dXJuIGFcclxuICAgICAgICAgICAgICAvLyBib29sZWFuLiBUbyBzaG93IGdvb2Qgd2lsbCwgd2UgcmV0dXJuIHRydWUgYXN5bmNocm9ub3VzbHkgwq9cXF8o44OEKV8vwq9cclxuICAgICAgICAgICAgICBjb25zdCBbdmFsdWUsIHRyYW5zZmVyYWJsZXNdID0gdG9XaXJlVmFsdWUocmF3VmFsdWUpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU0VUXCIgLyogU0VUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBbLi4ucGF0aCwgcHJvcF0ubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFwcGx5KF90YXJnZXQsIF90aGlzQXJnLCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgaWYgKGxhc3QgPT09IGNyZWF0ZUVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVORFBPSU5UXCIgLyogRU5EUE9JTlQgKi8sXHJcbiAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIFdlIGp1c3QgcHJldGVuZCB0aGF0IGBiaW5kKClgIGRpZG7igJl0IGhhcHBlbi5cclxuICAgICAgICAgICAgICBpZiAobGFzdCA9PT0gXCJiaW5kXCIpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBwYXRoLnNsaWNlKDAsIC0xKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQVBQTFlcIiAvKiBBUFBMWSAqLyxcclxuICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aC5tYXAoKHApID0+IHAudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgIGFyZ3VtZW50TGlzdCxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbnN0cnVjdChfdGFyZ2V0LCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQ09OU1RSVUNUXCIgLyogQ09OU1RSVUNUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgYXJndW1lbnRMaXN0LFxyXG4gICAgICAgICAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHByb3h5O1xyXG4gIH1cclxuICBmdW5jdGlvbiBteUZsYXQoYXJyKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBhcnIpO1xyXG4gIH1cclxuICBmdW5jdGlvbiBwcm9jZXNzQXJndW1lbnRzKGFyZ3VtZW50TGlzdCkge1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBhcmd1bWVudExpc3QubWFwKHRvV2lyZVZhbHVlKTtcclxuICAgICAgcmV0dXJuIFtwcm9jZXNzZWQubWFwKCh2KSA9PiB2WzBdKSwgbXlGbGF0KHByb2Nlc3NlZC5tYXAoKHYpID0+IHZbMV0pKV07XHJcbiAgfVxyXG4gIGNvbnN0IHRyYW5zZmVyQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xyXG4gIGZ1bmN0aW9uIHRyYW5zZmVyKG9iaiwgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHRyYW5zZmVyQ2FjaGUuc2V0KG9iaiwgdHJhbnNmZXJzKTtcclxuICAgICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZnVuY3Rpb24gcHJveHkob2JqKSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgeyBbcHJveHlNYXJrZXJdOiB0cnVlIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiB0b1dpcmVWYWx1ZSh2YWx1ZSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBoYW5kbGVyXSBvZiB0cmFuc2ZlckhhbmRsZXJzKSB7XHJcbiAgICAgICAgICBpZiAoaGFuZGxlci5jYW5IYW5kbGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgW3NlcmlhbGl6ZWRWYWx1ZSwgdHJhbnNmZXJhYmxlc10gPSBoYW5kbGVyLnNlcmlhbGl6ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJIQU5ETEVSXCIgLyogSEFORExFUiAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VyaWFsaXplZFZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2ZlcmFibGVzLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBcIlJBV1wiIC8qIFJBVyAqLyxcclxuICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0cmFuc2ZlckNhY2hlLmdldCh2YWx1ZSkgfHwgW10sXHJcbiAgICAgIF07XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGZyb21XaXJlVmFsdWUodmFsdWUpIHtcclxuICAgICAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiSEFORExFUlwiIC8qIEhBTkRMRVIgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZmVySGFuZGxlcnMuZ2V0KHZhbHVlLm5hbWUpLmRlc2VyaWFsaXplKHZhbHVlLnZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgXCJSQVdcIiAvKiBSQVcgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIG1zZywgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWQgPSBnZW5lcmF0ZVVVSUQoKTtcclxuICAgICAgICAgIGVwLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGZ1bmN0aW9uIGwoZXYpIHtcclxuICAgICAgICAgICAgICBpZiAoIWV2LmRhdGEgfHwgIWV2LmRhdGEuaWQgfHwgZXYuZGF0YS5pZCAhPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBsKTtcclxuICAgICAgICAgICAgICByZXNvbHZlKGV2LmRhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoZXAuc3RhcnQpIHtcclxuICAgICAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZXAucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7IGlkIH0sIG1zZyksIHRyYW5zZmVycyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZW5lcmF0ZVVVSUQoKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXkoNClcclxuICAgICAgICAgIC5maWxsKDApXHJcbiAgICAgICAgICAubWFwKCgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpXHJcbiAgICAgICAgICAuam9pbihcIi1cIik7XHJcbiAgfVxuICAvLyMgc291cmNlTWFwcGluZ1VSTD1jb21saW5rLm1qcy5tYXBcblxuICAvLyBDb25zdGFudHNcbiAgY29uc3QgVVJMX0NETl9ST09UID0gXCJodHRwczovL2Nkbi5iaW93YXNtLmNvbS92MlwiO1xuICBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIFx0Ly8gQmlvd2FzbSBDRE4gVVJMc1xuICBcdHVybENETjogVVJMX0NETl9ST09ULFxuICBcdC8vIEdldCB0aGUgV29ya2VyIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBBaW9saSB2ZXJzaW9uXG4gIFx0dXJsQWlvbGk6IGAke1VSTF9DRE5fUk9PVH0vYWlvbGkvJHtwa2cudmVyc2lvbn0vYWlvbGkud29ya2VyLmpzYCxcbiAgXHQvLyBXaGVyZSB3ZSBjYW4gZmluZCB0aGUgYmFzZSBiaW93YXNtIG1vZHVsZSAob25seSBtb2RpZnkgdGhpcyBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQpXG4gIFx0dXJsQmFzZU1vZHVsZTogbnVsbCxcblxuICBcdC8vIEZvbGRlciB0byB1c2UgZm9yIG1vdW50aW5nIHRoZSBzaGFyZWQgZmlsZXN5c3RlbVxuICBcdGRpclNoYXJlZDogXCIvc2hhcmVkXCIsXG4gIFx0Ly8gRm9sZGVyIHRvIHVzZSBmb3IgbW91bnRpbmcgRmlsZS9CbG9iIG9iamVjdHMgdG8gdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW1cbiAgXHRkaXJNb3VudGVkOiBcIi9tbnRcIixcbiAgXHQvLyBGb2xkZXIgdG8gdXNlIGZvciBzeW1saW5rcyAoYmFzaWNhbGx5LCB3ZSBtYWtlIGEgc3ltbGluayB0byBlYWNoIGZpbGUgbW91bnRlZCBvbiBXT1JLRVJGU1xuICBcdC8vIHNvIHRoYXQgb3BlcmF0aW9ucyBsaWtlIFwic2FtdG9vbHMgaW5kZXhcIiBkb24ndCBjcmFzaCBkdWUgdG8gdGhlIHJlYWQtb25seSBuYXR1cmUgb2YgV09SS0VSUykuXG4gIFx0Ly8gQWxzbyBtb3VudCBVUkxzIGxhemlseSBpbiB0aGF0IGZvbGRlci5cbiAgXHRkaXJEYXRhOiBcIi9kYXRhXCIsXG4gIFx0Ly8gSW50ZXJsZWF2ZSBzdGRvdXQvc3RkZXJyLiBJZiBzZXQgdG8gZmFsc2UsIGAuZXhlYygpYCByZXR1cm5zIGFuIG9iamVjdCB7IFwic3Rkb3V0XCI6IDx0ZXh0PiwgXCJzdGRlcnJcIjogPHRleHQ+IH1cbiAgXHRwcmludEludGVybGVhdmVkOiB0cnVlLFxuXG4gIFx0Ly8gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gcnVuIHdoZW5ldmVyIHdlIHJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIFdlYldvcmtlciB3aXRoIHBheWxvYWQgeyB0eXBlOiBcImJpb3dhc21cIiwgdmFsdWU6IC4uLiB9LlxuICBcdC8vIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL2Jpb3dhc20vYmlvd2FzbS90cmVlL21haW4vdG9vbHMvYmh0c25lPiBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdGhpcyBjYW4gYmUgdXNlZCB0byBzZW5kIHJlZ3VsYXIgdXBkYXRlc1xuICBcdC8vIGJhY2sgdG8gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBjYWxsTWFpbigpIGlzIGRvbmUgcnVubmluZy5cbiAgXHRjYWxsYmFjazogbnVsbCxcblxuICBcdC8vIERlYnVnZ2luZ1xuICBcdGRlYnVnOiBmYWxzZSxcbiAgXHRlbnY6IFwicHJkXCJcbiAgfTtcblxuICAvLyBDbGFzczogMSBvYmplY3QgPSAxIHdvcmtlcjsgdXNlciBjYW4gZGVjaWRlIGlmIHRoZXkgd2FudCB0b29scyBydW5uaW5nIGluIHNlcGFyYXRlIHRocmVhZHMgb3IgYWxsIG9mIHRoZW0gaW4gb25lXG4gIGNsYXNzIEFpb2xpXG4gIHtcbiAgXHRjb25zdHJ1Y3Rvcih0b29scywgY29uZmlnPXt9KVxuICBcdHtcbiAgXHRcdGlmKHRvb2xzID09IG51bGwpXG4gIFx0XHRcdHRocm93IFwiRXhwZWN0aW5nIGFycmF5IG9mIHRvb2xzIGFzIGlucHV0IHRvIEFpb2xpIGNvbnN0cnVjdG9yLlwiO1xuXG4gIFx0XHQvLyBQYXJzZSB1c2VyIGlucHV0XG4gIFx0XHRpZighQXJyYXkuaXNBcnJheSh0b29scykpXG4gIFx0XHRcdHRvb2xzID0gWyB0b29scyBdO1xuICBcdFx0Ly8gT3ZlcndyaXRlIGRlZmF1bHQgY29uZmlnIGlmIHNwZWNpZmllZFxuICBcdFx0Y29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgQ09ORklHX0RFRkFVTFRTLCBjb25maWcpO1xuICBcdFx0Ly8gRm9yIGNvbnZlbmllbmNlLCBzdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIG9yIFwiPHRvb2w+Lzxwcm9ncmFtPi88dmVyc2lvbj5cIiBpbnN0ZWFkIG9mIG9iamVjdCBjb25maWdcbiAgXHRcdHRvb2xzID0gdG9vbHMubWFwKHRoaXMuX3BhcnNlVG9vbCk7XG4gIFx0XHQvLyBJZiB0ZXN0aW5nIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50IGUuZy4gY2RuLXN0Zy5iaW93YXNtLmNvbVxuICBcdFx0aWYoY29uZmlnLmVudiAhPSBcInByZFwiKSB7XG4gIFx0XHRcdGNvbmZpZy51cmxDRE4gPSBjb25maWcudXJsQ0ROLnJlcGxhY2UoXCJjZG5cIiwgYGNkbi0ke2NvbmZpZy5lbnZ9YCk7XG4gIFx0XHRcdGNvbmZpZy51cmxBaW9saSA9IGNvbmZpZy51cmxBaW9saS5yZXBsYWNlKFwiY2RuXCIsIGBjZG4tJHtjb25maWcuZW52fWApO1xuICBcdFx0fVxuXG4gIFx0XHQvLyBBZGQgYmlvd2FzbSBiYXNlIG1vZHVsZSB0byBsaXN0IG9mIHRvb2xzIHRvIGluaXRpYWxpemUgKG5lZWQgdGhpcyBmb3IgdGhlIHNoYXJlZCB2aXJ0dWFsIGZpbGVzeXN0ZW0pXG4gIFx0XHR0b29scyA9IFt7XG4gIFx0XHRcdHRvb2w6IFwiYmFzZVwiLFxuICBcdFx0XHR2ZXJzaW9uOiBwa2cudmVyc2lvbixcbiAgXHRcdFx0dXJsUHJlZml4OiBjb25maWcudXJsQmFzZU1vZHVsZVxuICBcdFx0fSwgLi4udG9vbHNdO1xuXG4gIFx0XHQvLyBTZXQgc3RhdGVcbiAgXHRcdHRoaXMudG9vbHMgPSB0b29scztcbiAgXHRcdHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gIFx0XHQvLyBIYW5kbGUgY2FsbGJhY2sgKGRlbGV0ZSBpdCBiZWNhdXNlIHdlIGNhbid0IHNlbmQgYSBmdW5jdGlvbiB0byB0aGUgV2ViV29ya2VyKVxuICBcdFx0aWYodGhpcy5jb25maWcuY2FsbGJhY2sgIT0gbnVsbClcbiAgXHRcdFx0dGhpcy5jYWxsYmFjayA9IHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuICBcdFx0ZGVsZXRlIHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuXG4gIFx0XHRyZXR1cm4gdGhpcy5pbml0KCk7XG4gIFx0fVxuXG4gIFx0Ly8gSW5pdGlhbGl6ZSB0aGUgV2ViV29ya2VyIGFuZCB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlcyB3aXRoaW4gaXRcbiAgXHRhc3luYyBpbml0KCkge1xuICBcdFx0Ly8gTm90ZTogV2UgY2FuIG9ubHkgY3JlYXRlIGEgV2ViV29ya2VyIHVzaW5nIGEgVVJMIHRoYXQgaGFzIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUgYXBwIHJ1bm5pbmcgaXQsIGkuZS4gd2VcbiAgXHRcdC8vIGNhbid0IGRvIGBuZXcgV29ya2VyKFwiaHR0cHM6Ly9jZG4uYmlvd2FzbS5jb20vdjIvLi4uXCIpYCwgc28gaW5zdGVhZCB3ZSBuZWVkIHRvIGZldGNoIHRoZSBjb250ZW50cyBvZiB0aGF0XG4gIFx0XHQvLyBVUkwgZmlyc3QsIGFuZCB0aGVuIGNyZWF0ZSB0aGUgV2ViV29ya2VyLiBTZWUgPGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS82MDAxNTg5OD4uXG4gIFx0XHRjb25zdCBtb2R1bGVKUyA9IGF3YWl0IChhd2FpdCBmZXRjaCh0aGlzLmNvbmZpZy51cmxBaW9saSkpLnRleHQoKTtcbiAgXHRcdGNvbnN0IG1vZHVsZUJsb2IgPSBuZXcgQmxvYihbbW9kdWxlSlNdLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiIH0pO1xuXG4gIFx0XHQvLyBDcmVhdGUgdGhlIFdlYldvcmtlclxuICBcdFx0Y29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG1vZHVsZUJsb2IpKTtcbiAgXHRcdC8vIExpc3RlbiBmb3IgXCJiaW93YXNtXCIgbWVzc2FnZXMgZnJvbSB0aGUgV2ViV29ya2VyXG4gIFx0XHRpZih0aGlzLmNhbGxiYWNrKVxuICBcdFx0XHR3b3JrZXIub25tZXNzYWdlID0gZSA9PiB7XG4gIFx0XHRcdFx0aWYoZS5kYXRhLnR5cGUgPT0gXCJiaW93YXNtXCIpXG4gIFx0XHRcdFx0XHR0aGlzLmNhbGxiYWNrKGUuZGF0YS52YWx1ZSk7XG4gIFx0XHRcdH07XG5cbiAgXHRcdGNvbnN0IGFpb2xpID0gd3JhcCh3b3JrZXIpO1xuICBcdFx0YWlvbGkudG9vbHMgPSB0aGlzLnRvb2xzO1xuICBcdFx0YWlvbGkuY29uZmlnID0gdGhpcy5jb25maWc7XG5cbiAgXHRcdC8vIEluaXRpYWxpemUgdGhlIHRvb2xzIGluc2lkZSB0aGUgV2ViV29ya2VyXG4gIFx0XHRhd2FpdCBhaW9saS5pbml0KCk7XG5cbiAgXHRcdHJldHVybiBhaW9saTtcbiAgXHR9XG5cbiAgXHQvLyBQYXJzZSBcIjx0b29sPi88dmVyc2lvbj5cIiBhbmQgXCI8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPlwiIGludG8geyBcInRvb2xcIjogPHRvb2w+LCBcInByb2dyYW1cIjogPHByb2dyYW0+LCBcInZlcnNpb25cIjogPHZlcnNpb24+IH1cbiAgXHRfcGFyc2VUb29sKHRvb2wpXG4gIFx0e1xuICBcdFx0Ly8gSWYgbm90IGEgc3RyaW5nLCBsZWF2ZSBpdCBhcyBpc1xuICBcdFx0aWYodHlwZW9mIHRvb2wgIT09IFwic3RyaW5nXCIpXG4gIFx0XHRcdHJldHVybiB0b29sO1xuXG4gIFx0XHQvLyBTdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIGFuZCBcIjx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+XCJcbiAgXHRcdGNvbnN0IHRvb2xTcGxpdCA9IHRvb2wuc3BsaXQoXCIvXCIpO1xuICBcdFx0aWYodG9vbFNwbGl0Lmxlbmd0aCAhPSAyICYmIHRvb2xTcGxpdC5sZW5ndGggIT0gMylcbiAgXHRcdFx0dGhyb3cgXCJFeHBlY3RpbmcgJzx0b29sPi88dmVyc2lvbj4nIG9yICc8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPidcIjtcblxuICBcdFx0cmV0dXJuIHtcbiAgXHRcdFx0dG9vbDogdG9vbFNwbGl0WzBdLFxuICBcdFx0XHRwcm9ncmFtOiB0b29sU3BsaXQubGVuZ3RoID09IDMgPyB0b29sU3BsaXRbMV0gOiB0b29sU3BsaXRbMF0sXG4gIFx0XHRcdHZlcnNpb246IHRvb2xTcGxpdFt0b29sU3BsaXQubGVuZ3RoIC0gMV1cbiAgXHRcdH07XG4gIFx0fVxuICB9XG5cbiAgcmV0dXJuIEFpb2xpO1xuXG59KSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWlvbGkuanMubWFwXG4iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBMZXNrKCkge1xuICAgICAgICBpZiAodGhpcy5sZXNrID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMubGVzayA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0cnLCAnQScsICdTJywgJ1QnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVicsICdJJywgJ0wnLCAnUCcsICdGJywgJ1knLCAnTScsICdXJ10sICdhbGxfZ3JlZW4nXSxcbiAgICAgICAgICAgICAgICBbWydOJywgJ1EnLCAnSCddLCAnbWFnZW50YSddLFxuICAgICAgICAgICAgICAgIFtbJ0QnLCAnRSddLCAncmVkJ10sXG4gICAgICAgICAgICAgICAgW1snSycsICdSJ10sICdhbGxfYmx1ZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubGVzaztcbiAgICB9XG4gICAgc3RhdGljIGdldCBHcm9rR3JvdXBzKCkge1xuICAgICAgICBpZiAodGhpcy5ncm9rR3JvdXBzID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3Jva0dyb3VwcyA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVSddLCAneWVsbG93J10sXG4gICAgICAgICAgICAgICAgW1snRycsICdQJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ1InLCAnSCcsICdLJ10sICdsaWdodF9ibHVlJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdkYXJrX2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydTJywgJ1QnLCAnTicsICdRJ10sICdvcmFuZ2UnXSxcbiAgICAgICAgICAgIF0sIGZhbHNlLCBBbWlub2FjaWRzUGFsZXR0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdyb2tHcm91cHM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgUmFzTW9sKCkge1xuICAgICAgICBpZiAodGhpcy5yYXNNb2wgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5yYXNNb2wgPSBuZXcgQW1pbm9hY2lkc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAvLyBodHRwOi8vYWNjZXMuZW5zLWx5b24uZnIvYmlvdGljL3Jhc3RvcC9oZWxwL2NvbG91ci5odG1cbiAgICAgICAgICAgICAgICAnRCc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnRSc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnQyc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnTSc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnSyc6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUic6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUyc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnVCc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnRic6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnWSc6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnTic6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnUSc6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnRyc6ICcjRUJFQkVCJyxcbiAgICAgICAgICAgICAgICAnTCc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnVic6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnSSc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnQSc6ICcjQzhDOEM4JyxcbiAgICAgICAgICAgICAgICAnVyc6ICcjQjQ1QUI0JyxcbiAgICAgICAgICAgICAgICAnSCc6ICcjODI4MkQyJyxcbiAgICAgICAgICAgICAgICAnUCc6ICcjREM5NjgyJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJyNCRUEwNkUnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmFzTW9sO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzIHtcbiAgICBzdGF0aWMgZ2V0UGFsZXR0ZShzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgc3dpdGNoIChzY2hlbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2dyb2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgIGNhc2UgJ2xlc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuTGVzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDaGVtUGFsZXR0ZTogc2NoZW1lIFxcYCR7c2NoZW1lfVxcYCBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGMgcmF3IGFtaW5vXG4gICAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjKSB7XG4gICAgICAgIGxldCBpc0lubmVyID0gMDtcbiAgICAgICAgbGV0IGlubmVyID0gJyc7XG4gICAgICAgIGxldCBvdXRlciA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICAgICAgICAgIGlzSW5uZXIrKztcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyknKVxuICAgICAgICAgICAgICAgIGlzSW5uZXItLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5uZXIpXG4gICAgICAgICAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdXRlciArPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VJbnQoaW5uZXIpKSA/IFtvdXRlciwgJyddIDogW291dGVyLCBpbm5lcl07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lciA9ICcnLCBzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgICAgICBjb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gdGhpcy5nZXRQYWxldHRlKHNjaGVtZSk7XG4gICAgICAgIGxldCBbb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXJdID0gdGhpcy5nZXRJbm5lck91dGVyKG1vbm9tZXIpO1xuICAgICAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgICAgIGlubmVyTW9ub21lciA9IChpbm5lck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke2lubmVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogaW5uZXJNb25vbWVyKTtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9hID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJbMF0gPT0gJ2QnICYmIG1vbm9tZXJbMV0gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDIgfHwgbW9ub21lclsyXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYiA9IG1vbm9tZXJbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAzXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgoX2MgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb3dlckNhc2UoKSkgPT0gbW9ub21lclswXSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gNCB8fCBtb25vbWVyWzRdID09ICcoJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCA0XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAwXTtcbiAgICB9XG59XG5BbWlub2FjaWRzLlNlbVR5cGUgPSAnQW1pbm9hY2lkcyc7XG5BbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuQW1pbm9hY2lkcy51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbkFtaW5vYWNpZHMuTmFtZXMgPSB7XG4gICAgJ0cnOiAnR2x5Y2luZScsXG4gICAgJ0wnOiAnTGV1Y2luZScsXG4gICAgJ1knOiAnVHlyb3NpbmUnLFxuICAgICdTJzogJ1NlcmluZScsXG4gICAgJ0UnOiAnR2x1dGFtaWMgYWNpZCcsXG4gICAgJ1EnOiAnR2x1dGFtaW5lJyxcbiAgICAnRCc6ICdBc3BhcnRpYyBhY2lkJyxcbiAgICAnTic6ICdBc3BhcmFnaW5lJyxcbiAgICAnRic6ICdQaGVueWxhbGFuaW5lJyxcbiAgICAnQSc6ICdBbGFuaW5lJyxcbiAgICAnSyc6ICdMeXNpbmUnLFxuICAgICdSJzogJ0FyZ2luaW5lJyxcbiAgICAnSCc6ICdIaXN0aWRpbmUnLFxuICAgICdDJzogJ0N5c3RlaW5lJyxcbiAgICAnVic6ICdWYWxpbmUnLFxuICAgICdQJzogJ1Byb2xpbmUnLFxuICAgICdXJzogJ1RyeXB0b3BoYW4nLFxuICAgICdJJzogJ0lzb2xldWNpbmUnLFxuICAgICdNJzogJ01ldGhpb25pbmUnLFxuICAgICdUJzogJ1RocmVvbmluZScsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlcyA9IHtcbiAgICAnRyc6ICdOQ0MoPU8pTycsXG4gICAgJ0wnOiAnTltDQEhdKENDKEMpQylDKD1PKU8nLFxuICAgICdZJzogJ05DKENDMT1DQz1DKE8pQz1DMSlDKD1PKU8nLFxuICAgICdTJzogJ05DKENPKUMoPU8pTycsXG4gICAgJ0UnOiAnTltDQEBIXShDQ0MoTyk9TylDKD1PKU8nLFxuICAgICdRJzogJ05bQ0BASF0oQ0NDKE4pPU8pQyg9TylPJyxcbiAgICAnRCc6ICdOW0NAQEhdKENDKE8pPU8pQyg9TylPJyxcbiAgICAnTic6ICdOW0NAQEhdKENDKE4pPU8pQyg9TylPJyxcbiAgICAnRic6ICdOQyhDQzE9Q0M9Q0M9QzEpQyg9TylPJyxcbiAgICAnQSc6ICdOW0NASF0oQylDKD1PKU8nLFxuICAgICdLJzogJ05DKENDQ0NOKUMoPU8pTycsXG4gICAgJ1InOiAnTltDQEhdKENDQ05DKD1OKUMpQyg9TylPJyxcbiAgICAnSCc6ICdOQyhDQzE9Q049Q1tOXTEpQyg9TylPJyxcbiAgICAnQyc6ICdOW0NAQEhdKENTKUMoPU8pTycsXG4gICAgJ1YnOiAnTkMoQyhDKUMpQyg9TylPJyxcbiAgICAnUCc6ICdOKENDQzEpQzFDKD1PKU8nLFxuICAgICdXJzogJ05bQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSlDKD1PKU8nLFxuICAgICdJJzogJ05bQ0BIXShbQ0BIXShDKUNDKUMoPU8pTycsXG4gICAgJ00nOiAnTkMoQ0NTQylDKD1PKU8nLFxuICAgICdUJzogJ05DKEMoTylDKUMoPU8pTycsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlc1RydW5jYXRlZCA9IHtcbiAgICAnRyc6ICcqQyonLFxuICAgICdMJzogJ0NDKEMpQ1tDQEhdKCopKicsXG4gICAgJ1knOiAnQzE9Q0MoPUNDPUMxQ0MoKikqKU8nLFxuICAgICdTJzogJ09DQygqKUMqJyxcbiAgICAnRSc6ICcqW0NAQEhdKENDQyhPKT1PKSonLFxuICAgICdRJzogJypOW0NAQEhdKENDQyhOKT1PKSonLFxuICAgICdEJzogJypbQ0BASF0oQ0MoTyk9TykqJyxcbiAgICAnTic6ICcqW0NAQEhdKENDKE4pPU8pKicsXG4gICAgJ0YnOiAnQzE9Q0M9QyhDPUMxKUNDKCopKicsXG4gICAgJ0EnOiAnQ1tDQEhdKCopKicsXG4gICAgJ0snOiAnQyhDQ04pQ0MoKikqJyxcbiAgICAnUic6ICcqW0NASF0oQ0NDTkMoPU4pQykqJyxcbiAgICAnSCc6ICdDMT1DKE5DPU4xKUNDKCopKicsXG4gICAgJ0MnOiAnQyhbQ0BASF0oKikqKVMnLFxuICAgICdWJzogJ0NDKEMpQygqKSonLFxuICAgICdQJzogJ0MxQ0NOKCopQzEqJyxcbiAgICAnVyc6ICcqW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpKicsXG4gICAgJ0knOiAnQ0NbQ0BIXShDKVtDQEhdKCopKicsXG4gICAgJ00nOiAnQ1NDQ0MoKikqJyxcbiAgICAnVCc6ICdDQyhPKUMoKikqJyxcbn07XG4vKiogVE9ETzogRnVsbD9cbiAqL1xuQW1pbm9hY2lkcy5BQUZ1bGxOYW1lcyA9IHtcbiAgICAnQWxhJzogJ0EnLFxuICAgICdBcmcnOiAnUicsXG4gICAgJ0Fzbic6ICdOJyxcbiAgICAnQXNwJzogJ0QnLFxuICAgICdDeXMnOiAnQycsXG4gICAgJ0dsbic6ICdRJyxcbiAgICAnR2x1JzogJ0UnLFxuICAgICdHbHknOiAnRycsXG4gICAgJ0hpcyc6ICdIJyxcbiAgICAnSWxlJzogJ0knLFxuICAgICdMZXUnOiAnTCcsXG4gICAgJ0x5cyc6ICdLJyxcbiAgICAnTWV0JzogJ00nLFxuICAgICdQaGUnOiAnRicsXG4gICAgJ1Bybyc6ICdQJyxcbiAgICAnU2VyJzogJ1MnLFxuICAgICdUaHInOiAnVCcsXG4gICAgJ1RycCc6ICdXJyxcbiAgICAnVHlyJzogJ1knLFxuICAgICdWYWwnOiAnVicsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVcxcGJtOWhZMmxrY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUZ0YVc1dllXTnBaSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlMwRXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hqUVVGak8wbEJSemRETEUxQlFVMHNTMEZCU3l4SlFVRkpPMUZCUTNCQ0xFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRaUVVONFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZETlVRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8yZENRVU0xUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU03WVVGRGVrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0VFFVTXZRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJTVTBzVFVGQlRTeExRVUZMTEZWQlFWVTdVVUZETVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGRrUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRPMmRDUVVNdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF6dGhRVU5xUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMU5CUXk5Q08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTNwQ0xFTkJRVU03U1VGSlRTeE5RVUZOTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMR3RDUVVGclFpeERRVUZETzJkQ1FVTnVReXg1UkVGQmVVUTdaMEpCUTNwRUxFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEZGQlFWRXNSVUZCUlN4VFFVRlRPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhWUVVGVk8wbEJjVWRrTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1UwRkJhVUlzVFVGQlRUdFJRVU01UXl4UlFVRlJMRTFCUVUwc1JVRkJSVHRaUVVOb1FpeExRVUZMTEUxQlFVMDdaMEpCUTFRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRka01zUzBGQlN5eE5RVUZOTzJkQ1FVTlVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUTJwRE8yZENRVU5GTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2VVSkJRWGxDTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFRRVU55UlR0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCVXp0UlFVTnVReXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEyWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJSV1lzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRjRUlzU1VGQlNTeEpRVUZKTEVsQlFVa3NSMEZCUnp0blFrRkRZaXhQUVVGUExFVkJRVVVzUTBGQlF6dHBRa0ZEVUN4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSE8yZENRVU5zUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRwUWtGRFVDeEpRVUZKTEU5QlFVODdaMEpCUTJRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6czdaMEpCUldRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6dFRRVU5xUWp0UlFVVkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTm9SU3hEUVVGRE8wbEJSVTBzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4VlFVRnJRaXhGUVVGRkxFVkJRVVVzVTBGQmFVSXNUVUZCVFRzN1VVRkRla1VzYzBSQlFYTkVPMUZCUTNSRUxFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEZsQlFWa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBRc1dVRkJXU3hIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRNMFlzV1VGQldTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRk0wWXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8xbEJRelZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5d3dRMEZCUlN4WFFVRlhMRVZCUVVjc1EwRkJRenRaUVVONlF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzJkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM2hFTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVVc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlR0WlFVTXpSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVTdaMEpCUXpWRExFMUJRVTBzUzBGQlN5eEhRVUZITEUxQlFVRXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXd3UTBGQlJTeFhRVUZYTEVWQlFVY3NRMEZCUXp0blFrRkRla01zVDBGQlR5eExRVUZMTEVsQlFVa3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dHZRa0ZEYmtNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU14UkN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVONFJEdFRRVU5HTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8xbEJReTlETEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjRSQ3hQUVVGUExFdEJRVXNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8yOUNRVU51UXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRekZFTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRU8xTkJRMFk3VVVGRlJDeEpRVUZKTEVOQlFVRXNUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU16UXl4SlFVRkpMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3WjBKQlF5OURMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJUdHZRa0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONFJDeFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzNkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU40UkR0aFFVTkdPMU5CUTBZN1VVRkZSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bEVMRU5CUVVNN08wRkJjRXhsTEd0Q1FVRlBMRWRCUVZjc1dVRkJXU3hEUVVGRE8wRkJSUzlDTEcxRFFVRjNRaXhIUVVGWExEWkNRVUUyUWl4RFFVRkRPMEZCUlRGRkxIbENRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU03UVVGRk4wSXNaMEpCUVVzc1IwRkJjVUk3U1VGRGRFTXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VlFVRlZPMGxCUTJZc1IwRkJSeXhGUVVGRkxGRkJRVkU3U1VGRFlpeEhRVUZITEVWQlFVVXNaVUZCWlR0SlFVTndRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1pVRkJaVHRKUVVOd1FpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzWlVGQlpUdEpRVU53UWl4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzV1VGQldUdEpRVU5xUWl4SFFVRkhMRVZCUVVVc1dVRkJXVHRKUVVOcVFpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dERRVU5xUWl4RFFVRkRPMEZCUlZrc2JVSkJRVkVzUjBGQmNVSTdTVUZEZWtNc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNjMEpCUVhOQ08wbEJRek5DTEVkQlFVY3NSVUZCUlN3eVFrRkJNa0k3U1VGRGFFTXNSMEZCUnl4RlFVRkZMR05CUVdNN1NVRkRia0lzUjBGQlJ5eEZRVUZGTEhsQ1FVRjVRanRKUVVNNVFpeEhRVUZITEVWQlFVVXNlVUpCUVhsQ08wbEJRemxDTEVkQlFVY3NSVUZCUlN4M1FrRkJkMEk3U1VGRE4wSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2QwSkJRWGRDTzBsQlF6ZENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzTUVKQlFUQkNPMGxCUXk5Q0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRFSXNSMEZCUnl4RlFVRkZMRzlEUVVGdlF6dEpRVU42UXl4SFFVRkhMRVZCUVVVc01FSkJRVEJDTzBsQlF5OUNMRWRCUVVjc1JVRkJSU3huUWtGQlowSTdTVUZEY2tJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0RFFVTjJRaXhEUVVGRE8wRkJSVmtzTkVKQlFXbENMRWRCUVhGQ08wbEJRMnhFTEVkQlFVY3NSVUZCUlN4TFFVRkxPMGxCUTFZc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYzBKQlFYTkNPMGxCUXpOQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRzlDUVVGdlFqdEpRVU42UWl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3h0UWtGQmJVSTdTVUZEZUVJc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWp0SlFVTjRRaXhIUVVGSExFVkJRVVVzY1VKQlFYRkNPMGxCUXpGQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hqUVVGak8wbEJRMjVDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRzFDUVVGdFFqdEpRVU40UWl4SFFVRkhMRVZCUVVVc1owSkJRV2RDTzBsQlEzSkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4aFFVRmhPMGxCUTJ4Q0xFZEJRVWNzUlVGQlJTd3JRa0ZCSzBJN1NVRkRjRU1zUjBGQlJ5eEZRVUZGTEhGQ1FVRnhRanRKUVVNeFFpeEhRVUZITEVWQlFVVXNWMEZCVnp0SlFVTm9RaXhIUVVGSExFVkJRVVVzV1VGQldUdERRVU5zUWl4RFFVRkRPMEZCUlVZN1IwRkRSenRCUVVOWExITkNRVUZYTEVkQlFYRkNPMGxCUXpWRExFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNZ1pYaDBaVzVrY3lCVFpYRlFZV3hsZEhSbFFtRnpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUd4bGMyczZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdUR1Z6YXlncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXNaWE5ySUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11YkdWemF5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkSEp5d2dKMEVuTENBblV5Y3NJQ2RVSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lDQWdXMXNuUXljc0lDZFdKeXdnSjBrbkxDQW5UQ2NzSUNkUUp5d2dKMFluTENBbldTY3NJQ2ROSnl3Z0oxY25YU3dnSjJGc2JGOW5jbVZsYmlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRPSnl3Z0oxRW5MQ0FuU0NkZExDQW5iV0ZuWlc1MFlTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0ozSmxaQ2RkTEZ4dUlDQWdJQ0FnSUNCYld5ZExKeXdnSjFJblhTd2dKMkZzYkY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0JkTENCbVlXeHpaU3dnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YkdWemF6dGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHZHliMnRIY205MWNITTZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdSM0p2YTBkeWIzVndjeWdwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCcFppQW9kR2hwY3k1bmNtOXJSM0p2ZFhCeklEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVozSnZhMGR5YjNWd2N5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVVuWFN3Z0ozbGxiR3h2ZHlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRISnl3Z0oxQW5YU3dnSjNKbFpDZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkQkp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0owMG5MQ0FuUmljc0lDZFpKeXdnSjFjblhTd2dKMkZzYkY5bmNtVmxiaWRkTEZ4dUlDQWdJQ0FnSUNCYld5ZFNKeXdnSjBnbkxDQW5TeWRkTENBbmJHbG5hSFJmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0oyUmhjbXRmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkVEp5d2dKMVFuTENBblRpY3NJQ2RSSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lGMHNJR1poYkhObExDQkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW5jbTlyUjNKdmRYQnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdjbUZ6VFc5c09pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElGSmhjMDF2YkNncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXlZWE5OYjJ3Z1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1eVlYTk5iMndnUFNCdVpYY2dRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpLSHRjYmlBZ0lDQWdJQ0FnTHk4Z2FIUjBjRG92TDJGalkyVnpMbVZ1Y3kxc2VXOXVMbVp5TDJKcGIzUnBZeTl5WVhOMGIzQXZhR1ZzY0M5amIyeHZkWEl1YUhSdFhHNGdJQ0FnSUNBZ0lDZEVKem9nSnlORk5qQkJNRUVuTENBdkx5QmhjM0FzSUdGemNHRnlkR2xqSUdGamFXUXNJR0Z6Y0Z4dUlDQWdJQ0FnSUNBblJTYzZJQ2NqUlRZd1FUQkJKeXdnTHk4Z1oyeDFMQ0JuYkhWMFlXMXBZeUJoWTJsa1hHNGdJQ0FnSUNBZ0lDZERKem9nSnlORk5rVTJNREFuTENBdkx5QmplWE1zSUdONWMzUmxhVzVsWEc0Z0lDQWdJQ0FnSUNkTkp6b2dKeU5GTmtVMk1EQW5MQ0F2THlCdFpYUXNJRzFsZEdocGIyNXBibVZjYmlBZ0lDQWdJQ0FnSjBzbk9pQW5JekUwTlVGR1JpY3NJQzh2SUd4NWN5d2diSGx6YVc1bFhHNGdJQ0FnSUNBZ0lDZFNKem9nSnlNeE5EVkJSa1luTENBdkx5QmhjbWNzSUdGeVoybHVhVzVsWEc0Z0lDQWdJQ0FnSUNkVEp6b2dKeU5HUVRrMk1EQW5MQ0F2THlCelpYSXNJSE5sY21sdVpWeHVJQ0FnSUNBZ0lDQW5WQ2M2SUNjalJrRTVOakF3Snl3Z0x5OGdkR2h5TENCMGFISmxiMjVwYm1WY2JpQWdJQ0FnSUNBZ0owWW5PaUFuSXpNeU16SkJRU2NzSUM4dklIQm9aU3dnY0dobGJubHNZV3hoYm1sdVpWeHVJQ0FnSUNBZ0lDQW5XU2M2SUNjak16SXpNa0ZCSnl3Z0x5OGdkSGx5TENCMGVYSnZjMmx1WlZ4dUlDQWdJQ0FnSUNBblRpYzZJQ2NqTURCRVEwUkRKeXdnTHk4Z1lYTnVMQ0JoYzNCaGNtRm5hVzVsWEc0Z0lDQWdJQ0FnSUNkUkp6b2dKeU13TUVSRFJFTW5MQ0F2THlCbmJHNHNJR2RzZFhSaGJXbHVaVnh1SUNBZ0lDQWdJQ0FuUnljNklDY2pSVUpGUWtWQ0p5d2dMeThnWjJ4NUxDQm5iSGxqYVc1bFhHNGdJQ0FnSUNBZ0lDZE1Kem9nSnlNd1JqZ3lNRVluTENBdkx5QnNaWFVzSUd4bGRXTnBibVZjYmlBZ0lDQWdJQ0FnSjFZbk9pQW5JekJHT0RJd1JpY3NJQzh2SUhaaGJDd2dkbUZzYVc1bFhHNGdJQ0FnSUNBZ0lDZEpKem9nSnlNd1JqZ3lNRVluTENBdkx5QnBiR1VzSUdsemIyeGxkV05wYm1WY2JpQWdJQ0FnSUNBZ0owRW5PaUFuSTBNNFF6aERPQ2NzSUM4dklHRnNZU3dnWVd4aGJtbHVaVnh1SUNBZ0lDQWdJQ0FuVnljNklDY2pRalExUVVJMEp5d2dMeThnZEhKd0xDQjBjbmx3ZEc5d2FHRnVYRzRnSUNBZ0lDQWdJQ2RJSnpvZ0p5TTRNamd5UkRJbkxDQXZMeUJvYVhNc0lHaHBjM1JwWkdsdVpWeHVJQ0FnSUNBZ0lDQW5VQ2M2SUNjalJFTTVOamd5Snl3Z0x5OGdjSEp2TENCd2NtOXNhVzVsWEc0Z0lDQWdJQ0FnSUNkdmRHaGxjbk1uT2lBbkkwSkZRVEEyUlNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtRnpUVzlzTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJCYldsdWIyRmphV1J6SUh0Y2JpQWdjM1JoZEdsaklISmxZV1J2Ym14NUlGTmxiVlI1Y0dVNklITjBjbWx1WnlBOUlDZEJiV2x1YjJGamFXUnpKenRjYmx4dUlDQnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1UyVnRWSGx3WlUxMWJIUnBjR3hsUVd4cFoyNXRaVzUwT2lCemRISnBibWNnUFNBblFXMXBibTloWTJsa2MwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCemRHRjBhV01nZFc1a1pXWnBibVZrUTI5c2IzSWdQU0FuY21kaUtERXdNQ3d4TURBc01UQXdLU2M3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCT1lXMWxjem9nVTNSeWFXNW5SR2xqZEdsdmJtRnllU0E5SUh0Y2JpQWdJQ0FuUnljNklDZEhiSGxqYVc1bEp5eGNiaUFnSUNBblRDYzZJQ2RNWlhWamFXNWxKeXhjYmlBZ0lDQW5XU2M2SUNkVWVYSnZjMmx1WlNjc1hHNGdJQ0FnSjFNbk9pQW5VMlZ5YVc1bEp5eGNiaUFnSUNBblJTYzZJQ2RIYkhWMFlXMXBZeUJoWTJsa0p5eGNiaUFnSUNBblVTYzZJQ2RIYkhWMFlXMXBibVVuTEZ4dUlDQWdJQ2RFSnpvZ0owRnpjR0Z5ZEdsaklHRmphV1FuTEZ4dUlDQWdJQ2RPSnpvZ0owRnpjR0Z5WVdkcGJtVW5MRnh1SUNBZ0lDZEdKem9nSjFCb1pXNTViR0ZzWVc1cGJtVW5MRnh1SUNBZ0lDZEJKem9nSjBGc1lXNXBibVVuTEZ4dUlDQWdJQ2RMSnpvZ0oweDVjMmx1WlNjc1hHNGdJQ0FnSjFJbk9pQW5RWEpuYVc1cGJtVW5MRnh1SUNBZ0lDZElKem9nSjBocGMzUnBaR2x1WlNjc1hHNGdJQ0FnSjBNbk9pQW5RM2x6ZEdWcGJtVW5MRnh1SUNBZ0lDZFdKem9nSjFaaGJHbHVaU2NzWEc0Z0lDQWdKMUFuT2lBblVISnZiR2x1WlNjc1hHNGdJQ0FnSjFjbk9pQW5WSEo1Y0hSdmNHaGhiaWNzWEc0Z0lDQWdKMGtuT2lBblNYTnZiR1YxWTJsdVpTY3NYRzRnSUNBZ0owMG5PaUFuVFdWMGFHbHZibWx1WlNjc1hHNGdJQ0FnSjFRbk9pQW5WR2h5Wlc5dWFXNWxKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRUZCVTIxcGJHVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RISnpvZ0owNURReWc5VHlsUEp5eGNiaUFnSUNBblRDYzZJQ2RPVzBOQVNGMG9RME1vUXlsREtVTW9QVThwVHljc1hHNGdJQ0FnSjFrbk9pQW5Ua01vUTBNeFBVTkRQVU1vVHlsRFBVTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxTW5PaUFuVGtNb1EwOHBReWc5VHlsUEp5eGNiaUFnSUNBblJTYzZJQ2RPVzBOQVFFaGRLRU5EUXloUEtUMVBLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxRW5PaUFuVGx0RFFFQklYU2hEUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEVKem9nSjA1YlEwQkFTRjBvUTBNb1R5azlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZE9Kem9nSjA1YlEwQkFTRjBvUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEdKem9nSjA1REtFTkRNVDFEUXoxRFF6MURNU2xES0QxUEtVOG5MRnh1SUNBZ0lDZEJKem9nSjA1YlEwQklYU2hES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMHNuT2lBblRrTW9RME5EUTA0cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVWljNklDZE9XME5BU0Ywb1EwTkRUa01vUFU0cFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkSUp6b2dKMDVES0VORE1UMURUajFEVzA1ZE1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkREp6b2dKMDViUTBCQVNGMG9RMU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5WaWM2SUNkT1F5aERLRU1wUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RRSnpvZ0owNG9RME5ETVNsRE1VTW9QVThwVHljc1hHNGdJQ0FnSjFjbk9pQW5UbHREUUVCSVhTaERZekZqTW1OalkyTmpNbTRvVzBoZEtXTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owa25PaUFuVGx0RFFFaGRLRnREUUVoZEtFTXBRME1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5UU2M2SUNkT1F5aERRMU5ES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMVFuT2lBblRrTW9ReWhQS1VNcFF5ZzlUeWxQSnl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUVGQlUyMXBiR1Z6VkhKMWJtTmhkR1ZrT2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkSEp6b2dKeXBES2ljc1hHNGdJQ0FnSjB3bk9pQW5RME1vUXlsRFcwTkFTRjBvS2lrcUp5eGNiaUFnSUNBbldTYzZJQ2RETVQxRFF5ZzlRME05UXpGRFF5Z3FLU29wVHljc1hHNGdJQ0FnSjFNbk9pQW5UME5ES0NvcFF5b25MRnh1SUNBZ0lDZEZKem9nSnlwYlEwQkFTRjBvUTBOREtFOHBQVThwS2ljc1hHNGdJQ0FnSjFFbk9pQW5LazViUTBCQVNGMG9RME5ES0U0cFBVOHBLaWNzWEc0Z0lDQWdKMFFuT2lBbktsdERRRUJJWFNoRFF5aFBLVDFQS1NvbkxGeHVJQ0FnSUNkT0p6b2dKeXBiUTBCQVNGMG9RME1vVGlrOVR5a3FKeXhjYmlBZ0lDQW5SaWM2SUNkRE1UMURRejFES0VNOVF6RXBRME1vS2lrcUp5eGNiaUFnSUNBblFTYzZJQ2REVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuU3ljNklDZERLRU5EVGlsRFF5Z3FLU29uTEZ4dUlDQWdJQ2RTSnpvZ0p5cGJRMEJJWFNoRFEwTk9ReWc5VGlsREtTb25MRnh1SUNBZ0lDZElKem9nSjBNeFBVTW9Ua005VGpFcFEwTW9LaWtxSnl4Y2JpQWdJQ0FuUXljNklDZERLRnREUUVCSVhTZ3FLU29wVXljc1hHNGdJQ0FnSjFZbk9pQW5RME1vUXlsREtDb3BLaWNzWEc0Z0lDQWdKMUFuT2lBblF6RkRRMDRvS2lsRE1Tb25MRnh1SUNBZ0lDZFhKem9nSnlwYlEwQkFTRjBvUTJNeFl6SmpZMk5qWXpKdUtGdElYU2xqTVNrcUp5eGNiaUFnSUNBblNTYzZJQ2REUTF0RFFFaGRLRU1wVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuVFNjNklDZERVME5EUXlncUtTb25MRnh1SUNBZ0lDZFVKem9nSjBOREtFOHBReWdxS1NvbkxGeHVJQ0I5TzF4dVhHNGdJQzhxS2lCVVQwUlBPaUJHZFd4c1AxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFVWjFiR3hPWVcxbGN6b2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5RV3hoSnpvZ0owRW5MRnh1SUNBZ0lDZEJjbWNuT2lBblVpY3NYRzRnSUNBZ0owRnpiaWM2SUNkT0p5eGNiaUFnSUNBblFYTndKem9nSjBRbkxGeHVJQ0FnSUNkRGVYTW5PaUFuUXljc1hHNGdJQ0FnSjBkc2JpYzZJQ2RSSnl4Y2JpQWdJQ0FuUjJ4MUp6b2dKMFVuTEZ4dUlDQWdJQ2RIYkhrbk9pQW5SeWNzWEc0Z0lDQWdKMGhwY3ljNklDZElKeXhjYmlBZ0lDQW5TV3hsSnpvZ0owa25MRnh1SUNBZ0lDZE1aWFVuT2lBblRDY3NYRzRnSUNBZ0oweDVjeWM2SUNkTEp5eGNiaUFnSUNBblRXVjBKem9nSjAwbkxGeHVJQ0FnSUNkUWFHVW5PaUFuUmljc1hHNGdJQ0FnSjFCeWJ5YzZJQ2RRSnl4Y2JpQWdJQ0FuVTJWeUp6b2dKMU1uTEZ4dUlDQWdJQ2RVYUhJbk9pQW5WQ2NzWEc0Z0lDQWdKMVJ5Y0NjNklDZFhKeXhjYmlBZ0lDQW5WSGx5SnpvZ0oxa25MRnh1SUNBZ0lDZFdZV3duT2lBblZpY3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJRWVd4bGRIUmxLSE5qYUdWdFpUb2djM1J5YVc1bklEMGdKMmR5YjJzbktUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdjM2RwZEdOb0lDaHpZMmhsYldVcElIdGNiaUFnSUNCallYTmxJQ2RuY205ckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N6dGNiaUFnSUNCallYTmxJQ2RzWlhOckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVRHVnphenRjYmlBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCRGFHVnRVR0ZzWlhSMFpUb2djMk5vWlcxbElGeGNZQ1I3YzJOb1pXMWxmVnhjWUNCa2IyVnpJRzV2ZENCbGVHbHpkR0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdScGRtbGtaV1FnWVcxcGJtOGdZV05wWkNCM2FYUm9JR2wwY3lCamIyNTBaVzUwSUdsdUlIUm9aU0JpY21GamEyVjBMQ0JwWmlCMGFHVWdZMjl1ZEdWdWRDQnBjeUJ1ZFcxaVpYSXNJSFJvWlc0Z2FYUnpJRzl0YVhSMFpXUmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR01nY21GM0lHRnRhVzV2WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMXR6ZEhKcGJtY3NJSE4wY21sdVoxMTlJRzkxZEdWeUlHRnVaQ0JwYm01bGNpQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRFbHVibVZ5VDNWMFpYSW9Zem9nYzNSeWFXNW5LVG9nVzNOMGNtbHVaeXdnYzNSeWFXNW5YU0I3WEc0Z0lDQWdiR1YwSUdselNXNXVaWElnUFNBd08xeHVJQ0FnSUd4bGRDQnBibTVsY2lBOUlDY25PMXh1SUNBZ0lHeGxkQ0J2ZFhSbGNpQTlJQ2NuTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamFHRnlJRzltSUdNcElIdGNiaUFnSUNBZ0lHbG1JQ2hqYUdGeUlEMDlJQ2NvSnlsY2JpQWdJQ0FnSUNBZ2FYTkpibTVsY2lzck8xeHVJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyaGhjaUE5UFNBbktTY3BYRzRnSUNBZ0lDQWdJR2x6U1c1dVpYSXRMVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6U1c1dVpYSXBYRzRnSUNBZ0lDQWdJR2x1Ym1WeUlDczlJR05vWVhJN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJRzkxZEdWeUlDczlJR05vWVhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJQ0ZwYzA1aFRpaHdZWEp6WlVsdWRDaHBibTVsY2lrcElEOGdXMjkxZEdWeUxDQW5KMTBnT2lCYmIzVjBaWElzSUdsdWJtVnlYVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwUTI5c2IzSkJRVkJwZG05MEtHMXZibTl0WlhJNklITjBjbWx1WnlBOUlDY25MQ0J6WTJobGJXVTZJQ2RuY205ckp5QTlJQ2RuY205ckp5azZJRnR6ZEhKcGJtY3NJSE4wY21sdVp5d2djM1J5YVc1bkxDQnVkVzFpWlhKZElIdGNiaUFnSUNBdkwyTnZibk4wSUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1BTQkJRVkJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE1vS1R0Y2JpQWdJQ0JqYjI1emRDQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDBnZEdocGN5NW5aWFJRWVd4bGRIUmxLSE5qYUdWdFpTazdYRzRnSUNBZ2JHVjBJRnR2ZFhSbGNrMXZibTl0WlhJc0lHbHVibVZ5VFc5dWIyMWxjbDBnUFNCMGFHbHpMbWRsZEVsdWJtVnlUM1YwWlhJb2JXOXViMjFsY2lrN1hHNGdJQ0FnYjNWMFpYSk5iMjV2YldWeUlEMGdLRzkxZEdWeVRXOXViMjFsY2k1c1pXNW5kR2dnUGlBMklEOGdZQ1I3YjNWMFpYSk5iMjV2YldWeUxuTnNhV05sS0RBc0lETXBmUzR1TG1BZ09pQnZkWFJsY2sxdmJtOXRaWElwTzF4dUlDQWdJR2x1Ym1WeVRXOXViMjFsY2lBOUlDaHBibTVsY2sxdmJtOXRaWEl1YkdWdVozUm9JRDRnTmlBL0lHQWtlMmx1Ym1WeVRXOXViMjFsY2k1emJHbGpaU2d3TENBektYMHVMaTVnSURvZ2FXNXVaWEpOYjI1dmJXVnlLVHRjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBeElIeDhJRzF2Ym05dFpYSmJNVjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiV2x1YnlBOUlHMXZibTl0WlhKYk1GMC9MblJ2VlhCd1pYSkRZWE5sS0NraE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXhYU0E2WEc0Z0lDQWdJQ0FnSUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNVjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0cxdmJtOXRaWEpiTUYwZ1BUMGdKMlFuSUNZbUlHMXZibTl0WlhKYk1WMGhJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVcElIdGNiaUFnSUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0F5SUh4OElHMXZibTl0WlhKYk1sMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2JXOXViMjFsY2xzeFhUOHVkRzlWY0hCbGNrTmhjMlVvS1NFN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGJXbHVieUJwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEOWNiaUFnSUNBZ0lDQWdJQ0JiWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlM1blpYUW9ZVzFwYm04cExDQmhiV2x1Ynl3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F5WFNBNlhHNGdJQ0FnSUNBZ0lDQWdXM1JvYVhNdWRXNWtaV1pwYm1Wa1EyOXNiM0lzSUc5MWRHVnlUVzl1YjIxbGNpd2dhVzV1WlhKTmIyNXZiV1Z5TENBeVhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNpNXpkV0p6ZEhKcGJtY29NQ3dnTXlrZ2FXNGdkR2hwY3k1QlFVWjFiR3hPWVcxbGN5a2dlMXh1SUNBZ0lDQWdhV1lnS0cxdmJtOXRaWEl1YkdWdVozUm9JRDA5SURNZ2ZId2diVzl1YjIxbGNsc3pYU0E5UFNBbktDY3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZVzFwYm04Z1BTQjBhR2x6TGtGQlJuVnNiRTVoYldWelcyMXZibTl0WlhJdWMzVmljM1J5YVc1bktEQXNJRE1wWFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQWdJRnRqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sTG1kbGRDaGhiV2x1Ynlrc0lHRnRhVzV2TENCcGJtNWxjazF2Ym05dFpYSXNJRE5kSURwY2JpQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSUROZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHRiMjV2YldWeVd6QmRQeTUwYjB4dmQyVnlRMkZ6WlNncElEMDlJRzF2Ym05dFpYSmJNRjBwSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxuTjFZbk4wY21sdVp5Z3hMQ0F6S1NCcGJpQjBhR2x6TGtGQlJuVnNiRTVoYldWektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBMElIeDhJRzF2Ym05dFpYSmJORjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWVcxcGJtOGdQU0IwYUdsekxrRkJSblZzYkU1aGJXVnpXMjF2Ym05dFpYSXVjM1ZpYzNSeWFXNW5LREVzSURNcFhUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQTBYU0E2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURSZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNRjA3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgQ2hyb21hdG9ncmFtKCkge1xuICAgICAgICBpZiAodGhpcy5jaHJvbWF0b2dyYW0gPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5jaHJvbWF0b2dyYW0gPSBuZXcgTnVjbGVvdGlkZXNQYWxldHRlcyh7XG4gICAgICAgICAgICAgICAgJ0EnOiAnZ3JlZW4nLFxuICAgICAgICAgICAgICAgICdDJzogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICdHJzogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAnVCc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdVJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICdncmF5JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNocm9tYXRvZ3JhbTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXMge1xufVxuTnVjbGVvdGlkZXMuU2VtVHlwZSA9ICdOdWNsZW90aWRlcyc7XG5OdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnTnVjbGVvdGlkZXNNdWx0aXBsZUFsaWdubWVudCc7XG5OdWNsZW90aWRlcy5OYW1lcyA9IHtcbiAgICAnQSc6ICdBZGVuaW5lJyxcbiAgICAnQyc6ICdDeXRvc2luZScsXG4gICAgJ0cnOiAnR3VhbmluZScsXG4gICAgJ1QnOiAnVGh5bWluZScsXG4gICAgJ1UnOiAnVXJhY2lsJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liblZqYkdWdmRHbGtaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnVkV05zWlc5MGFXUmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGTFFTeFBRVUZQTEVWQlFXRXNZMEZCWXl4RlFVRkRMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGTVVRc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMR05CUVdNN1NVRkhPVU1zVFVGQlRTeExRVUZMTEZsQlFWazdVVUZETlVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTJoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF6dG5Ra0ZETVVNc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRTFCUVUwN1owSkJRMWdzUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzVVVGQlVTeEZRVUZGTEUxQlFVMDdZVUZEYWtJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1NVRkRNMElzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4UFFVRlBMRmRCUVZjN08wRkJRMDRzYlVKQlFVOHNSMEZCVnl4aFFVRmhMRU5CUVVNN1FVRkZhRU1zYjBOQlFYZENMRWRCUVZjc09FSkJRVGhDTEVOQlFVTTdRVUZGY0VVc2FVSkJRVXNzUjBGQmNVSTdTVUZEZEVNc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1VVRkJVVHREUVVOa0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFOMGNtbHVaMFJwWTNScGIyNWhjbmw5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN1UyVnhVR0ZzWlhSMFpTd2dVMlZ4VUdGc1pYUjBaVUpoYzJWOUlHWnliMjBnSnk0dmMyVnhMWEJoYkdWMGRHVnpKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1nWlhoMFpXNWtjeUJUWlhGUVlXeGxkSFJsUW1GelpTQjdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR05vY205dFlYUnZaM0poYlRvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCRGFISnZiV0YwYjJkeVlXMG9LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDBnYm1WM0lFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTW9lMXh1SUNBZ0lDQWdJQ0FuUVNjNklDZG5jbVZsYmljc1hHNGdJQ0FnSUNBZ0lDZERKem9nSjJKc2RXVW5MRnh1SUNBZ0lDQWdJQ0FuUnljNklDZGliR0ZqYXljc0lDOHZJRzl5WVc1blpTQS9YRzRnSUNBZ0lDQWdJQ2RVSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkVkp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZHZkR2hsY25Nbk9pQW5aM0poZVNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5Qk9kV05zWlc5MGFXUmxjeUI3WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsT2lCemRISnBibWNnUFNBblRuVmpiR1Z2ZEdsa1pYTW5PMXh1WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsVFhWc2RHbHdiR1ZCYkdsbmJtMWxiblE2SUhOMGNtbHVaeUE5SUNkT2RXTnNaVzkwYVdSbGMwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRTVoYldWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEJKem9nSjBGa1pXNXBibVVuTEZ4dUlDQWdJQ2RESnpvZ0owTjVkRzl6YVc1bEp5eGNiaUFnSUNBblJ5YzZJQ2RIZFdGdWFXNWxKeXhjYmlBZ0lDQW5WQ2M2SUNkVWFIbHRhVzVsSnl4Y2JpQWdJQ0FuVlNjNklDZFZjbUZqYVd3bkxGeHVJQ0I5TzF4dWZWeHVJbDE5IiwiZXhwb3J0IGNsYXNzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihwYWxldHRlKSB7XG4gICAgICAgIHRoaXMuX3BhbGV0dGUgPSBwYWxldHRlO1xuICAgIH1cbiAgICBzdGF0aWMgbWFrZVBhbGV0dGUoZHQsIHNpbXBsaWZpZWQgPSBmYWxzZSwgUGFsZXR0ZVR5cGUgPSBTZXFQYWxldHRlQmFzZSkge1xuICAgICAgICBjb25zdCBwYWxldHRlID0ge307XG4gICAgICAgIGR0LmZvckVhY2goKGNwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvYmpMaXN0ID0gY3BbMF07XG4gICAgICAgICAgICBjb25zdCBjb2xvdXIgPSBjcFsxXTtcbiAgICAgICAgICAgIG9iakxpc3QuZm9yRWFjaCgob2JqLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBwYWxldHRlW29ial0gPSB0aGlzLmNvbG91clBhbGV0dGVbY29sb3VyXVtzaW1wbGlmaWVkID8gMCA6IGluZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFsZXR0ZVR5cGUocGFsZXR0ZSk7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlW21dO1xuICAgIH1cbn1cblNlcVBhbGV0dGVCYXNlLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuLyoqIFBhbGV0dGUgd2l0aCBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvcnMgKi9cblNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUgPSB7XG4gICAgJ29yYW5nZSc6IFsncmdiKDI1NSwxODcsMTIwKScsICdyZ2IoMjQ1LDE2NywxMDApJywgJ3JnYigyMzUsMTM3LDcwKScsICdyZ2IoMjA1LCAxMTEsIDcxKSddLFxuICAgICdhbGxfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJywgJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJyxcbiAgICAgICAgJ3JnYigyNCwxMTAsNzkpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdhbGxfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTIyLCAxMDIsIDE4OSknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTQxLCAxMjQsIDIxNyknLFxuICAgICAgICAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbWFnZW50YSc6IFsncmdiKDE2MiwxMDYsMTkyKScsICdyZ2IoMTk3LDE2NSwyMjQpJywgJ3JnYigyMDgsMTEzLDIxOCknXSxcbiAgICAncmVkJzogWydyZ2IoMjE0LDM5LDQwKScsICdyZ2IoMjU1LDE1MiwxNTApJ10sXG4gICAgJ3N0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigzMSwxMTksMTgwKSddLFxuICAgICdkYXJrX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdsaWdodF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTA4LCAyMTgsIDIyOSknLCAncmdiKDIzLDE5MCwyMjcpJ10sXG4gICAgJ2xpbGFjX2JsdWUnOiBbJ3JnYigxMjQsMTAyLDIxMSknLCAncmdiKDE0OSwxMzQsMjE3KScsICdyZ2IoOTcsIDgxLCAxNTApJ10sXG4gICAgJ2RhcmtfZ3JlZW4nOiBbJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJywgJ3JnYigyNCwxMTAsNzkpJ10sXG4gICAgJ2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdsaWdodF9ncmVlbic6IFsncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ3N0X2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigzOSwgMTc0LCA5NiknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAncGluayc6IFsncmdiKDI0NywxODIsMjEwKSddLFxuICAgICdicm93bic6IFsncmdiKDE0MCw4Niw3NSknLCAncmdiKDEwMiwgNjIsIDU0KSddLFxuICAgICdncmF5JzogWydyZ2IoMTI3LDEyNywxMjcpJywgJ3JnYigxOTksMTk5LDE5OSknLCAncmdiKDE5NiwxNTYsMTQ4KScsICdyZ2IoMjIyLCAyMjIsIDE4MCknXSxcbiAgICAneWVsbG93JzogWydyZ2IoMTg4LDE4OSwzNCknXSxcbiAgICAnd2hpdGUnOiBbJ3JnYigyMzAsMjMwLDIzMCknXSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4TFhCaGJHVjBkR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljMlZ4TFhCaGJHVjBkR1Z6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFXbENRU3hOUVVGTkxFOUJRVThzWTBGQll6dEpRVEpEZWtJc1dVRkJXU3hQUVVGblF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCYkVKVExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCZDBJc1JVRkRia1FzVlVGQlZTeEhRVUZITEV0QlFVc3NSVUZCUlN4alFVRnhReXhqUVVGak8xRkJSWFpGTEUxQlFVMHNUMEZCVHl4SFFVRTRRaXhGUVVGRkxFTkJRVU03VVVGRE9VTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlEyaENMRTFCUVUwc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjBRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBJc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeEZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4UFFVRlBMRWxCUVVrc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyeERMRU5CUVVNN1NVRlJUU3hIUVVGSExFTkJRVU1zUTBGQlV6dFJRVU5zUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETVVJc1EwRkJRenM3UVVGb1JHRXNOa0pCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVnNSQ3cwUTBGQk5FTTdRVUZET1VJc05FSkJRV0VzUjBGQlowTTdTVUZEZWtRc1VVRkJVU3hGUVVGRkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNN1NVRkRNVVlzVjBGQlZ5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMUZCUTNCSExHZENRVUZuUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRPMGxCUTI1R0xGVkJRVlVzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWp0UlFVTXZSeXh0UWtGQmJVSXNRMEZCUXp0SlFVTjBRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU4yUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU0zUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRKUVVOeVJTeFhRVUZYTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHRRa0ZCYlVJc1EwRkJRenRKUVVOeVJDeFpRVUZaTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF6dEpRVU01Uml4WlFVRlpMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNeFJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU4wUml4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU0zUXl4aFFVRmhMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNdlJTeFZRVUZWTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU40Uml4TlFVRk5MRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0SlFVTTFRaXhQUVVGUExFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTXZReXhOUVVGTkxFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNeFJpeFJRVUZSTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dEpRVU0zUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0RFFVTTVRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0x5OGdWR2hsY21VZ1lYSmxJSFJ2YnlCdGRXTm9JSEJ5YjJKc1pXMGdkMmwwYUNCcGJtUmxlR1Z5SUhCeWIzQmxjblI1SUdsdUlIUjVjR1Z6WTNKcGNIUXVYRzRnSUM4dklDOHFLbHh1SUNBdkx5QWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiU0JOYjI1dmJXVnlJR05vWVhKaFkzUmxjbHh1SUNBdkx5QWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRU52Ykc5eVhHNGdJQzh2SUNBcUwxeHVJQ0F2THlCYmJUb2djM1J5YVc1blhUb2djM1J5YVc1bk8xeHVJQ0F2S2lvZ1RXOXViMjFsY2lCamIyeHZjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2JTQk5iMjV2YldWeVhHNGdJQ0FxTDF4dUlDQm5aWFFvYlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuTzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1UyVnhVR0ZzWlhSMFpVSmhjMlVnYVcxd2JHVnRaVzUwY3lCVFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibHh1SUNBdktpb2dVR0ZzWlhSMFpTQjNhWFJvSUhOb1lXUmxjeUJ2WmlCd2NtbHRZWEo1SUdOdmJHOXljeUFxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdOdmJHOTFjbEJoYkdWMGRHVTZJSHNnVzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1blcxMGdmU0E5SUh0Y2JpQWdJQ0FuYjNKaGJtZGxKem9nV3lkeVoySW9NalUxTERFNE55d3hNakFwSnl3Z0ozSm5ZaWd5TkRVc01UWTNMREV3TUNrbkxDQW5jbWRpS0RJek5Td3hNemNzTnpBcEp5d2dKM0puWWlneU1EVXNJREV4TVN3Z056RXBKMTBzWEc0Z0lDQWdKMkZzYkY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLRGMwTERFMk1DdzNOQ2tuTENBbmNtZGlLREl6TERFd015dzFOeWtuTENBbmNtZGlLRE13TERFeE1DdzVOaWtuTENBbmNtZGlLRFl3TERFek1TdzVOU2tuTEZ4dUlDQWdJQ0FnSjNKbllpZ3lOQ3d4TVRBc056a3BKeXdnSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2RoYkd4ZllteDFaU2M2SUZzbmNtZGlLRE14TERFeE9Td3hPREFwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakEzS1Njc0lDZHlaMklvTVRJeUxDQXhNRElzSURFNE9Ta25MQ0FuY21kaUtERTFPQ3d5TVRnc01qSTVLU2NzSUNkeVoySW9NVFF4TENBeE1qUXNJREl4TnlrbkxGeHVJQ0FnSUNBZ0ozSm5ZaWd6TVN3Z01USXdMQ0F4TlRBcEoxMHNYRzRnSUNBZ0oyMWhaMlZ1ZEdFbk9pQmJKM0puWWlneE5qSXNNVEEyTERFNU1pa25MQ0FuY21kaUtERTVOeXd4TmpVc01qSTBLU2NzSUNkeVoySW9NakE0TERFeE15d3lNVGdwSjEwc1hHNGdJQ0FnSjNKbFpDYzZJRnNuY21kaUtESXhOQ3d6T1N3ME1Da25MQ0FuY21kaUtESTFOU3d4TlRJc01UVXdLU2RkTEZ4dUlDQWdJQ2R6ZEY5aWJIVmxKem9nV3lkeVoySW9Nak1zTVRrd0xESXdOeWtuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTXpFc01URTVMREU0TUNrblhTeGNiaUFnSUNBblpHRnlhMTlpYkhWbEp6b2dXeWR5WjJJb016RXNNVEU1TERFNE1Da25MQ0FuY21kaUtETXhMQ0F4TWpBc0lERTFNQ2tuWFN4Y2JpQWdJQ0FuYkdsbmFIUmZZbXgxWlNjNklGc25jbWRpS0RJekxERTVNQ3d5TURjcEp5d2dKM0puWWlneE5UZ3NNakU0TERJeU9Ta25MQ0FuY21kaUtERXdPQ3dnTWpFNExDQXlNamtwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakkzS1NkZExGeHVJQ0FnSUNkc2FXeGhZMTlpYkhWbEp6b2dXeWR5WjJJb01USTBMREV3TWl3eU1URXBKeXdnSjNKbllpZ3hORGtzTVRNMExESXhOeWtuTENBbmNtZGlLRGszTENBNE1Td2dNVFV3S1NkZExGeHVJQ0FnSUNka1lYSnJYMmR5WldWdUp6b2dXeWR5WjJJb01qTXNNVEF6TERVM0tTY3NJQ2R5WjJJb016QXNNVEV3TERrMktTY3NJQ2R5WjJJb05qQXNNVE14TERrMUtTY3NJQ2R5WjJJb01qUXNNVEV3TERjNUtTZGRMRnh1SUNBZ0lDZG5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RjMExERTJNQ3czTkNrblhTeGNiaUFnSUNBbmJHbG5hSFJmWjNKbFpXNG5PaUJiSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2R6ZEY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLREUxTWl3eU1qTXNNVE00S1Njc0lDZHlaMklvTXprc0lERTNOQ3dnT1RZcEp5d2dKM0puWWlnM05Dd3hOakFzTnpRcEoxMHNYRzRnSUNBZ0ozQnBibXNuT2lCYkozSm5ZaWd5TkRjc01UZ3lMREl4TUNrblhTeGNiaUFnSUNBblluSnZkMjRuT2lCYkozSm5ZaWd4TkRBc09EWXNOelVwSnl3Z0ozSm5ZaWd4TURJc0lEWXlMQ0ExTkNrblhTeGNiaUFnSUNBblozSmhlU2M2SUZzbmNtZGlLREV5Tnl3eE1qY3NNVEkzS1Njc0lDZHlaMklvTVRrNUxERTVPU3d4T1RrcEp5d2dKM0puWWlneE9UWXNNVFUyTERFME9Da25MQ0FuY21kaUtESXlNaXdnTWpJeUxDQXhPREFwSjEwc1hHNGdJQ0FnSjNsbGJHeHZkeWM2SUZzbmNtZGlLREU0T0N3eE9Ea3NNelFwSjEwc1hHNGdJQ0FnSjNkb2FYUmxKem9nV3lkeVoySW9Nak13TERJek1Dd3lNekFwSjEwc1hHNGdJSDA3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJSE4wWVhScFl5QnRZV3RsVUdGc1pYUjBaU2hrZERvZ1czTjBjbWx1WjF0ZExDQnpkSEpwYm1kZFcxMHNYRzRnSUNBZ2MybHRjR3hwWm1sbFpDQTlJR1poYkhObExDQlFZV3hsZEhSbFZIbHdaVG9nZEhsd1pXOW1JRk5sY1ZCaGJHVjBkR1ZDWVhObElEMGdVMlZ4VUdGc1pYUjBaVUpoYzJWY2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHRnNaWFIwWlRvZ2V5QmJhMlY1T2lCemRISnBibWRkT2lCemRISnBibWNnZlNBOUlIdDlPMXh1SUNBZ0lHUjBMbVp2Y2tWaFkyZ29LR053S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdlltcE1hWE4wSUQwZ1kzQmJNRjA3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMnh2ZFhJZ1BTQmpjRnN4WFR0Y2JpQWdJQ0FnSUc5aWFreHBjM1F1Wm05eVJXRmphQ2dvYjJKcUxDQnBibVFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjR0ZzWlhSMFpWdHZZbXBkSUQwZ2RHaHBjeTVqYjJ4dmRYSlFZV3hsZEhSbFcyTnZiRzkxY2wxYmMybHRjR3hwWm1sbFpDQS9JREFnT2lCcGJtUmRPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJRWVd4bGRIUmxWSGx3WlNod1lXeGxkSFJsS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gzQmhiR1YwZEdVNklIc2dXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5TzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0hCaGJHVjBkR1U2SUhzZ1cyMDZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmNHRnNaWFIwWlNBOUlIQmhiR1YwZEdVN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNCaGJHVjBkR1ZiYlYwN1hHNGdJSDFjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuY2xhc3MgU2lkZUNoYWluU2NhbGVzIHtcbiAgICBzdGF0aWMgZ2V0QXZhaWxhYmxlU2NhbGVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5zY2FsZXMpLm1hcCgoW2ssIF9dKSA9PiBrKTtcbiAgICB9XG4gICAgc3RhdGljIGdldFNjYWxlKG5hbWUpIHtcbiAgICAgICAgYXNzZXJ0KCEodGhpcy5zY2FsZXNbbmFtZV0gPT09IHVuZGVmaW5lZCksIGBTY2FsZSAnJHtuYW1lfScgd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NhbGVzW25hbWVdO1xuICAgIH1cbn1cblNpZGVDaGFpblNjYWxlcy5zY2FsZXMgPSB7XG4gICAgLy8gV2ltbGV5LVdoaXRlIGludGVyZmFjaWFsIGh5ZHJvcGhvYmljaXR5IHNjYWxlXG4gICAgJ1dpbWxleVdoaXRlJzoge1xuICAgICAgICAnLSc6IDAsXG4gICAgICAgICdBJzogMC4xNyxcbiAgICAgICAgJ0MnOiAtMC4yNCxcbiAgICAgICAgJ0QnOiAtMC4wNyxcbiAgICAgICAgJ0UnOiAtMC4wMSxcbiAgICAgICAgJ0YnOiAtMS4xMyxcbiAgICAgICAgJ0cnOiAwLjAxLFxuICAgICAgICAnSCc6IDAuMTcsXG4gICAgICAgICdJJzogLTAuMzEsXG4gICAgICAgICdLJzogMC45OSxcbiAgICAgICAgJ0wnOiAtMC41NixcbiAgICAgICAgJ00nOiAtMC4yMyxcbiAgICAgICAgJ04nOiAwLjQyLFxuICAgICAgICAnUCc6IDAuNDUsXG4gICAgICAgICdRJzogMC41OCxcbiAgICAgICAgJ1InOiAwLjgxLFxuICAgICAgICAnUyc6IDAuMTMsXG4gICAgICAgICdUJzogMC4xNCxcbiAgICAgICAgJ1YnOiAwLjA3LFxuICAgICAgICAnVyc6IC0xLjg1LFxuICAgICAgICAnWSc6IC0wLjk0LFxuICAgIH0sXG4gICAgJ2NhdGVnb3JpYWwnOiB7XG4gICAgICAgICctJzogMCxcbiAgICAgICAgJ0EnOiAxLFxuICAgICAgICAnQyc6IDIsXG4gICAgICAgICdEJzogMyxcbiAgICAgICAgJ0UnOiA0LFxuICAgICAgICAnRic6IDUsXG4gICAgICAgICdHJzogNixcbiAgICAgICAgJ0gnOiA3LFxuICAgICAgICAnSSc6IDgsXG4gICAgICAgICdLJzogOSxcbiAgICAgICAgJ0wnOiAxMCxcbiAgICAgICAgJ00nOiAxMSxcbiAgICAgICAgJ04nOiAxMixcbiAgICAgICAgJ1AnOiAxMyxcbiAgICAgICAgJ1EnOiAxNCxcbiAgICAgICAgJ1InOiAxNSxcbiAgICAgICAgJ1MnOiAxNixcbiAgICAgICAgJ1QnOiAxNyxcbiAgICAgICAgJ1YnOiAxOCxcbiAgICAgICAgJ1cnOiAxOSxcbiAgICAgICAgJ1knOiAyMCxcbiAgICB9LFxufTtcbi8qKlxuICogQ2xhc3MgdG8gY2F0ZWdvcmlhbCBlbmNvZGUvZGVjb2RlIGFsaWduZWQgYW1pbm8gYWNpZCByZXNpZHVlcyBzZXF1ZW5jZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICovXG5leHBvcnQgY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlciB7XG4gICAgY29uc3RydWN0b3Ioc2NhbGUgPSAnY2F0ZWdvcmlhbCcpIHtcbiAgICAgICAgdGhpcy5hYTJudW0gPSBTaWRlQ2hhaW5TY2FsZXMuZ2V0U2NhbGUoc2NhbGUpO1xuICAgICAgICB0aGlzLm51bTJhYSA9IHt9O1xuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLmFhMm51bSkuZm9yRWFjaCgoW2ssIHZdKSA9PiAodGhpcy5udW0yYWFbdl0gPSBrKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogVHJ1bmNhdGUgTkgyIGFuZCAtQ09PSCB0ZXJtaW5hbHMgb2YgdGhlIGdpdmVuIHNlcXVlbmNlLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXEgVGhlIHNlcXVlbmNlIHByb3ZpZGVkLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUcnVuY2F0ZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF90cnVuY2F0ZVNlcXVlbmNlKHNlcSkge1xuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBsZXQgZW5kID0gc2VxLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGVybWluYSA9IFsnTkgyJywgJ0NPT0gnXTtcbiAgICAgICAgaWYgKHNlcS5zdGFydHNXaXRoKHRlcm1pbmFbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVswXS5sZW5ndGg7IC8vIEN1dCBvbmx5ICdOSDInIHdpdGhvdXQgZm9sbG93aW5nICctJy5cbiAgICAgICAgICAgIGFzc2VydChzZXFbbF0gPT0gJy0nLCBgV3Jvbmcgc2VxdWVuY2UgZm9ybWF0OiAke3Rlcm1pbmFbMF19IHdpdGhvdXQgZm9sbG93aW5nICctJyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIHN0YXJ0ID0gbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VxLmVuZHNXaXRoKHRlcm1pbmFbMV0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVsxXS5sZW5ndGggKyAxOyAvLyBDdXQgYm90aCAnQ09PSCcgYW5kIHByZWNlbmRpbmcgJy0nLlxuICAgICAgICAgICAgYXNzZXJ0KHNlcVtlbmQgLSBsXSA9PSAnLScsIGBXcm9uZyBzZXF1ZW5jZSBmb3JtYXQ6ICR7dGVybWluYVsxXX0gd2l0aG91dCAnLScgcHJlY2VuZGluZyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIGVuZCAtPSBsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXEuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIEN1dHMgYXV4aWxpYXJ5IGRlZmlzZXMgYmVmb3JlIGEgcmVzaWR1ZS5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFRoZSBzZXF1ZW5jZSB0byBwcm9jZXNzLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBQcm9jZXNzZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF9kcm9wRGVmaXNlcyhzZXEpIHtcbiAgICAgICAgcmV0dXJuIHNlcS5yZXBsYWNlKC8oLSkoW14tXSspL2csICckMicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIFBlcmZvcm1zIHRydW5jYXRpb24gYW5kIGN1dHRpbmcgYXV4aWxpYXJ5IGRlZmlzZXMuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZSB3b3JrIHVuZGVyIHByb2Nlc3MuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFJlc3VsdCBvZiBjbGVhbmluZy5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBzdGF0aWMgY2xlYW4oc2VxdWVuY2UpIHtcbiAgICAgICAgcmV0dXJuIEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX2Ryb3BEZWZpc2VzKEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX3RydW5jYXRlU2VxdWVuY2Uoc2VxdWVuY2UpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBDYXRlZ29yaWFsIGVuY29kZSBvZiB0aGUgc2VxdWVuY2UgcHJvdmlkZWQuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZS5cbiAgICAgICAqIEByZXR1cm4ge251bWJlcltdfSBFbmNvZGVkIHZlY3Rvci5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBlbmNvZGUoc2VxdWVuY2UpIHtcbiAgICAgICAgY29uc3Qgbkl0ZW1zID0gc2VxdWVuY2UubGVuZ3RoO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBuZXcgQXJyYXkobkl0ZW1zKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc2VxdWVuY2VbaV07XG4gICAgICAgICAgICBhc3NlcnQoY2hhciBpbiB0aGlzLmFhMm51bSwgYFVua25vd24gY2hhciAnJHtjaGFyfScgZm91bmQgaW4gc2VxdWVuY2UgJyR7c2VxdWVuY2V9J2ApO1xuICAgICAgICAgICAgdmFsdWVzW2ldID0gdGhpcy5lbmNvZGVMZXR0dGVyKGNoYXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuICAgIGVuY29kZUxldHR0ZXIobGV0dGVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFhMm51bVtsZXR0ZXJdO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIERlY29kZSB0aGUgZW5jb2RlZCB2ZWN0b3IgaW50byB0aGUgc2VxdWVuY2UgYmFjay5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge251bWJlcltdfSB2YWx1ZSBUaGUgdmVjdG9yIGVuY29kZWQuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IERlY29kZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgZGVjb2RlKHZhbHVlKSB7XG4gICAgICAgIGxldCBzID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB2YWx1ZVtpXTtcbiAgICAgICAgICAgIGFzc2VydChjb2RlIGluIHRoaXMubnVtMmFhLCBgVW5rbm93biBjb2RlICcke2NvZGV9JyBmb3VuZCBpbiB2ZWN0b3IgJyR7dmFsdWV9J2ApO1xuICAgICAgICAgICAgcyArPSB0aGlzLm51bTJhYVtjb2RlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4ZFdWdVkyVXRaVzVqYjJSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5ObGNYVmxibU5sTFdWdVkyOWtaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCUzNaRkxFMUJRVTBzWlVGQlpUdEpRVzFFYmtJc1RVRkJUU3hEUVVGRExHdENRVUZyUWp0UlFVTjJRaXhQUVVGUExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRlpPMUZCUXpGQ0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eFRRVUZUTEVOQlFVTXNSVUZCUlN4VlFVRlZMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNMElzUTBGQlF6czdRVUY2UkUwc2MwSkJRVTBzUjBGQk5rSTdTVUZEZUVNc1owUkJRV2RFTzBsQlEyaEVMR0ZCUVdFc1JVRkJSVHRSUVVOaUxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRSUVVOV0xFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEpRVUZKTzFGQlExUXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4SlFVRkpPMUZCUTFRc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdExRVU5ZTzBsQlEwUXNXVUZCV1N4RlFVRkZPMUZCUTFvc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8wdEJRMUk3UTBGRFJpeERRVUZETzBGQldVbzdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRTlCUVU4c2MwSkJRWE5DTzBsQlNXcERMRmxCUVZrc1VVRkJaMElzV1VGQldUdFJRVU4wUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRha0lzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRkxFTkJRVU03U1VGRlJEczdPenM3T3p0VFFVOUxPMGxCUTB3c1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRWRCUVZjN1VVRkRiRU1zU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJRc1NVRkJTU3hIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVWb1F5eEpRVUZKTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdXVUZET1VJc1RVRkJUU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExIZERRVUYzUXp0WlFVTnlSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSU3d3UWtGQk1FSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXc0UWtGQk9FSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOcVJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTFnN1VVRkRSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRE5VSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh6UTBGQmMwTTdXVUZEY2tVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxEQkNRVUV3UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExDdENRVUVyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRM1JITEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRWanRSUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGJrTXNRMEZCUXp0SlFVVkVPenM3T3pzN08xTkJUMHM3U1VGRFRDeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVZjN1VVRkROMElzVDBGQlR5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPenM3VTBGUFN6dEpRVU5NTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJaMEk3VVVGRE0wSXNUMEZCVHl4elFrRkJjMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUnl4RFFVRkRPMGxCUlVRN096czdPenRUUVUxTE8wbEJRMFVzVFVGQlRTeERRVUZETEZGQlFXZENPMUZCUXpWQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhwRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZETDBJc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlhwQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hwUWtGQmFVSXNTVUZCU1N4M1FrRkJkMElzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjBSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU4wUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVFN4aFFVRmhMRU5CUVVNc1RVRkJZenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wSXNRMEZCUXp0SlFVVkVPenM3T3pzN1UwRk5TenRKUVVORkxFMUJRVTBzUTBGQlF5eExRVUZsTzFGQlF6TkNMRWxCUVVrc1EwRkJReXhIUVVGWExFVkJRVVVzUTBGQlF6dFJRVVZ1UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU55UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGZEVJc1RVRkJUU3hEUVVGRExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMR2xDUVVGcFFpeEpRVUZKTEhOQ1FVRnpRaXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJXcEdMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08xRkJRMFFzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEV0N4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UyRnpjMlZ5ZEgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5Nbk8xeHVYRzUwZVhCbElGTnBaR1ZEYUdGcGJsTmpZV3hsSUQwZ2UxdHVZVzFsT2lCemRISnBibWRkT2lCdWRXMWlaWEo5TzF4dWRIbHdaU0JUYVdSbFEyaGhhVzVUWTJGc1pVTnZiR3hsWTNScGIyNGdQU0I3VzI1aGJXVTZJSE4wY21sdVoxMDZJRk5wWkdWRGFHRnBibE5qWVd4bGZUdGNibHh1WTJ4aGMzTWdVMmxrWlVOb1lXbHVVMk5oYkdWeklIdGNiaUFnYzNSaGRHbGpJSE5qWVd4bGN6b2dVMmxrWlVOb1lXbHVVMk5oYkdWRGIyeHNaV04wYVc5dUlEMGdlMXh1SUNBZ0lDOHZJRmRwYld4bGVTMVhhR2wwWlNCcGJuUmxjbVpoWTJsaGJDQm9lV1J5YjNCb2IySnBZMmwwZVNCelkyRnNaVnh1SUNBZ0lDZFhhVzFzWlhsWGFHbDBaU2M2SUh0Y2JpQWdJQ0FnSUNjdEp6b2dNQ3hjYmlBZ0lDQWdJQ2RCSnpvZ01DNHhOeXhjYmlBZ0lDQWdJQ2RESnpvZ0xUQXVNalFzWEc0Z0lDQWdJQ0FuUkNjNklDMHdMakEzTENBdkx5QkJjM0F0T2lBeExqSXpYRzRnSUNBZ0lDQW5SU2M2SUMwd0xqQXhMQ0F2THlCSGJIVXRPaUF5TGpBeVhHNGdJQ0FnSUNBblJpYzZJQzB4TGpFekxDQXZMMXh1SUNBZ0lDQWdKMGNuT2lBd0xqQXhMRnh1SUNBZ0lDQWdKMGduT2lBd0xqRTNMQ0F2THlCSWFYTXJPaUF3TGprMlhHNGdJQ0FnSUNBblNTYzZJQzB3TGpNeExGeHVJQ0FnSUNBZ0owc25PaUF3TGprNUxDQXZMeUJNZVhNclhHNGdJQ0FnSUNBblRDYzZJQzB3TGpVMkxGeHVJQ0FnSUNBZ0owMG5PaUF0TUM0eU15eGNiaUFnSUNBZ0lDZE9Kem9nTUM0ME1peGNiaUFnSUNBZ0lDZFFKem9nTUM0ME5TeGNiaUFnSUNBZ0lDZFJKem9nTUM0MU9DeGNiaUFnSUNBZ0lDZFNKem9nTUM0NE1Td2dMeThnUVhKbksxeHVJQ0FnSUNBZ0oxTW5PaUF3TGpFekxGeHVJQ0FnSUNBZ0oxUW5PaUF3TGpFMExGeHVJQ0FnSUNBZ0oxWW5PaUF3TGpBM0xGeHVJQ0FnSUNBZ0oxY25PaUF0TVM0NE5TeGNiaUFnSUNBZ0lDZFpKem9nTFRBdU9UUXNYRzRnSUNBZ2ZTeGNiaUFnSUNBblkyRjBaV2R2Y21saGJDYzZJSHRjYmlBZ0lDQWdJQ2N0SnpvZ01DeGNiaUFnSUNBZ0lDZEJKem9nTVN4Y2JpQWdJQ0FnSUNkREp6b2dNaXhjYmlBZ0lDQWdJQ2RFSnpvZ015eGNiaUFnSUNBZ0lDZEZKem9nTkN4Y2JpQWdJQ0FnSUNkR0p6b2dOU3hjYmlBZ0lDQWdJQ2RISnpvZ05peGNiaUFnSUNBZ0lDZElKem9nTnl4Y2JpQWdJQ0FnSUNkSkp6b2dPQ3hjYmlBZ0lDQWdJQ2RMSnpvZ09TeGNiaUFnSUNBZ0lDZE1Kem9nTVRBc1hHNGdJQ0FnSUNBblRTYzZJREV4TEZ4dUlDQWdJQ0FnSjA0bk9pQXhNaXhjYmlBZ0lDQWdJQ2RRSnpvZ01UTXNYRzRnSUNBZ0lDQW5VU2M2SURFMExGeHVJQ0FnSUNBZ0oxSW5PaUF4TlN4Y2JpQWdJQ0FnSUNkVEp6b2dNVFlzWEc0Z0lDQWdJQ0FuVkNjNklERTNMRnh1SUNBZ0lDQWdKMVluT2lBeE9DeGNiaUFnSUNBZ0lDZFhKem9nTVRrc1hHNGdJQ0FnSUNBbldTYzZJREl3TEZ4dUlDQWdJSDBzWEc0Z0lIMDdYRzVjYmlBZ2MzUmhkR2xqSUdkbGRFRjJZV2xzWVdKc1pWTmpZV3hsY3lncE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWMyTmhiR1Z6S1M1dFlYQW9LRnRyTENCZlhTa2dQVDRnYXlrN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ1oyVjBVMk5oYkdVb2JtRnRaVG9nYzNSeWFXNW5LVG9nVTJsa1pVTm9ZV2x1VTJOaGJHVWdlMXh1SUNBZ0lHRnpjMlZ5ZENnaEtIUm9hWE11YzJOaGJHVnpXMjVoYldWZElEMDlQU0IxYm1SbFptbHVaV1FwTENCZ1UyTmhiR1VnSnlSN2JtRnRaWDBuSUhkaGN5QnViM1FnWm05MWJtUXVZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzJOaGJHVnpXMjVoYldWZE8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dRMnhoYzNNZ2RHOGdZMkYwWldkdmNtbGhiQ0JsYm1OdlpHVXZaR1ZqYjJSbElHRnNhV2R1WldRZ1lXMXBibThnWVdOcFpDQnlaWE5wWkhWbGN5QnpaWEYxWlc1alpTNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaUI3WEc0Z0lIQnliM1JsWTNSbFpDQmhZVEp1ZFcwNklGTnBaR1ZEYUdGcGJsTmpZV3hsTzF4dUlDQndjbTkwWldOMFpXUWdiblZ0TW1GaE9pQjdXMk52WkdVNklHNTFiV0psY2wwNklITjBjbWx1WjMwN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2MyTmhiR1U2SUhOMGNtbHVaeUE5SUNkallYUmxaMjl5YVdGc0p5a2dlMXh1SUNBZ0lIUm9hWE11WVdFeWJuVnRJRDBnVTJsa1pVTm9ZV2x1VTJOaGJHVnpMbWRsZEZOallXeGxLSE5qWVd4bEtUdGNiaUFnSUNCMGFHbHpMbTUxYlRKaFlTQTlJSHQ5TzF4dUlDQWdJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11WVdFeWJuVnRLUzVtYjNKRllXTm9LQ2hiYXl3Z2RsMHBJRDArSUNoMGFHbHpMbTUxYlRKaFlWdDJYU0E5SUdzcEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdJQ0FxSUZSeWRXNWpZWFJsSUU1SU1pQmhibVFnTFVOUFQwZ2dkR1Z5YldsdVlXeHpJRzltSUhSb1pTQm5hWFpsYmlCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjMlZ4SUZSb1pTQnpaWEYxWlc1alpTQndjbTkyYVdSbFpDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlGUnlkVzVqWVhSbFpDQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFiV1Z0WW1WeWIyWWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDQWdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1gzUnlkVzVqWVhSbFUyVnhkV1Z1WTJVb2MyVnhPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJREE3WEc0Z0lDQWdiR1YwSUdWdVpDQTlJSE5sY1M1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2RHVnliV2x1WVNBOUlGc25Ua2d5Snl3Z0owTlBUMGduWFR0Y2JseHVJQ0FnSUdsbUlDaHpaWEV1YzNSaGNuUnpWMmwwYUNoMFpYSnRhVzVoV3pCZEtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JDQTlJSFJsY20xcGJtRmJNRjB1YkdWdVozUm9PeUF2THlCRGRYUWdiMjVzZVNBblRrZ3lKeUIzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjdVhHNGdJQ0FnSUNCaGMzTmxjblFvYzJWeFcyeGRJRDA5SUNjdEp5d2dZRmR5YjI1bklITmxjWFZsYm1ObElHWnZjbTFoZERvZ0pIdDBaWEp0YVc1aFd6QmRmU0IzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjZ2FXNGdKeVI3YzJWeGZTY3VZQ2s3WEc0Z0lDQWdJQ0J6ZEdGeWRDQTlJR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6WlhFdVpXNWtjMWRwZEdnb2RHVnliV2x1WVZzeFhTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHd2dQU0IwWlhKdGFXNWhXekZkTG14bGJtZDBhQ3N4T3lBdkx5QkRkWFFnWW05MGFDQW5RMDlQU0NjZ1lXNWtJSEJ5WldObGJtUnBibWNnSnkwbkxseHVJQ0FnSUNBZ1lYTnpaWEowS0hObGNWdGxibVF0YkYwZ1BUMGdKeTBuTENCZ1YzSnZibWNnYzJWeGRXVnVZMlVnWm05eWJXRjBPaUFrZTNSbGNtMXBibUZiTVYxOUlIZHBkR2h2ZFhRZ0p5MG5JSEJ5WldObGJtUnBibWNnYVc0Z0p5UjdjMlZ4ZlNjdVlDazdYRzRnSUNBZ0lDQmxibVFnTFQwZ2JEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE5sY1M1emRXSnpkSEpwYm1jb2MzUmhjblFzSUdWdVpDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCRGRYUnpJR0YxZUdsc2FXRnllU0JrWldacGMyVnpJR0psWm05eVpTQmhJSEpsYzJsa2RXVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlVhR1VnYzJWeGRXVnVZMlVnZEc4Z2NISnZZMlZ6Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZCeWIyTmxjM05sWkNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjbHh1SUNBZ0lDQXFMMXh1SUNCemRHRjBhV01nWDJSeWIzQkVaV1pwYzJWektITmxjVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z2MyVnhMbkpsY0d4aFkyVW9MeWd0S1NoYlhpMWRLeWt2Wnl3Z0p5UXlKeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQlFaWEptYjNKdGN5QjBjblZ1WTJGMGFXOXVJR0Z1WkNCamRYUjBhVzVuSUdGMWVHbHNhV0Z5ZVNCa1pXWnBjMlZ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEYxWlc1alpTQlVhR1VnYzJWeGRXVnVZMlVnZDI5eWF5QjFibVJsY2lCd2NtOWpaWE56TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzBnVW1WemRXeDBJRzltSUdOc1pXRnVhVzVuTGx4dUlDQWdJQ0FxSUVCdFpXMWlaWEp2WmlCQmJHbG5ibVZrVTJWeGRXVnVZMlZGYm1OdlpHVnlYRzRnSUNBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJqYkdWaGJpaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZaSEp2Y0VSbFptbHpaWE1vUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZkSEoxYm1OaGRHVlRaWEYxWlc1alpTaHpaWEYxWlc1alpTa3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FnSUNvZ1EyRjBaV2R2Y21saGJDQmxibU52WkdVZ2IyWWdkR2hsSUhObGNYVmxibU5sSUhCeWIzWnBaR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY1hWbGJtTmxJRlJvWlNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEpiWFgwZ1JXNWpiMlJsWkNCMlpXTjBiM0l1WEc0Z0lDQWdJQ29nUUcxbGJXSmxjbTltSUVGc2FXZHVaV1JUWlhGMVpXNWpaVVZ1WTI5a1pYSmNiaUFnSUNBZ0tpOWNiaUFnY0hWaWJHbGpJR1Z1WTI5a1pTaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2diblZ0WW1WeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUc1SmRHVnRjeUE5SUhObGNYVmxibU5sTG14bGJtZDBhRHRjYmlBZ0lDQmpiMjV6ZENCMllXeDFaWE1nUFNCdVpYY2dRWEp5WVhrb2JrbDBaVzF6S1M1bWFXeHNLREFwTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVNYUmxiWE03SUNzcmFTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaGhjaUE5SUhObGNYVmxibU5sVzJsZE8xeHVYRzRnSUNBZ0lDQmhjM05sY25Rb1kyaGhjaUJwYmlCMGFHbHpMbUZoTW01MWJTd2dZRlZ1YTI1dmQyNGdZMmhoY2lBbkpIdGphR0Z5ZlNjZ1ptOTFibVFnYVc0Z2MyVnhkV1Z1WTJVZ0p5UjdjMlZ4ZFdWdVkyVjlKMkFwTzF4dVhHNGdJQ0FnSUNCMllXeDFaWE5iYVYwZ1BTQjBhR2x6TG1WdVkyOWtaVXhsZEhSMFpYSW9ZMmhoY2lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pXNWpiMlJsVEdWMGRIUmxjaWhzWlhSMFpYSTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZV0V5Ym5WdFcyeGxkSFJsY2wwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJFWldOdlpHVWdkR2hsSUdWdVkyOWtaV1FnZG1WamRHOXlJR2x1ZEc4Z2RHaGxJSE5sY1hWbGJtTmxJR0poWTJzdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbHRkZlNCMllXeDFaU0JVYUdVZ2RtVmpkRzl5SUdWdVkyOWtaV1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mU0JFWldOdlpHVmtJSE5sY1hWbGJtTmxMbHh1SUNBZ0lDQXFJRUJ0WlcxaVpYSnZaaUJCYkdsbmJtVmtVMlZ4ZFdWdVkyVkZibU52WkdWeVhHNGdJQ0FnSUNvdlhHNGdJSEIxWW14cFl5QmtaV052WkdVb2RtRnNkV1U2SUc1MWJXSmxjbHRkS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JzWlhRZ2N6b2djM1J5YVc1bklEMGdKeWM3WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhaaGJIVmxMbXhsYm1kMGFEc2dLeXRwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJSbElEMGdkbUZzZFdWYmFWMDdYRzVjYmlBZ0lDQWdJR0Z6YzJWeWRDaGpiMlJsSUdsdUlIUm9hWE11Ym5WdE1tRmhMQ0JnVlc1cmJtOTNiaUJqYjJSbElDY2tlMk52WkdWOUp5Qm1iM1Z1WkNCcGJpQjJaV04wYjNJZ0p5UjdkbUZzZFdWOUoyQXBPMXh1WEc0Z0lDQWdJQ0J6SUNzOUlIUm9hWE11Ym5WdE1tRmhXMk52WkdWZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjenRjYmlBZ2ZWeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gVW5rbm93bkNvbG9yUGFsZXR0ZS5wYWxldHRlW3BJXTtcbiAgICB9XG59XG5Vbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUgPSBVbmtub3duQ29sb3JQYWxldHRlLmJ1aWxkUGFsZXR0ZSgpO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IEdyYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXkgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHRoaXMuZ3JheSA9IG5ldyBHcmF5QWxsUGFsZXR0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5ncmF5O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IENvbG9yKCkge1xuICAgICAgICBpZiAodGhpcy5jb2xvciA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBVbmtub3duQ29sb3JQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXJibTkzYmk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblZ1YTI1dmQyNHVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCU1VFc1RVRkJUU3hQUVVGUExGZEJRVmM3U1VGRFppeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1VVRkRPVUlzU1VGQlNTeEpRVUZKTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRPMWxCUTJoQ0xFOUJRVThzU1VGQlNTeERRVUZETzFGQlEyUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVZjc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdXVUZEYkVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETERKQ1FVRXlRanRUUVVOMlF6dFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenREUVVOR08wRkJSVVFzVDBGQlR5eEZRVUZoTEdOQlFXTXNSVUZCUXl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlJURkVMRTFCUVUwc1QwRkJaMElzYVVKQlFXbENPME5CUlhSRE8wRkJSVVFzVFVGQlRTeFBRVUZQTEdOQlFXVXNVMEZCVVN4cFFrRkJhVUk3U1VGRE5VTXNSMEZCUnl4RFFVRkRMRU5CUVZNN1VVRkRiRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR08wRkJSMFFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHbENRVUZwUWp0SlFVZG9SQ3hOUVVGTkxFTkJRVU1zV1VGQldUdFJRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJTU3hGUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhqUVVGakxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndSaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTTdTVUZGVFN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVOc1FpeE5RVUZOTEVsQlFVa3NSMEZCVnl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEzSkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM3BETEVOQlFVTTdPMEZCV0dFc01rSkJRVThzUjBGQllTeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dEJRV04yUlN4TlFVRk5MRTlCUVU4c2EwSkJRVzFDTEZOQlFWRXNZMEZCWXp0SlFVYzNReXhOUVVGTkxFdEJRVXNzU1VGQlNUdFJRVU53UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETzFsQlEzUkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVsTkxFMUJRVTBzUzBGQlN5eExRVUZMTzFGQlEzSkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUzBGQlN5eExRVUZMTEVOQlFVTTdXVUZEZGtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR2R5YjJzZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyZHliMnNuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJUZEhKcGJtZFZkR2xzY3lCN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2FHRnphRU52WkdVb2N6b2djM1J5YVc1bktUb2diblZ0WW1WeUlIdGNiaUFnSUNCc1pYUWdhR0Z6YURvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnSUNCcFppQW9jeTVzWlc1bmRHZ2dQVDA5SURBcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnSUNCbWIzSWdLR3hsZENCcE9pQnVkVzFpWlhJZ1BTQXdPeUJwSUR3Z2N5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMmh5T2lCdWRXMWlaWElnUFNCekxtTm9ZWEpEYjJSbFFYUW9hU2s3WEc0Z0lDQWdJQ0JvWVhOb0lEMGdLQ2hvWVhOb0lEdzhJRFVwSUMwZ2FHRnphQ2tnS3lCamFISTdYRzRnSUNBZ0lDQm9ZWE5vSUh3OUlEQTdJQzh2SUVOdmJuWmxjblFnZEc4Z016SmlhWFFnYVc1MFpXZGxjbHh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnZlZ4dWZWeHVYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmhZbk4wY21GamRDQmpiR0Z6Y3lCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlNCcGJYQnNaVzFsYm5SeklGTmxjVkJoYkdWMGRHVWdlMXh1SUNCd2RXSnNhV01nWVdKemRISmhZM1FnWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRWR5WVhsQmJHeFFZV3hsZEhSbElHVjRkR1Z1WkhNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2UxeHVJQ0J3ZFdKc2FXTWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJQ2NqTmpZMk5qWTJKenRjYmlBZ2ZWeHVmVnh1WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm10dWIzZHVRMjlzYjNKUVlXeGxkSFJsSUdWNGRHVnVaSE1nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VnZTF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCaGJHVjBkR1U2SUhOMGNtbHVaMXRkSUQwZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNWlkV2xzWkZCaGJHVjBkR1VvS1R0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QmlkV2xzWkZCaGJHVjBkR1VvS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsY3lBOUlDaGJYU0JoY3lCemRISnBibWRiWFNrdVkyOXVZMkYwS0M0dUxrOWlhbVZqZEM1MllXeDFaWE1vVTJWeFVHRnNaWFIwWlVKaGMyVXVZMjlzYjNWeVVHRnNaWFIwWlNrcE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2FHRnphRG9nYm5WdFltVnlJRDBnVTNSeWFXNW5WWFJwYkhNdWFHRnphRU52WkdVb2JTazdYRzRnSUNBZ1kyOXVjM1FnY0VrZ1BTQm9ZWE5vSUNVZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNXdZV3hsZEhSbExteGxibWQwYUR0Y2JpQWdJQ0J5WlhSMWNtNGdWVzVyYm05M2JrTnZiRzl5VUdGc1pYUjBaUzV3WVd4bGRIUmxXM0JKWFR0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1Z6SUdWNGRHVnVaSE1nVTJWeFVHRnNaWFIwWlVKaGMyVWdlMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuY21GNU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFZHlZWGtvS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVozSmhlU0E5UFQwZ2RtOXBaQ0F3S1Z4dUlDQWdJQ0FnZEdocGN5NW5jbUY1SUQwZ2JtVjNJRWR5WVhsQmJHeFFZV3hsZEhSbEtDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaM0poZVR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdOdmJHOXlPaUJUWlhGUVlXeGxkSFJsTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBJRU52Ykc5eUtDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbU52Ykc5eUlEMDlQU0IyYjJsa0lEQXBYRzRnSUNBZ0lDQjBhR2x6TG1OdmJHOXlJRDBnYm1WM0lGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVW9LVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjJ4dmNqdGNiaUFnZlZ4dWZWeHVJbDE5IiwiY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBncmF5Q29sb3IgPSAnIzgwODA4MCc7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIG1heFdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwsIG5ldyBmb3IgdXBkYXRpbmcgZGF0YSBpbiBtYXhXb3JkIHdoaWxlIHJlbmRlcmluZy5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgbWF4V29yZElkeCA9IDAsIGdyaWRDZWxsID0ge30pIHtcbiAgICB2YXIgX2E7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGNvbnN0IGNvbG9yUGFydCA9IHMuc3Vic3RyaW5nKDApO1xuICAgIGxldCBncmF5UGFydCA9IGxhc3QgPyAnJyA6IHNlcGFyYXRvcjtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIGdyYXlQYXJ0ID0gJyc7XG4gICAgfVxuICAgIGxldCB0ZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0ICsgZ3JheVBhcnQpO1xuICAgIGNvbnN0IGluZGVudCA9IDU7XG4gICAgbGV0IG1heENvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgbGV0IGNvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgY29uc3QgZHkgPSAodGV4dFNpemUuZm9udEJvdW5kaW5nQm94QXNjZW50ICsgdGV4dFNpemUuZm9udEJvdW5kaW5nQm94RGVzY2VudCkgLyAyO1xuICAgIHRleHRTaXplID0gdGV4dFNpemUud2lkdGg7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBtYXhDb2xvclRleHRTaXplID0gbWF4V29yZFttYXhXb3JkSWR4XTtcbiAgICAgICAgdGV4dFNpemUgPSBtYXhXb3JkW21heFdvcmRJZHhdO1xuICAgICAgICBpZiAobWF4V29yZElkeCA+ICgoX2EgPSBtYXhXb3JkWydiaW8tbWF4SW5kZXgnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgIG1heFdvcmRbJ2Jpby1tYXhJbmRleCddID0gbWF4V29yZElkeDtcbiAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXAgPSBtYXhXb3JkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgZy5maWxsU3R5bGUgPSBjb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChjb2xvclBhcnQsIHggKyBkeDEgKyAoKG1heFdvcmRbbWF4V29yZElkeF0gLSBjb2xvclRleHRTaXplKSAvIDIpLCB5ICsgZHkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChsZWZ0IHx8IHRleHRTaXplID4gdykge1xuICAgICAgICBkcmF3KGluZGVudCwgaW5kZW50ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgbWF4Q29sb3JUZXh0U2l6ZSArIGcubWVhc3VyZVRleHQoZ3JheVBhcnQpLndpZHRoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgZHggPSAodyAtIHRleHRTaXplKSAvIDI7XG4gICAgICAgIGRyYXcoZHgsIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgZHggKyBtYXhDb2xvclRleHRTaXplO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyVnNiQzF5Wlc1a1pYSmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltTmxiR3d0Y21WdVpHVnlaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4alFVRmpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdRVUZETVVNc1RVRkJUU3hUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETzBGQlJUVkNMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJSMWc3UVVGSVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTEdkRFFVRnRRaXhEUVVGQk8wRkJRM0pDTEVOQlFVTXNSVUZJVnl4VFFVRlRMRXRCUVZRc1UwRkJVeXhSUVVkd1FqdEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFXOUNSenRCUVVOSUxFMUJRVTBzVlVGQlZTeHRRa0ZCYlVJc1EwRkRha01zUTBGQlV5eEZRVUZGTEVOQlFWTXNSVUZCUlN4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVNeFF5eERRVUV5UWl4RlFVRkZMRU5CUVZNc1JVRkJSU3hMUVVGTExFZEJRVWNzWTBGQll5eEZRVU01UkN4UlFVRm5RaXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlN4dFFrRkJNa0lzUjBGQlJ5eEZRVU12UkN4WlFVRnZRaXhGUVVGRkxFVkJRVVVzVDBGQlowSXNTMEZCU3l4RlFVRkZMRmxCUVhWQ0xGTkJRVk1zUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCZFVNc1JVRkJSU3hGUVVGRkxHRkJRWEZDTEVOQlFVTXNSVUZCUlN4WFFVRm5RaXhGUVVGRk96dEpRVU01U3l4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF6dEpRVU4wUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFbEJRVWtzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEY2tNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETzB0QlEyWTdTVUZGUkN4SlFVRkpMRkZCUVZFc1IwRkJVU3hEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZha0lzU1VGQlNTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOMFJDeEpRVUZKTEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTnVSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYkVZc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZETVVJc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhuUWtGQlowSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRrTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU12UWl4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFMUJRVUVzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXl4dFEwRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU12UXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzFsQlEzSkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNN1UwRkRja003UzBGRFJqdEpRVVZFTEZOQlFWTXNTVUZCU1N4RFFVRkRMRWRCUVZjc1JVRkJSU3hIUVVGWE8xRkJRM0JETEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXl4WFFVRlhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdVVUZEYWtNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnVReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjRRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjJRenRSUVVORUxFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRMMElzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRjRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU4wUmp0SlFVTklMRU5CUVVNN1NVRkZSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkZOMFE3VTBGQlRUdFJRVU5NTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRMUVVOc1F6dEJRVU5JTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpqYjI1emRDQjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibU52Ym5OMElHZHlZWGxEYjJ4dmNpQTlJQ2NqT0RBNE1EZ3dKenRjYmx4dVpYaHdiM0owSUdWdWRXMGdSSEpoZDFOMGVXeGxJSHRjYmlBZ1RWTkJJRDBnSjAxVFFTY3NYRzRnSUdOc1lYTnphV01nUFNBblkyeGhjM05wWXljc1hHNTlYRzVjYmk4cUtseHVJQ29nUVNCbWRXNWpkR2x2YmlCMGFHRjBJSEJ5YVc1MGN5QmhJSE4wY21sdVp5QmhiR2xuYm1Wa0lIUnZJR3hsWm5RZ2IzSWdZMlZ1ZEdWeVpXUXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIZ2dlQ0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIa2dlU0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIY2dWMmxrZEdndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdhQ0JJWldsbmFIUXVYRzRnS2lCQWNHRnlZVzBnZTBOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSSDBnWnlCRFlXNTJZWE1nY21WdVpHVnlhVzVuSUdOdmJuUmxlSFF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2N5QlRkSEpwYm1jZ2RHOGdjSEpwYm5RdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMk52Ykc5eVBYVnVaR1ZtYVc1bFpFTnZiRzl5WFNCVGRISnBibWNnWTI5c2IzSXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNCcGRtOTBQVEJkSUZCcGNuWnZkQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyeGxablE5Wm1Gc2MyVmRJRWx6SUd4bFpuUWdZV3hwWjI1bFpDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiZEhKaGJuTndZWEpsYm1ONVVtRjBaVDB3TGpCZElGUnlZVzV6Y0dGeVpXNWplU0J5WVhSbElIZG9aWEpsSURFdU1DQnBjeUJtZFd4c2VTQjBjbUZ1YzNCaGNtVnVkRnh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0elpYQmhjbUYwYjNJOUp5ZGRJRWx6SUhObGNHRnlZWFJ2Y2lCbWIzSWdjMlZ4ZFdWdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0c1lYTjBQV1poYkhObFhTQkpjeUJqYUdWamEyVnlJR2xtSUdWc1pXMWxiblFnYkdGemRDQnZjaUJ1YjNRdVhHNGdLaUJBY0dGeVlXMGdaSEpoZDFOMGVXeGxJRWx6SUdSeVlYY2djM1I1YkdVdUlFMVRRU0F0SUdadmNpQnRkV3gwYVdOb1lYSlRaWEVzSUdOc1lYTnphV01nTFNCbWIzSWdiM1JvWlhJZ2MyVnhMbHh1SUNvZ1FIQmhjbUZ0SUcxaGVGZHZjbVFnU1hNZ1lYSnlZWGtnYjJZZ2JXRjRJSGR2Y21SeklHWnZjaUJsWVdOb0lHeHBibVV1WEc0Z0tpQkFjR0Z5WVcwZ2JXRjRWMjl5WkVsa2VDQkpjeUJwYm1SbGVDQnZaaUIzYjNKa0lIZGxJR04xY25KbGJuUnNlU0JrY21GM0xseHVJQ29nUUhCaGNtRnRJR2R5YVdSRFpXeHNJRWx6SUdkeWFXUWdZMlZzYkN3Z2JtVjNJR1p2Y2lCMWNHUmhkR2x1WnlCa1lYUmhJR2x1SUcxaGVGZHZjbVFnZDJocGJHVWdjbVZ1WkdWeWFXNW5MbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCNElHTnZiM0prYVc1aGRHVWdkRzhnYzNSaGNuUWdjSEpwYm5ScGJtY2dZWFF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbWx1ZEV4bFpuUlBja05sYm5SbGNtVmtLRnh1SUNCNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpd2dkem9nYm5WdFltVnlMQ0JvT2lCdWRXMWlaWElzWEc0Z0lHYzZJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJDd2djem9nYzNSeWFXNW5MQ0JqYjJ4dmNpQTlJSFZ1WkdWbWFXNWxaRU52Ykc5eUxGeHVJQ0J3YVhadmREb2diblZ0WW1WeUlEMGdNQ3dnYkdWbWRDQTlJR1poYkhObExDQjBjbUZ1YzNCaGNtVnVZM2xTWVhSbE9pQnVkVzFpWlhJZ1BTQXhMakFzWEc0Z0lITmxjR0Z5WVhSdmNqb2djM1J5YVc1bklEMGdKeWNzSUd4aGMzUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpTd2daSEpoZDFOMGVXeGxPaUJFY21GM1UzUjViR1VnUFNCRWNtRjNVM1I1YkdVdVkyeGhjM05wWXl3Z2JXRjRWMjl5WkRvZ2V5QmJhVzVrWlhnNklITjBjbWx1WjEwNklHNTFiV0psY2lCOUlEMGdlMzBzSUcxaGVGZHZjbVJKWkhnNklHNTFiV0psY2lBOUlEQXNJR2R5YVdSRFpXeHNPaUJoYm5rZ1BTQjdmU2s2SUc1MWJXSmxjaUI3WEc0Z0lHY3VkR1Y0ZEVGc2FXZHVJRDBnSjNOMFlYSjBKenRjYmlBZ1kyOXVjM1FnWTI5c2IzSlFZWEowSUQwZ2N5NXpkV0p6ZEhKcGJtY29NQ2s3WEc0Z0lHeGxkQ0JuY21GNVVHRnlkQ0E5SUd4aGMzUWdQeUFuSnlBNklITmxjR0Z5WVhSdmNqdGNiaUFnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTGsxVFFTa2dlMXh1SUNBZ0lHZHlZWGxRWVhKMElEMGdKeWM3WEc0Z0lIMWNibHh1SUNCc1pYUWdkR1Y0ZEZOcGVtVTZJR0Z1ZVNBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvWTI5c2IzSlFZWEowSUNzZ1ozSmhlVkJoY25RcE8xeHVJQ0JqYjI1emRDQnBibVJsYm5RZ1BTQTFPMXh1WEc0Z0lHeGxkQ0J0WVhoRGIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JzWlhRZ1kyOXNiM0pVWlhoMFUybDZaU0E5SUdjdWJXVmhjM1Z5WlZSbGVIUW9ZMjlzYjNKUVlYSjBLUzUzYVdSMGFEdGNiaUFnWTI5dWMzUWdaSGtnUFNBb2RHVjRkRk5wZW1VdVptOXVkRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBJQ3NnZEdWNGRGTnBlbVV1Wm05dWRFSnZkVzVrYVc1blFtOTRSR1Z6WTJWdWRDa2dMeUF5TzF4dUlDQjBaWGgwVTJsNlpTQTlJSFJsZUhSVGFYcGxMbmRwWkhSb08xeHVJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1VFZOQktTQjdYRzRnSUNBZ2JXRjRRMjlzYjNKVVpYaDBVMmw2WlNBOUlHMWhlRmR2Y21SYmJXRjRWMjl5WkVsa2VGMDdYRzRnSUNBZ2RHVjRkRk5wZW1VZ1BTQnRZWGhYYjNKa1cyMWhlRmR2Y21SSlpIaGRPMXh1SUNBZ0lHbG1JQ2h0WVhoWGIzSmtTV1I0SUQ0Z0tHMWhlRmR2Y21SYkoySnBieTF0WVhoSmJtUmxlQ2RkSUQ4L0lEQXBLU0I3WEc0Z0lDQWdJQ0J0WVhoWGIzSmtXeWRpYVc4dGJXRjRTVzVrWlhnblhTQTlJRzFoZUZkdmNtUkpaSGc3WEc0Z0lDQWdJQ0JuY21sa1EyVnNiQzVqWld4c0xtTnZiSFZ0Ymk1MFpXMXdJRDBnYldGNFYyOXlaRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JtZFc1amRHbHZiaUJrY21GM0tHUjRNVG9nYm5WdFltVnlMQ0JrZURJNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ1kyOXNiM0k3WEc0Z0lDQWdaeTVuYkc5aVlXeEJiSEJvWVNBOUlIUnlZVzV6Y0dGeVpXNWplVkpoZEdVN1hHNGdJQ0FnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTG1Oc1lYTnphV01wSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRlJsZUhRb1kyOXNiM0pRWVhKMExDQjRJQ3NnWkhneExDQjVJQ3NnWkhrcE8xeHVJQ0FnSUNBZ1p5NW1hV3hzVTNSNWJHVWdQU0JuY21GNVEyOXNiM0k3WEc0Z0lDQWdJQ0JuTG1acGJHeFVaWGgwS0dkeVlYbFFZWEowTENCNElDc2daSGd5TENCNUlDc2daSGtwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvWkhKaGQxTjBlV3hsSUQwOVBTQkVjbUYzVTNSNWJHVXVUVk5CS1NCN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR052Ykc5eU8xeHVJQ0FnSUNBZ1p5NW1hV3hzVkdWNGRDaGpiMnh2Y2xCaGNuUXNJSGdnS3lCa2VERWdLeUFvS0cxaGVGZHZjbVJiYldGNFYyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIHBhcnNpbmcgRkFTVEEgZmlsZXMgKi9cbmV4cG9ydCBjbGFzcyBGYXN0YUZpbGVIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWxlQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheSA9IFtdOyAvLyBwYXJzZWQgRkFTVEEgZGVzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBzZXF1ZWNlc1xuICAgICAgICB0aGlzLl9maWxlQ29udGVudCA9IGZpbGVDb250ZW50O1xuICAgICAgICB0aGlzLnBhcnNlQ29sdW1ucygpO1xuICAgIH1cbiAgICAvLyBwcml2YXRlIF9jb2x1bW5zUGFyc2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IGRlc2NyaXB0aW9uc0FycmF5KCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb25zQXJyYXk7IH1cbiAgICBnZXQgc2VxdWVuY2VzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9zZXF1ZW5jZXNBcnJheTsgfVxuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gcGFyc2UgYSBtYWNyb21vbGVjdWxlIGZyb20gYSBGQVNUQSBmaWxlIChzdHJpbmcpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBiZWdpbm5pbmdcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kT2ZTZXF1ZW5jZSAgaW5kZXggb2YgbWFjcm9tb2xlY3VsZSBzdWJzdHJpbmcgZW5kXG4gIFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gcGFyc2VkIG1hY3JvbW9sZWN1bGVcbiAgICAgKi9cbiAgICBwYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuX2ZpbGVDb250ZW50LnNsaWNlKHN0YXJ0T2ZTZXF1ZW5jZSwgZW5kT2ZTZXF1ZW5jZSk7XG4gICAgICAgIGNvbnN0IHNlcUFycmF5ID0gc2VxLnNwbGl0KC9cXHMvKTtcbiAgICAgICAgcmV0dXJuIHNlcUFycmF5LmpvaW4oJycpO1xuICAgIH1cbiAgICAvKiogUGFyc2UgZGVzY3JpcHRpb25zIGFuZCBzZXF1ZW5jZXMgZnJvbSBhIEZBU1RBIHN0cmluZyAqL1xuICAgIHBhcnNlQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXj4oLiopJC9nbTsgLy8gbWF0Y2ggJ2Rlc2NyaXB0aW9uJyBsaW5lcyBzdGFydGluZyB3aXRoID5cbiAgICAgICAgbGV0IHN0YXJ0T2ZTZXF1ZW5jZSA9IDA7XG4gICAgICAgIGxldCBtYXRjaDsgLy8gbWF0Y2guaW5kZXggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWF0Y2hlZCBsaW5lXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModGhpcy5fZmlsZUNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2ZpbGVDb250ZW50LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIDEsIHJlZ2V4Lmxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheS5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mU2VxdWVuY2UgIT09IDApXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgICBzdGFydE9mU2VxdWVuY2UgPSByZWdleC5sYXN0SW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5LnB1c2godGhpcy5wYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCAtMSkpO1xuICAgICAgICAvLyB0aGlzLl9jb2x1bW5zUGFyc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsZS1oYW5kbGVyIG1ldGhvZCBmb3IgaW1wb3J0IGFzIEZBU1RBXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtERy5EYXRhRnJhbWVbXX0gZGF0YWZyYW1lIHdpdGggcGFyc2VkIEZBU1RBIGNvbnRlbnRcbiAgICAgKi9cbiAgICBpbXBvcnRGYXN0YSgpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25zQXJyYXlDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2Rlc2NyaXB0aW9uJywgdGhpcy5kZXNjcmlwdGlvbnNBcnJheSk7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlQ29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdzZXF1ZW5jZScsIHRoaXMuc2VxdWVuY2VzQXJyYXkpO1xuICAgICAgICBzZXF1ZW5jZUNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAvLyBoZXJlIHNob3VsZCBnbyB0aGUgY29kZSBmcm9tIHVuaXRzIGhhbmRsZXJcbiAgICAgICAgVW5pdHNIYW5kbGVyLnNldFVuaXRzVG9GYXN0YUNvbHVtbihzZXF1ZW5jZUNvbCk7XG4gICAgICAgIHJldHVybiBbREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNBcnJheUNvbCxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbCxcbiAgICAgICAgICAgIF0pXTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2labUZ6ZEdFdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVpoYzNSaExXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSMEVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVNc1dVRkJXU3hGUVVGRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZOME1zYjBOQlFXOURPMEZCUTNCRExFMUJRVTBzVDBGQlR5eG5Ra0ZCWjBJN1NVRm5SVE5DTEZsQlFWa3NWMEZCYlVJN1VVRTVSSFpDTEhWQ1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETERSQ1FVRTBRanRSUVVNdlJDeHZRa0ZCWlN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExIZENRVUYzUWp0UlFUaEVPVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VFdlJFUXNNa05CUVRKRE8wbEJSVE5ETEVsQlFWY3NhVUpCUVdsQ0xFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkZMRWxCUVZjc1kwRkJZeXhMUVVGbExFOUJRVThzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRVU3T3pzN096czdUMEZQUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4bFFVRjFRaXhGUVVOMlFpeGhRVUZ4UWp0UlFVVnlRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVVkVMREpFUVVFeVJEdEpRVU51UkN4WlFVRlpPMUZCUTJ4Q0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRMRFJEUVVFMFF6dFJRVVYyUlN4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXh0UkVGQmJVUTdVVUZET1VRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hsUVVGbExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU51Uml4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN3NFFrRkJPRUk3U1VGRGFFTXNRMEZCUXp0SlFVVkVPenM3TzA5QlNVYzdTVUZEU1N4WFFVRlhPMUZCUTJoQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpGR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzVjBGQlZ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVV2UXl3MlEwRkJOa003VVVGRE4wTXNXVUZCV1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUldoRUxFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNiMEpCUVc5Q08yZENRVU53UWl4WFFVRlhPMkZCUTFvc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRpeERRVUZETzBOQlRVWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lCRWJ5QnViM1FnWTJoaGJtZGxJSFJvWlhObElHbHRjRzl5ZENCc2FXNWxjeUIwYnlCdFlYUmphQ0JsZUhSbGNtNWhiQ0J0YjJSMWJHVnpJR2x1SUhkbFluQmhZMnNnWTI5dVptbG5kWEpoZEdsdmJpQXFMMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dmRXNXBkSE10YUdGdVpHeGxjaWM3WEc1Y2JpOHFLaUJEYkdGemN5Qm1iM0lnY0dGeWMybHVaeUJHUVZOVVFTQm1hV3hsY3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaGMzUmhSbWxzWlVoaGJtUnNaWElnZTF4dUlDQndjbWwyWVhSbElGOW1hV3hsUTI5dWRHVnVkRG9nYzNSeWFXNW5PMXh1SUNCd2NtbDJZWFJsSUY5a1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJR1JsYzJOeWFYQjBhVzl1YzF4dUlDQndjbWwyWVhSbElGOXpaWEYxWlc1alpYTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJSE5sY1hWbFkyVnpYRzRnSUM4dklIQnlhWFpoZEdVZ1gyTnZiSFZ0Ym5OUVlYSnpaV1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsYzJOeWFYQjBhVzl1YzBGeWNtRjVLQ2s2SUhOMGNtbHVaMXRkSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMlJsYzJOeWFYQjBhVzl1YzBGeWNtRjVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhGMVpXNWpaWE5CY25KaGVTZ3BPaUJ6ZEhKcGJtZGJYU0I3SUhKbGRIVnliaUIwYUdsekxsOXpaWEYxWlc1alpYTkJjbkpoZVRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSVpXeHdaWElnYldWMGFHOWtJSFJ2SUhCaGNuTmxJR0VnYldGamNtOXRiMnhsWTNWc1pTQm1jbTl0SUdFZ1JrRlRWRUVnWm1sc1pTQW9jM1J5YVc1bktWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1JoY25SUFpsTmxjWFZsYm1ObElDQnBibVJsZUNCdlppQnRZV055YjIxdmJHVmpkV3hsSUhOMVluTjBjbWx1WnlCaVpXZHBibTVwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkU5bVUyVnhkV1Z1WTJVZ0lHbHVaR1Y0SUc5bUlHMWhZM0p2Ylc5c1pXTjFiR1VnYzNWaWMzUnlhVzVuSUdWdVpGeHVYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ2NHRnljMlZrSUcxaFkzSnZiVzlzWldOMWJHVmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWTllXTnliMjF2YkdWamRXeGxLRnh1SUNBZ0lITjBZWEowVDJaVFpYRjFaVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR1Z1WkU5bVUyVnhkV1Z1WTJVNklHNTFiV0psY2x4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNTQTlJSFJvYVhNdVgyWnBiR1ZEYjI1MFpXNTBMbk5zYVdObEtITjBZWEowVDJaVFpYRjFaVzVqWlN3Z1pXNWtUMlpUWlhGMVpXNWpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2MyVnhRWEp5WVhrZ1BTQnpaWEV1YzNCc2FYUW9MMXhjY3k4cE8xeHVJQ0FnSUhKbGRIVnliaUJ6WlhGQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlFZWEp6WlNCa1pYTmpjbWx3ZEdsdmJuTWdZVzVrSUhObGNYVmxibU5sY3lCbWNtOXRJR0VnUmtGVFZFRWdjM1J5YVc1bklDb3ZYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVkRiMngxYlc1ektDa2dlMXh1SUNBZ0lHTnZibk4wSUhKbFoyVjRJRDBnTDE0K0tDNHFLU1F2WjIwN0lDOHZJRzFoZEdOb0lDZGtaWE5qY21sd2RHbHZiaWNnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBK1hHNWNiaUFnSUNCc1pYUWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdNRHRjYmlBZ0lDQnNaWFFnYldGMFkyZzdJQzh2SUcxaGRHTm9MbWx1WkdWNElHbHpJSFJvWlNCaVpXZHBibTVwYm1jZ2IyWWdkR2hsSUcxaGRHTm9aV1FnYkdsdVpWeHVJQ0FnSUhkb2FXeGxJQ2h0WVhSamFDQTlJSEpsWjJWNExtVjRaV01vZEdocGN5NWZabWxzWlVOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2YmlBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTjFZbk4wY21sdVp5aHRZWFJqYUM1cGJtUmxlQ0FySURFc0lISmxaMlY0TG14aGMzUkpibVJsZUNrN1hHNGdJQ0FnSUNCMGFHbHpMbDlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlUzV3ZFhOb0tHUmxjMk55YVhCMGFXOXVLVHRjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRTltVTJWeGRXVnVZMlVnSVQwOUlEQXBYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmxjWFZsYm1ObGMwRnljbUY1TG5CMWMyZ29kR2hwY3k1d1lYSnpaVTFoWTNKdmJXOXNaV04xYkdVb2MzUmhjblJQWmxObGNYVmxibU5sTENCdFlYUmphQzVwYm1SbGVDa3BPMXh1SUNBZ0lDQWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdjbVZuWlhndWJHRnpkRWx1WkdWNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmYzJWeGRXVnVZMlZ6UVhKeVlYa3VjSFZ6YUNoMGFHbHpMbkJoY25ObFRXRmpjbTl0YjJ4bFkzVnNaU2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVXNJQzB4S1NrN1hHNWNiaUFnSUNBdkx5QjBhR2x6TGw5amIyeDFiVzV6VUdGeWMyVmtJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJHYVd4bExXaGhibVJzWlhJZ2JXVjBhRzlrSUdadmNpQnBiWEJ2Y25RZ1lYTWdSa0ZUVkVGY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UkdGMFlVWnlZVzFsVzExOUlHUmhkR0ZtY21GdFpTQjNhWFJvSUhCaGNuTmxaQ0JHUVZOVVFTQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2FXMXdiM0owUm1GemRHRW9LVG9nUkVjdVJHRjBZVVp5WVcxbElGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVVOdmJDQTlJRVJITGtOdmJIVnRiaTVtY205dFUzUnlhVzVuY3lnblpHVnpZM0pwY0hScGIyNG5MQ0IwYUdsekxtUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtUdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduYzJWeGRXVnVZMlVuTENCMGFHbHpMbk5sY1hWbGJtTmxjMEZ5Y21GNUtUdGNiaUFnSUNCelpYRjFaVzVqWlVOdmJDNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVYRzRnSUNBZ0x5OGdhR1Z5WlNCemFHOTFiR1FnWjI4Z2RHaGxJR052WkdVZ1puSnZiU0IxYm1sMGN5Qm9ZVzVrYkdWeVhHNGdJQ0FnVlc1cGRITklZVzVrYkdWeUxuTmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzBSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkN4Y2JpQWdJQ0FnSUhObGNYVmxibU5sUTI5c0xGeHVJQ0FnSUYwcFhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0dacGJHVkRiMjUwWlc1ME9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGFHbHpMbDltYVd4bFEyOXVkR1Z1ZENBOUlHWnBiR1ZEYjI1MFpXNTBPMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVkRiMngxYlc1ektDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIGNvbnZlcnNpb24gb2Ygbm90YXRpb24gc3lzdGVtcyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBOb3RhdGlvbkNvbnZlcnRlciBleHRlbmRzIFVuaXRzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHN1cGVyKGNvbCk7XG4gICAgICAgIHRoaXMuX3NwbGl0dGVyID0gbnVsbDtcbiAgICB9XG4gICAgZ2V0IHNwbGl0dGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXJGb3JDb2x1bW4odGhpcy5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXR0ZXI7XG4gICAgfVxuICAgIDtcbiAgICB0b0Zhc3RhKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgdG9TZXBhcmF0b3IodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIHRvSGVsbSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgTWFjcm9tb2xlY3VsZSBjb2x1bW4gZnJvbSBGQVNUQSB0byBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3IgIEEgc3BlY2lmaWMgc2VwYXJhdG9yIHRvIGJlIHVzZWRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmFzdGFHYXBTeW1ib2wgIEdhcCBzeW1ib2wgaW4gRkFTVEEsICctJyBieSBkZWZhdWx0XG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgQSBuZXcgY29sdW1uIGluIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqL1xuICAgIGNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHNlcGFyYXRvciwgZmFzdGFHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChmYXN0YUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIGZhc3RhR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBuZXdseSBjcmVhdGVkIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmYXN0YVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoZmFzdGFQb2x5bWVyKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmFzdGFNb25vbWVyc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZhc3RhTW9ub21lcnNBcnJheVtpXSA9PT0gZmFzdGFHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheVtpXSA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IsIHNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgd3JhcHBlciBzdHJpbmdzIGZvciBIRUxNLCBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlXG4gICAgICogbWFjcm9tb2xlY3VsZSAocGVwdGlkZSwgRE5BLCBSTkEpXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gQXJyYXkgb2Ygd3JhcHBlcnNcbiAgICAgKi9cbiAgICBnZXRIZWxtV3JhcHBlcnMoKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9ICh0aGlzLmlzRG5hKCkpID8gJ0ROQTF7JyA6XG4gICAgICAgICAgICAodGhpcy5pc1JuYSgpKSA/ICdSTkExeycgOlxuICAgICAgICAgICAgICAgICh0aGlzLmlzUGVwdGlkZSgpKSA/ICdQRVBUSURFMXsnIDpcbiAgICAgICAgICAgICAgICAgICAgJ1Vua25vd24nOyAvLyB0aGlzIGNhc2Ugc2hvdWxkIGJlIGhhbmRsZWQgYXMgZXhjZXB0aW9uYWxcbiAgICAgICAgaWYgKHByZWZpeCA9PT0gJ1Vua25vd24nKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZWl0aGVyIHBlcHRpZGUsIG5vciBudWNsZW90aWRlJyk7XG4gICAgICAgIGNvbnN0IHBvc3RmaXggPSAnfSQkJCc7XG4gICAgICAgIGNvbnN0IGxlZnRXcmFwcGVyID0gKHRoaXMuaXNEbmEoKSkgPyAnRCgnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1IoJyA6ICcnOyAvLyBubyB3cmFwcGVyIGZvciBwZXB0aWRlc1xuICAgICAgICBjb25zdCByaWdodFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpIHx8IHRoaXMuaXNSbmEoKSkgPyAnKVAnIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIHJldHVybiBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XTtcbiAgICB9XG4gICAgLy8gQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgc3RyaW5ncyB0byBIRUxNXG4gICAgY29udmVydFRvSGVsbUhlbHBlcihzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wsIHByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeCkge1xuICAgICAgICBjb25zdCBtb25vbWVyQXJyYXkgPSB0aGlzLnNwbGl0dGVyKHNvdXJjZVBvbHltZXIpO1xuICAgICAgICBjb25zdCBtb25vbWVySGVsbUFycmF5ID0gbW9ub21lckFycmF5Lm1hcCgobW0pID0+IHtcbiAgICAgICAgICAgIGlmIChtbSA9PT0gc291cmNlR2FwU3ltYm9sKVxuICAgICAgICAgICAgICAgIHJldHVybiBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsZWZ0V3JhcHBlcn0ke21tfSR7cmlnaHRXcmFwcGVyfWA7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYCR7cHJlZml4fSR7bW9ub21lckhlbG1BcnJheS5qb2luKCcuJyl9JHtwb3N0Zml4fWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBzdHJpbmcgd2l0aCBTRVBBUkFUT1IvRkFTVEEgbm90YXRpb24gdG8gSEVMTVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVBvbHltZXIgIEEgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sICBBbiBvcHRpb25hbCBnYXAgc3ltYm9sLCBzZXQgdG9cbiAgICAgKiBkZWZhdWx0IHZhbHVlcyAoJy0nIGZvciBGQVNUQSBhbmQgJycgZm9yIFNFUEFSQVRPUikgdW5sZXNzIHNwZWNpZmllZFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gIFRoZSB0YXJnZXQgSEVMTSBzdHJpbmdcbiAgICAgKi9cbiAgICBjb252ZXJ0U3RyaW5nVG9IZWxtKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIGNvbHVtbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHNvdXJjZUdhcFN5bWJvbFxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICAgKi9cbiAgICBjb252ZXJ0VG9IZWxtKHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgU0VQQVJBVE9SIGNvbHVtbiB0byBGQVNUQSBub3RhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBmYXN0YUdhcFN5bWJvbCBPcHRpb25hbCBnYXAgc3ltYm9sIGZvciBGQVNUQVxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0U2VwYXJhdG9yVG9GYXN0YShmYXN0YUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKGZhc3RhR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgZmFzdGFHYXBTeW1ib2wgPSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3Igc2VwYXJhdG9yc1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9ySXRlbXNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc2VwYXJhdG9yUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCBmYXN0YU1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VwYXJhdG9ySXRlbXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBzZXBhcmF0b3JJdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChmYXN0YUdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FzZSBvZiBhIG11bHRpLWNoYXJhY3RlciBtb25vbWVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbignJyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAgQ29udmVydCBIRUxNIGNvbHVtbiB0byBGQVNUQS9TRVBBUkFUT1JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3ROb3RhdGlvbiAgICBUYXJnZXQgbm90YXRpb246IEZBU1RBIG9yIFNFUEFSQVRPUlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3RTZXBhcmF0b3IgICBPcHRpb25hbCB0YXJnZXQgc2VwYXJhdG9yIChmb3IgSEVMTSAtPlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0R2FwU3ltYm9sICAgT3B0aW9uYWwgdGFyZ2V0IGdhcCBzeW1ib2xcbiAgICAgKiBTRVBBUkFUT1IpXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvciA9ICcnLCB0Z3RHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgY29udGFpbiBjYWxscyBvZiBpc0RuYSgpIGFuZCBpc1JuYSgpLCBmb3JcbiAgICAgICAgLy8gc291cmNlIGhlbG0gY29sdW1ucyBtYXkgY29udGFpbiBSTkEsIEROQSBhbmQgUFQgYWNyb3NzIGRpZmZlcmVudCByb3dzXG4gICAgICAgIGlmICh0Z3RHYXBTeW1ib2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRndEdhcFN5bWJvbCA9ICh0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSA/XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSAnJylcbiAgICAgICAgICAgIHRndFNlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yO1xuICAgICAgICBjb25zdCBoZWxtV3JhcHBlcnNSZSA9IC8oUlxcKHxEXFwofFxcKXxQKS9nO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbih0Z3ROb3RhdGlvbik7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVsbVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIHdlIGNhbm5vdCB1c2UgaXNEbmEoKSBvciBpc1JuYSgpIGJlY2F1c2Ugc291cmNlIGhlbG0gY29sdW1ucyBjYW5cbiAgICAgICAgICAgIC8vIGNvbnRhaW4gRE5BLCBSTkEgYW5kIFBUIGluIGRpZmZlcmVudCBjZWxscywgc28gdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgICAgICAgIC8vIHRhZ3MgY2Fubm90IGJlIHNldCBmb3IgdGhlIHdob2xlIGNvbHVtblxuICAgICAgICAgICAgY29uc3QgaXNOdWNsZW90aWRlID0gaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnRE5BJykgfHwgaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnUk5BJyk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3IgaGVsbXNcbiAgICAgICAgICAgIGNvbnN0IGhlbG1JdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihoZWxtUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCB0Z3RNb25vbWVyc0FycmF5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlbG1JdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBoZWxtSXRlbXNBcnJheVtpXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOdWNsZW90aWRlKVxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS5yZXBsYWNlKGhlbG1XcmFwcGVyc1JlLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT09IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGd0TW9ub21lcnNBcnJheS5wdXNoKHRndEdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikgJiYgaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXIgY29udmVydGVkIHRvIEZBU1RBXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2gobW9ub21lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRndE1vbm9tZXJzQXJyYXkuam9pbih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgY29udmVydEhlbG1Ub1NlcGFyYXRvcigpIHtcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50YXRpb3JldHVybiB0aGlzLmdldE5ld0NvbHVtbigpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgIH1cbiAgICAvKiogRGlzcGF0Y2hlciBtZXRob2QgZm9yIG5vdGF0aW9uIGNvbnZlcnNpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tk9UQVRJT059IHRndE5vdGF0aW9uICAgTm90YXRpb24gd2Ugd2FudCB0byBjb252ZXJ0IHRvXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RTZXBhcmF0b3IgICBQb3NzaWJsZSBzZXBhcmF0b3JcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICAgICAgICAgIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0KHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IgPSBudWxsKSB7XG4gICAgICAgIC8vIHBvc3NpYmxlIGV4Y2VwdGlvbnNcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT09IHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgbm90YXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgc2VwYXJhdG9yIGlzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNGYXN0YSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHRndFNlcGFyYXRvcik7XG4gICAgICAgIGVsc2UgaWYgKCh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpICYmIHRoaXMudG9IZWxtKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG0oKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc1NlcGFyYXRvcigpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U2VwYXJhdG9yVG9GYXN0YSgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpIC8vIHRoZSBjYXNlIG9mIEhFTE1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uKTtcbiAgICAgICAgZWxzZSAvLyB0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVWxCTEU5QlFVOHNSVUZCWlN4UFFVRlBMRVZCUVVNc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXhSQ3hQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZYTEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRmRrUXNhVVpCUVdsR08wRkJRMnBHTEUxQlFVMHNUMEZCVHl4cFFrRkJhMElzVTBGQlVTeFpRVUZaTzBsQmExQnFSQ3haUVVGdFFpeEhRVUZqTzFGQlF5OUNMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRV3hRVEN4alFVRlRMRWRCUVhkQ0xFbEJRVWtzUTBGQlF6dEpRVzFRT1VNc1EwRkJRenRKUVd4UVJDeEpRVUZqTEZGQlFWRTdVVUZEY0VJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eExRVUZMTEVsQlFVazdXVUZEZWtJc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJRVUVzUTBGQlF6dEpRVVZMTEU5QlFVOHNRMEZCUXl4alFVRjNRaXhKUVVGaExFOUJRVThzWTBGQll5eHBRMEZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmVFWXNWMEZCVnl4RFFVRkRMR05CUVhkQ0xFbEJRV0VzVDBGQlR5eGpRVUZqTEhsRFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZvUnl4TlFVRk5MRU5CUVVNc1kwRkJkMElzU1VGQllTeFBRVUZQTEdOQlFXTXNLMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUZEdPenM3T3pzN1QwRk5SenRKUVVOTExIVkNRVUYxUWl4RFFVRkRMRk5CUVdsQ0xFVkJRVVVzYVVKQlFXZERMRWxCUVVrN1VVRkRja1lzU1VGQlNTeGpRVUZqTEV0QlFVc3NTVUZCU1R0WlFVTjZRaXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSWHBETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxITkRRVUZ2UWl4RFFVRkRPMUZCUTNoRUxITkVRVUZ6UkR0UlFVTjBSQ3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFsQlEzWkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMnhFTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NZMEZCWXp0dlFrRkRNVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUTBGQlF6dGhRVU42UlR0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42UkN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4bFFVRmxPMUZCUTNKQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTNaRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEYUVNc1UwRkJVeXhEUVVGRExFTkJRVU1zTmtOQlFUWkRPMUZCUlRsRUxFbEJRVWtzVFVGQlRTeExRVUZMTEZOQlFWTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHBRMEZCYVVNc1EwRkJReXhEUVVGRE8xRkJSWEpFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMlFpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVONlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExEQkNRVUV3UWp0UlFVTjRSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl3d1FrRkJNRUk3VVVGRE0wWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFTkJRVU03U1VGRlJDeHRSRUZCYlVRN1NVRkRNME1zYlVKQlFXMUNMRU5CUTNwQ0xHRkJRWEZDTEVWQlEzSkNMR1ZCUVhWQ0xFVkJRM1pDTEUxQlFXTXNSVUZEWkN4WFFVRnRRaXhGUVVOdVFpeFpRVUZ2UWl4RlFVTndRaXhQUVVGbE8xRkJSV1lzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZoTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGVkxFVkJRVVVzUlVGQlJUdFpRVU5xUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhsUVVGbE8yZENRVU40UWl4UFFVRlBMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNN08yZENRVVZvUkN4UFFVRlBMRWRCUVVjc1YwRkJWeXhIUVVGSExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVWQlFVVXNRMEZCUXp0UlFVTm9SQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEU5QlFVOHNSMEZCUnl4TlFVRk5MRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwa3NiVUpCUVcxQ0xFTkJRM2hDTEdGQlFYRkNMRVZCUTNKQ0xHdENRVUZwUXl4SlFVRkpPMUZCUlhKRExFbEJRVWtzWlVGQlpTeExRVUZMTEVsQlFVazdXVUZETVVJc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVNeFF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJRelZGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRPVWNzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NZVUZCWVN4RFFVRkRMR3RDUVVGcFF5eEpRVUZKTzFGQlEzcEVMRWxCUVVrc1pVRkJaU3hMUVVGTExFbEJRVWs3V1VGRE1VSXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVVXhReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMUZCUlRWRkxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRFJDUVVGbExFTkJRVU03VVVGRGJrUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVNelF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkxMSFZDUVVGMVFpeERRVUZETEdsQ1FVRm5ReXhKUVVGSk8xRkJRMnhGTEVsQlFVa3NZMEZCWXl4TFFVRkxMRWxCUVVrN1dVRkRla0lzWTBGQll5eEhRVUZITEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZGTjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NPRUpCUVdkQ0xFTkJRVU03VVVGRGNFUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6bERMSE5EUVVGelF6dFpRVU4wUXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0WlFVTTFSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRaUVVONFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnVSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlR0dlFrRkRja0lzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV1VzUTBGQlF5eERRVUZETzJsQ1FVTXhRenR4UWtGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8yOUNRVU14UWl4M1EwRkJkME03YjBKQlEzaERMRTFCUVUwc1QwRkJUeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMjlDUVVOcVF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdhVUpCUTJ4RE8zRkNRVUZOTzI5Q1FVTk1MR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRwUWtGREwwSTdZVUZEUmp0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwc3NWMEZCVnl4RFFVTnFRaXhYUVVGdFFpeEZRVU51UWl4bFFVRjFRaXhGUVVGRkxFVkJRM3BDTEdWQlFUaENMRWxCUVVrN1VVRkZiRU1zYlVWQlFXMUZPMUZCUTI1RkxIZEZRVUYzUlR0UlFVTjRSU3hKUVVGSkxGbEJRVmtzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEZWtJc1dVRkJXU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjBSQ3haUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlF6TkRMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1UwRkRha1E3VVVGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJkVUlzUTBGQlF5eEpRVUZKTEZsQlFWa3NTMEZCU3l4RlFVRkZPMWxCUTJ4RkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUldoRExFMUJRVTBzWTBGQll5eEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8xRkJRM3BETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxIZERRVUYzUXp0UlFVTjRReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZGZWtNc2JVVkJRVzFGTzFsQlEyNUZMRzFGUVVGdFJUdFpRVU51UlN3d1EwRkJNRU03V1VGRE1VTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlJYQkdMR2xEUVVGcFF6dFpRVU5xUXl4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVdFc1JVRkJSU3hEUVVGRE8xbEJRM1JETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkQ0xFbEJRVWtzV1VGQldUdHZRa0ZEWkN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGpRVUZqTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRekZETEVsQlFVa3NTVUZCU1N4TFFVRkxMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRVZCUVVVN2IwSkJRM0pFTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZoTEVOQlFVTXNRMEZCUXp0cFFrRkRkRU03Y1VKQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRWFZDTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZEYmtVc01rUkJRVEpFTzI5Q1FVTXpSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEhRVUZITEVkQlFVY3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRGFrTXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmxDUVVOb1F6dHhRa0ZCVFR0dlFrRkRUQ3huUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlF6ZENPMkZCUTBZN1dVRkRSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZUeXh6UWtGQmMwSTdVVUZETlVJc2FVUkJRV2xFTzFGQlEycEVMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzYzBOQlFXOUNMRU5CUVVNN1NVRkRMME1zUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NUMEZCVHl4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzWlVGQk9FSXNTVUZCU1R0UlFVTjBSU3h6UWtGQmMwSTdVVUZEZEVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEZkQlFWYzdXVUZETDBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NTVUZCU1R0WlFVTjRSQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU03VVVGRmNFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFdEJRVXNzU1VGQlNUdFpRVU14UlN4UFFVRlBMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRoUVVNdlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEzcEZMRTlCUVU4c1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzJGQlEzcENMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRM1JFTEU5QlFVOHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEVOQlFVTTdZVUZEYmtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJN1dVRkRkRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8yRkJRMnhETEdsRVFVRnBSRHRaUVVOd1JDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhGUVVGRkxGbEJRV0VzUTBGQlF5eERRVUZETzBsQlEzaEVMRU5CUVVNN1EwRkxSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUlFUnZJRzV2ZENCamFHRnVaMlVnZEdobGMyVWdhVzF3YjNKMElHeHBibVZ6SUhSdklHMWhkR05vSUdWNGRHVnlibUZzSUcxdlpIVnNaWE1nYVc0Z2QyVmljR0ZqYXlCamIyNW1hV2QxY21GMGFXOXVJQ292WEc1cGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJSHRUY0d4cGRIUmxja1oxYm1Nc0lGZGxZa3h2WjI5OUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWElzSUU1UFZFRlVTVTlPZlNCbWNtOXRJQ2N1TDNWdWFYUnpMV2hoYm1Sc1pYSW5PMXh1WEc0dktpb2dRMnhoYzNNZ1ptOXlJR2hoYm1Sc2FXNW5JR052Ym5abGNuTnBiMjRnYjJZZ2JtOTBZWFJwYjI0Z2MzbHpkR1Z0Y3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJPYjNSaGRHbHZia052Ym5abGNuUmxjaUJsZUhSbGJtUnpJRlZ1YVhSelNHRnVaR3hsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYM053YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NZ2ZDQnVkV3hzSUQwZ2JuVnNiRHRjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0J6Y0d4cGRIUmxjaWdwT2lCVGNHeHBkSFJsY2taMWJtTWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOXpjR3hwZEhSbGNpQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lIUm9hWE11WDNOd2JHbDBkR1Z5SUQwZ1YyVmlURzluYnk1blpYUlRjR3hwZEhSbGNrWnZja052YkhWdGJpaDBhR2x6TG1OdmJIVnRiaWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNOd2JHbDBkR1Z5TzF4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCMGIwWmhjM1JoS0hSaGNtZGxkRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaWs2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdGeVoyVjBUbTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGtaQlUxUkJPeUI5WEc1Y2JpQWdjSFZpYkdsaklIUnZVMlZ3WVhKaGRHOXlLSFJoY21kbGRFNXZkR0YwYVc5dU9pQk9UMVJCVkVsUFRpazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVanNnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMGhsYkcwb2RHRnlaMlYwVG05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMFlYSm5aWFJPYjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVNFVk1UVHNnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYjI1MlpYSjBJR0VnVFdGamNtOXRiMnhsWTNWc1pTQmpiMngxYlc0Z1puSnZiU0JHUVZOVVFTQjBieUJUUlZCQlVrRlVUMUlnYm05MFlYUnBiMjVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2lBZ1FTQnpjR1ZqYVdacFl5QnpaWEJoY21GMGIzSWdkRzhnWW1VZ2RYTmxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1ptRnpkR0ZIWVhCVGVXMWliMndnSUVkaGNDQnplVzFpYjJ3Z2FXNGdSa0ZUVkVFc0lDY3RKeUJpZVNCa1pXWmhkV3gwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJITGtOdmJIVnRibjBnSUNBZ0lDQWdJRUVnYm1WM0lHTnZiSFZ0YmlCcGJpQlRSVkJCVWtGVVQxSWdibTkwWVhScGIyNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRFWmhjM1JoVkc5VFpYQmhjbUYwYjNJb2MyVndZWEpoZEc5eU9pQnpkSEpwYm1jc0lHWmhjM1JoUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0daaGMzUmhSMkZ3VTNsdFltOXNJRDA5UFNCdWRXeHNLVnh1SUNBZ0lDQWdabUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWGREYjJ4MWJXNGdQU0IwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0J1Wlhkc2VTQmpjbVZoZEdWa0lHVnRjSFI1SUdOdmJIVnRibHh1SUNBZ0lHNWxkME52YkhWdGJpNXBibWwwS0NocFpIZzZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdabUZ6ZEdGUWIyeDViV1Z5SUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjV6ZENCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5S0daaGMzUmhVRzlzZVcxbGNpazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1poYzNSaFRXOXViMjFsY25OQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWm1GemRHRk5iMjV2YldWeWMwRnljbUY1VzJsZElEMDlQU0JtWVhOMFlVZGhjRk41YldKdmJDbGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGxiYVYwZ1BTQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbk5sY0dGeVlYUnZjaXdnYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnZDNKaGNIQmxjaUJ6ZEhKcGJtZHpJR1p2Y2lCSVJVeE5MQ0JrWlhCbGJtUnBibWNnYjI0Z2RHaGxJSFI1Y0dVZ2IyWWdkR2hsWEc0Z0lDQXFJRzFoWTNKdmJXOXNaV04xYkdVZ0tIQmxjSFJwWkdVc0lFUk9RU3dnVWs1QktWeHVJQ0FnS2x4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDBnUVhKeVlYa2diMllnZDNKaGNIQmxjbk5jYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWjJWMFNHVnNiVmR5WVhCd1pYSnpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQW9kR2hwY3k1cGMwUnVZU2dwS1NBL0lDZEVUa0V4ZXljZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVrNUJNWHNuSURwY2JpQWdJQ0FnSUNBZ0tIUm9hWE11YVhOUVpYQjBhV1JsS0NrcElEOGdKMUJGVUZSSlJFVXhleWNnT2x4dUlDQWdJQ0FnSUNBZ0lDZFZibXR1YjNkdUp6c2dMeThnZEdocGN5QmpZWE5sSUhOb2IzVnNaQ0JpWlNCb1lXNWtiR1ZrSUdGeklHVjRZMlZ3ZEdsdmJtRnNYRzVjYmlBZ0lDQnBaaUFvY0hKbFptbDRJRDA5UFNBblZXNXJibTkzYmljcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjA1bGFYUm9aWElnY0dWd2RHbGtaU3dnYm05eUlHNTFZMnhsYjNScFpHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhnZ1BTQW5mU1FrSkNjN1hHNGdJQ0FnWTI5dWMzUWdiR1ZtZEZkeVlYQndaWElnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRUtDY2dPbHh1SUNBZ0lDQWdLSFJvYVhNdWFYTlNibUVvS1NrZ1B5QW5VaWduSURvZ0p5YzdJQzh2SUc1dklIZHlZWEJ3WlhJZ1ptOXlJSEJsY0hScFpHVnpYRzRnSUNBZ1kyOXVjM1FnY21sbmFIUlhjbUZ3Y0dWeUlEMGdLSFJvYVhNdWFYTkVibUVvS1NCOGZDQjBhR2x6TG1selVtNWhLQ2twSUQ4Z0p5bFFKeUE2SUNjbk95QXZMeUJ1YnlCM2NtRndjR1Z5SUdadmNpQndaWEIwYVdSbGMxeHVJQ0FnSUhKbGRIVnliaUJiY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRYVHRjYmlBZ2ZWeHVYRzRnSUM4dklFRWdhR1ZzY0dWeUlHWjFibU4wYVc5dUlHWnZjaUJqYjI1MlpYSjBhVzVuSUhOMGNtbHVaM01nZEc4Z1NFVk1UVnh1SUNCd2NtbDJZWFJsSUdOdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb1hHNGdJQ0FnYzI5MWNtTmxVRzlzZVcxbGNqb2djM1J5YVc1bkxGeHVJQ0FnSUhOdmRYSmpaVWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnlaV1pwZURvZ2MzUnlhVzVuTEZ4dUlDQWdJR3hsWm5SWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjbWxuYUhSWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjRzl6ZEdacGVEb2djM1J5YVc1blhHNGdJQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2JXOXViMjFsY2tGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpiM1Z5WTJWUWIyeDViV1Z5S1R0Y2JpQWdJQ0JqYjI1emRDQnRiMjV2YldWeVNHVnNiVUZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRzF2Ym05dFpYSkJjbkpoZVM1dFlYQW9LRzF0T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2h0YlNBOVBUMGdjMjkxY21ObFIyRndVM2x0WW05c0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVNFVk1UVHRjYmlBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UyeGxablJYY21Gd2NHVnlmU1I3YlcxOUpIdHlhV2RvZEZkeVlYQndaWEo5WUR0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3Y0hKbFptbDRmU1I3Ylc5dWIyMWxja2hsYkcxQmNuSmhlUzVxYjJsdUtDY3VKeWw5Skh0d2IzTjBabWw0ZldBN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRDQmhJSE4wY21sdVp5QjNhWFJvSUZORlVFRlNRVlJQVWk5R1FWTlVRU0J1YjNSaGRHbHZiaUIwYnlCSVJVeE5YRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6YjNWeVkyVlFiMng1YldWeUlDQkJJSE4wY21sdVp5QjBieUJpWlNCamIyNTJaWEowWldSY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFd4c2ZTQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z0lFRnVJRzl3ZEdsdmJtRnNJR2RoY0NCemVXMWliMndzSUhObGRDQjBiMXh1SUNBZ0tpQmtaV1poZFd4MElIWmhiSFZsY3lBb0p5MG5JR1p2Y2lCR1FWTlVRU0JoYm1RZ0p5Y2dabTl5SUZORlVFRlNRVlJQVWlrZ2RXNXNaWE56SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJQ0JVYUdVZ2RHRnlaMlYwSUVoRlRFMGdjM1J5YVc1blhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVkbVZ5ZEZOMGNtbHVaMVJ2U0dWc2JTaGNiaUFnSUNCemIzVnlZMlZRYjJ4NWJXVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JGeHVJQ0FwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoemIzVnlZMlZIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0J6YjNWeVkyVkhZWEJUZVcxaWIyd2dQU0IwYUdsekxtUmxabUYxYkhSSFlYQlRlVzFpYjJ3N1hHNGdJQ0FnWTI5dWMzUWdXM0J5WldacGVDd2diR1ZtZEZkeVlYQndaWElzSUhKcFoyaDBWM0poY0hCbGNpd2djRzl6ZEdacGVGMGdQU0IwYUdsekxtZGxkRWhsYkcxWGNtRndjR1Z5Y3lncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzTENCd2NtVm1hWGdzSUd4bFpuUlhjbUZ3Y0dWeUxDQnlhV2RvZEZkeVlYQndaWElzSUhCdmMzUm1hWGdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZiblpsY25RZ1lTQmpiMngxYlc0Z2RHOGdTRVZNVFZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhOdmRYSmpaVWRoY0ZONWJXSnZiRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVSeTVEYjJ4MWJXNTlYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcwb2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0hOdmRYSmpaVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSE52ZFhKalpVZGhjRk41YldKdmJDQTlJSFJvYVhNdVpHVm1ZWFZzZEVkaGNGTjViV0p2YkR0Y2JseHVJQ0FnSUdOdmJuTjBJRnR3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYaGRJRDBnZEdocGN5NW5aWFJJWld4dFYzSmhjSEJsY25Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtFNVBWRUZVU1U5T0xraEZURTBwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0JsYlhCMGVTQmpiMngxYlc1Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YVc1cGRDZ29hV1I0T2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhOdmRYSmpaVkJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzSVN3Z2NISmxabWw0TENCc1pXWjBWM0poY0hCbGNpd2djbWxuYUhSWGNtRndjR1Z5TENCd2IzTjBabWw0S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnVTBWUVFWSkJWRTlTSUdOdmJIVnRiaUIwYnlCR1FWTlVRU0J1YjNSaGRHbHZibHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJR1poYzNSaFIyRndVM2x0WW05c0lFOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd2dabTl5SUVaQlUxUkJYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJRU52Ym5abGNuUmxaQ0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRGTmxjR0Z5WVhSdmNsUnZSbUZ6ZEdFb1ptRnpkR0ZIWVhCVGVXMWliMnc2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQnBaaUFvWm1GemRHRkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQm1ZWE4wWVVkaGNGTjViV0p2YkNBOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnZEdocGN5NW5aWFJPWlhkRGIyeDFiVzRvVGs5VVFWUkpUMDR1UmtGVFZFRXBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sY0dGeVlYUnZjbEJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUM4dklHbDBaVzF6SUdOaGJpQmlaU0J0YjI1dmJXVnljeUJ2Y2lCelpYQmhjbUYwYjNKelhHNGdJQ0FnSUNCamIyNXpkQ0J6WlhCaGNtRjBiM0pKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWh6WlhCaGNtRjBiM0pRYjJ4NWJXVnlLVHRjYmlBZ0lDQWdJR052Ym5OMElHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVUb2djM1J5YVc1blcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWdElEMGdjMlZ3WVhKaGRHOXlTWFJsYlhOQmNuSmhlVnRwWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvWm1GemRHRkhZWEJUZVcxaWIyd2hLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNocGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjaUE5SUNkYkp5QXJJR2wwWlcwZ0t5QW5YU2M3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYlc5dWIyMWxjaWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VhbTlwYmlnbkp5azdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQWdRMjl1ZG1WeWRDQklSVXhOSUdOdmJIVnRiaUIwYnlCR1FWTlVRUzlUUlZCQlVrRlVUMUpjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSbmRFNXZkR0YwYVc5dUlDQWdJRlJoY21kbGRDQnViM1JoZEdsdmJqb2dSa0ZUVkVFZ2IzSWdVMFZRUVZKQlZFOVNYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFozUlRaWEJoY21GMGIzSWdJQ0JQY0hScGIyNWhiQ0IwWVhKblpYUWdjMlZ3WVhKaGRHOXlJQ2htYjNJZ1NFVk1UU0F0UGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlIUm5kRWRoY0ZONWJXSnZiQ0FnSUU5d2RHbHZibUZzSUhSaGNtZGxkQ0JuWVhBZ2MzbHRZbTlzWEc0Z0lDQXFJRk5GVUVGU1FWUlBVaWxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmU0JEYjI1MlpYSjBaV1FnWTI5c2RXMXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUklaV3h0S0Z4dUlDQWdJSFJuZEU1dmRHRjBhVzl1T2lCemRISnBibWNzWEc0Z0lDQWdkR2QwVTJWd1lYSmhkRzl5T2lCemRISnBibWNnUFNBbkp5eGNiaUFnSUNCMFozUkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVkdocGN5Qm1kVzVqZEdsdmJpQnRkWE4wSUc1dmRDQmpiMjUwWVdsdUlHTmhiR3h6SUc5bUlHbHpSRzVoS0NrZ1lXNWtJR2x6VW01aEtDa3NJR1p2Y2x4dUlDQWdJQzh2SUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ2JXRjVJR052Ym5SaGFXNGdVazVCTENCRVRrRWdZVzVrSUZCVUlHRmpjbTl6Y3lCa2FXWm1aWEpsYm5RZ2NtOTNjMXh1SUNBZ0lHbG1JQ2gwWjNSSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lIUm5kRWRoY0ZONWJXSnZiQ0E5SUNoMGFHbHpMblJ2Um1GemRHRW9kR2QwVG05MFlYUnBiMjRnWVhNZ1RrOVVRVlJKVDA0cEtTQS9YRzRnSUNBZ0lDQWdJRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa1pCVTFSQklEcGNiaUFnSUNBZ0lDQWdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuUnZVMlZ3WVhKaGRHOXlLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJQ2NuS1Z4dUlDQWdJQ0FnZEdkMFUyVndZWEpoZEc5eUlEMGdkR2hwY3k1elpYQmhjbUYwYjNJN1hHNWNiaUFnSUNCamIyNXpkQ0JvWld4dFYzSmhjSEJsY25OU1pTQTlJQzhvVWx4Y0tIeEVYRndvZkZ4Y0tYeFFLUzluTzF4dUlDQWdJR052Ym5OMElHNWxkME52YkhWdGJpQTlJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tUdGNiaUFnSUNBdkx5QmhjM05wWjI0Z2RHaGxJSFpoYkhWbGN5QjBieUIwYUdVZ1pXMXdkSGtnWTI5c2RXMXVYRzRnSUNBZ2JtVjNRMjlzZFcxdUxtbHVhWFFvS0dsa2VEb2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0VUc5c2VXMWxjaUE5SUhSb2FYTXVZMjlzZFcxdUxtZGxkQ2hwWkhncE8xeHVYRzRnSUNBZ0lDQXZMeUIzWlNCallXNXViM1FnZFhObElHbHpSRzVoS0NrZ2IzSWdhWE5TYm1Fb0tTQmlaV05oZFhObElITnZkWEpqWlNCb1pXeHRJR052YkhWdGJuTWdZMkZ1WEc0Z0lDQWdJQ0F2THlCamIyNTBZV2x1SUVST1FTd2dVazVCSUdGdVpDQlFWQ0JwYmlCa2FXWm1aWEpsYm5RZ1kyVnNiSE1zSUhOdklIUm9aU0JqYjNKeVpYTndiMjVrYVc1blhHNGdJQ0FnSUNBdkx5QjBZV2R6SUdOaGJtNXZkQ0JpWlNCelpYUWdabTl5SUhSb1pTQjNhRzlzWlNCamIyeDFiVzVjYmlBZ0lDQWdJR052Ym5OMElHbHpUblZqYkdWdmRHbGtaU0E5SUdobGJHMVFiMng1YldWeUxuTjBZWEowYzFkcGRHZ29KMFJPUVNjcElIeDhJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0oxSk9RU2NwTzF4dVhHNGdJQ0FnSUNBdkx5QnBkR1Z0Y3lCallXNGdZbVVnYlc5dWIyMWxjbk1nYjNJZ2FHVnNiWE5jYmlBZ0lDQWdJR052Ym5OMElHaGxiRzFKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWhvWld4dFVHOXNlVzFsY2lrN1hHNGdJQ0FnSUNCamIyNXpkQ0IwWjNSTmIyNXZiV1Z5YzBGeWNtRjVPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm9aV3h0U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FYUmxiU0E5SUdobGJHMUpkR1Z0YzBGeWNtRjVXMmxkTzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5PZFdOc1pXOTBhV1JsS1Z4dUlDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCcGRHVnRMbkpsY0d4aFkyVW9hR1ZzYlZkeVlYQndaWEp6VW1Vc0lDY25LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzBnUFQwOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExraEZURTBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvZEdkMFIyRndVM2x0WW05c0lTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZEdocGN5NTBiMFpoYzNSaEtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQnBkR1Z0TG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCMGFHVWdZMkZ6WlNCdlppQmhJRzExYkhScExXTm9ZWEpoWTNSbGNpQnRiMjV2YldWeUlHTnZiblpsY25SbFpDQjBieUJHUVZOVVFWeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhJZ1BTQW5XeWNnS3lCcGRHVnRJQ3NnSjEwbk8xeHVJQ0FnSUNBZ0lDQWdJSFJuZEUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNodGIyNXZiV1Z5S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvZEdkMFUyVndZWEpoZEc5eUtUdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnYm1WM1EyOXNkVzF1TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIyNTJaWEowU0dWc2JWUnZVMlZ3WVhKaGRHOXlLQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1ZFOUVUem9nYVcxd2JHVnRaVzUwWVhScGIzSmxkSFZ5YmlCMGFHbHpMbWRsZEU1bGQwTnZiSFZ0YmlncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRVJwYzNCaGRHTm9aWElnYldWMGFHOWtJR1p2Y2lCdWIzUmhkR2x2YmlCamIyNTJaWEp6YVc5dVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUazlVUVZSSlQwNTlJSFJuZEU1dmRHRjBhVzl1SUNBZ1RtOTBZWFJwYjI0Z2QyVWdkMkZ1ZENCMGJ5QmpiMjUyWlhKMElIUnZYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnNiSDBnZEdkMFUyVndZWEpoZEc5eUlDQWdVRzl6YzJsaWJHVWdjMlZ3WVhKaGRHOXlYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1EyOXVkbVZ5ZEdWa0lHTnZiSFZ0Ymx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJuWmxjblFvZEdkMFRtOTBZWFJwYjI0NklFNVBWRUZVU1U5T0xDQjBaM1JUWlhCaGNtRjBiM0k2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQXZMeUJ3YjNOemFXSnNaU0JsZUdObGNIUnBiMjV6WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDA5SUhSbmRFNXZkR0YwYVc5dUtWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkMFozUWdibTkwWVhScGIyNGdhWE1nYVc1MllXeHBaQ2NwTzF4dUlDQWdJR2xtSUNoMGFHbHpMblJ2VTJWd1lYSmhkRzl5S0hSbmRFNXZkR0YwYVc5dUtTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNSbmRDQnpaWEJoY21GMGIzSWdhWE1nYm05MElITndaV05wWm1sbFpDY3BPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5HWVhOMFlTZ3BJQ1ltSUhSb2FYTXVkRzlUWlhCaGNtRjBiM0lvZEdkMFRtOTBZWFJwYjI0cElDWW1JSFJuZEZObGNHRnlZWFJ2Y2lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SR1lYTjBZVlJ2VTJWd1lYSmhkRzl5S0hSbmRGTmxjR0Z5WVhSdmNpazdYRzRnSUNBZ1pXeHpaU0JwWmlBb0tIUm9hWE11YVhOR1lYTjBZU2dwSUh4OElIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTa2dKaVlnZEdocGN5NTBiMGhsYkcwb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRlJ2U0dWc2JTZ3BPMXh1SUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTQW1KaUIwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRk5sY0dGeVlYUnZjbFJ2Um1GemRHRW9LVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG1selNHVnNiU2dwSUNZbUlIUm9hWE11ZEc5R1lYTjBZU2gwWjNST2IzUmhkR2x2YmlrcElDOHZJSFJvWlNCallYTmxJRzltSUVoRlRFMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym5abGNuUklaV3h0S0hSbmRFNXZkR0YwYVc5dUtUdGNiaUFnSUNCbGJITmxJQzh2SUhSb2FYTXVhWE5JWld4dEtDa2dKaVlnZEdocGN5NTBiMU5sY0dGeVlYUnZjaWgwWjNST2IzUmhkR2x2YmlsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SSVpXeHRLSFJuZEU1dmRHRjBhVzl1TENCMFozUlRaWEJoY21GMGIzSWhLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loamIydzZJRVJITGtOdmJIVnRiaWtnZTF4dUlDQWdJSE4xY0dWeUtHTnZiQ2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJy4uL3ZpZXdlcnMvd2ViLWxvZ28nO1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QWxpZ25lZFNlcXVlbmNlcyhwZXB0aWRlQ29sdW1uKSB7XG4gICAgY29uc3Qgc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyRm9yQ29sdW1uKHBlcHRpZGVDb2x1bW4pO1xuICAgIGNvbnN0IGNvbExlbiA9IHBlcHRpZGVDb2x1bW4ubGVuZ3RoO1xuICAgIGNvbnN0IHJlc3VsdERmID0gREcuRGF0YUZyYW1lLmNyZWF0ZShjb2xMZW4pO1xuICAgIGxldCBtb25vbWVyTGlzdCA9IHNwbGl0dGVyKHBlcHRpZGVDb2x1bW4uZ2V0KDApKTtcbiAgICBjb25zdCBjb2x1bW5MaXN0ID0gW107XG4gICAgLy8gY3JlYXRlIGNvbHVtbnMgYW5kIGZpbGwgdGhlIGZpcnN0IHJvdyBmb3IgZmFzdGVyIHZhbHVlcyBmaWxsaW5nIGluIHRoZSBuZXh0IGxvb3BcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHJlc3VsdERmLmNvbHVtbnMuYWRkTmV3U3RyaW5nKChpICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbC5zZXQoMCwgbW9ub21lckxpc3RbaV0gfHwgJy0nLCBmYWxzZSk7XG4gICAgICAgIGNvbHVtbkxpc3QucHVzaChjb2wpO1xuICAgIH1cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDE7IHJvd0luZGV4IDwgY29sTGVuOyByb3dJbmRleCsrKSB7XG4gICAgICAgIG1vbm9tZXJMaXN0ID0gc3BsaXR0ZXIocGVwdGlkZUNvbHVtbi5nZXQocm93SW5kZXgpKTtcbiAgICAgICAgbW9ub21lckxpc3QuZm9yRWFjaCgobW9ub21lciwgY29sSW5kZXgpID0+IGNvbHVtbkxpc3RbY29sSW5kZXhdLnNldChyb3dJbmRleCwgbW9ub21lciB8fCAnLScsIGZhbHNlKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHREZjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzQnNhWFIwWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp6Y0d4cGRIUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJReXhQUVVGUExFVkJRVU1zVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVVMVF5eE5RVUZOTEZWQlFWVXNjVUpCUVhGQ0xFTkJRVU1zWVVGQlowTTdTVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlF6ZEVMRTFCUVUwc1RVRkJUU3hIUVVGSExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEY0VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkZMRU5CUVVNc1EwRkJRenRKUVVOc1JDeE5RVUZOTEZWQlFWVXNSMEZCZDBJc1JVRkJSU3hEUVVGRE8wbEJSVE5ETEcxR1FVRnRSanRKUVVOdVJpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6bEVMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZWtNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTjBRanRKUVVWRUxFdEJRVXNzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZMRkZCUVZFc1IwRkJSeXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdVVUZEY0VRc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJSU3hEUVVGRExFTkJRVU03VVVGRGNrUXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTjJSenRKUVVWRUxFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFkbFlreHZaMjk5SUdaeWIyMGdKeTR1TDNacFpYZGxjbk12ZDJWaUxXeHZaMjhuTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MzQnNhWFJCYkdsbmJtVmtVMlZ4ZFdWdVkyVnpLSEJsY0hScFpHVkRiMngxYlc0NklFUkhMa052YkhWdGJqeHpkSEpwYm1jK0tUb2dSRWN1UkdGMFlVWnlZVzFsSUh0Y2JpQWdZMjl1YzNRZ2MzQnNhWFIwWlhJZ1BTQlhaV0pNYjJkdkxtZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLSEJsY0hScFpHVkRiMngxYlc0cE8xeHVJQ0JqYjI1emRDQmpiMnhNWlc0Z1BTQndaWEIwYVdSbFEyOXNkVzF1TG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnY21WemRXeDBSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHTnZiRXhsYmlrN1hHNGdJR3hsZENCdGIyNXZiV1Z5VEdsemRDQTlJSE53YkdsMGRHVnlLSEJsY0hScFpHVkRiMngxYlc0dVoyVjBLREFwSVNrN1hHNGdJR052Ym5OMElHTnZiSFZ0Ymt4cGMzUTZJRVJITGtOdmJIVnRianh6ZEhKcGJtYytXMTBnUFNCYlhUdGNibHh1SUNBdkx5QmpjbVZoZEdVZ1kyOXNkVzF1Y3lCaGJtUWdabWxzYkNCMGFHVWdabWx5YzNRZ2NtOTNJR1p2Y2lCbVlYTjBaWElnZG1Gc2RXVnpJR1pwYkd4cGJtY2dhVzRnZEdobElHNWxlSFFnYkc5dmNGeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUcxdmJtOXRaWEpNYVhOMExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNJRDBnY21WemRXeDBSR1l1WTI5c2RXMXVjeTVoWkdST1pYZFRkSEpwYm1jb0tHa2dLeUF4S1M1MGIxTjBjbWx1WnlncEtUdGNiaUFnSUNCamIyd3VjMlYwS0RBc0lHMXZibTl0WlhKTWFYTjBXMmxkSUh4OElDY3RKeXdnWm1Gc2MyVXBPMXh1SUNBZ0lHTnZiSFZ0Ymt4cGMzUXVjSFZ6YUNoamIyd3BPMXh1SUNCOVhHNWNiaUFnWm05eUlDaHNaWFFnY205M1NXNWtaWGdnUFNBeE95QnliM2RKYm1SbGVDQThJR052YkV4bGJqc2djbTkzU1c1a1pYZ3JLeWtnZTF4dUlDQWdJRzF2Ym05dFpYSk1hWE4wSUQwZ2MzQnNhWFIwWlhJb2NHVndkR2xrWlVOdmJIVnRiaTVuWlhRb2NtOTNTVzVrWlhncElTazdYRzRnSUNBZ2JXOXViMjFsY2t4cGMzUXVabTl5UldGamFDZ29iVzl1YjIxbGNpd2dZMjlzU1c1a1pYZ3BJRDArSUdOdmJIVnRia3hwYzNSYlkyOXNTVzVrWlhoZExuTmxkQ2h5YjNkSmJtUmxlQ3dnYlc5dWIyMWxjaUI4ZkNBbkxTY3NJR1poYkhObEtTazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjbVZ6ZFd4MFJHWTdYRzU5WEc0Z0lDSmRmUT09IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgbm90YXRpb24gdW5pdHMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgVW5pdHNIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb2wpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uID0gY29sO1xuICAgICAgICBjb25zdCB1bml0cyA9IHRoaXMuX2NvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgICAgICBpZiAodW5pdHMgIT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl91bml0cyA9IHVuaXRzO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuaXRzIGFyZSBub3Qgc3BlY2lmaWVkIGluIGNvbHVtbicpO1xuICAgICAgICB0aGlzLl9ub3RhdGlvbiA9IHRoaXMuZ2V0Tm90YXRpb24oKTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEdhcFN5bWJvbCA9ICh0aGlzLmlzRmFzdGEoKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAodGhpcy5pc0hlbG0oKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNIDpcbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXJ9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2wpIHtcbiAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zhc3RhIGNvbHVtbiBtdXN0IGJlIE1BQ1JPTU9MRUNVTEUnKTtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKGNvbCwgNSwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBzZXFUeXBlID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbXCJQVFwiIC8qIEFMUEhBQkVULlBUICovLCBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICAgICAgW1wiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovLCBVbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldF0sXG4gICAgICAgICAgICBbXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi8sIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlcy5tYXAoKGMpID0+IFdlYkxvZ28uZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KHN0YXRzLmZyZXEsIGNbMV0pKTtcbiAgICAgICAgY29uc3QgbWF4Q29zID0gTWF0aC5tYXgoLi4uYWxwaGFiZXRDYW5kaWRhdGVzU2ltKTtcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBtYXhDb3MgPiAwLjY1ID8gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzBdIDogJ1VOJztcbiAgICAgICAgY29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQsIHNlcVR5cGUpO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0LCBhbHBoYWJldCk7XG4gICAgfVxuICAgIGdldCB1bml0cygpIHsgcmV0dXJuIHRoaXMuX3VuaXRzOyB9XG4gICAgZ2V0IGNvbHVtbigpIHsgcmV0dXJuIHRoaXMuX2NvbHVtbjsgfVxuICAgIGdldCBub3RhdGlvbigpIHsgcmV0dXJuIHRoaXMuX25vdGF0aW9uOyB9XG4gICAgZ2V0IGRlZmF1bHRHYXBTeW1ib2woKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sOyB9XG4gICAgZ2V0IHNlcGFyYXRvcigpIHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIGlmIChzZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gc2VwYXJhdG9yO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcGFyYXRvciBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIGdldCBhbGlnbmVkKCkge1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBpZiAoYWxpZ25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsaWduZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbGlnbmVkIG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQWxwaGFiZXQgbmFtZSAodXBwZXIgY2FzZSkgKi9cbiAgICBnZXQgYWxwaGFiZXQoKSB7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0KTtcbiAgICAgICAgaWYgKGFscGhhYmV0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxwaGFiZXQudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KHRoaXMuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpKTtcbiAgICAgICAgICAgIHJldHVybiBhbHBoYWJldFNpemU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYWxwaGFiZXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi86XG4gICAgICAgICAgICAgICAgY2FzZSBcIlJOQVwiIC8qIEFMUEhBQkVULlJOQSAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJ05UJy5gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9Jy5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldElzTXVsdGljaGFyKCkge1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovIHx8IHRoaXMuYWxwaGFiZXQgPT0gXCJVTlwiIC8qIEFMUEhBQkVULlVOICovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpID09ICd0cnVlJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0Zhc3RhKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgaXNTZXBhcmF0b3IoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIGlzSGVsbSgpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICBpc1JuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdSTkEnOyB9XG4gICAgaXNEbmEoKSB7IHJldHVybiB0aGlzLmFscGhhYmV0ID09PSAnRE5BJzsgfVxuICAgIGlzUGVwdGlkZSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdQVCc7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0aGlzLm5vdGF0aW9uKTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLkNFTExfUkVOREVSRVIsICdNYWNyb21vbGVjdWxlJyk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0ID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRTaXplKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUsIHNyY0FscGhhYmV0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRJc011bHRpY2hhcilcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhciwgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLlRBR1MgPSB7XG4gICAgYWxpZ25lZDogJ2FsaWduZWQnLFxuICAgIGFscGhhYmV0OiAnYWxwaGFiZXQnLFxuICAgIGFscGhhYmV0U2l6ZTogJy5hbHBoYWJldFNpemUnLFxuICAgIGFscGhhYmV0SXNNdWx0aWNoYXI6ICcuYWxwaGFiZXRJc011bHRpY2hhcicsXG4gICAgc2VwYXJhdG9yOiAnc2VwYXJhdG9yJyxcbn07XG5Vbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdCA9IHtcbiAgICBIRUxNOiAnKicsXG4gICAgU0VQQVJBVE9SOiAnJyxcbiAgICBGQVNUQTogJy0nLFxufTtcblVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoW1xuICAgICdHJywgJ0wnLCAnWScsICdTJywgJ0UnLCAnUScsICdEJywgJ04nLCAnRicsICdBJyxcbiAgICAnSycsICdSJywgJ0gnLCAnQycsICdWJywgJ1AnLCAnVycsICdJJywgJ00nLCAnVCcsXG5dKTtcblVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1QnXSk7XG5Vbml0c0hhbmRsZXIuUm5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdVJ10pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cGRITXRhR0Z1Wkd4bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5WdWFYUnpMV2hoYm1Sc1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVsMFF5eFBRVUZQTEVWQlFVTXNUMEZCVHl4RlFVRmpMRTFCUVUwc2NVSkJRWEZDTEVOQlFVTTdRVUZuUW5wRUxHbEZRVUZwUlR0QlFVTnFSU3hOUVVGTkxFOUJRVThzV1VGQldUdEpRV2xQZGtJc1dVRkJiVUlzUjBGQll6dFJRVU12UWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU51UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF5OURMRWxCUVVrc1MwRkJTeXhMUVVGTExFbEJRVWs3V1VGRGFFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03TzFsQlJYQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVOQlFXMURMRU5CUVVNc1EwRkJRenRSUVVOMlJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU53UXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNKR0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVWc1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU5tTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVazdiMEpCUTJoR0xGRkJRVkVzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUTNoRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRUUVVNNVJEdFJRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVRkZPMWxCUTJoRkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0blFrRkRaaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSk8yOUNRVU5vUml4UlFVRlJMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUXk5RUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEzSkZPMGxCUTBnc1EwRkJRenRKUVhCUFRTeE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUjBGQll6dFJRVU5vUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiME5CUVc5RExFTkJRVU1zUTBGQlF6dFJRVVY0UkN4TlFVRk5MRXRCUVVzc1IwRkJaMElzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRTBRanRaUVVOc1JDeDVRa0ZCWXl4WlFVRlpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdXVUZEYUVRc01rSkJRV1VzV1VGQldTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRemRETERKQ1FVRmxMRmxCUVZrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0VFFVTTVReXhEUVVGRE8xRkJSVVlzWjBSQlFXZEVPMUZCUTJoRUxFMUJRVTBzY1VKQlFYRkNMRWRCUVdFc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVTTFSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUlhKSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExDdENRVUZwUWl4RFFVRkRPMUZCUXpGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlVRc1NVRkJZeXhMUVVGTExFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWeVJDeEpRVUZqTEUxQlFVMHNTMEZCWjBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXhSQ3hKUVVGWExGRkJRVkVzUzBGQlpTeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVEZFTEVsQlFWY3NaMEpCUVdkQ0xFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYaEZMRWxCUVZjc1UwRkJVenRSUVVOc1FpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NVMEZCVXl4TFFVRkxMRWxCUVVrN1dVRkRjRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdPMWxCUldwQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRc1NVRkJWeXhQUVVGUE8xRkJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE9VUXNTVUZCU1N4UFFVRlBMRXRCUVVzc1NVRkJTU3hGUVVGRk8xbEJRM0JDTEU5QlFVOHNUMEZCVHl4RFFVRkRPMU5CUTJoQ08yRkJRVTA3V1VGRFRDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdVMEZEZUVNN1NVRkRTQ3hEUVVGRE8wbEJSVVFzYVVOQlFXbERPMGxCUTJwRExFbEJRVmNzVVVGQlVUdFJRVU5xUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1VVRkJVU3hMUVVGTExFbEJRVWtzUlVGQlJUdFpRVU55UWl4UFFVRlBMRkZCUVZFc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFRRVU12UWp0aFFVRk5PMWxCUTB3c1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRE8xTkJRM3BETzBsQlEwZ3NRMEZCUXp0SlFVVk5MR1ZCUVdVN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaU3hGUVVGRk8xbEJRMnhGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYkVZc1QwRkJUeXhaUVVGWkxFTkJRVU03VTBGRGNrSTdZVUZCVFR0WlFVTk1MRkZCUVZFc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdG5Ra0ZEZGtJN2IwSkJRMFVzVDBGQlR5eEZRVUZGTEVOQlFVTTdaMEpCUTFvc09FSkJRV3RDTzJkQ1FVTnNRanR2UWtGRFJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hMUVVGTExFbEJRVWs3YjBKQlExQXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMjlDUVVNeFF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXRHR2UWtGRFJTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGRDUVVGM1FpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRU5CUVVNc1EwRkJRenRoUVVNMVJEdFRRVU5HTzBsQlEwZ3NRMEZCUXp0SlFVVk5MSE5DUVVGelFqdFJRVU16UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEaENRVUZwUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEQkNRVUZsTEVWQlFVVTdXVUZEYkVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRE8xTkJRelZGTzJGQlFVMDdXVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08wbEJRMGdzUTBGQlF6dEpRVVZOTEU5QlFVOHNTMEZCWXl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxHbERRVUZ0UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVdlJDeFhRVUZYTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3g1UTBGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZka1VzVFVGQlRTeExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc0swSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRkRUxFdEJRVXNzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ3UkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZjRVFzVTBGQlV5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUbEVMRFJFUVVFMFJEdEpRVU0xUkRzN1QwRkZSenRKUVVOUExGZEJRVmM3VVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRM0pFTEc5RFFVRnpRanRoUVVOdVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTeHpRMEZCYjBJN1dVRkRPVVFzTkVOQlFUQkNPMkZCUTNaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxEUkNRVUZsTzFsQlEzcEVMR3REUVVGeFFqczdXVUZGY2tJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3c0UWtGQk9FSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE4wWXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOUExGbEJRVmtzUTBGQlF5eGpRVUYzUWp0UlFVTTNReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVkQlFVY3NZMEZCWXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOd1JpeFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETzFGQlF6ZERMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF5OURMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NWMEZCVnp0WlFVTmlMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRk5VUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVGTEVsQlFVa3NaVUZCWlR0WlFVTnFRaXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYQkZMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRGFrWXNTVUZCU1N4elFrRkJjMEk3V1VGRGVFSXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1VVRkZiRVlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJjMEk3VVVGREwwTXNUVUZCVFN4SFFVRkhMRWRCUVdsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRjRU1zVDBGQlR5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TFFVRmhPMUZCUXpWRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkROVUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NaMGRCUVcxRUxFTkJRVU03VVVGRGNrVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhaRExFMUJRVTBzWlVGQlpTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SaXhQUVVGUExHVkJRV1VzUTBGQlF6dEpRVU42UWl4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc2MwSkJRWE5DTEVOQlEyeERMRWRCUVZjc1JVRkRXQ3hKUVVGWkxFVkJRMW9zUzBGQllUdFJRVVZpTERSRlFVRTBSVHRSUVVNMVJTd3lRa0ZCTWtJN1VVRkRNMElzSzBOQlFTdERPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETzFsQlEzcERMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVOQlFYVkRMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemxGTEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTTdVVUZETjBNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU4yUXl4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZET3p0QlFUbE9jMElzYVVKQlFVa3NSMEZCUnp0SlFVTTFRaXhQUVVGUExFVkJRVVVzVTBGQlV6dEpRVU5zUWl4UlFVRlJMRVZCUVVVc1ZVRkJWVHRKUVVOd1FpeFpRVUZaTEVWQlFVVXNaVUZCWlR0SlFVTTNRaXh0UWtGQmJVSXNSVUZCUlN4elFrRkJjMEk3U1VGRE0wTXNVMEZCVXl4RlFVRkZMRmRCUVZjN1EwRkRka0lzUTBGQlF6dEJRVTEzUWl4dFEwRkJjMElzUjBGQlJ6dEpRVU5xUkN4SlFVRkpMRVZCUVVVc1IwRkJSenRKUVVOVUxGTkJRVk1zUlVGQlJTeEZRVUZGTzBsQlEySXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRE8wRkJSWEZDTEdsRFFVRnZRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETzBsQlEzQkVMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjN1NVRkRhRVFzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ6dERRVU5xUkN4RFFVRkRMRU5CUVVNN1FVRkRiMElzTmtKQlFXZENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEVMRFpDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVjYm1sdGNHOXlkQ0I3VjJWaVRHOW5ieXdnVTJWeFEyOXNVM1JoZEhOOUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVYRzR2S2lvZ1pXNTFiU0IwZVhCbElIUnZJSE5wYlhCc2FXWjVJSE5sZEhScGJtY2dYQ0oxYzJWeUxXWnlhV1Z1Wkd4NVhDSWdibTkwWVhScGIyNGdhV1lnYm1WalpYTnpZWEo1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnWlc1MWJTQk9UMVJCVkVsUFRpQjdYRzRnSUVaQlUxUkJJRDBnSjJaaGMzUmhKeXhjYmlBZ1UwVlFRVkpCVkU5U0lEMGdKM05sY0dGeVlYUnZjaWNzWEc0Z0lFaEZURTBnUFNBbmFHVnNiU2NzWEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbGJuVnRJRUZNVUVoQlFrVlVJSHRjYmlBZ1JFNUJJRDBnSjBST1FTY3NYRzRnSUZKT1FTQTlJQ2RTVGtFbkxGeHVJQ0JRVkNBOUlDZFFWQ2NzWEc0Z0lGVk9JRDBnSjFWT0p5eGNibjFjYmx4dUx5b3FJRU5zWVhOeklHWnZjaUJvWVc1a2JHbHVaeUJ1YjNSaGRHbHZiaUIxYm1sMGN5QnBiaUJOWVdOeWIyMXZiR1ZqZFd4bElHTnZiSFZ0Ym5NZ0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCVmJtbDBjMGhoYm1Sc1pYSWdlMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRlJCUjFNZ1BTQjdYRzRnSUNBZ1lXeHBaMjVsWkRvZ0oyRnNhV2R1WldRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwT2lBbllXeHdhR0ZpWlhRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwVTJsNlpUb2dKeTVoYkhCb1lXSmxkRk5wZW1VbkxGeHVJQ0FnSUdGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJNklDY3VZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWNzWEc0Z0lDQWdjMlZ3WVhKaGRHOXlPaUFuYzJWd1lYSmhkRzl5Snl4Y2JpQWdmVHRjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZoWkc5dWJIa2dYMk52YkhWdGJqb2dSRWN1UTI5c2RXMXVPeUF2THlCMGFHVWdZMjlzZFcxdUlIUnZJR0psSUdOdmJuWmxjblJsWkZ4dUlDQndjbTkwWldOMFpXUWdYM1Z1YVhSek9pQnpkSEpwYm1jN0lDOHZJSFZ1YVhSekxDQnZaaUIwYUdVZ1ptOXliU0JtWVhOMFlTd2djMlZ3WVhKaGRHOXlYRzRnSUhCeWIzUmxZM1JsWkNCZmJtOTBZWFJwYjI0NklFNVBWRUZVU1U5T095QXZMeUJqZFhKeVpXNTBJRzV2ZEdGMGFXOXVJQ2gzYVhSb2IzVjBJRHBUUlZFNlRsUXNJR1YwWXk0cFhHNGdJSEJ5YjNSbFkzUmxaQ0JmWkdWbVlYVnNkRWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5PMXh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUY5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUWdQU0I3WEc0Z0lDQWdTRVZNVFRvZ0p5b25MRnh1SUNBZ0lGTkZVRUZTUVZSUFVqb2dKeWNzWEc0Z0lDQWdSa0ZUVkVFNklDY3RKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkJsY0hScFpHVkdZWE4wWVVGc2NHaGhZbVYwSUQwZ2JtVjNJRk5sZENoYlhHNGdJQ0FnSjBjbkxDQW5UQ2NzSUNkWkp5d2dKMU1uTENBblJTY3NJQ2RSSnl3Z0owUW5MQ0FuVGljc0lDZEdKeXdnSjBFbkxGeHVJQ0FnSUNkTEp5d2dKMUluTENBblNDY3NJQ2RESnl3Z0oxWW5MQ0FuVUNjc0lDZFhKeXdnSjBrbkxDQW5UU2NzSUNkVUp5eGNiaUFnWFNrN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1JHNWhSbUZ6ZEdGQmJIQm9ZV0psZENBOUlHNWxkeUJUWlhRb1d5ZEJKeXdnSjBNbkxDQW5SeWNzSUNkVUoxMHBPMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkp1WVVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBLRnNuUVNjc0lDZERKeXdnSjBjbkxDQW5WU2RkS1R0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lHbG1JQ2hqYjJ3dWMyVnRWSGx3WlNBaFBUMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkR1lYTjBZU0JqYjJ4MWJXNGdiWFZ6ZENCaVpTQk5RVU5TVDAxUFRFVkRWVXhGSnlrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZEdGMGN6b2dVMlZ4UTI5c1UzUmhkSE1nUFNCWFpXSk1iMmR2TG1kbGRGTjBZWFJ6S0dOdmJDd2dOU3dnVjJWaVRHOW5ieTV6Y0d4cGRIUmxja0Z6Um1GemRHRXBPMXh1SUNBZ0lHTnZibk4wSUhObGNWUjVjR1VnUFNCemRHRjBjeTV6WVcxbFRHVnVaM1JvSUQ4Z0oxTkZVUzVOVTBFbklEb2dKMU5GVVNjN1hHNWNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE02SUZ0emRISnBibWNzSUZObGREeHpkSEpwYm1jK1hWdGRJRDBnVzF4dUlDQWdJQ0FnVzBGTVVFaEJRa1ZVTGxCVUxDQlZibWwwYzBoaGJtUnNaWEl1VUdWd2RHbGtaVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxrUk9RU3dnVlc1cGRITklZVzVrYkdWeUxrUnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxsSk9RU3dnVlc1cGRITklZVzVrYkdWeUxsSnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUYwN1hHNWNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpMbTFoY0NoY2JpQWdJQ0FnSUNoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekZkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUcxaGVFTnZjeUErSURBdU5qVWdQeUJoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5iWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdExtbHVaR1Y0VDJZb2JXRjRRMjl6S1YxYk1GMGdPaUFuVlU0bk8xeHVYRzRnSUNBZ1kyOXNMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCT1QxUkJWRWxQVGk1R1FWTlVRU2s3WEc0Z0lDQWdZMjlzTG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkdsbmJtVmtMQ0J6WlhGVWVYQmxLVHRjYmlBZ0lDQmpiMnd1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBMQ0JoYkhCb1lXSmxkQ2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1oyVjBJSFZ1YVhSektDazZJSE4wY21sdVp5QjdJSEpsZEhWeWJpQjBhR2x6TGw5MWJtbDBjenNnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhRZ1kyOXNkVzF1S0NrNklFUkhMa052YkhWdGJpQjdJSEpsZEhWeWJpQjBhR2x6TGw5amIyeDFiVzQ3SUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUc1dmRHRjBhVzl1S0NrNklFNVBWRUZVU1U5T0lIc2djbVYwZFhKdUlIUm9hWE11WDI1dmRHRjBhVzl1T3lCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCa1pXWmhkV3gwUjJGd1UzbHRZbTlzS0NrNklITjBjbWx1WnlCN0lISmxkSFZ5YmlCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhCaGNtRjBiM0lvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0JwWmlBb2MyVndZWEpoZEc5eUlDRTlQU0J1ZFd4c0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhObGNHRnlZWFJ2Y2p0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFObGNHRnlZWFJ2Y2lCdWIzUWdjMlYwSnlrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR0ZzYVdkdVpXUW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCaGJHbG5ibVZrSUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwVkdGbktGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExtRnNhV2R1WldRcE8xeHVJQ0FnSUdsbUlDaGhiR2xuYm1Wa0lDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHBaMjVsWkR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVZV2NnWVd4cFoyNWxaQ0J1YjNRZ2MyVjBKeWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcUlFRnNjR2hoWW1WMElHNWhiV1VnS0hWd2NHVnlJR05oYzJVcElDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ1lXeHdhR0ZpWlhRb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUhSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tHRnNjR2hoWW1WMElDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHdhR0ZpWlhRdWRHOVZjSEJsY2tOaGMyVW9LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVVlXY2dZV3h3YUdGaVpYUWdibTkwSUhObGRDY3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRnNjR2hoWW1WMFUybDZaU0E5SUhCaGNuTmxTVzUwS0hSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVXBLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhiSEJvWVdKbGRGTnBlbVU3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTVoYkhCb1lXSmxkQ2tnZTF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNVFWRHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJREl3TzF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNUVUa0U2WEc0Z0lDQWdJQ0JqWVhObElFRk1VRWhCUWtWVUxsSk9RVHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRFE3WEc0Z0lDQWdJQ0JqWVhObElDZE9WQ2M2WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuVGxRbkxtQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdORHRjYmlBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2N1WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSW9LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDBnVGs5VVFWUkpUMDR1U0VWTVRTQjhmQ0IwYUdsekxtRnNjR2hoWW1WMElEMDlJRUZNVUVoQlFrVlVMbFZPS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMngxYlc0dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcElEMDlJQ2QwY25WbEp6dGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCcGMwWmhjM1JoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVJrRlRWRUU3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5UWlhCaGNtRjBiM0lvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJN0lIMWNibHh1SUNCd2RXSnNhV01nYVhOSVpXeHRLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1U0VWTVRUc2dmVnh1WEc0Z0lIQjFZbXhwWXlCcGMxSnVZU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUNkU1RrRW5PeUI5WEc1Y2JpQWdjSFZpYkdsaklHbHpSRzVoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTVoYkhCb1lXSmxkQ0E5UFQwZ0owUk9RU2M3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5RWlhCMGFXUmxLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnSjFCVUp6c2dmVnh1WEc0Z0lDOHFLaUJCYzNOdlkybGhkR1VnYm05MFlYUnBiMjRnZEhsd1pYTWdkMmwwYUNCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCMWJtbDBjeUFxTDF4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUazlVUVZSSlQwNTlJQ0FnSUNCT2IzUmhkR2x2YmlCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElIVnVhWFJ6SUhSNWNHVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST2IzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1R1FWTlVRVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1SVJVeE5LU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNUlSVXhOTzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCb1lYTWdkVzVsZUhCbFkzUmxaQ0J1YjNSaGRHbHZiaUFuSkh0MGFHbHpMblZ1YVhSemZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJR1Z0Y0hSNUlHTnZiSFZ0YmlCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUc1dmRHRjBhVzl1SUhSNWNHVWdZVzVrSUhSb1pTQnpZVzFsWEc0Z0lDQXFJR3hsYm1kMGFDQmhjeUJqYjJ4MWJXNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRPVDFSQlZFbFBUbjBnZEdGeVoyVjBUbTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlIUm9hWE11WTI5c2RXMXVPMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJR052YkM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2JtRnRaU0E5SUhSaGNtZGxkRTV2ZEdGMGFXOXVMblJ2VEc5M1pYSkRZWE5sS0NrZ0t5QW5LQ2NnS3lCamIyd3VibUZ0WlNBcklDY3BKenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMnhPWVcxbElEMGdZMjlzTG1SaGRHRkdjbUZ0WlM1amIyeDFiVzV6TG1kbGRGVnVkWE5sWkU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0NkemRISnBibWNuTENCdVpYZERiMnhPWVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMGFHbHpMbTV2ZEdGMGFXOXVLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVEwVk1URjlTUlU1RVJWSkZVaXdnSjAxaFkzSnZiVzlzWldOMWJHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElITnlZMEZzY0doaFltVjBJRDBnWTI5c0xtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tITnlZMEZzY0doaFltVjBLVnh1SUNBZ0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRDd2djM0pqUVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjM0pqUVd4d2FHRmlaWFJUYVhwbElEMGdZMjlzTG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRk5wZW1VcFhHNGdJQ0FnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTd2djM0pqUVd4d2FHRmlaWFJUYVhwbEtUdGNibHh1SUNBZ0lHTnZibk4wSUhOeVkwRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1Z4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5TENCemNtTkJiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGREYjJ4MWJXNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lHVnRjSFI1SUdOdmJIVnRiaUIxYzJsdVp5QjBaVzF3YkdGMFpVTnZiQ0JoY3lCaElIUmxiWEJzWVhSbFhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSRWN1UTI5c2RXMXVmU0IwWlcxd2JHRjBaVU52YkNBZ2RHaGxJSEJ5YjNCbGNuUnBaWE1nWVc1a0lIVnVhWFJ6SUc5bUlIUm9hWE1nWTI5c2RXMXVJR0Z5WlNCMWMyVmtJR0Z6SUdGY2JpQWdJQ29nZEdWdGNHeGhkR1VnZEc4Z1luVnBiR1FnZEdobElHNWxkeUJ2Ym1WY2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhST1pYZERiMngxYlc0b2RHVnRjR3hoZEdWRGIydzZJRVJITGtOdmJIVnRiaWs2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzT2lCVmJtbDBjMGhoYm1Sc1pYSWdQU0J1WlhjZ1ZXNXBkSE5JWVc1a2JHVnlLSFJsYlhCc1lYUmxRMjlzS1R0Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhST2IzUmhkR2x2YmlBOUlHTnZiQzV1YjNSaGRHbHZianRjYmlBZ0lDQnlaWFIxY200Z1kyOXNMbWRsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQm9aV3h3WlhJZ1puVnVZM1JwYjI0Z1kyaGxZMnRwYm1jZ2RHaGxJSFpoYkdsa2FYUjVJRzltSUhSb1pTQW5kVzVwZEhNbklITjBjbWx1WjF4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RXNXBkSE1nSUhSb1pTQnpkSEpwYm1jZ2RHOGdZbVVnZG1Gc2FXUmhkR1ZrWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklIVnVhWFJ6VTNSeWFXNW5TWE5XWVd4cFpDaDFibWwwY3pvZ2MzUnlhVzVuS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnZFc1cGRITWdQU0IxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJR052Ym5OMElIQnlaV1pwZUdWeklEMGdXMDVQVkVGVVNVOU9Ma1pCVTFSQkxDQk9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXNJRTVQVkVGVVNVOU9Ma2hGVEUxZE8xeHVJQ0FnSUdOdmJuTjBJSEJ2YzNSbWFYaGxjeUE5SUZzbmNtNWhKeXdnSjJSdVlTY3NJQ2R3ZENkZE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRRM0pwZEdWeWFXOXVJRDBnY0hKbFptbDRaWE11YzI5dFpTZ29jQ2tnUFQ0Z2RXNXBkSE11YzNSaGNuUnpWMmwwYUNod0xuUnZURzkzWlhKRFlYTmxLQ2twS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjSEpsWm1sNFEzSnBkR1Z5YVc5dU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5OMGNuVmpkQ0JoSUc1bGR5QmpiMngxYlc0Z2IyWWdjMlZ0WVc1MGFXTWdkSGx3WlNCTlFVTlNUMDFQVEVWRFZVeEZJR1p5YjIwZ2RHaGxJR3hwYzNRZ2IyWmNiaUFnSUNvZ2MzQmxZMmxtYVdWa0lIQmhjbUZ0WlhSbGNuTmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJQ0FnSUd4bGJpQWdkR2hsSUd4bGJtZDBhQ0J2WmlCMGFHVWdibVYzSUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ0lDQWdibUZ0WlNBZ2RHaGxJRzVoYldVZ2IyWWdkR2hsSUc1bGR5QmpiMngxYlc1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJQ0FnSUhWdWFYUnpJQ0IwYUdVZ2RXNXBkSE1nYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzVHY205dFVHRnlZVzF6S0Z4dUlDQWdJR3hsYmpvZ2JuVnRZbVZ5TEZ4dUlDQWdJRzVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0IxYm1sMGN6b2djM1J5YVc1blhHNGdJQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1YwRlNUa2xPUnpvZ2FXNGdkR2hwY3lCcGJYQnNaVzFsYm5SaGRHbHZiaUJwY3lCcGN5QnBiWEJ2YzNOcFlteGxJSFJ2SUhabGNtbG1lU0IwYUdVZ2RXNXBjWFZsYm1WemMxeHVJQ0FnSUM4dklHOW1JSFJvWlNCdVpYY2dZMjlzZFcxdUozTWdibUZ0WlZ4dUlDQWdJQzh2SUZSUFJFODZJSFpsY21sbWVTQjBhR1VnZG1Gc2FXUnBkSGtnYjJZZ2RXNXBkSE1nY0dGeVlXMWxkR1Z5WEc0Z0lDQWdhV1lnS0NGVmJtbDBjMGhoYm1Sc1pYSXVkVzVwZEhOVGRISnBibWRKYzFaaGJHbGtLSFZ1YVhSektTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblNXNTJZV3hwWkNCbWIzSnRZWFFnYjJZZ1hGd25kVzVwZEhOY1hDY2djR0Z5WVcxbGRHVnlKeWs3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdSRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2R6ZEhKcGJtY25MQ0J1WVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMWJtbDBjeWs3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkME52YkhWdGJqdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lIUm9hWE11WDJOdmJIVnRiaUE5SUdOdmJEdGNiaUFnSUNCamIyNXpkQ0IxYm1sMGN5QTlJSFJvYVhNdVgyTnZiSFZ0Ymk1MFlXZHpXMFJITGxSQlIxTXVWVTVKVkZOZE8xeHVJQ0FnSUdsbUlDaDFibWwwY3lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2FYTXVYM1Z1YVhSeklEMGdkVzVwZEhNN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVmJtbDBjeUJoY21VZ2JtOTBJSE53WldOcFptbGxaQ0JwYmlCamIyeDFiVzRuS1R0Y2JpQWdJQ0IwYUdsekxsOXViM1JoZEdsdmJpQTlJSFJvYVhNdVoyVjBUbTkwWVhScGIyNG9LVHRjYmlBZ0lDQjBhR2x6TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzSUQwZ0tIUm9hWE11YVhOR1lYTjBZU2dwS1NBL0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNoMGFHbHpMbWx6U0dWc2JTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMGdPbHh1SUNBZ0lDQWdJQ0JWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVUUlZCQlVrRlVUMUk3WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBVMmw2WlNrcElIdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtbHpTR1ZzYlNncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFWnZjaUJqYjJ4MWJXNGdKeVI3ZEdocGN5NWpiMngxYlc0dWJtRnRaWDBuSUc5bUlHNXZkR0YwYVc5dUlDY2tlM1JvYVhNdWJtOTBZWFJwYjI1OUp5QmdJQ3RjYmlBZ0lDQWdJQ0FnSUNCZ2RHRm5JQ2NrZTFWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpYMG5JR2x6SUcxaGJtUmhkRzl5ZVM1Z0tUdGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tGc25WVTRuWFM1cGJtTnNkV1JsY3loMGFHbHpMbUZzY0doaFltVjBLU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JHYjNJZ1kyOXNkVzF1SUNja2UzUm9hWE11WTI5c2RXMXVMbTVoYldWOUp5QnZaaUJoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2NnWUNBclhHNGdJQ0FnSUNBZ0lDQWdZSFJoWnlBbkpIdFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRGTnBlbVY5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbU52YkhWdGJpNTBZV2R6TG1oaGN5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLU2tnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YVhOSVpXeHRLQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUm05eUlHTnZiSFZ0YmlBbkpIdDBhR2x6TG1OdmJIVnRiaTV1WVcxbGZTY2diMllnYm05MFlYUnBiMjRnSnlSN2RHaHBjeTV1YjNSaGRHbHZibjBuSUdBZ0sxeHVJQ0FnSUNBZ0lDQWdJR0IwWVdjZ0p5UjdWVzVwZEhOSVlXNWtiR1Z5TGxSQlIxTXVZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjbjBuSUdseklHMWhibVJoZEc5eWVTNWdLVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLRnNuVlU0blhTNXBibU5zZFdSbGN5aDBhR2x6TG1Gc2NHaGhZbVYwS1NsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCR2IzSWdZMjlzZFcxdUlDY2tlM1JvYVhNdVkyOXNkVzF1TG01aGJXVjlKeUJ2WmlCaGJIQm9ZV0psZENBbkpIdDBhR2x6TG1Gc2NHaGhZbVYwZlNjZ1lDQXJYRzRnSUNBZ0lDQWdJQ0FnWUhSaFp5QW5KSHRWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5ZlNjZ2FYTWdiV0Z1WkdGMGIzSjVMbUFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSIsIi8vIERhdGEgc3RydWN0dXJlcyBmb3IgVi1Eb21haW4gcmVnaW9ucyBvZiBhbnRpYm9kaWVzXG5leHBvcnQgdmFyIFZkUmVnaW9uVHlwZTtcbihmdW5jdGlvbiAoVmRSZWdpb25UeXBlKSB7XG4gICAgVmRSZWdpb25UeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkZSXCJdID0gXCJmcmFtZXdvcmtcIjtcbiAgICBWZFJlZ2lvblR5cGVbXCJDRFJcIl0gPSBcImNkclwiO1xufSkoVmRSZWdpb25UeXBlIHx8IChWZFJlZ2lvblR5cGUgPSB7fSkpO1xuLyoqIERlc2NyaWJlcyBWLURPTUFJTiAoSUcgYW5kIFRSKSByZWdpb24gKG9mIG11bHRpcGxlIGFsaWdubWVudClcbiAqIGh0dHBzOi8vd3d3LmltZ3Qub3JnL0lNR1RTY2llbnRpZmljQ2hhcnQvTnVtYmVyaW5nL0lNR1RJR1ZMc3VwZXJmYW1pbHkuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb24ge1xuICAgIC8qKlxuICAgICAqIHN0YXJ0IGFuZCBwb3NpdGlvbiBhcmUgc3RyaW5ncyBiZWNhdXNlIHRoZXkgY29ycmVzcG9uZCB0byBwb3NpdGlvbiBuYW1lcyBhcyBjb2x1bW4gbmFtZXMgaW4gQU5BUkNJIG91dHB1dFxuICAgICAqIEBwYXJhbSB7VmRSZWdpb25UeXBlfSB0eXBlICBUeXBlIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgTmFtZSBvZiB0aGUgcmVnaW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYWluXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9yZGVyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvc2l0aW9uU3RhcnROYW1lICBSZWdpb24gc3RhcnQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25FbmROYW1lICBSZWdpb24gZW5kIHBvc2l0aW9uIChpbmNsdXNpdmUpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgbmFtZSwgY2hhaW4sIG9yZGVyLCBwb3NpdGlvblN0YXJ0TmFtZSwgcG9zaXRpb25FbmROYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RhcnROYW1lID0gcG9zaXRpb25TdGFydE5hbWU7XG4gICAgICAgIHRoaXMucG9zaXRpb25FbmROYW1lID0gcG9zaXRpb25FbmROYW1lO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5aa0xYSmxaMmx2Ym5NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzY1VSQlFYRkVPMEZCUlhKRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZsQlNWZzdRVUZLUkN4WFFVRlpMRmxCUVZrN1NVRkRkRUlzYlVOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXZENMRU5CUVVFN1NVRkRhRUlzTWtKQlFWY3NRMEZCUVR0QlFVTmlMRU5CUVVNc1JVRktWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWwyUWp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEZGQlFWRTdTVUZSYmtJN096czdPenM3TzA5QlVVYzdTVUZEU0N4WlFVRlpMRWxCUVd0Q0xFVkJRVVVzU1VGQldTeEZRVUZGTEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUTNoRkxHbENRVUY1UWl4RlFVRkZMR1ZCUVhWQ08xRkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVNelF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCRVlYUmhJSE4wY25WamRIVnlaWE1nWm05eUlGWXRSRzl0WVdsdUlISmxaMmx2Ym5NZ2IyWWdZVzUwYVdKdlpHbGxjMXh1WEc1bGVIQnZjblFnWlc1MWJTQldaRkpsWjJsdmJsUjVjR1VnZTF4dUlDQlZibXR1YjNkdUlEMGdKM1Z1YTI1dmQyNG5MRnh1SUNCR1VpQTlJQ2RtY21GdFpYZHZjbXNuTEZ4dUlDQkRSRklnUFNBblkyUnlKeXhjYm4xY2JseHVMeW9xSUVSbGMyTnlhV0psY3lCV0xVUlBUVUZKVGlBb1NVY2dZVzVrSUZSU0tTQnlaV2RwYjI0Z0tHOW1JRzExYkhScGNHeGxJR0ZzYVdkdWJXVnVkQ2xjYmlBcUlHaDBkSEJ6T2k4dmQzZDNMbWx0WjNRdWIzSm5MMGxOUjFSVFkybGxiblJwWm1salEyaGhjblF2VG5WdFltVnlhVzVuTDBsTlIxUkpSMVpNYzNWd1pYSm1ZVzFwYkhrdWFIUnRiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1SU1pXZHBiMjRnZTF4dUlDQjBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVTdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTJoaGFXNDZJSE4wY21sdVp6dGNiaUFnYjNKa1pYSTZJRzUxYldKbGNqdGNiaUFnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2NHOXphWFJwYjI1RmJtUk9ZVzFsT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSE4wWVhKMElHRnVaQ0J3YjNOcGRHbHZiaUJoY21VZ2MzUnlhVzVuY3lCaVpXTmhkWE5sSUhSb1pYa2dZMjl5Y21WemNHOXVaQ0IwYnlCd2IzTnBkR2x2YmlCdVlXMWxjeUJoY3lCamIyeDFiVzRnYm1GdFpYTWdhVzRnUVU1QlVrTkpJRzkxZEhCMWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFaa1VtVm5hVzl1Vkhsd1pYMGdkSGx3WlNBZ1ZIbHdaU0J2WmlCMGFHVWdjbVZuYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J1WVcxbElDQk9ZVzFsSUc5bUlIUm9aU0J5WldkcGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb1lXbHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNtUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1VGRHRnlkRTVoYldVZ0lGSmxaMmx2YmlCemRHRnlkQ0J3YjNOcGRHbHZiaUFvYVc1amJIVnphWFpsS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjRzl6YVhScGIyNUZibVJPWVcxbElDQlNaV2RwYjI0Z1pXNWtJSEJ2YzJsMGFXOXVJQ2hwYm1Oc2RYTnBkbVVwWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVXNJRzVoYldVNklITjBjbWx1Wnl3Z1kyaGhhVzQ2SUhOMGNtbHVaeXdnYjNKa1pYSTZJRzUxYldKbGNpeGNiaUFnSUNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlRvZ2MzUnlhVzVuTENCd2IzTnBkR2x2YmtWdVpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtTm9ZV2x1SUQwZ1kyaGhhVzQ3WEc0Z0lDQWdkR2hwY3k1dmNtUmxjaUE5SUc5eVpHVnlPMXh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnUFNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlR0Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVJXNWtUbUZ0WlNBOUlIQnZjMmwwYVc5dVJXNWtUbUZ0WlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHZlY3Rvckxlbmd0aCwgdmVjdG9yRG90UHJvZHVjdCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IEFtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlcyB9IGZyb20gJy4uL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXMgfSBmcm9tICcuLi9udWNsZW90aWRlcyc7XG5pbXBvcnQgeyBVbmtub3duU2VxUGFsZXR0ZXMgfSBmcm9tICcuLi91bmtub3duJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4uL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xudmFyIFBvc2l0aW9uSGVpZ2h0O1xuKGZ1bmN0aW9uIChQb3NpdGlvbkhlaWdodCkge1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiRW50cm9weVwiXSA9IFwiRW50cm9weVwiO1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiZnVsbFwiXSA9IFwiMTAwJVwiO1xufSkoUG9zaXRpb25IZWlnaHQgfHwgKFBvc2l0aW9uSGVpZ2h0ID0ge30pKTtcbi8qKkBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByIGRldmljZVBpeGVsUmF0aW9uXG4gKiBAcmV0dXJuIHtERy5Qb2ludH0gY2FudmFzIHJlbGF0ZWQgY3Vyc29yIHBvc2l0aW9uXG4gKi9cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uIChldmVudCwgcikge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBuZXcgREcuUG9pbnQoKGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQpICogciwgKGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCkgKiByKTtcbn07XG5ERy5SZWN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA8PSB4ICYmIHggPD0gdGhpcy5yaWdodCAmJiB0aGlzLnRvcCA8PSB5ICYmIHkgPD0gdGhpcy5ib3R0b207XG59O1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uTW9ub21lckluZm8ge1xuICAgIGNvbnN0cnVjdG9yKGNvdW50ID0gMCwgYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCkpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUG9zaXRpb25JbmZvIHtcbiAgICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHBvc2l0aW9uICgnMTExQScsICcxMTEuMScsIGV0YylcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VtRm9ySGVpZ2h0Q2FsYyBTdW0gb2YgYWxsIG1vbm9tZXIgY291bnRzIGZvciBoZWlnaHQgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcm93Q291bnQgQ291bnQgb2YgZWxlbWVudHMgaW4gY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gZnJlcSBmcmVxdWVuY3kgb2YgbW9ub21lcnMgaW4gcG9zaXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBmcmVxID0ge30sIHJvd0NvdW50ID0gMCwgc3VtRm9ySGVpZ2h0Q2FsYyA9IDApIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5mcmVxID0gZnJlcTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLnN1bUZvckhlaWdodENhbGMgPSBzdW1Gb3JIZWlnaHRDYWxjO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpZXdlcklkID0gLTE7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSAwO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLnZpZXdTdWJzID0gW107XG4gICAgICAgIHRoaXMudmlld2VySWQgPSBXZWJMb2dvLnZpZXdlckNvdW50O1xuICAgICAgICBXZWJMb2dvLnZpZXdlckNvdW50ICs9IDE7XG4gICAgICAgIHRoaXMudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNiAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiA0LCBtYXg6IDY0LCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5taW5IZWlnaHQgPSB0aGlzLmZsb2F0KCdtaW5IZWlnaHQnLCA1MCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiAyNTAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMuZmxvYXQoJ21heEhlaWdodCcsIDEwMCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiA1MDAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLmNvbnNpZGVyTnVsbFNlcXVlbmNlcyA9IHRoaXMuYm9vbCgnY29uc2lkZXJOdWxsU2VxdWVuY2VzJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdzdGFydFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdlbmRQb3NpdGlvbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maXhXaWR0aCA9IHRoaXMuYm9vbCgnZml4V2lkdGgnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJywgeyBjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ10gfSk7XG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCdob3Jpem9udGFsQWxpZ25tZW50JywgJ2NlbnRlcicsIHsgY2hvaWNlczogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCddIH0pO1xuICAgICAgICB0aGlzLmZpdEFyZWEgPSB0aGlzLmJvb2woJ2ZpdEFyZWEnLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zaHJpbmtFbXB0eVRhaWwgPSB0aGlzLmJvb2woJ3Nocmlua0VtcHR5VGFpbCcsIHRydWUpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPSB0aGlzLnN0cmluZygncG9zaXRpb25NYXJnaW5TdGF0ZScsICdhdXRvJywgeyBjaG9pY2VzOiBbJ2F1dG8nLCAnZW5hYmxlJywgJ29mZiddIH0pO1xuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSAwO1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUZvclBvc2l0aW9uTWFyZ2luID0gNDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gdGhpcy5pbnQoJ3Bvc2l0aW9uTWFyZ2luJywgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4sIHsgbWluOiAwLCBtYXg6IDE2IH0pO1xuICAgICAgICB0aGlzLnBvc2l0aW9uSGVpZ2h0ID0gdGhpcy5zdHJpbmcoJ3Bvc2l0aW9uSGVpZ2h0JywgUG9zaXRpb25IZWlnaHQuZnVsbCwgeyBjaG9pY2VzOiBbUG9zaXRpb25IZWlnaHQuZnVsbCwgUG9zaXRpb25IZWlnaHQuRW50cm9weV0gfSk7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5za2lwRW1wdHlQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbiA8PSB0aGlzLmVuZFBvc2l0aW9uID8gdGhpcy5lbmRQb3NpdGlvbiAtIHRoaXMuc3RhcnRQb3NpdGlvbiArIDEgOiAwO1xuICAgIH1cbiAgICBnZXQgcG9zaXRpb25XaWR0aFdpdGhNYXJnaW4oKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCh0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPT09ICdhdXRvJykgJiYgKCgoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSkgPT09IHRydWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aCArIHRoaXMucG9zaXRpb25NYXJnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2VuYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbldpZHRoICsgdGhpcy5wb3NpdGlvbk1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViTG9nbyBzZWNvbmQgaW5pdGlhbGl6YXRpb24hJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmhlbHBVcmwgPSAnL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvd2ViLWxvZ28ubWQnO1xuICAgICAgICAgICAgdGhpcy5tc2dIb3N0ID0gdWkuZGl2KCdObyBtZXNzYWdlJyk7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIHRoaXMuY2FudmFzID0gdWkuY2FudmFzKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmRpdihbdGhpcy5tc2dIb3N0LCB0aGlzLmNhbnZhc10pO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIgPSB1aS5yYW5nZVNsaWRlcigwLCAyMCwgMiwgNSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTJweCc7XG4gICAgICAgICAgICBjb25zdCBnZXRNb25vbWVyID0gKHApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBqUG9zID0gTWF0aC5mbG9vcihwLnggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgobSkgPT4gcG9zaXRpb24uZnJlcVttXS5ib3VuZHMuY29udGFpbnMocC54LCBwLnkpKTtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbW9ub21lciwgcG9zaXRpb24uZnJlcVttb25vbWVyXV07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gdGhpcy5zdWJzLnB1c2gocnhqcy5mcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5jYW52YXMsICdtb3VzZW92ZXInKS5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUCA9IHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIoY3Vyc29yUCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHd1LmNvdW50KCkudGFrZSh0aGlzLmRhdGFGcmFtZS5yb3dDb3VudCkuZmlsdGVyKChpUm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9KS5yZWR1Y2UoKGNvdW50LCBpUm93KSA9PiBjb3VudCArIDEsIDApO1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codWkuZGl2KFt1aS5kaXYoYCR7bW9ub21lcn1gKSwgdWkuZGl2KGAke3Jvd0NvdW50fSByb3dzYCldKSwgYXJncy54ICsgMTYsIGFyZ3MueSArIDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgZS5idXR0b24gIT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpKTtcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50cyBkZXNlbGVjdCBhbGwgcm93cyBpZiB3ZSBtaXNzIG1vbm9tZXIgYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uaW5pdCgoaVJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxID0gdGhpcy5zZXFDb2wuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHNlcSA/IHRoaXMuc3BsaXR0ZXIoc2VxKVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChzZXFNID09PSBtb25vbWVyKSB8fCAoc2VxTSA9PT0gJycgJiYgbW9ub21lciA9PT0gJy0nKSkgJiYgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldChpUm93KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KS5zdWJzY3JpYmUodGhpcy5yb290T25TaXplQ2hhbmdlZC5iaW5kKHRoaXMpKSk7XG4gICAgICAgICAgICB0aGlzLnJvb3QuYXBwZW5kKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICAvLyB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXIucm9vdCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJvb3RPblNpemVDaGFuZ2VkKGFyZ3MpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ28ub25Sb290U2l6ZUNoYW5nZWQoKSBgICtcbiAgICAgICAgLy8gICBgcm9vdC53aWR0aD0ke3RoaXMucm9vdC5jbGllbnRXaWR0aH0sIHJvb3QuaGVpZ2h0PSR7dGhpcy5yb290LmNsaWVudEhlaWdodH0sIGAgK1xuICAgICAgICAvLyAgIGBjYW52YXMud2lkdGg9JHt0aGlzLmNhbnZhcy53aWR0aH0sIGNhbnZhcy5oZWlnaHQ9JHt0aGlzLmNhbnZhcy5oZWlnaHR9IC5gKTtcbiAgICB9XG4gICAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAgICovXG4gICAgdXBkYXRlU2VxQ29sKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VxQ29sID0gdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPyB0aGlzLmRhdGFGcmFtZS5jb2wodGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSBXZWJMb2dvLnBpY2tVcFNlcUNvbDIodGhpcy5kYXRhRnJhbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zZXFDb2wgPyB0aGlzLnNlcUNvbC5uYW1lIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuc2VxQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICB1cGRhdGVQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZXFDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCBjYXRlZ29yaWVzO1xuICAgICAgICBpZiAodGhpcy5zaHJpbmtFbXB0eVRhaWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gQXJyYXkuZnJvbShuZXcgU2V0KEFycmF5LmZyb20oQXJyYXkoaW5kaWNlcy5sZW5ndGgpLmtleXMoKSkubWFwKChpKSA9PiB0aGlzLnNlcUNvbC5nZXQoaW5kaWNlc1tpXSkpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gdGhpcy5zZXFDb2wuY2F0ZWdvcmllcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBNYXRoLm1heCguLi5jYXRlZ29yaWVzLm1hcCgocykgPT4gcyAhPT0gbnVsbCA/IHRoaXMuc3BsaXR0ZXIocykubGVuZ3RoIDogMCkpIDogMDtcbiAgICAgICAgLy8gR2V0IHBvc2l0aW9uIG5hbWVzIGZyb20gZGF0YSBjb2x1bW4gdGFnICdwb3NpdGlvbk5hbWVzJ1xuICAgICAgICBjb25zdCBwb3NpdGlvbk5hbWVzVHh0ID0gdGhpcy5zZXFDb2wuZ2V0VGFnKCdwb3NpdGlvbk5hbWVzJyk7XG4gICAgICAgIC8vIEZhbGxiYWNrIGlmICdwb3NpdGlvbk5hbWVzJyB0YWcgaXMgbm90IHByb3ZpZGVkXG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IHBvc2l0aW9uTmFtZXNUeHQgPyBwb3NpdGlvbk5hbWVzVHh0LnNwbGl0KCcsICcpLm1hcCgobikgPT4gbi50cmltKCkpIDpcbiAgICAgICAgICAgIFsuLi5BcnJheShtYXhMZW5ndGgpLmtleXMoKV0ubWFwKChqUG9zKSA9PiBgJHtqUG9zICsgMX1gKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUgJiYgdGhpcy5wb3NpdGlvbk5hbWVzICYmXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMuaW5jbHVkZXModGhpcy5zdGFydFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUpIDogMDtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9ICh0aGlzLmVuZFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLmVuZFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuZW5kUG9zaXRpb25OYW1lKSA6IChtYXhMZW5ndGggLSAxKTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5vblByb3BlcnR5Q2hhbmdlZCggJHtwcm9wZXJ0eS5uYW1lfSA9ICcnIH0pYCk7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KTtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdjb25zaWRlck51bGxTZXF1ZW5jZXMnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RhcnRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbmRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbldpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWluSGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heEhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhXaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJ0aWNhbEFsaWdubWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsQWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpdEFyZWEnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hyaW5rRW1wdHlUYWlsJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW5TdGF0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbkhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWJsZUF0dGFjaGVkKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIG9uVGFibGVBdHRhY2hlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uVGFibGVBdHRhY2hlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gdGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCc7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke2RhdGFGcmFtZVR4dH0gKSBzdGFydGApO1xuICAgICAgICAgICAgX3N1cGVyLm9uVGFibGVBdHRhY2hlZC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucmVuZGVyKCkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCgpIGVuZGApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGV0YWNoKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIGRldGFjaDogeyBnZXQ6ICgpID0+IHN1cGVyLmRldGFjaCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gYCR7dGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCd9YDtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoIGRhdGFGcmFtZSA9ICR7ZGF0YUZyYW1lVHh0fSApIHN0YXJ0YCk7XG4gICAgICAgICAgICBfc3VwZXIuZGV0YWNoLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnZpZXdTdWJzLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmhvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCkgZW5kYCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfbnVsbFNlcXVlbmNlKGZpbGxlclJlc2lkdWUgPSAnWCcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZW1vdmVXaGVyZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgIGxldCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgIGxldCB1cGRhdGVJdGVyYXRvciA9IDA7XG4gICAgICAgIGZvciAobGV0IGRlbGV0ZUl0ZXJhdG9yID0gMDsgZGVsZXRlSXRlcmF0b3IgPCBsZW5ndGg7IGRlbGV0ZUl0ZXJhdG9yKyspIHtcbiAgICAgICAgICAgIGlmICghcHJlZGljYXRlKGFycmF5W2RlbGV0ZUl0ZXJhdG9yXSkpIHtcbiAgICAgICAgICAgICAgICBhcnJheVt1cGRhdGVJdGVyYXRvcl0gPSBhcnJheVtkZWxldGVJdGVyYXRvcl07XG4gICAgICAgICAgICAgICAgdXBkYXRlSXRlcmF0b3IrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcnJheS5sZW5ndGggPSB1cGRhdGVJdGVyYXRvcjtcbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cbiAgICBfcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXaGVyZSh0aGlzLnBvc2l0aW9ucywgaXRlbSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0uZnJlcVsnLSddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY291bnQpID09PSBpdGVtLnJvd0NvdW50OyB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY2FsY3VsYXRlKHIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0IHx8ICF0aGlzLnNlcUNvbCB8fCAhdGhpcy5kYXRhRnJhbWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMgPSBuZXcgQXJyYXkodGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDApO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc05hbWUgPSB0aGlzLnBvc2l0aW9uTmFtZXNbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXSA9IG5ldyBQb3NpdGlvbkluZm8ocG9zTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMjAyMi0wNS0wNSBhc2thbGtpbiBpbnN0cnVjdGVkIHRvIHNob3cgV2ViTG9nbyBiYXNlZCBvbiBmaWx0ZXIgKG5vdCBzZWxlY3Rpb24pXG4gICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIC8vIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5nZXRTZWxlY3RlZEluZGV4ZXMoKSA6XG4gICAgICAgIC8vICAgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldFNlbGVjdGVkSW5kZXhlcygpO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSBpbmRpY2VzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yb3dzTnVsbCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBpbmRpY2VzKSB7XG4gICAgICAgICAgICBsZXQgcyA9ICh0aGlzLnNlcUNvbC5nZXQoaSkpO1xuICAgICAgICAgICAgaWYgKCFzKSB7XG4gICAgICAgICAgICAgICAgcyA9IHRoaXMuX251bGxTZXF1ZW5jZSgpO1xuICAgICAgICAgICAgICAgICsrdGhpcy5yb3dzTnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlcU0gPSB0aGlzLnNwbGl0dGVyKHMpO1xuICAgICAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcTtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gc2VxTVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSB8fCAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCEobSBpbiBwbUluZm8pKVxuICAgICAgICAgICAgICAgICAgICBwbUluZm9bbV0gPSBuZXcgUG9zaXRpb25Nb25vbWVySW5mbygpO1xuICAgICAgICAgICAgICAgIHBtSW5mb1ttXS5jb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI3JlZ2lvbiBQb2xpc2ggZnJlcSBjb3VudHNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVsnLSddO1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIGluIHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgKz0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudDtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXFbbV0uY291bnQgLyB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYyArPSAtcG4gKiBNYXRoLmxvZzIocG4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICAgICAgdGhpcy5fcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVNYXhIZWlnaHQgPSB0aGlzLmNhbnZhcy5oZWlnaHQgLSB0aGlzLmF4aXNIZWlnaHQgKiByO1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Ll9jYWxjdWxhdGUoKSBtYXhIZWlnaHQ9JHttYXhIZWlnaHR9LmApO1xuICAgICAgICAvLyNyZWdpb24gQ2FsY3VsYXRlIHNjcmVlblxuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZyZXEgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgY29uc3Qgcm93Q291bnQgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHRoaXMuZ2V0QWxwaGFiZXRTaXplKCk7XG4gICAgICAgICAgICBpZiAoKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgJiYgKGFscGhhYmV0U2l6ZSA9PSBudWxsKSkge1xuICAgICAgICAgICAgICAgIGdyb2suc2hlbGwuZXJyb3IoJ1dlYkxvZ286IGFscGhhYmV0IGlzIHVuZGVmaW5lZC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9ICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpID8gKGFic29sdXRlTWF4SGVpZ2h0ICogKE1hdGgubG9nMihhbHBoYWJldFNpemUpIC0gKHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMpKSAvIE1hdGgubG9nMihhbHBoYWJldFNpemUpKSA6IGFic29sdXRlTWF4SGVpZ2h0O1xuICAgICAgICAgICAgbGV0IHkgPSB0aGlzLmF4aXNIZWlnaHQgKiByICsgKGFic29sdXRlTWF4SGVpZ2h0IC0gbWF4SGVpZ2h0IC0gMSk7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZnJlcSkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhWzBdICE9PSAnLScgJiYgYlswXSAhPT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYlsxXS5jb3VudCAtIGFbMV0uY291bnQ7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nICYmIGJbMF0gPT09ICctJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSAvKiAoYlswXSA9PT0gJy0nKSAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKzE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBtSW5mbyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IG06IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGggPSBtYXhIZWlnaHQgKiBwbUluZm8uY291bnQgLyByb3dDb3VudDtcbiAgICAgICAgICAgICAgICBwbUluZm8uYm91bmRzID0gbmV3IERHLlJlY3QoalBvcyAqIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4sIHksIHRoaXMuX3Bvc2l0aW9uV2lkdGgsIGgpO1xuICAgICAgICAgICAgICAgIHkgKz0gaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICB9XG4gICAgLy8gcmVmbGVjdCBjaGFuZ2VzIG1hZGUgdG8gZmlsdGVyL3NlbGVjdGlvblxuICAgIHJlbmRlcihyZWNhbGMgPSB0cnVlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMubXNnSG9zdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sICYmICF0aGlzLmNwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LmlubmVyVGV4dCA9IGBVbmtub3duIHBhbGV0dGUgKGNvbHVtbiBzZW1UeXBlOiAnJHt0aGlzLnNlcUNvbC5zZW1UeXBlfScpLmA7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSB8fCAhdGhpcy5jcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBpZiAocmVjYWxjKVxuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlKHIpO1xuICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gJ3doaXRlJztcbiAgICAgICAgZy5maWxsUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSB0aGlzLnRleHRCYXNlbGluZTtcbiAgICAgICAgLy8gUHJldmVudHMgZGl2aXNpb24gYnkgemVybyBvbiBMZW5ndGggPSAwXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IC0xIHx8IHRoaXMuZW5kUG9zaXRpb24gPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyNyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRm9udFNpemUgPSAxMCAqIHI7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBnLmZvbnQgPSBgJHtwb3NpdGlvbkZvbnRTaXplLnRvRml4ZWQoMSl9cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWZgO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMuX3Bvc2l0aW9uV2lkdGggLSAyKSA/IDEgOiAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpIC8gcG9zTmFtZU1heFdpZHRoO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oaFNjYWxlLCAwLCAwLCAxLCBqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiArIHRoaXMuX3Bvc2l0aW9uV2lkdGggLyAyLCAwKTtcbiAgICAgICAgICAgIGcuZmlsbFRleHQocG9zLm5hbWUsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvbiBQbG90IHBvc2l0aW9uTmFtZXNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFttb25vbWVyLCBwbUluZm9dIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIgIT09ICctJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyVHh0ID0gV2ViTG9nby5tb25vbWVyVG9UZXh0KG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiID0gcG1JbmZvLmJvdW5kcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9udFN0eWxlID0gJzE2cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnO1xuICAgICAgICAgICAgICAgICAgICAvLyBIYWNrcyB0byBzY2FsZSB1cHBlcmNhc2UgY2hhcmFjdGVycyB0byB0YXJnZXQgcmVjdGFuZ2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckFzY2VudCA9IDAuMjU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckhlaWdodCA9IDEyLjI7XG4gICAgICAgICAgICAgICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICdsaWdodGdyYXknO1xuICAgICAgICAgICAgICAgICAgICBnLmxpbmVXaWR0aCA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGcucmVjdChiLmxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gKF9hID0gdGhpcy5jcC5nZXQobW9ub21lcikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuY3AuZ2V0KCdvdGhlcicpO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXJUeHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiAobU0uYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQgIT0gMClcbiAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmRlYnVnKGBtOiAke219LCBtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudDogJHttTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudH1gKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oYi53aWR0aCAvIG1UbS53aWR0aCwgMCwgMCwgYi5oZWlnaHQgLyB1cHBlcmNhc2VMZXR0ZXJIZWlnaHQsIGIubGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXJUeHQsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjYWxjU2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgIGxldCB3aWR0aCA9IHRoaXMuTGVuZ3RoICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiAvIHI7XG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLm1pbih0aGlzLm1heEhlaWdodCwgTWF0aC5tYXgodGhpcy5taW5IZWlnaHQsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQpKTtcbiAgICAgICAgaWYgKHRoaXMuZml0QXJlYSkge1xuICAgICAgICAgICAgY29uc3QgeFNjYWxlID0gdGhpcy5yb290LmNsaWVudEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHlTY2FsZSA9IHRoaXMucm9vdC5jbGllbnRXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbih4U2NhbGUsIHlTY2FsZSkpO1xuICAgICAgICAgICAgd2lkdGggPSB3aWR0aCAqIHNjYWxlO1xuICAgICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XG4gICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoICogc2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aCAqIHI7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgICAvLyBjb25zdCBjYW52YXNIZWlnaHQ6IG51bWJlciA9IHdpZHRoID4gdGhpcy5yb290LmNsaWVudFdpZHRoID8gaGVpZ2h0IC0gOCA6IGhlaWdodDtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGhpcy5ob3N0LmNsaWVudEhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0ICogcjtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2NhbnZhc0hlaWdodH1weGApO1xuICAgICAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgICAgICBpZiAodGhpcy5maXhXaWR0aCkge1xuICAgICAgICAgICAgLy8gZnVsbCB3aWR0aCBmb3IgY2FudmFzIGhvc3QgYW5kIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBhbGxvdyBzY3JvbGwgY2FudmFzIGluIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5vdmVyZmxvd1ggPSAnYXV0byFpbXBvcnRhbnQnO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCd0ZXh0LWFsaWduJywgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KTtcbiAgICAgICAgICAgIC8vIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW59cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8IGhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7dGhpcy5yb290LmNsaWVudEhlaWdodH1weGApO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgJ2hpZGRlbicsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFxuICAgICAgICAvLyAgIGB0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLmhvc3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgICdcXG4nICtcbiAgICAgICAgLy8gICBgdGhpcy5jYW52YXMuaGVpZ2h0ICAgICAgID0gJHt0aGlzLmNhbnZhcy5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodCA9ICR7dGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0fWApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAgICAgKiBAcmV0dXJuIHtTZXFQYWxldHRlfSBQYWxldHRlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFscGhhYmV0IG9mIHRoZSBzZXF1ZW5jZXMgaW4gdGhlIGNvbHVtblxuICAgICAqL1xuICAgIHN0YXRpYyBwaWNrVXBQYWxldHRlKHNlcUNvbCwgbWluTGVuZ3RoID0gNSkge1xuICAgICAgICBsZXQgcmVzID0gbnVsbDtcbiAgICAgICAgc3dpdGNoIChzZXFDb2wuc2VtVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBBbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudDpcbiAgICAgICAgICAgICAgICByZXMgPSBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgICAgICAgICAgIHJlcyA9IE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRzID0gV2ViTG9nby5nZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhOdWNsZW90aWRlcy5OYW1lcykpLCBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbV0sXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhBbWlub2FjaWRzLk5hbWVzKSksIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzXSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlc1xuICAgICAgICAgICAgLm1hcCgoYykgPT4gV2ViTG9nby5nZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1swXSkpO1xuICAgICAgICBjb25zdCBtYXhDb3MgPSBNYXRoLm1heCguLi5hbHBoYWJldENhbmRpZGF0ZXNTaW0pO1xuICAgICAgICBpZiAobWF4Q29zID4gMC41NSlcbiAgICAgICAgICAgIHJlcyA9IGFscGhhYmV0Q2FuZGlkYXRlc1thbHBoYWJldENhbmRpZGF0ZXNTaW0uaW5kZXhPZihtYXhDb3MpXVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmVzID0gVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0U2l6ZSgpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgIH1cbiAgICAvKiogU3RhdHMgb2Ygc2VxdWVuY2VzIHdpdGggc3BlY2lmaWVkIHNwbGl0dGVyIGZ1bmMsIHJldHVybnMgeyBmcmVxLCBzYW1lTGVuZ3RoIH0uXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHNlcUNvbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW5MZW5ndGhcbiAgICAgKiBAcGFyYW0ge1NwbGl0dGVyRnVuY30gc3BsaXR0ZXJcbiAgICAgKiBAcmV0dXJuIHsgU2VxQ29sU3RhdHMgfSwgc2FtZUxlbmd0aDogYm9vbGVhbiB9IHN0YXRzIG9mIGNvbHVtbiBzZXF1ZW5jZXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3RhdHMoc2VxQ29sLCBtaW5MZW5ndGgsIHNwbGl0dGVyKSB7XG4gICAgICAgIGNvbnN0IGZyZXEgPSB7fTtcbiAgICAgICAgbGV0IHNhbWVMZW5ndGggPSB0cnVlO1xuICAgICAgICBsZXQgZmlyc3RMZW5ndGggPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBzZXFDb2wuY2F0ZWdvcmllcykge1xuICAgICAgICAgICAgY29uc3QgbVNlcSA9IHNwbGl0dGVyKHNlcSk7XG4gICAgICAgICAgICBpZiAoZmlyc3RMZW5ndGggPT0gbnVsbClcbiAgICAgICAgICAgICAgICBmaXJzdExlbmd0aCA9IG1TZXEubGVuZ3RoO1xuICAgICAgICAgICAgZWxzZSBpZiAobVNlcS5sZW5ndGggIT09IGZpcnN0TGVuZ3RoKVxuICAgICAgICAgICAgICAgIHNhbWVMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChtU2VxLmxlbmd0aCA+IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBtU2VxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKG0gaW4gZnJlcSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZnJlcVttXSArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBmcmVxOiBmcmVxLCBzYW1lTGVuZ3RoOiBzYW1lTGVuZ3RoIH07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRBbHBoYWJldFNpbWlsYXJpdHkoZnJlcSwgYWxwaGFiZXQsIGdhcFN5bWJvbCA9ICctJykge1xuICAgICAgICBjb25zdCBrZXlzID0gbmV3IFNldChbLi4ubmV3IFNldChPYmplY3Qua2V5cyhmcmVxKSksIC4uLmFscGhhYmV0XSk7XG4gICAgICAgIGtleXMuZGVsZXRlKGdhcFN5bWJvbCk7XG4gICAgICAgIGNvbnN0IGZyZXFBID0gW107XG4gICAgICAgIGNvbnN0IGFscGhhYmV0QSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG0gb2Yga2V5cykge1xuICAgICAgICAgICAgZnJlcUEucHVzaChtIGluIGZyZXEgPyBmcmVxW21dIDogMCk7XG4gICAgICAgICAgICBhbHBoYWJldEEucHVzaChhbHBoYWJldC5oYXMobSkgPyAxIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogVGhlcmUgd2VyZSBhIGZldyBpZGVhczogY2hpLXNxdWFyZWQsIHBlYXJzb24gY29ycmVsYXRpb24gKHZhcmlhbmNlPyksIHNjYWxhciBwcm9kdWN0ICovXG4gICAgICAgIGNvbnN0IGZyZXFWID0gbmV3IFZlY3RvcihmcmVxQSk7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ViA9IG5ldyBWZWN0b3IoYWxwaGFiZXRBKTtcbiAgICAgICAgcmV0dXJuIHZlY3RvckRvdFByb2R1Y3QoZnJlcVYsIGFscGhhYmV0VikgLyAodmVjdG9yTGVuZ3RoKGZyZXFWKSAqIHZlY3Rvckxlbmd0aChhbHBoYWJldFYpKTtcbiAgICB9XG4gICAgLy8gLyoqIEZpcnN0IHRyeSB0byBmaW5kIGNvbHVtbiB3aXRoIHNlbVR5cGUgJ2FsaWduZWRTZXF1ZW5jZScuXG4gICAgLy8gICogTmV4dCBsb29rIGZvciBjb2x1bW4gd2l0aCBkYXRhIGFscGhhYmV0IGNvcnJlc3BvbmRpbmcgdG8gYW55IG9mIHRoZSBrbm93biBwYWxldHRlcy5cbiAgICAvLyAgKiBAcGFyYW0ge0RHLkRhdGFGcmFtZX0gZGF0YUZyYW1lXG4gICAgLy8gICogQHJldHVybiB7REcuQ29sdW1ufSBUaGUgY29sdW1uIHdlIHdlcmUgbG9va2luZyBmb3Igb3IgbnVsbFxuICAgIC8vICAqL1xuICAgIC8vIHByaXZhdGUgcGlja1VwU2VxQ29sKGRhdGFGcmFtZTogREcuRGF0YUZyYW1lKTogREcuQ29sdW1uIHwgbnVsbCB7XG4gICAgLy8gICBsZXQgcmVzOiBERy5Db2x1bW4gfCBudWxsID0gZGF0YUZyYW1lLmNvbHVtbnMuYnlTZW1UeXBlKCdhbGlnbmVkU2VxdWVuY2UnKTtcbiAgICAvLyAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgIC8vICAgICBmb3IgKGNvbnN0IGNvbCBvZiBkYXRhRnJhbWUuY29sdW1ucykge1xuICAgIC8vICAgICAgIGNvbnN0IGNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKGNvbCBhcyBERy5Db2x1bW4sIDUpO1xuICAgIC8vICAgICAgIGlmIChjcCAhPT0gbnVsbCAmJiAhKGNwIGluc3RhbmNlb2YgVW5rbm93blNlcVBhbGV0dGUpKSB7XG4gICAgLy8gICAgICAgICByZXMgPSBjb2w7XG4gICAgLy8gICAgICAgICBicmVhaztcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyAgIHJldHVybiByZXM7XG4gICAgLy8gfVxuICAgIHN0YXRpYyBwaWNrVXBTZXFDb2wyKGRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgc2VtVHlwZUNvbExpc3QgPSBkZi5jb2x1bW5zLmJ5U2VtVHlwZUFsbChERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpO1xuICAgICAgICBsZXQgcmVzQ29sID0gKF9hID0gc2VtVHlwZUNvbExpc3QuZmluZCgoY29sKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgICAgICByZXR1cm4gdW5pdHMgPyB1bml0cy5pbmRleE9mKCdNU0EnKSAhPT0gLTEgOiBmYWxzZTtcbiAgICAgICAgfSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgICAgIGlmICghcmVzQ29sICYmIHNlbVR5cGVDb2xMaXN0Lmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXNDb2wgPSBzZW1UeXBlQ29sTGlzdFswXTtcbiAgICAgICAgcmV0dXJuIHJlc0NvbDtcbiAgICB9XG4gICAgLyoqIFNwbGl0IHNlcXVlbmNlIGZvciBzaW5nbGUgY2hhcmFjdGVyIG1vbm9tZXJzLCBzcXVhcmUgYnJhY2tldHMgbXVsdGljaGFyIG1vbm9tZXIgbmFtZXMgb3IgZ2FwIHN5bWJvbC5cbiAgICAgKiBAcGFyYW0ge2FueX0gc2VxIG9iamVjdCB3aXRoIHNlcXVlbmNlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gICAgICovXG4gICAgc3RhdGljIHNwbGl0dGVyQXNGYXN0YShzZXEpIHtcbiAgICAgICAgY29uc3QgcmVzID0gd3Uoc2VxLnRvU3RyaW5nKCkubWF0Y2hBbGwoV2ViTG9nby5tb25vbWVyUmUpKVxuICAgICAgICAgICAgLm1hcCgobWEpID0+IHtcbiAgICAgICAgICAgIGxldCBtUmVzO1xuICAgICAgICAgICAgY29uc3QgbSA9IG1hWzBdO1xuICAgICAgICAgICAgaWYgKG0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmIChtIGluIFdlYkxvZ28uYWFTeW5vbnltcykge1xuICAgICAgICAgICAgICAgICAgICBtUmVzID0gV2ViTG9nby5hYVN5bm9ueW1zW21dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbVJlcyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBMb25nIG1vbm9tZXIgJyR7bX0nIGhhcyBub3QgYSBzaG9ydCBzeW5vbnltLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1SZXM7XG4gICAgICAgIH0pLnRvQXJyYXkoKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqIFNwbGl0cyBIZWxtIHN0cmluZyB0byBtb25vbWVycywgYnV0IGRvZXMgbm90IHJlcGxhY2UgbW9ub21lciBuYW1lcyB0byBvdGhlciBub3RhdGlvbiAoZS5nLiBmb3IgUk5BKS5cbiAgICAgKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBTb3VyY2Ugc3RyaW5nIG9mIEhFTE0gbm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAgICAgKi9cbiAgICBzdGF0aWMgc3BsaXR0ZXJBc0hlbG0oc2VxKSB7XG4gICAgICAgIFdlYkxvZ28uaGVsbVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IGVhID0gV2ViTG9nby5oZWxtUmUuZXhlYyhzZXEudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IGluU2VxID0gZWEgPyBlYVsyXSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgICAgIFdlYkxvZ28uaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBjb25zdCBwcDFNID0gV2ViTG9nby5oZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgICAgICBpZiAocHAxTSAmJiBwcDFNLmxlbmd0aCA+PSAyKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcDFNWzFdO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBtbTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgICAgIGNvbnN0IG1tTGlzdFJlcyA9IG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG4gICAgICAgIHJldHVybiBtbUxpc3RSZXM7XG4gICAgfVxuICAgIC8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAgICogQHBhcmFtIGxpbWl0XG4gICAgICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlcS5zcGxpdChzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqIEdldCBzcGxpdHRlciBtZXRob2QgdG8gc3BsaXQgc2VxdWVuY2VzIHRvIG1vbm9tZXJzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICAgICAqIEBwYXJhbSBsaW1pdFxuICAgICAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY31cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uc3BsaXR0ZXJBc0Zhc3RhO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gV2ViTG9nby5zcGxpdHRlckFzSGVsbTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAgICAgLy8gVE9ETzogU3BsaXR0ZXIgZm9yIEhFTE1cbiAgICB9XG4gICAgc3RhdGljIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgR2V0IHNwbGl0dGVyIGZvciBzZW1UeXBlIFwiJHtERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEV9XCIgb25seS5gKTtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIH1cbiAgICAvKiBTaG9ydGVucyBtb25vbWVyIHJlcHJlc2VudGF0aW9uIHRleHQgZm9yIG1vbm9tZXJzIHdpdGggbG9uZyBuYW1lcy5cbiAgICAqKi9cbiAgICBzdGF0aWMgbW9ub21lclRvVGV4dChzcmMpIHtcbiAgICAgICAgY29uc3Qgc3JjVHh0ID0gc3JjLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChzcmNUeHQubGVuZ3RoIDw9IDUpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNUeHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHd1KHNyYy50b1N0cmluZygpLm1hdGNoQWxsKFdlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUpKVxuICAgICAgICAgICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbVJlcyA9IG1hWzBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBtUmVzO1xuICAgICAgICAgICAgfSkudG9BcnJheSgpO1xuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQwID0gcGFydHNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzVHh0ID0gcGFydDAubGVuZ3RoIDwgNiA/IGAke3BhcnQwfeKApmAgOiBgJHtwYXJ0MC5zdWJzdHJpbmcoMCwgNSl94oCmYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzVHh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBtb25vbWVyVG9TaG9ydChhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSB7XG4gICAgICAgIHJldHVybiBhbWluby5sZW5ndGggPD0gbWF4TGVuZ3RoT2ZNb25vbWVyID8gYW1pbm8gOiBhbWluby5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoT2ZNb25vbWVyKSArICfigKYnO1xuICAgIH1cbn1cbldlYkxvZ28ucmVzaWR1ZXNTZXQgPSAnbnVjbGVvdGlkZXMnO1xuV2ViTG9nby52aWV3ZXJDb3VudCA9IC0xO1xuV2ViTG9nby5tb25vbWVyUmUgPSAvXFxbKFxcdyspXFxdfChcXHcpfCgtKS9nO1xuV2ViTG9nby5oZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuV2ViTG9nby5oZWxtUHAxUmUgPSAvXFxbKFteXFxbXFxdXSspXS9nO1xuLyoqIE9ubHkgc29tZSBvZiB0aGUgc3lub255bXMuIFRoZXNlIHdlcmUgb2J0YWluZWQgZnJvbSB0aGUgY2x1c3RlcmVkIG9saWdvcGVwdGlkZSBkYXRhc2V0LiAqL1xuV2ViTG9nby5hYVN5bm9ueW1zID0ge1xuICAgICdbTWVObGVdJzogJ0wnLFxuICAgICdbTWVBXSc6ICdBJyxcbiAgICAnW01lR10nOiAnRycsXG4gICAgJ1tNZUZdJzogJ0YnLFxufTtcbldlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkMlZpTFd4dloyOHVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSXRiRzluYnk1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFdEJRVXNzU1VGQlNTeE5RVUZOTEcxQ1FVRnRRaXhEUVVGRE8wRkJRekZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNN1FVRkRjRUlzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFN4TlFVRk5MRU5CUVVNN1FVRkZOMElzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlEzWkZMRTlCUVU4c1JVRkJReXhaUVVGWkxFVkJRVVVzWjBKQlFXZENMRVZCUVVNc1RVRkJUU3hwUkVGQmFVUXNRMEZCUXp0QlFVTXZSaXhQUVVGUExFVkJRVU1zVlVGQlZTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRExFMUJRVTBzWlVGQlpTeERRVUZETzBGQlF6ZEVMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzYlVKQlFXMUNMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTm9SU3hQUVVGUExFVkJRVU1zYTBKQlFXdENMRVZCUVVNc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGSE9VTXNUMEZCVHl4RlFVRlhMRmxCUVZrc1JVRkJReXhOUVVGTkxIZENRVUYzUWl4RFFVRkRPMEZCVVRsRUxFbEJRVXNzWTBGSFNqdEJRVWhFTEZkQlFVc3NZMEZCWXp0SlFVTnFRaXh4UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXdyUWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVaEpMR05CUVdNc1MwRkJaQ3hqUVVGakxGRkJSMnhDTzBGQldVUTdPenRIUVVkSE8wRkJRMGdzYVVKQlFXbENMRU5CUVVNc1UwRkJVeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRlZCUVZNc1MwRkJhVUlzUlVGQlJTeERRVUZUTzBsQlEyNUdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8wbEJRekZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka1lzUTBGQlF5eERRVUZETzBGQlJVWXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWTXNRMEZCVXl4RlFVRkZMRU5CUVZNN1NVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOb1JpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRTlCUVU4c2JVSkJRVzFDTzBsQlV6bENMRmxCUVZrc1VVRkJaMElzUTBGQlF5eEZRVUZGTEZOQlFXdENMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGRFVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGJrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGRrSXNRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExGbEJRVms3U1VGTmRrSTdPenM3TzA5QlMwYzdTVUZEU0N4WlFVRlpMRWxCUVZrc1JVRkJSU3hQUVVFMlF5eEZRVUZGTEVWQlFVVXNWMEZCYlVJc1EwRkJReXhGUVVGRkxHMUNRVUV5UWl4RFFVRkRPMUZCUXpOSUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUTNwQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhuUWtGQlowSXNRMEZCUXp0SlFVTXpReXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRVZCUVVVc1EwRkJReXhSUVVGUk8wbEJlVVYwUXp0UlFVTkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJkRVZHTEdGQlFWRXNSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWMFFpeG5Ra0ZCVnl4SFFVRlpMRXRCUVVzc1EwRkJRenRSUVVWeVF5dzBSa0ZCTkVZN1VVRkRiRVlzVDBGQlJTeEhRVUZ6UWl4SlFVRkpMRU5CUVVNN1VVRlJMMElzWlVGQlZTeEhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVjRRaXhYUVVGTkxFZEJRVFpDTEVsQlFVa3NRMEZCUXp0UlFVTjRReXhoUVVGUkxFZEJRWGRDTEVsQlFVa3NRMEZCUXp0UlFVTTNReXh0UTBGQmJVTTdVVUZETTBJc1kwRkJVeXhIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZGTDBJc1pVRkJWU3hIUVVGWExFTkJRVU1zUTBGQlF6dFJRVU4yUWl4aFFVRlJMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWWFJDTEcxQ1FVRmpMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWekZDTEd0Q1FVRmhMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJSVGRDTEd0Q1FVRmhMRWRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRk0wSXNaMEpCUVZjc1IwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRWEZDZWtJc1lVRkJVU3hIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZMY0VNc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUTNCRExFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RlFVRkZMRU5CUVVFN09FUkJRMjVDTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzUTBGQlFUdG5SVUZEWVN4RFFVRkRMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVRTdaMFZCUTFrc1EwRkJReXhEUVVGRE8xRkJSVEZFTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNaRkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJXeEZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVUxUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEZGQlFWRXNSVUZEYUVVc1JVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4UlFVRlJMRVZCUTNCRkxFVkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTTdVVUZETVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNUVUZCVFN4RlFVTnNSU3hGUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaERMRWxCUVVrc05rSkJRVFpDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSRExFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExFMUJRVTBzUlVGQlJUdFpRVU55UXl3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEY2tNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNOa0pCUVRaQ0xFVkJRVVVzUlVGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUhMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkpMRU5CUVVNN1NVRTFSRVFzTUVSQlFUQkVPMGxCUXpGRUxFbEJRVmtzVFVGQlRUdFJRVU5vUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlR0WlFVTXpRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRPMU5CUXpsQ08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1J5eERRVUZETzBsQlJVUXNTVUZCV1N4MVFrRkJkVUk3TzFGQlEycERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZCTEUxQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc01FTkJRVVVzYzBKQlFYTkNMRVZCUVVVc1RVRkJTeXhKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU51Unl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExGRkJRVkVzUlVGQlJUdFpRVU42UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxFOUJRVThzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wbEJOa05oTEVsQlFVazdPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkRjRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzJkQ1FVTm9SQ3hQUVVGUE8yRkJRMUk3V1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRaUVVONFFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMSEZEUVVGeFF5eERRVUZETzFsQlJYSkVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlJYQkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpGQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRmFrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVm9SQ3cyUTBGQk5rTTdXVUZETjBNc2VVTkJRWGxETzFsQlEzcERMREJEUVVFd1F6dFpRVVV4UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVmNzUlVGQmRVUXNSVUZCUlR0blFrRkRkRVlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETzJkQ1FVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVVYwUXl4SlFVRkpMRkZCUVZFc1MwRkJTeXhMUVVGTExFTkJRVU03YjBKQlEzSkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVVMVFpeE5RVUZOTEU5QlFVOHNSMEZCZFVJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPM0ZDUVVNelJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXpSQ3hKUVVGSkxFOUJRVThzUzBGQlN5eFRRVUZUTzI5Q1FVTjJRaXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRk5VSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBFTEVOQlFVTXNRMEZCUXp0WlFVZEdMSEZIUVVGeFJ6dFpRVU55Unl4UFFVRlBPMWxCUlZBc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMDdiMEpCUTJRc1QwRkJUenRuUWtGRlZDeE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRmxMRU5CUVVNN1owSkJSVGRDTEUxQlFVMHNRMEZCUXl4SFFVRlhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0blFrRkRNVU1zVFVGQlRTeFBRVUZQTEVkQlFXRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEycEZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yZENRVVUxUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzUlVGQlJUdHZRa0ZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVmtzUlVGQlJTeEZRVUZGTzNkQ1FVTm9SaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dDNRa0ZEYmtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0M1FrRkRla1VzVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdiMEpCUTNKSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEycEVMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRka2M3Y1VKQlFVMDdiMEpCUTB3c1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0cFFrRkRia0k3V1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlVvc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4N1owSkJSVlFzVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCWlN4RFFVRkRPMmRDUVVNM1FpeE5RVUZOTEVOQlFVTXNSMEZCVnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdaMEpCUXpGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSVE5GTEhWRVFVRjFSRHRuUWtGRGRrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFVkJRVVU3YjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRk8zZENRVU55UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenQzUWtGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dDNRa0ZEZWtVc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExFVkJRVVVzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEzSkhMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU5LTzFsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVWS0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVTNSaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRE5VSXNNa05CUVRKRE8xbEJSVE5ETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNFSXNRMEZCUXp0TFFVRkJPMGxCUlU4c2FVSkJRV2xDTEVOQlFVTXNTVUZCVXp0UlFVTnFReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xHbEVRVUZwUkR0UlFVTnFSQ3h4UmtGQmNVWTdVVUZEY2tZc2FVWkJRV2xHTzBsQlEyNUdMRU5CUVVNN1NVRkZSRHRQUVVOSE8wbEJRMHNzV1VGQldUdFJRVU5zUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVU3V1VGRGJFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE0wWXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUlVGQlJUdG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdZVUZEYWtVN1dVRkRSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJZc1RVRkJUU3hMUVVGTExFZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRla1FzVFVGQlRTeFRRVUZUTEVkQlFWY3NTVUZCU1N4RFFVRkRMRTFCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE0wVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGRFUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJSV3hFTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRoUVVNNVF6dHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXp0blFrRkRja0lzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1owSkJRM2hDTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaENMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNSQ0xFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRPMkZCUTJoQ08xTkJRMFk3VVVGRFJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZQTEdWQlFXVTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlEyUXNUMEZCVHp0UlFVVlVMRWxCUVVrc1ZVRkJPRUlzUTBGQlF6dFJRVU51UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UFFVRlBMRWRCUVdVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU4yUlN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZETjBJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJqdGhRVUZOTzFsQlEwd3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzSkRPMUZCUTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVOc1JTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3d3UkVGQk1FUTdVVUZETVVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVFZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0U3V1VGRGFFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZETlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlpTeHBRa0ZCYVVJc1EwRkJReXhSUVVGeFFqdFJRVU55UkN4M1JVRkJkMFU3VVVGRGVFVXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUld4RExGRkJRVkVzVVVGQlVTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTjJRaXhMUVVGTExIVkNRVUYxUWp0blFrRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2IwSkJRVzlDTzJkQ1FVTjJRaXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdaMEpCUTNCQ0xFMUJRVTA3V1VGRFVpeExRVUZMTEcxQ1FVRnRRanRuUWtGRGRFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8yZENRVU53UWl4TlFVRk5PMWxCUTFJc1MwRkJTeXhwUWtGQmFVSTdaMEpCUTNCQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NaVUZCWlR0blFrRkRiRUlzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRE8yZENRVU42UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eFhRVUZYTzJkQ1FVTmtMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEZkQlFWYzdaMEpCUTJRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NWVUZCVlR0blFrRkRZaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4dFFrRkJiVUk3WjBKQlEzUkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEhGQ1FVRnhRanRuUWtGRGVFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzVTBGQlV6dG5Ra0ZEV2l4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eHBRa0ZCYVVJN1owSkJRM0JDTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlEyeENMRTFCUVUwN1dVRkRVaXhMUVVGTExHZENRVUZuUWp0blFrRkRia0lzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2NVSkJRWEZDTzJkQ1FVTjRRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4blFrRkJaMEk3WjBKQlEyNUNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3VTBGRFVEdEpRVU5JTEVOQlFVTTdTVUZGY1VJc1pVRkJaVHM3T3pzN1dVRkRia01zVFVGQlRTeFpRVUZaTEVkQlFWY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRPVVFzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNhME5CUVd0RExGbEJRVmtzVlVGQlZTeERRVUZETEVOQlFVTTdXVUZEY2tjc1QwRkJUU3hsUVVGbExGbEJRVWM3V1VGRmVFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xbEJSWEJDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdG5Ra0ZETjBJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJrWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMjlDUVVNM1JDeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN2IwSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOTU8xbEJSVVFzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRiRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZjVUlzVFVGQlRUczdPenM3V1VGRE1VSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlF6TkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhSUVVGUkxHdERRVUZyUXl4WlFVRlpMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRM0pITEU5QlFVMHNUVUZCVFN4WlFVRkhPMWxCUldZc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFbEJRVWtzUTBGQlF5eEpRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRla0lzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkZkRUlzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRla0lzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZVeXhoUVVGaExFTkJRVU1zWVVGQllTeEhRVUZITEVkQlFVYzdVVUZEZWtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNPMWxCUXpWQ0xFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRk4wUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRXaXhEUVVGRE8wbEJSVk1zVjBGQlZ5eERRVUZETEV0QlFXbENMRVZCUVVVc1UwRkJPRUk3VVVGRGNrVXNTVUZCU1N4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU14UWl4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRrSXNTMEZCU3l4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFVkJRVVVzWTBGQll5eEhRVUZITEUxQlFVMHNSVUZCUlN4alFVRmpMRVZCUVVVc1JVRkJSVHRaUVVOMFJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnlReXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8yZENRVU01UXl4alFVRmpMRVZCUVVVc1EwRkJRenRoUVVOc1FqdFRRVU5HTzFGQlEwUXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhqUVVGakxFTkJRVU03VVVGRE9VSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSMU1zY1VKQlFYRkNPMUZCUXpkQ0xFbEJRVWtzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRk8xbEJRek5DTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4WFFVRkRMRTlCUVVFc1EwRkJRU3hOUVVGQkxFbEJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETERCRFFVRkZMRXRCUVVzc1RVRkJTeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZCTEVWQlFVRXNRMEZCUXl4RFFVRkRPMU5CUTNCR08wbEJRMGdzUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4RFFVRlRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV6dFpRVU12UkN4UFFVRlBPMUZCUTFRc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGSGJFUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJSV2hDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVNDeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCVnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRkRVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxHbEdRVUZwUmp0UlFVTnFSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpORUxESkhRVUV5Unp0UlFVTXpSeXhuUkVGQlowUTdVVUZGYUVRc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTJwRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNaQ0xFbEJRVWtzUTBGQlF5eEhRVUZ0UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZOME1zU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRUaXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRPMmRDUVVONlFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1lVRkRha0k3V1VGRlJDeE5RVUZOTEVsQlFVa3NSMEZCWVN4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzcERMRXRCUVVzc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzJkQ1FVTTNReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dG5Ra0ZEZWtNc1RVRkJUU3hEUVVGRExFZEJRVmNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzJkQ1FVTjZSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRPMjlDUVVOb1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMmRDUVVONFF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGJrSTdVMEZEUmp0UlFVVkVMRFJDUVVFMFFqdFJRVU0xUWl4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4NVEwRkJlVU03V1VGRmVrTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTzJkQ1FVTjJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEpRVUZKTEdOQlFXTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRMnBFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UXl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRk8yOUNRVU42UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUXpsRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRPVVE3WVVGRFJqdFRRVU5HTzFGQlEwUXNXVUZCV1R0UlFVTmFMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUlRkQ0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrVXNiVVpCUVcxR08xRkJSVzVHTERCQ1FVRXdRanRSUVVNeFFpeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEVsQlFVa3NSMEZCZVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkROMFVzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdXVUZETDBNc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4SlFVRkpMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSVHRuUWtGRE4wVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRoUVVOeVJEdFpRVVZFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zU1VGQlNTeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dFpRVVUxVFN4SlFVRkpMRU5CUVVNc1IwRkJWeXhKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVVeFJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYWtRc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkROVUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0eFFrRkRUaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOUUxHOUNRVUZ2UWp0dlFrRkRka0lzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMGdzUzBGQlN5eE5RVUZOTEV0QlFVc3NTVUZCU1N4UFFVRlBMRVZCUVVVN1owSkJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkRExEaENRVUU0UWp0blFrRkRPVUlzVFVGQlRTeERRVUZETEVkQlFWY3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVVVGQlVTeERRVUZETzJkQ1FVVjBSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0xUml4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRMUk3VTBGRFJqdFJRVU5FTEZsQlFWazdTVUZEWkN4RFFVRkRPMGxCUlVRc01rTkJRVEpETzBsQlF6TkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNUczdVVUZEYkVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExIRkRRVUZ4UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUzBGQlN5eERRVUZETzJkQ1FVTjRSaXhKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8yRkJRMnhETzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eFBRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03WVVGRGRFTTdVMEZEUmp0UlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRaUVVNM1JDeFBRVUZQTzFGQlJWUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRka01zU1VGQlNTeERRVUZETEVOQlFVTTdXVUZCUlN4UFFVRlBPMUZCUldZc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSV3hETEVsQlFVa3NUVUZCVFR0WlFVTlNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGY2tJc1EwRkJReXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETzFGQlEzUkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM2hFTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZ1UXl3d1EwRkJNRU03VVVGRE1VTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1lVRkJZU3hMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM1JFTEU5QlFVODdVVUZGVkN3MFFrRkJORUk3VVVGRE5VSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTjBRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTjJRaXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4eFEwRkJjVU1zUTBGQlF6dFJRVU0zUlN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFFY3NUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4RFFVRkRPMUZCUlRkSExFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpkRExFMUJRVTBzUjBGQlJ5eEhRVUZwUWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF5OURMRU5CUVVNc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU51UWl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVOYUxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkRaaXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0JGTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkROVUk3VVVGRFJDd3JRa0ZCSzBJN1VVRkZMMElzUzBGQlN5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkROME1zUzBGQlN5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0blFrRkRla1VzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZPMjlDUVVOdVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVTnNSQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVWNFFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4MVEwRkJkVU1zUTBGQlF6dHZRa0ZETVVRc01FUkJRVEJFTzI5Q1FVTXhSQ3hOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1EwRkJRenR2UWtGRGJrTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTTdiMEpCUlc1RExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0dlFrRkRia0lzUTBGQlF5eERRVUZETEZkQlFWY3NSMEZCUnl4WFFVRlhMRU5CUVVNN2IwSkJRelZDTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5vUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRGVrTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGQkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHZRa0ZETTBRc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdiMEpCUTNKQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVOdVFpd3JRMEZCSzBNN2IwSkJReTlETEUxQlFVMHNSMEZCUnl4SFFVRm5RaXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMjlDUVVWdVJDeDFRMEZCZFVNN2IwSkJRM1pETEhsR1FVRjVSanR2UWtGRmVrWXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkRXaXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMSEZDUVVGeFFpeEZRVU16UkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRha0lzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRwUWtGRGJrUTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWUExGRkJRVkU3VVVGRFpDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTzFsQlF6VkNMRTlCUVU4N1VVRkZWQ3hOUVVGTkxFTkJRVU1zUjBGQlZ5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRk1VTXNTVUZCU1N4TFFVRkxMRWRCUVZjc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyNUZMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhoR0xFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTm9RaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRGRrUXNUVUZCVFN4TlFVRk5MRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNKRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNFUXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGRFSXNUVUZCVFN4SFFVRkhMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGVFSXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTnNSRHRSUVVWRUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkZka01zYjBaQlFXOUdPMUZCUTNCR0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzV1VGQldTeEhRVUZYTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExGbEJRVmtzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGTjBRc05rSkJRVFpDTzFGQlF6ZENMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdFpRVU5xUWl4elEwRkJjME03V1VGRGRFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRPMWxCUXpkRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETzFsQlEzWkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFOQlEyaEZPMkZCUVUwN1dVRkRUQ3c0UWtGQk9FSTdXVUZET1VJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNN1dVRkRka1FzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMWxCUXpkRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZGT1VNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRaUVVWd1JTeHhRa0ZCY1VJN1dVRkRja0lzU1VGQlNTeGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNSQ0xGRkJRVkVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRk8yZENRVU5vUXl4TFFVRkxMRXRCUVVzN2IwSkJRMUlzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRiRUlzVFVGQlRUdG5Ra0ZEVWl4TFFVRkxMRkZCUVZFN2IwSkJRMWdzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTI1RkxFMUJRVTA3WjBKQlExSXNTMEZCU3l4UlFVRlJPMjlDUVVOWUxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNUVUZCVFR0aFFVTlFPMWxCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExHRkJRV0VzU1VGQlNTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUlRkRkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hGUVVGRk8yZENRVU51UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOeVJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTJwRU8ybENRVUZOTzJkQ1FVTk1MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzJGQlEyeEZPMU5CUTBZN1VVRkZSQ3hwUWtGQmFVSTdVVUZEYWtJc05rUkJRVFpFTzFGQlF6ZEVMRFpFUVVFMlJEdFJRVU0zUkN3MlJFRkJOa1E3VVVGRE4wUXNOa1JCUVRaRU8xRkJRemRFTEZkQlFWYzdVVUZEV0N3eVJFRkJNa1E3VVVGRE0wUXNLMFJCUVN0RU8wbEJRMnBGTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhOUVVGcFFpeEZRVUZGTEZsQlFXOUNMRU5CUVVNN1VVRkRiRVVzU1VGQlNTeEhRVUZITEVkQlFYTkNMRWxCUVVrc1EwRkJRenRSUVVOc1F5eFJRVUZSTEUxQlFVMHNRMEZCUXl4UFFVRlBMRVZCUVVVN1dVRkRlRUlzUzBGQlN5eFZRVUZWTEVOQlFVTXNkMEpCUVhkQ08yZENRVU4wUXl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRPMmRDUVVOd1F5eE5RVUZOTzFsQlExSXNTMEZCU3l4WFFVRlhMRU5CUVVNc2QwSkJRWGRDTzJkQ1FVTjJReXhIUVVGSExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8yZENRVU4yUXl4TlFVRk5PMU5CUTFBN1VVRkRSQ3hOUVVGTkxFdEJRVXNzUjBGQlowSXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVWNFJpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGblF6dFpRVU4wUkN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8xbEJRek5GTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1UwRkRlRVVzUTBGQlF6dFJRVU5HTEdkRVFVRm5SRHRSUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGaExHdENRVUZyUWp0aFFVTjJSQ3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkRiRVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1R0WlFVTm1MRWRCUVVjc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGYmtVc1IwRkJSeXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVWcVF5eFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNN1NVRkZUU3hsUVVGbE96dFJRVU53UWl4UFFVRlBMRTFCUVVFc1RVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQldTd3dRMEZCUlN4bFFVRmxMRVZCUVVVc2JVTkJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUVMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSUxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCYVVJc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEZGQlFYTkNPMUZCUXpGRkxFMUJRVTBzU1VGQlNTeEhRVUUwUWl4RlFVRkZMRU5CUVVNN1VVRkRla01zU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjJRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVN1dVRkRia01zVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSVE5DTEVsQlFVa3NWMEZCVnl4SlFVRkpMRWxCUVVrN1owSkJRM0pDTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8ybENRVU4yUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzVjBGQlZ6dG5Ra0ZEYkVNc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVVZ5UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVTBGQlV5eEZRVUZGTzJkQ1FVTXpRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0dlFrRkRjRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenQzUWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5rTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlEyUTdZVUZEUmp0VFFVTkdPMUZCUTBRc1QwRkJUeXhGUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkJReXhEUVVGRE8wbEJRemxETEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hSUVVGeFFpeEZRVUZGTEZsQlFXOUNMRWRCUVVjN1VVRkRjRWNzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWMlFpeE5RVUZOTEV0QlFVc3NSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTNCQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRla003VVVGRFJDd3dSa0ZCTUVZN1VVRkRNVVlzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEYUVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VZc1EwRkJRenRKUVVWRUxDdEVRVUVyUkR0SlFVTXZSQ3g1UmtGQmVVWTdTVUZEZWtZc2NVTkJRWEZETzBsQlEzSkRMR2RGUVVGblJUdEpRVU5vUlN4TlFVRk5PMGxCUTA0c2IwVkJRVzlGTzBsQlEzQkZMR2RHUVVGblJqdEpRVU5vUml4MVFrRkJkVUk3U1VGRGRrSXNOa05CUVRaRE8wbEJRemRETEN0RVFVRXJSRHRKUVVNdlJDeHBSVUZCYVVVN1NVRkRha1VzY1VKQlFYRkNPMGxCUTNKQ0xHbENRVUZwUWp0SlFVTnFRaXhWUVVGVk8wbEJRMVlzVVVGQlVUdEpRVU5TTEUxQlFVMDdTVUZEVGl4blFrRkJaMEk3U1VGRGFFSXNTVUZCU1R0SlFVVkhMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlowSTdPMUZCUXpGRExFMUJRVTBzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRla1VzU1VGQlNTeE5RVUZOTEVkQlFYRkNMRTFCUVVFc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTNwRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTjRReXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEVOQlFVTXNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU03VVVGRFdDeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVU4wUXl4TlFVRk5MRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZKUkRzN08wOUJSMGM3U1VGRFNTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVZFN1VVRkRjRU1zVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRnRRaXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dGhRVU51Uml4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGdlFpeEZRVUZGTEVWQlFVVTdXVUZETlVJc1NVRkJTU3hKUVVGWkxFTkJRVU03V1VGRGFrSXNUVUZCVFN4RFFVRkRMRWRCUVZjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzaENMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUTJoQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVN2IwSkJRek5DTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTTVRanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8yOUNRVU5XTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUTBGQlF6dHBRa0ZETDBRN1lVRkRSanRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMVk3V1VGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzFGQlJXWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJTMFE3T3pzN1QwRkpSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCVVR0UlFVTnVReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeEZRVUZGTEVkQlFUSkNMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pGTEUxQlFVMHNTMEZCU3l4SFFVRnJRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzFGQlJTOURMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlZTeEZRVUZWTEVWQlFVVTdXVUZETTBNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJoRExFMUJRVTBzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzaERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXp0blFrRkRNVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08yZENRVVZtTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTJRc1EwRkJReXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFXRXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRGRrUXNUVUZCVFN4VFFVRlRMRWRCUVdFc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkpMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4VFFVRnBRaXhGUVVGRkxGRkJRVFJDTEZOQlFWTTdVVUZETjBZc1QwRkJUeXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTzFsQlEzSkNMRTlCUVU4c1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja01zUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZoTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hSUVVFMFFpeFRRVUZUTzFGQlF5OUdMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRMmhFTEU5QlFVOHNUMEZCVHl4RFFVRkRMR1ZCUVdVc1EwRkJRenRoUVVNMVFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxITkRRVUZ2UWp0WlFVTjZSQ3hQUVVGUExFOUJRVThzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdZVUZEZGtRc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN3MFFrRkJaVHRaUVVOd1JDeFBRVUZQTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNN08xbEJSVGxDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZha1FzTUVKQlFUQkNPMGxCUXpWQ0xFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQll6dFJRVU12UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNOa0pCUVRaQ0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWc1JpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFOUJRVThzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGREwwTXNRMEZCUXp0SlFWbEVPMDlCUTBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFWRTdVVUZEYkVNc1RVRkJUU3hOUVVGTkxFZEJRVmNzUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUTNSRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRkRUlzVDBGQlR5eE5RVUZOTEVOQlFVTTdVMEZEWmp0aFFVRk5PMWxCUTB3c1RVRkJUU3hMUVVGTExFZEJRV0VzUlVGQlJTeERRVUZ0UWl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzJsQ1FVTTNSaXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVN1owSkJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU03V1VGRFpDeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVWbUxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMkZCUTFvN2FVSkJRVTA3WjBKQlEwd3NUVUZCVFN4TFFVRkxMRWRCUVZjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXZRaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU53Uml4UFFVRlBMRTFCUVUwc1EwRkJRenRoUVVObU8xTkJRMFk3U1VGRFNDeERRVUZETzBsQlJVMHNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGaExFVkJRVVVzYTBKQlFUQkNPMUZCUTNCRkxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnVSeXhEUVVGRE96dEJRV2d6UW1Fc2JVSkJRVmNzUjBGQlJ5eGhRVUZoTEVOQlFVTTdRVUZETTBJc2JVSkJRVmNzUjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFTdDFRbnBDTEdsQ1FVRlRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTTdRVUV5UW14RExHTkJRVTBzUjBGQlJ5eHBRMEZCYVVNc1EwRkJRenRCUVVNelF5eHBRa0ZCVXl4SFFVRkhMR2RDUVVGblFpeERRVUZETzBGQmFVVTFReXc0UmtGQk9FWTdRVUZETDBVc2EwSkJRVlVzUjBGQkswSTdTVUZEZEVRc1UwRkJVeXhGUVVGRkxFZEJRVWM3U1VGRFpDeFBRVUZQTEVWQlFVVXNSMEZCUnp0SlFVTmFMRTlCUVU4c1JVRkJSU3hIUVVGSE8wbEJRMW9zVDBGQlR5eEZRVUZGTEVkQlFVYzdRMEZEWWl4RFFVRkRPMEZCUldFc2VVSkJRV2xDTEVkQlFVY3NVVUZCVVN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSGQxSUdaeWIyMGdKM2QxSnp0Y2JtbHRjRzl5ZENBcUlHRnpJSEo0YW5NZ1puSnZiU0FuY25ocWN5YzdYRzVjYm1sdGNHOXlkQ0I3Vm1WamRHOXlmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTNabFkzUnZja3hsYm1kMGFDd2dkbVZqZEc5eVJHOTBVSEp2WkhWamRIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRCYldsdWIyRmphV1J6TENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwyRnRhVzV2WVdOcFpITW5PMXh1YVcxd2IzSjBJSHRPZFdOc1pXOTBhV1JsY3l3Z1RuVmpiR1Z2ZEdsa1pYTlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZiblZqYkdWdmRHbGtaWE1uTzF4dWFXMXdiM0owSUh0VmJtdHViM2R1VTJWeFVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwzVnVhMjV2ZDI0bk8xeHVhVzF3YjNKMElIdFRaWEZRWVd4bGRIUmxmU0JtY205dElDY3VMaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVhVzF3YjNKMElIdFRkV0p6WTNKcGNIUnBiMjU5SUdaeWIyMGdKM0o0YW5Nbk8xeHVhVzF3YjNKMElIdE9UMVJCVkVsUFRpd2dWVzVwZEhOSVlXNWtiR1Z5ZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTkxYm1sMGN5MW9ZVzVrYkdWeUp6dGNibHh1WkdWamJHRnlaU0J0YjJSMWJHVWdKMlJoZEdGbmNtOXJMV0Z3YVM5emNtTXZaM0pwWkNjZ2UxeHVJQ0JwYm5SbGNtWmhZMlVnVW1WamRDQjdYRzRnSUNBZ1kyOXVkR0ZwYm5Nb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBPaUJpYjI5c1pXRnVPMXh1SUNCOVhHNTlYRzVjYm1WdWRXMGdVRzl6YVhScGIyNUlaV2xuYUhRZ2UxeHVJQ0JGYm5SeWIzQjVJRDBnSjBWdWRISnZjSGtuTEZ4dUlDQm1kV3hzSUQwZ0p6RXdNQ1VuTEZ4dWZWeHVYRzVrWldOc1lYSmxJR2RzYjJKaGJDQjdYRzRnSUdsdWRHVnlabUZqWlNCSVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZENCN1hHNGdJQ0FnWjJWMFEzVnljMjl5VUc5emFYUnBiMjRvWlhabGJuUTZJRTF2ZFhObFJYWmxiblFzSUhJNklHNTFiV0psY2lrNklFUkhMbEJ2YVc1ME8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUUxdmJtOXRaWEpHY21WeGN5QTlJSHNnVzIwNklITjBjbWx1WjEwNklHNTFiV0psY2lCOU8xeHVaWGh3YjNKMElIUjVjR1VnVTJWeFEyOXNVM1JoZEhNZ1BTQjdJR1p5WlhFNklFMXZibTl0WlhKR2NtVnhjeXdnYzJGdFpVeGxibWQwYURvZ1ltOXZiR1ZoYmlCOVhHNWxlSEJ2Y25RZ2RIbHdaU0JUY0d4cGRIUmxja1oxYm1NZ1BTQW9jMlZ4T2lCemRISnBibWNwSUQwK0lITjBjbWx1WjF0ZE8xeHVYRzR2S2lwQWNHRnlZVzBnZTAxdmRYTmxSWFpsYm5SOUlHVjJaVzUwWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2NpQmtaWFpwWTJWUWFYaGxiRkpoZEdsdmJseHVJQ29nUUhKbGRIVnliaUI3UkVjdVVHOXBiblI5SUdOaGJuWmhjeUJ5Wld4aGRHVmtJR04xY25OdmNpQndiM05wZEdsdmJseHVJQ292WEc1SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEM1d2NtOTBiM1I1Y0dVdVoyVjBRM1Z5YzI5eVVHOXphWFJwYjI0Z1BTQm1kVzVqZEdsdmJpaGxkbVZ1ZERvZ1RXOTFjMlZGZG1WdWRDd2djam9nYm5WdFltVnlLVG9nUkVjdVVHOXBiblFnZTF4dUlDQmpiMjV6ZENCeVpXTjBJRDBnZEdocGN5NW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1R0Y2JpQWdjbVYwZFhKdUlHNWxkeUJFUnk1UWIybHVkQ2dvWlhabGJuUXVZMnhwWlc1MFdDQXRJSEpsWTNRdWJHVm1kQ2tnS2lCeUxDQW9aWFpsYm5RdVkyeHBaVzUwV1NBdElISmxZM1F1ZEc5d0tTQXFJSElwTzF4dWZUdGNibHh1UkVjdVVtVmpkQzV3Y205MGIzUjVjR1V1WTI5dWRHRnBibk1nUFNCbWRXNWpkR2x2YmloNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpazZJR0p2YjJ4bFlXNGdlMXh1SUNCeVpYUjFjbTRnZEdocGN5NXNaV1owSUR3OUlIZ2dKaVlnZUNBOFBTQjBhR2x6TG5KcFoyaDBJQ1ltSUhSb2FYTXVkRzl3SUR3OUlIa2dKaVlnZVNBOFBTQjBhR2x6TG1KdmRIUnZiVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIdGNiaUFnTHlvcUlGTmxjWFZsYm1ObGN5QmpiM1Z1ZENCM2FYUm9JRzF2Ym05dFpYSWdhVzRnY0c5emFYUnBiMjVjYmlBZ0lDb3ZYRzRnSUdOdmRXNTBPaUJ1ZFcxaVpYSTdYRzVjYmlBZ0x5b3FJRkpsYldWdFltVnlJSE5qY21WbGJpQmpiMjl5WkhNZ2NtVmpkRnh1SUNBZ0tpOWNiaUFnWW05MWJtUnpPaUJFUnk1U1pXTjBPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLR052ZFc1ME9pQnVkVzFpWlhJZ1BTQXdMQ0JpYjNWdVpITTZJRVJITGxKbFkzUWdQU0J1WlhjZ1JFY3VVbVZqZENnd0xDQXdMQ0F3TENBd0tTa2dlMXh1SUNBZ0lIUm9hWE11WTI5MWJuUWdQU0JqYjNWdWREdGNiaUFnSUNCMGFHbHpMbUp2ZFc1a2N5QTlJR0p2ZFc1a2N6dGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1VHOXphWFJwYjI1SmJtWnZJSHRjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWm5KbGNUb2dleUJiYlRvZ2MzUnlhVzVuWFRvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QjlPMXh1SUNCeWIzZERiM1Z1ZERvZ2JuVnRZbVZ5TzF4dUlDQnpkVzFHYjNKSVpXbG5hSFJEWVd4ak9pQnVkVzFpWlhJN1hHNWNiaUFnTHlvcUlHWnlaWEVnUFNCN2ZTd2djbTkzUTI5MWJuUWdQU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUU1aGJXVWdiMllnY0c5emFYUnBiMjRnS0NjeE1URkJKeXdnSnpFeE1TNHhKeXdnWlhSaktWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUJUZFcwZ2IyWWdZV3hzSUcxdmJtOXRaWElnWTI5MWJuUnpJR1p2Y2lCb1pXbG5hSFFnWTJGc1kzVnNZWFJwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEp2ZDBOdmRXNTBJRU52ZFc1MElHOW1JR1ZzWlcxbGJuUnpJR2x1SUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjF0ZGZTQm1jbVZ4SUdaeVpYRjFaVzVqZVNCdlppQnRiMjV2YldWeWN5QnBiaUJ3YjNOcGRHbHZibHh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb2JtRnRaVG9nYzNSeWFXNW5MQ0JtY21WeE9pQjdJRnR0T2lCemRISnBibWRkT2lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIMGdQU0I3ZlN3Z2NtOTNRMjkxYm5RNklHNTFiV0psY2lBOUlEQXNJSE4xYlVadmNraGxhV2RvZEVOaGJHTTZJRzUxYldKbGNpQTlJREFwSUh0Y2JpQWdJQ0IwYUdsekxtNWhiV1VnUFNCdVlXMWxPMXh1SUNBZ0lIUm9hWE11Wm5KbGNTQTlJR1p5WlhFN1hHNGdJQ0FnZEdocGN5NXliM2REYjNWdWRDQTlJSEp2ZDBOdmRXNTBPMXh1SUNBZ0lIUm9hWE11YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUE5SUhOMWJVWnZja2hsYVdkb2RFTmhiR003WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRmRsWWt4dloyOGdaWGgwWlc1a2N5QkVSeTVLYzFacFpYZGxjaUI3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WemFXUjFaWE5UWlhRZ1BTQW5iblZqYkdWdmRHbGtaWE1uTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCMmFXVjNaWEpEYjNWdWREb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdjSEpwZG1GMFpTQjJhV1YzWlhKSlpEb2diblZ0WW1WeUlEMGdMVEU3WEc0Z0lIQnlhWFpoZEdVZ2RXNXBkSE5JWVc1a2JHVnlPaUJWYm1sMGMwaGhibVJzWlhJZ2ZDQnVkV3hzTzF4dUlDQndjbWwyWVhSbElHbHVhWFJwWVd4cGVtVmtPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVTdYRzVjYmlBZ0x5OGdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmpiMnh2Y2xOamFHVnRaVG9nUTI5c2IzSlRZMmhsYldVZ1BTQkRiMnh2Y2xOamFHVnRaWE5iVG5WamJHVnZkR2xrWlhOWFpXSk1iMmR2TG5KbGMybGtkV1Z6VTJWMFhUdGNiaUFnY0hKdmRHVmpkR1ZrSUdOd09pQlRaWEZRWVd4bGRIUmxJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNWNiaUFnY0hKcGRtRjBaU0JvYjNOMFB6b2dTRlJOVEVScGRrVnNaVzFsYm5RN1hHNGdJSEJ5YVhaaGRHVWdiWE5uU0c5emREODZJRWhVVFV4RmJHVnRaVzUwTzF4dUlDQndjbWwyWVhSbElHTmhiblpoY3o4NklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1ME8xeHVJQ0J3Y21sMllYUmxJSE5zYVdSbGNqODZJRVJITGxKaGJtZGxVMnhwWkdWeU8xeHVJQ0J3Y21sMllYUmxJSFJsZUhSQ1lYTmxiR2x1WlRvZ1EyRnVkbUZ6VkdWNGRFSmhjMlZzYVc1bE8xeHVYRzRnSUhCeWFYWmhkR1VnWVhocGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ01USTdYRzVjYmlBZ2NISnBkbUYwWlNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Ymp4emRISnBibWMrSUh3Z2JuVnNiQ0E5SUc1MWJHdzdYRzRnSUhCeWFYWmhkR1VnYzNCc2FYUjBaWEk2SUZOd2JHbDBkR1Z5Um5WdVl5QjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQXZMeUJ3Y21sMllYUmxJRzFoZUV4bGJtZDBhRG9nYm5WdFltVnlJRDBnTVRBd08xeHVJQ0J3Y21sMllYUmxJSEJ2YzJsMGFXOXVjem9nVUc5emFYUnBiMjVKYm1adlcxMGdQU0JiWFR0Y2JseHVJQ0J3Y21sMllYUmxJSEp2ZDNOTllYTnJaV1E2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEJ5YVhaaGRHVWdjbTkzYzA1MWJHdzZJRzUxYldKbGNpQTlJREE3WEc1Y2JpQWdMeThnVm1sbGQyVnlKM01nY0hKdmNHVnlkR2xsY3lBb2JHbHJaV3g1SUhSb1pYa2djMmh2ZFd4a0lHSmxJSEIxWW14cFl5QnpieUIwYUdGMElIUm9aWGtnWTJGdUlHSmxJSE5sZENCdmRYUnphV1JsS1Z4dUlDQndjbWwyWVhSbElGOXdiM05wZEdsdmJsZHBaSFJvT2lCdWRXMWlaWEk3WEc0Z0lIQjFZbXhwWXlCd2IzTnBkR2x2YmxkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUhCMVlteHBZeUJ0YVc1SVpXbG5hSFE2SUc1MWJXSmxjanRjYmlBZ2NIVmliR2xqSUcxaGVFaGxhV2RvZERvZ2JuVnRZbVZ5TzF4dUlDQndkV0pzYVdNZ1kyOXVjMmxrWlhKT2RXeHNVMlZ4ZFdWdVkyVnpPaUJpYjI5c1pXRnVPMXh1SUNCd2RXSnNhV01nYzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nY0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlRvZ2MzUnlhVzVuTzF4dUlDQndkV0pzYVdNZ2NHOXphWFJwYjI1TllYSm5hVzQ2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEIxWW14cFl5QnpkR0Z5ZEZCdmMybDBhVzl1VG1GdFpUb2djM1J5YVc1bklId2diblZzYkR0Y2JpQWdjSFZpYkdsaklHVnVaRkJ2YzJsMGFXOXVUbUZ0WlRvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdacGVGZHBaSFJvT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2RtVnlkR2xqWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCb2IzSnBlbTl1ZEdGc1FXeHBaMjV0Wlc1ME9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1ptbDBRWEpsWVRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITm9jbWx1YTBWdGNIUjVWR0ZwYkRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN6b2dZbTl2YkdWaGJqdGNiaUFnY0hWaWJHbGpJSEJ2YzJsMGFXOXVTR1ZwWjJoME9pQnpkSEpwYm1jN1hHNWNiaUFnY0hKcGRtRjBaU0J3YjNOcGRHbHZiazVoYldWek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoY25SUWIzTnBkR2x2YmpvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCbGJtUlFiM05wZEdsdmJqb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdMeW9xSUVadmNpQnpkR0Z5ZEZCdmMybDBhVzl1SUdWeGRXRnNjeUIwYnlCbGJtUlFiM05wZEdsdmJpQk1aVzVuZEdnZ2FYTWdNU0FxTDF4dUlDQndjbWwyWVhSbElHZGxkQ0JNWlc1bmRHZ29LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5CdmMybDBhVzl1Y3k1c1pXNW5kR2c3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BEMGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQS9JSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdMU0IwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lBeElEb2dNRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElIQnZjMmwwYVc5dVYybGtkR2hYYVhSb1RXRnlaMmx1S0NrZ2UxeHVJQ0FnSUdsbUlDZ29kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWVhWMGJ5Y3BJQ1ltSUNoMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWdwSUQwOVBTQjBjblZsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0t5QjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWlc1aFlteGxKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnS3lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNVM1ZpY3pvZ1UzVmljMk55YVhCMGFXOXVXMTBnUFNCYlhUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1pYSkpaQ0E5SUZkbFlreHZaMjh1ZG1sbGQyVnlRMjkxYm5RN1hHNGdJQ0FnVjJWaVRHOW5ieTUyYVdWM1pYSkRiM1Z1ZENBclBTQXhPMXh1WEc0Z0lDQWdkR2hwY3k1MFpYaDBRbUZ6Wld4cGJtVWdQU0FuZEc5d0p6dGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNTFiR3c3WEc1Y2JpQWdJQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb0lEMGdkR2hwY3k1bWJHOWhkQ2duY0c5emFYUnBiMjVYYVdSMGFDY3NJREUyTHlvc1hHNGdJQ0FnSUNCN1pXUnBkRzl5T2lBbmMyeHBaR1Z5Snl3Z2JXbHVPaUEwTENCdFlYZzZJRFkwTENCd2IzTjBabWw0T2lBbmNIZ25mU292S1R0Y2JpQWdJQ0IwYUdsekxtMXBia2hsYVdkb2RDQTlJSFJvYVhNdVpteHZZWFFvSjIxcGJraGxhV2RvZENjc0lEVXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQXlOVEFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dUlDQWdJSFJvYVhNdWJXRjRTR1ZwWjJoMElEMGdkR2hwY3k1bWJHOWhkQ2duYldGNFNHVnBaMmgwSnl3Z01UQXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQTFNREFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dVhHNGdJQ0FnZEdocGN5NWpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1nUFNCMGFHbHpMbUp2YjJ3b0oyTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWNzSUdaaGJITmxLVHRjYmlBZ0lDQjBhR2x6TG5ObGNYVmxibU5sUTI5c2RXMXVUbUZ0WlNBOUlIUm9hWE11YzNSeWFXNW5LQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuTENCdWRXeHNLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiazVoYldVZ1BTQjBhR2x6TG5OMGNtbHVaeWduYzNSaGNuUlFiM05wZEdsdmJrNWhiV1VuTENCdWRXeHNLVHRjYmlBZ0lDQjBhR2x6TG1WdVpGQnZjMmwwYVc5dVRtRnRaU0E5SUhSb2FYTXVjM1J5YVc1bktDZGxibVJRYjNOcGRHbHZiazVoYldVbkxDQnVkV3hzS1R0Y2JseHVJQ0FnSUhSb2FYTXVabWw0VjJsa2RHZ2dQU0IwYUdsekxtSnZiMndvSjJacGVGZHBaSFJvSnl3Z1ptRnNjMlVwTzF4dVhHNGdJQ0FnZEdocGN5NTJaWEowYVdOaGJFRnNhV2R1YldWdWRDQTlJSFJvYVhNdWMzUnlhVzVuS0NkMlpYSjBhV05oYkVGc2FXZHViV1Z1ZENjc0lDZHRhV1JrYkdVbkxGeHVJQ0FnSUNBZ2UyTm9iMmxqWlhNNklGc25kRzl3Snl3Z0oyMXBaR1JzWlNjc0lDZGliM1IwYjIwblhYMHBPMXh1SUNBZ0lIUm9hWE11YUc5eWFYcHZiblJoYkVGc2FXZHViV1Z1ZENBOUlIUm9hWE11YzNSeWFXNW5LQ2RvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwSnl3Z0oyTmxiblJsY2ljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZHNaV1owSnl3Z0oyTmxiblJsY2ljc0lDZHlhV2RvZENkZGZTazdYRzRnSUNBZ2RHaHBjeTVtYVhSQmNtVmhJRDBnZEdocGN5NWliMjlzS0NkbWFYUkJjbVZoSnl3Z2RISjFaU2s3WEc0Z0lDQWdkR2hwY3k1emFISnBibXRGYlhCMGVWUmhhV3dnUFNCMGFHbHpMbUp2YjJ3b0ozTm9jbWx1YTBWdGNIUjVWR0ZwYkNjc0lIUnlkV1VwTzF4dUlDQWdJSFJvYVhNdWMydHBjRVZ0Y0hSNVVHOXphWFJwYjI1eklEMGdkR2hwY3k1aWIyOXNLQ2R6YTJsd1JXMXdkSGxRYjNOcGRHbHZibk1uTENCbVlXeHpaU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMGdkR2hwY3k1emRISnBibWNvSjNCdmMybDBhVzl1VFdGeVoybHVVM1JoZEdVbkxDQW5ZWFYwYnljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZGhkWFJ2Snl3Z0oyVnVZV0pzWlNjc0lDZHZabVluWFgwcE8xeHVJQ0FnSUd4bGRDQmtaV1poZFd4MFZtRnNkV1ZHYjNKUWIzTnBkR2x2YmsxaGNtZHBiaUE5SURBN1hHNGdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlNBOVBUMGdKMkYxZEc4bktTQjdYRzRnSUNBZ0lDQWdJR1JsWm1GMWJIUldZV3gxWlVadmNsQnZjMmwwYVc5dVRXRnlaMmx1SUQwZ05EdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NXdiM05wZEdsdmJrMWhjbWRwYmlBOUlIUm9hWE11YVc1MEtDZHdiM05wZEdsdmJrMWhjbWRwYmljc0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVMQ0I3YldsdU9pQXdMQ0J0WVhnNklERTJmU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmtobGFXZG9kQ0E5SUhSb2FYTXVjM1J5YVc1bktDZHdiM05wZEdsdmJraGxhV2RvZENjc0lGQnZjMmwwYVc5dVNHVnBaMmgwTG1aMWJHd3NJSHRqYUc5cFkyVnpPaUJiVUc5emFYUnBiMjVJWldsbmFIUXVablZzYkN3Z1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlVjE5S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nYVc1cGRDZ3BPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGJtbDBhV0ZzYVhwbFpDa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lnblYyVmlURzluYnlCelpXTnZibVFnYVc1cGRHbGhiR2w2WVhScGIyNGhKeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlIUnlkV1U3WEc0Z0lDQWdkR2hwY3k1b1pXeHdWWEpzSUQwZ0p5OW9aV3h3TDNacGMzVmhiR2w2WlM5MmFXVjNaWEp6TDNkbFlpMXNiMmR2TG0xa0p6dGNibHh1SUNBZ0lIUm9hWE11YlhOblNHOXpkQ0E5SUhWcExtUnBkaWduVG04Z2JXVnpjMkZuWlNjcE8xeHVJQ0FnSUhSb2FYTXViWE5uU0c5emRDNXpkSGxzWlM1a2FYTndiR0Y1SUQwZ0oyNXZibVVuTzF4dVhHNGdJQ0FnZEdocGN5NWpZVzUyWVhNZ1BTQjFhUzVqWVc1MllYTW9LVHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlDY3hNREFsSnp0Y2JseHVJQ0FnSUhSb2FYTXVhRzl6ZENBOUlIVnBMbVJwZGloYmRHaHBjeTV0YzJkSWIzTjBMQ0IwYUdsekxtTmhiblpoYzEwcE8xeHVYRzRnSUNBZ0x5OGdkR2hwY3k1emJHbGtaWElnUFNCMWFTNXlZVzVuWlZOc2FXUmxjaWd3TENBeU1Dd2dNaXdnTlNrN1hHNGdJQ0FnTHk4Z2RHaHBjeTV6Ykdsa1pYSXVjbTl2ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBdkx5QjBhR2x6TG5Oc2FXUmxjaTV5YjI5MExuTjBlV3hsTG1obGFXZG9kQ0E5SUNjeE1uQjRKenRjYmx4dUlDQWdJR052Ym5OMElHZGxkRTF2Ym05dFpYSWdQU0FvY0RvZ1JFY3VVRzlwYm5RcE9pQmJiblZ0WW1WeUxDQnpkSEpwYm1jZ2ZDQnVkV3hzTENCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklId2diblZzYkYwZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FsQnZjeUE5SUUxaGRHZ3VabXh2YjNJb2NDNTRJQzhnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvVjJsMGFFMWhjbWRwYmlrN1hHNGdJQ0FnSUNCamIyNXpkQ0J3YjNOcGRHbHZiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZE8xeHVYRzRnSUNBZ0lDQnBaaUFvY0c5emFYUnBiMjRnUFQwOUlIWnZhV1FnTUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0cVVHOXpMQ0J1ZFd4c0xDQnVkV3hzWFR0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjam9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUQwZ1QySnFaV04wTG10bGVYTW9jRzl6YVhScGIyNHVabkpsY1NsY2JpQWdJQ0FnSUNBZ0xtWnBibVFvS0cwcElEMCtJSEJ2YzJsMGFXOXVMbVp5WlhGYmJWMHVZbTkxYm1SekxtTnZiblJoYVc1ektIQXVlQ3dnY0M1NUtTazdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaUE5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUc1MWJHd3NJRzUxYkd4ZE8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUcxdmJtOXRaWElzSUhCdmMybDBhVzl1TG1aeVpYRmJiVzl1YjIxbGNsMWRPMXh1SUNBZ0lIMDdYRzVjYmx4dUlDQWdJQzh2SUhSb2FYTXVjM1ZpY3k1d2RYTm9LSEo0YW5NdVpuSnZiVVYyWlc1MFBFMXZkWE5sUlhabGJuUStLSFJvYVhNdVkyRnVkbUZ6TENBbmJXOTFjMlZ2ZG1WeUp5a3VjM1ZpYzJOeWFXSmxLQ2hsT2lCTmIzVnpaVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdMeThnZlNrcE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1UzVmljeTV3ZFhOb0tISjRhbk11Wm5KdmJVVjJaVzUwUEUxdmRYTmxSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuYlc5MWMyVnRiM1psSnlrdWMzVmljMk55YVdKbEtDaGxPaUJOYjNWelpVVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZMkZ1ZG1GektWeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdGeVozTWdQU0JsSUdGeklFMXZkWE5sUlhabGJuUTdYRzVjYmlBZ0lDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWMyOXlVRG9nUkVjdVVHOXBiblFnUFNCMGFHbHpMbU5oYm5aaGN5NW5aWFJEZFhKemIzSlFiM05wZEdsdmJpaGhjbWR6TENCeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0cVVHOXpMQ0J0YjI1dmJXVnlYU0E5SUdkbGRFMXZibTl0WlhJb1kzVnljMjl5VUNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQW1KaUIwYUdsekxuTmxjVU52YkNBbUppQjBhR2x6TG5Od2JHbDBkR1Z5SUNZbUlHMXZibTl0WlhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtOTNRMjkxYm5RZ1BTQjNkUzVqYjNWdWRDZ3BMblJoYTJVb2RHaHBjeTVrWVhSaFJuSmhiV1V1Y205M1EyOTFiblFwTG1acGJIUmxjaWdvYVZKdmR6b2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeElEMGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBVbTkzS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYRk5JRDBnYzJWeElEOGdkR2hwY3k1emNHeHBkSFJsY2lFb2MyVnhLVnQwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lCcVVHOXpYU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dvYzJWeFRTQTlQVDBnYlc5dWIyMWxjaWtnZkh3Z0tITmxjVTBnUFQwOUlDY25JQ1ltSUcxdmJtOXRaWElnUFQwOUlDY3RKeWtwSUNZbUlIUm9hWE11WkdGMFlVWnlZVzFsTG1acGJIUmxjaTVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUgwcExuSmxaSFZqWlR4dWRXMWlaWEkrS0NoamIzVnVkQ3dnYVZKdmR5a2dQVDRnWTI5MWJuUWdLeUF4TENBd0tUdGNiaUFnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIVnBMbVJwZGloYmRXa3VaR2wyS0dBa2UyMXZibTl0WlhKOVlDa3NJSFZwTG1ScGRpaGdKSHR5YjNkRGIzVnVkSDBnY205M2MyQXBYU2tzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWnBaWGRUZFdKekxuQjFjMmdvY25ocWN5NW1jbTl0UlhabGJuUThUVzkxYzJWRmRtVnVkRDRvZEdocGN5NWpZVzUyWVhNc0lDZHRiM1Z6WldSdmQyNG5LUzV6ZFdKelkzSnBZbVVvS0dVNklFMXZkWE5sUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z1pTNWlkWFIwYjI0Z0lUMGdNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQmhjbWR6SUQwZ1pTQmhjeUJOYjNWelpVVjJaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjam9nYm5WdFltVnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNc0lISXBLVHRjYmx4dUlDQWdJQ0FnTHk4Z2NISmxkbVZ1ZEhNZ1pHVnpaV3hsWTNRZ1lXeHNJSEp2ZDNNZ2FXWWdkMlVnYldsemN5QnRiMjV2YldWeUlHSnZkVzVrYzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YVc1cGRDZ29hVkp2ZHlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1NBOUlIUm9hWE11YzJWeFEyOXNJUzVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRTQTlJSE5sY1NBL0lIUm9hWE11YzNCc2FYUjBaWEloS0hObGNTbGJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9LSE5sY1UwZ1BUMDlJRzF2Ym05dFpYSXBJSHg4SUNoelpYRk5JRDA5UFNBbkp5QW1KaUJ0YjI1dmJXVnlJRDA5UFNBbkxTY3BLU0FtSmlCMGFHbHpMbVJoZEdGR2NtRnRaUzVtYVd4MFpYSXVaMlYwS0dsU2IzY3BPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1NrN1hHNWNiaUFnSUNCMGFHbHpMblpwWlhkVGRXSnpMbkIxYzJnb2RXa3ViMjVUYVhwbFEyaGhibWRsWkNoMGFHbHpMbkp2YjNRcExuTjFZbk5qY21saVpTaDBhR2x6TG5KdmIzUlBibE5wZW1WRGFHRnVaMlZrTG1KcGJtUW9kR2hwY3lrcEtUdGNibHh1SUNBZ0lIUm9hWE11Y205dmRDNWhjSEJsYm1Rb2RHaHBjeTVvYjNOMEtUdGNiaUFnSUNBdkx5QjBhR2x6TG5KdmIzUXVZWEJ3Wlc1a1EyaHBiR1FvZEdocGN5NXpiR2xrWlhJdWNtOXZkQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY205dmRFOXVVMmw2WlVOb1lXNW5aV1FvWVhKbmN6b2dZVzU1S1NCN1hHNGdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc1Y2JpQWdJQ0F2THlCamIyNXpiMnhsTG1SbFluVm5LR0JYWldKTWIyZHZMbTl1VW05dmRGTnBlbVZEYUdGdVoyVmtLQ2tnWUNBclhHNGdJQ0FnTHk4Z0lDQmdjbTl2ZEM1M2FXUjBhRDBrZTNSb2FYTXVjbTl2ZEM1amJHbGxiblJYYVdSMGFIMHNJSEp2YjNRdWFHVnBaMmgwUFNSN2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kSDBzSUdBZ0sxeHVJQ0FnSUM4dklDQWdZR05oYm5aaGN5NTNhV1IwYUQwa2UzUm9hWE11WTJGdWRtRnpMbmRwWkhSb2ZTd2dZMkZ1ZG1GekxtaGxhV2RvZEQwa2UzUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RIMGdMbUFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUZ6YzJsbmJuTWdlMEJzYVc1cklITmxjVU52YkgwZ1lXNWtJSHRBYkdsdWF5QmpjSDBnWW1GelpXUWdiMjRnZTBCc2FXNXJJSE5sY1hWbGJtTmxRMjlzZFcxdVRtRnRaWDBnWVc1a0lHTmhiR3h6SUh0QWJHbHVheUJ5Wlc1a1pYSjlLQ2t1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhWd1pHRjBaVk5sY1VOdmJDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1a1lYUmhSbkpoYldVcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNWpiMndvZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuTmxjVU52YkNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnVjJWaVRHOW5ieTV3YVdOclZYQlRaWEZEYjJ3eUtIUm9hWE11WkdGMFlVWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VnUFNCMGFHbHpMbk5sY1VOdmJDQS9JSFJvYVhNdWMyVnhRMjlzTG01aGJXVWdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMyVnhRMjlzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhWdWFYUnpPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSTZJSE4wY21sdVp5QTlJSFJvYVhNdWMyVnhRMjlzSVM1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6Y0d4cGRIUmxjaUE5SUZkbFlreHZaMjh1WjJWMFUzQnNhWFIwWlhJb2RXNXBkSE1zSUhObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZFc1cGRITklZVzVrYkdWeUlEMGdibVYzSUZWdWFYUnpTR0Z1Wkd4bGNpaDBhR2x6TG5ObGNVTnZiQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpjQ0E5SUZkbFlreHZaMjh1Y0dsamExVndVR0ZzWlhSMFpTaDBhR2x6TG5ObGNVTnZiQ2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTndiR2wwZEdWeUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOUlDMHhPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnVaRkJ2YzJsMGFXOXVJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTNBZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWdwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMWNHUmhkR1ZRYjNOcGRHbHZibk1vS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbk5sY1VOdmJDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUd4bGRDQmpZWFJsWjI5eWFXVnpPaUFvYzNSeWFXNW5JSHdnYm5Wc2JDa2dXMTA3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjMmh5YVc1clJXMXdkSGxVWVdsc0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcGJtUnBZMlZ6T2lCSmJuUXpNa0Z5Y21GNUlEMGdkR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG1kbGRGTmxiR1ZqZEdWa1NXNWtaWGhsY3lncE8xeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJRUZ5Y21GNUxtWnliMjBvYm1WM0lGTmxkQ2hjYmlBZ0lDQWdJQ0FnUVhKeVlYa3Vabkp2YlNoQmNuSmhlU2hwYm1ScFkyVnpMbXhsYm1kMGFDa3VhMlY1Y3lncEtTNXRZWEFvS0drNklHNTFiV0psY2lrZ1BUNGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBibVJwWTJWelcybGRLU2twS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMkYwWldkdmNtbGxjeUE5SUhSb2FYTXVjMlZ4UTI5c0xtTmhkR1ZuYjNKcFpYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJRzFoZUV4bGJtZDBhQ0E5SUdOaGRHVm5iM0pwWlhNdWJHVnVaM1JvSUQ0Z01DQS9JRTFoZEdndWJXRjRLQzR1TG1OaGRHVm5iM0pwWlhNdWJXRndLRnh1SUNBZ0lDQWdLSE1wSUQwK0lITWdJVDA5SUc1MWJHd2dQeUIwYUdsekxuTndiR2wwZEdWeUlTaHpLUzVzWlc1bmRHZ2dPaUF3S1NrZ09pQXdPMXh1WEc0Z0lDQWdMeThnUjJWMElIQnZjMmwwYVc5dUlHNWhiV1Z6SUdaeWIyMGdaR0YwWVNCamIyeDFiVzRnZEdGbklDZHdiM05wZEdsdmJrNWhiV1Z6SjF4dUlDQWdJR052Ym5OMElIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1BTQjBhR2x6TG5ObGNVTnZiQzVuWlhSVVlXY29KM0J2YzJsMGFXOXVUbUZ0WlhNbktUdGNiaUFnSUNBdkx5QkdZV3hzWW1GamF5QnBaaUFuY0c5emFYUnBiMjVPWVcxbGN5Y2dkR0ZuSUdseklHNXZkQ0J3Y205MmFXUmxaRnh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5QTlJSEJ2YzJsMGFXOXVUbUZ0WlhOVWVIUWdQeUJ3YjNOcGRHbHZiazVoYldWelZIaDBMbk53YkdsMEtDY3NJQ2NwTG0xaGNDZ29iaWtnUFQ0Z2JpNTBjbWx0S0NrcElEcGNiaUFnSUNBZ0lGc3VMaTVCY25KaGVTaHRZWGhNWlc1bmRHZ3BMbXRsZVhNb0tWMHViV0Z3S0NocVVHOXpLU0E5UGlCZ0pIdHFVRzl6SUNzZ01YMWdLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxJQ1ltSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBbUpseHVJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWekxtbHVZMngxWkdWektIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJrNWhiV1VwS1NBL1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNdWFXNWtaWGhQWmloMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxLU0E2SURBN1hHNGdJQ0FnZEdocGN5NWxibVJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTQW1KaUIwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE1nSmlaY2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3k1cGJtTnNkV1JsY3loMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTa3BJRDljYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1SbGVFOW1LSFJvYVhNdVpXNWtVRzl6YVhScGIyNU9ZVzFsS1NBNklDaHRZWGhNWlc1bmRHZ2dMU0F4S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCdmRtVnljbWxrWlNCdmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVRvZ1JFY3VVSEp2Y0dWeWRIa3BPaUIyYjJsa0lIdGNiaUFnSUNBdkx5QmpiMjV6YjJ4bExtUmxZblZuS0dCWFpXSk1iMmR2TG05dVVISnZjR1Z5ZEhsRGFHRnVaMlZrS0NBa2UzQnliM0JsY25SNUxtNWhiV1Y5SUQwZ0p5Y2dmU2xnS1R0Y2JpQWdJQ0J6ZFhCbGNpNXZibEJ5YjNCbGNuUjVRMmhoYm1kbFpDaHdjbTl3WlhKMGVTazdYRzVjYmlBZ0lDQnpkMmwwWTJnZ0tIQnliM0JsY25SNUxtNWhiV1VwSUh0Y2JpQWdJQ0JqWVhObElDZGpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1uT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNOMFlYSjBVRzl6YVhScGIyNU9ZVzFsSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyVnhRMjlzS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbGJtUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUR0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldsdVNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldGNFNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuWm1sNFYybGtkR2duT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2QyWlhKMGFXTmhiRUZzYVdkdWJXVnVkQ2M2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKMmh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2RtYVhSQmNtVmhKenBjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5jMmh5YVc1clJXMXdkSGxVWVdsc0p6cGNiaUFnSUNBZ0lIUm9hWE11ZFhCa1lYUmxVRzl6YVhScGIyNXpLQ2s3WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM05yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWM2WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZCdmMybDBhVzl1Y3lncE8xeHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkd2IzTnBkR2x2YmsxaGNtZHBiaWM2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM0J2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R3YjNOcGRHbHZia2hsYVdkb2RDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ2ZG1WeWNtbGtaU0JoYzNsdVl5QnZibFJoWW14bFFYUjBZV05vWldRb0tTQjdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlVWnlZVzFsVkhoME9pQnpkSEpwYm1jZ1BTQjBhR2x6TG1SaGRHRkdjbUZ0WlNBL0lDZGtZWFJoSnlBNklDZHVkV3hzSnp0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ0JrWVhSaFJuSmhiV1VnUFNBa2UyUmhkR0ZHY21GdFpWUjRkSDBnS1NCemRHRnlkR0FwTzF4dUlDQWdJSE4xY0dWeUxtOXVWR0ZpYkdWQmRIUmhZMmhsWkNncE8xeHVYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVlRaWEZEYjJ3b0tUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQWhQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaDBhR2x6TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWIyNURhR0Z1WjJWa0xuTjFZbk5qY21saVpTZ29YeWtnUFQ0Z2RHaHBjeTV5Wlc1a1pYSW9LU2twTzF4dUlDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29kR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG05dVEyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tGOHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb0tUdGNiaUFnSUNBZ0lIMHBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbWx1YVhRb0tUdGNiaUFnSUNCamIyNXpiMnhsTG1SbFluVm5LR0JpYVc4NklGZGxZa3h2WjI4OEpIdDBhR2x6TG5acFpYZGxja2xrZlQ0dWIyNVVZV0pzWlVGMGRHRmphR1ZrS0NrZ1pXNWtZQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYjNabGNuSnBaR1VnWVhONWJtTWdaR1YwWVdOb0tDa2dlMXh1SUNBZ0lHTnZibk4wSUdSaGRHRkdjbUZ0WlZSNGRDQTlJR0FrZTNSb2FYTXVaR0YwWVVaeVlXMWxJRDhnSjJSaGRHRW5JRG9nSjI1MWJHd25mV0E3WEc0Z0lDQWdZMjl1YzI5c1pTNWtaV0oxWnloZ1ltbHZPaUJYWldKTWIyZHZQQ1I3ZEdocGN5NTJhV1YzWlhKSlpIMCtMbTl1VkdGaWJHVkJkSFJoWTJobFpDZ2daR0YwWVVaeVlXMWxJRDBnSkh0a1lYUmhSbkpoYldWVWVIUjlJQ2tnYzNSaGNuUmdLVHRjYmlBZ0lDQnpkWEJsY2k1a1pYUmhZMmdvS1R0Y2JseHVJQ0FnSUhSb2FYTXVkbWxsZDFOMVluTXVabTl5UldGamFDZ29jM1ZpS1NBOVBpQnpkV0l1ZFc1emRXSnpZM0pwWW1Vb0tTazdYRzRnSUNBZ2RHaHBjeTVvYjNOMElTNXlaVzF2ZG1Vb0tUdGNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBhR2x6TG0xelowaHZjM1FnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZEdocGN5NW9iM04wSUQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OdmJHVXVaR1ZpZFdjb1lHSnBiem9nVjJWaVRHOW5iendrZTNSb2FYTXVkbWxsZDJWeVNXUjlQaTV2YmxSaFlteGxRWFIwWVdOb1pXUW9LU0JsYm1SZ0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JmYm5Wc2JGTmxjWFZsYm1ObEtHWnBiR3hsY2xKbGMybGtkV1VnUFNBbldDY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWxjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUVhKeVlYa29kR2hwY3k1TVpXNW5kR2dwTG1acGJHd29abWxzYkdWeVVtVnphV1IxWlNrdWFtOXBiaWduSnlrN1hHNWNiaUFnSUNCeVpYUjFjbTRnSnljN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZ0YjNabFYyaGxjbVVvWVhKeVlYazZJRUZ5Y21GNVBHRnVlVDRzSUhCeVpXUnBZMkYwWlRvZ0tGUTZJR0Z1ZVNrZ1BUNGdZbTl2YkdWaGJpazZJRUZ5Y21GNVBHRnVlVDRnZTF4dUlDQWdJR3hsZENCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJSFZ3WkdGMFpVbDBaWEpoZEc5eUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQmtaV3hsZEdWSmRHVnlZWFJ2Y2lBOUlEQTdJR1JsYkdWMFpVbDBaWEpoZEc5eUlEd2diR1Z1WjNSb095QmtaV3hsZEdWSmRHVnlZWFJ2Y2lzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhCeVpXUnBZMkYwWlNoaGNuSmhlVnRrWld4bGRHVkpkR1Z5WVhSdmNsMHBLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM1Z3WkdGMFpVbDBaWEpoZEc5eVhTQTlJR0Z5Y21GNVcyUmxiR1YwWlVsMFpYSmhkRzl5WFR0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsU1hSbGNtRjBiM0lyS3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2RYQmtZWFJsU1hSbGNtRjBiM0k3WEc0Z0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQjlYRzVjYmx4dUlDQndjbTkwWldOMFpXUWdYM0psYlc5MlpVVnRjSFI1VUc5emFYUnBiMjV6S0NrZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5OcmFYQkZiWEIwZVZCdmMybDBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WlcxdmRtVlhhR1Z5WlNoMGFHbHpMbkJ2YzJsMGFXOXVjeXdnYVhSbGJTQTlQaUJwZEdWdFB5NW1jbVZ4V3ljdEoxMC9MbU52ZFc1MElEMDlQU0JwZEdWdExuSnZkME52ZFc1MEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdYMk5oYkdOMWJHRjBaU2h5T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbWh2YzNRZ2ZId2dJWFJvYVhNdWMyVnhRMjlzSUh4OElDRjBhR2x6TG1SaGRHRkdjbUZ0WlNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNpQTlJRzVsZHlCVmJtbDBjMGhoYm1Sc1pYSW9kR2hwY3k1elpYRkRiMndwTzF4dVhHNWNiaUFnSUNCMGFHbHpMbU5oYkdOVGFYcGxLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWN5QTlJRzVsZHlCQmNuSmhlU2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnUEQwZ2RHaHBjeTVsYm1SUWIzTnBkR2x2YmlBL0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z0xTQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdLeUF4SURvZ01DazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTk9ZVzFsT2lCemRISnBibWNnUFNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhOYmRHaHBjeTV6ZEdGeWRGQnZjMmwwYVc5dUlDc2dhbEJ2YzEwN1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTQTlJRzVsZHlCUWIzTnBkR2x2YmtsdVptOG9jRzl6VG1GdFpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdNakF5TWkwd05TMHdOU0JoYzJ0aGJHdHBiaUJwYm5OMGNuVmpkR1ZrSUhSdklITm9iM2NnVjJWaVRHOW5ieUJpWVhObFpDQnZiaUJtYVd4MFpYSWdLRzV2ZENCelpXeGxZM1JwYjI0cFhHNGdJQ0FnWTI5dWMzUWdhVzVrYVdObGN5QTlJSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1blpYUlRaV3hsWTNSbFpFbHVaR1Y0WlhNb0tUdGNiaUFnSUNBdkx5QmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1YzJWc1pXTjBhVzl1TG5SeWRXVkRiM1Z1ZENBK0lEQWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVaMlYwVTJWc1pXTjBaV1JKYm1SbGVHVnpLQ2tnT2x4dUlDQWdJQzh2SUNBZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dVhHNGdJQ0FnZEdocGN5NXliM2R6VFdGemEyVmtJRDBnYVc1a2FXTmxjeTVzWlc1bmRHZzdYRzRnSUNBZ2RHaHBjeTV5YjNkelRuVnNiQ0E5SURBN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHa2diMllnYVc1a2FXTmxjeWtnZTF4dUlDQWdJQ0FnYkdWMElITTZJSE4wY21sdVp5QTlJRHh6ZEhKcGJtYytLSFJvYVhNdWMyVnhRMjlzTG1kbGRDaHBLU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hjeWtnZTF4dUlDQWdJQ0FnSUNCeklEMGdkR2hwY3k1ZmJuVnNiRk5sY1hWbGJtTmxLQ2s3WEc0Z0lDQWdJQ0FnSUNzcmRHaHBjeTV5YjNkelRuVnNiRHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMlZ4VFRvZ2MzUnlhVzVuVzEwZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5SVNoektUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHcFFiM01nUFNBd095QnFVRzl6SUR3Z2RHaHBjeTVNWlc1bmRHZzdJR3BRYjNNckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndiVWx1Wm04Z1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdE9pQnpkSEpwYm1jZ1BTQnpaWEZOVzNSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBcklHcFFiM05kSUh4OElDY3RKenRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCd2JVbHVabThwS1Z4dUlDQWdJQ0FnSUNBZ0lIQnRTVzVtYjF0dFhTQTlJRzVsZHlCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adktDazdYRzRnSUNBZ0lDQWdJSEJ0U1c1bWIxdHRYUzVqYjNWdWRDc3JPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJM0psWjJsdmJpQlFiMnhwYzJnZ1puSmxjU0JqYjNWdWRITmNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lDOHZJR1JsYkdWMFpTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeFd5Y3RKMTA3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExuSnZkME52ZFc1MElEMGdNRHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCcGJpQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeEtWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV5YjNkRGIzVnVkQ0FyUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4VzIxZExtTnZkVzUwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVJWldsbmFIUWdQVDBnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUQwZ01EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J0SUdsdUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhFcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQndiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEZiYlYwdVkyOTFiblFnTHlCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWREdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUNzOUlDMXdiaUFxSUUxaGRHZ3ViRzluTWlod2JpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5OGpaVzVrY21WbmFXOXVYRzRnSUNBZ2RHaHBjeTVmY21WdGIzWmxSVzF3ZEhsUWIzTnBkR2x2Ym5Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUdGaWMyOXNkWFJsVFdGNFNHVnBaMmgwSUQwZ2RHaHBjeTVqWVc1MllYTXVhR1ZwWjJoMElDMGdkR2hwY3k1aGVHbHpTR1ZwWjJoMElDb2djanRjYmlBZ0lDQXZMeUJqYjI1emIyeGxMbVJsWW5WbktHQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xsOWpZV3hqZFd4aGRHVW9LU0J0WVhoSVpXbG5hSFE5Skh0dFlYaElaV2xuYUhSOUxtQXBPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRU5oYkdOMWJHRjBaU0J6WTNKbFpXNWNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdaeVpYRTZJSHNnVzJNNklITjBjbWx1WjEwNklGQnZjMmwwYVc5dVRXOXViMjFsY2tsdVptOGdmU0E5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEU3WEc0Z0lDQWdJQ0JqYjI1emRDQnliM2REYjNWdWRDQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG5KdmQwTnZkVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZV3h3YUdGaVpYUlRhWHBsSUQwZ2RHaHBjeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LVHRjYmlBZ0lDQWdJR2xtSUNnb2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlQU0JRYjNOcGRHbHZia2hsYVdkb2RDNUZiblJ5YjNCNUtTQW1KaUFvWVd4d2FHRmlaWFJUYVhwbElEMDlJRzUxYkd3cEtTQjdYRzRnSUNBZ0lDQWdJR2R5YjJzdWMyaGxiR3d1WlhKeWIzSW9KMWRsWWt4dloyODZJR0ZzY0doaFltVjBJR2x6SUhWdVpHVm1hVzVsWkM0bktUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjRTR1ZwWjJoMElEMGdLSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnUHlBb1lXSnpiMngxZEdWTllYaElaV2xuYUhRZ0tpQW9UV0YwYUM1c2IyY3lLR0ZzY0doaFltVjBVMmw2WlNrZ0xTQW9kR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeWtwSUM4Z1RXRjBhQzVzYjJjeUtHRnNjR2hoWW1WMFUybDZaU2twSURvZ1lXSnpiMngxZEdWTllYaElaV2xuYUhRN1hHNWNiaUFnSUNBZ0lHeGxkQ0I1T2lCdWRXMWlaWElnUFNCMGFHbHpMbUY0YVhOSVpXbG5hSFFnS2lCeUlDc2dLR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJQzBnYldGNFNHVnBaMmgwSUMwZ01TazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHVnVkSEpwWlhNZ1BTQlBZbXBsWTNRdVpXNTBjbWxsY3lobWNtVnhLUzV6YjNKMEtDaGhMQ0JpS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoaFd6QmRJQ0U5UFNBbkxTY2dKaVlnWWxzd1hTQWhQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmlXekZkTG1OdmRXNTBJQzBnWVZzeFhTNWpiM1Z1ZER0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1lWc3dYU0E5UFQwZ0p5MG5JQ1ltSUdKYk1GMGdQVDA5SUNjdEp5bGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNRHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVZzd1hTQTlQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXRNVHRjYmlBZ0lDQWdJQ0FnWld4elpTQXZLaUFvWWxzd1hTQTlQVDBnSnkwbktTQXFMMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFyTVR0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmxiblJ5ZVNCdlppQmxiblJ5YVdWektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnRTVzVtYnpvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QTlJR1Z1ZEhKNVd6RmRPMXh1SUNBZ0lDQWdJQ0F2THlCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCbGJuUnllVnN3WFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYURvZ2JuVnRZbVZ5SUQwZ2JXRjRTR1ZwWjJoMElDb2djRzFKYm1adkxtTnZkVzUwSUM4Z2NtOTNRMjkxYm5RN1hHNWNiaUFnSUNBZ0lDQWdjRzFKYm1adkxtSnZkVzVrY3lBOUlHNWxkeUJFUnk1U1pXTjBLR3BRYjNNZ0tpQjBhR2x6TG5CdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVMQ0I1TENCMGFHbHpMbDl3YjNOcGRHbHZibGRwWkhSb0xDQm9LVHRjYmlBZ0lDQWdJQ0FnZVNBclBTQm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdkx5TmxibVJ5WldkcGIyNWNiaUFnZlZ4dVhHNGdJQzh2SUhKbFpteGxZM1FnWTJoaGJtZGxjeUJ0WVdSbElIUnZJR1pwYkhSbGNpOXpaV3hsWTNScGIyNWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbk5sY1VOdmJDQjhmQ0FoZEdocGN5NWtZWFJoUm5KaGJXVWdmSHdnSVhSb2FYTXVZM0FwWEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ0lDQmpiMjV6ZENCbklEMGdkR2hwY3k1allXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LVHRjYmlBZ0lDQnBaaUFvSVdjcElISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSElnUFNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBienRjYmx4dUlDQWdJR2xtSUNoeVpXTmhiR01wWEc0Z0lDQWdJQ0IwYUdsekxsOWpZV3hqZFd4aGRHVW9jaWs3WEc1Y2JpQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdaeTVtYVd4c1UzUjViR1VnUFNBbmQyaHBkR1VuTzF4dUlDQWdJR2N1Wm1sc2JGSmxZM1FvTUN3Z01Dd2dkR2hwY3k1allXNTJZWE11ZDJsa2RHZ3NJSFJvYVhNdVkyRnVkbUZ6TG1obGFXZG9kQ2s3WEc0Z0lDQWdaeTUwWlhoMFFtRnpaV3hwYm1VZ1BTQjBhR2x6TG5SbGVIUkNZWE5sYkdsdVpUdGNibHh1SUNBZ0lDOHZJRkJ5WlhabGJuUnpJR1JwZG1semFXOXVJR0o1SUhwbGNtOGdiMjRnVEdWdVozUm9JRDBnTUZ4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BUMDlJQzB4SUh4OElIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1BUMDlJQzB4S1Z4dUlDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRkJzYjNRZ2NHOXphWFJwYjI1T1lXMWxjMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1Um05dWRGTnBlbVVnUFNBeE1DQXFJSEk3WEc0Z0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lHY3VabWxzYkZOMGVXeGxJRDBnSjJKc1lXTnJKenRjYmlBZ0lDQm5MblJsZUhSQmJHbG5iaUE5SUNkalpXNTBaWEluTzF4dUlDQWdJR2N1Wm05dWRDQTlJR0FrZTNCdmMybDBhVzl1Um05dWRGTnBlbVV1ZEc5R2FYaGxaQ2d4S1gxd2VDQlNiMkp2ZEc4c0lGSnZZbTkwYnlCTWIyTmhiQ3dnYzJGdWN5MXpaWEpwWm1BN1hHNGdJQ0FnWTI5dWMzUWdjRzl6VG1GdFpVMWhlRmRwWkhSb0lEMGdUV0YwYUM1dFlYZ29MaTR1ZEdocGN5NXdiM05wZEdsdmJuTXViV0Z3S0Nod2IzTXBJRDArSUdjdWJXVmhjM1Z5WlZSbGVIUW9jRzl6TG01aGJXVXBMbmRwWkhSb0tTazdYRzRnSUNBZ1kyOXVjM1FnYUZOallXeGxJRDBnY0c5elRtRnRaVTFoZUZkcFpIUm9JRHdnS0hSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0xTQXlLU0EvSURFZ09pQW9kR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0F0SURJcElDOGdjRzl6VG1GdFpVMWhlRmRwWkhSb08xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTTZJRkJ2YzJsMGFXOXVTVzVtYnlBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRPMXh1SUNBZ0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lHaFRZMkZzWlN3Z01Dd2dNQ3dnTVN4Y2JpQWdJQ0FnSUNBZ2FsQnZjeUFxSUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0Z0t5QjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JQzhnTWl3Z01DazdYRzRnSUNBZ0lDQm5MbVpwYkd4VVpYaDBLSEJ2Y3k1dVlXMWxMQ0F3TENBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHk4alpXNWtjbVZuYVc5dUlGQnNiM1FnY0c5emFYUnBiMjVPWVcxbGMxeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJRnR0YjI1dmJXVnlMQ0J3YlVsdVptOWRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUlDRTlQU0FuTFNjcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiMjV2YldWeVZIaDBJRDBnVjJWaVRHOW5ieTV0YjI1dmJXVnlWRzlVWlhoMEtHMXZibTl0WlhJcE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHSWdQU0J3YlVsdVptOHVZbTkxYm1Sek8xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdabTl1ZEZOMGVXeGxJRDBnSnpFMmNIZ2dVbTlpYjNSdkxDQlNiMkp2ZEc4Z1RHOWpZV3dzSUhOaGJuTXRjMlZ5YVdZbk8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUVoaFkydHpJSFJ2SUhOallXeGxJSFZ3Y0dWeVkyRnpaU0JqYUdGeVlXTjBaWEp6SUhSdklIUmhjbWRsZENCeVpXTjBZVzVuYkdWY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMWNIQmxjbU5oYzJWTVpYUjBaWEpCYzJObGJuUWdQU0F3TGpJMU8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ0E5SURFeUxqSTdYRzVjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxjMlYwVkhKaGJuTm1iM0p0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdaeTV6ZEhKdmEyVlRkSGxzWlNBOUlDZHNhV2RvZEdkeVlYa25PMXh1SUNBZ0lDQWdJQ0FnSUdjdWJHbHVaVmRwWkhSb0lEMGdNVHRjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxZM1FvWWk1c1pXWjBMQ0JpTG5SdmNDd2dZaTUzYVdSMGFDd2dZaTVvWldsbmFIUXBPMXh1SUNBZ0lDQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdkR2hwY3k1amNDNW5aWFFvYlc5dWIyMWxjaWtnUHo4Z2RHaHBjeTVqY0M1blpYUW9KMjkwYUdWeUp5azdYRzRnSUNBZ0lDQWdJQ0FnWnk1MFpYaDBRV3hwWjI0Z1BTQW5iR1ZtZENjN1hHNGdJQ0FnSUNBZ0lDQWdaeTVtYjI1MElEMGdabTl1ZEZOMGVXeGxPMXh1SUNBZ0lDQWdJQ0FnSUM4dlp5NW1hV3hzVW1WamRDaGlMbXhsWm5Rc0lHSXVkRzl3TENCaUxuZHBaSFJvTENCaUxtaGxhV2RvZENrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JWUnRPaUJVWlhoMFRXVjBjbWxqY3lBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvYlc5dWIyMWxjbFI0ZENrN1hHNWNiaUFnSUNBZ0lDQWdJQ0F2THlCcFppQW9iVTB1WVdOMGRXRnNRbTkxYm1ScGJtZENiM2hCYzJObGJuUWdJVDBnTUNsY2JpQWdJQ0FnSUNBZ0lDQXZMeUFnSUdOdmJuTnZiR1V1WkdWaWRXY29ZRzA2SUNSN2JYMHNJRzFOTG1GamRIVmhiRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBPaUFrZTIxTkxtRmpkSFZoYkVKdmRXNWthVzVuUW05NFFYTmpaVzUwZldBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnWnk1elpYUlVjbUZ1YzJadmNtMG9YRzRnSUNBZ0lDQWdJQ0FnSUNCaUxuZHBaSFJvSUM4Z2JWUnRMbmRwWkhSb0xDQXdMQ0F3TENCaUxtaGxhV2RvZENBdklIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHSXViR1ZtZEN3Z1lpNTBiM0FwTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabWxzYkZSbGVIUW9iVzl1YjIxbGNsUjRkQ3dnTUN3Z0xYVndjR1Z5WTJGelpVeGxkSFJsY2tGelkyVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOaGJHTlRhWHBsS0NrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z0lYUm9hWE11YUc5emRDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSEk2SUc1MWJXSmxjaUE5SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1WEc0Z0lDQWdiR1YwSUhkcFpIUm9PaUJ1ZFcxaVpYSWdQU0IwYUdsekxreGxibWQwYUNBcUlIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNGdMeUJ5TzF4dUlDQWdJR3hsZENCb1pXbG5hSFFnUFNCTllYUm9MbTFwYmloMGFHbHpMbTFoZUVobGFXZG9kQ3dnVFdGMGFDNXRZWGdvZEdocGN5NXRhVzVJWldsbmFIUXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRcEtUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtWnBkRUZ5WldFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhoVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDQXZJR2hsYVdkb2REdGNiaUFnSUNBZ0lHTnZibk4wSUhsVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDOGdkMmxrZEdnN1hHNGdJQ0FnSUNCamIyNXpkQ0J6WTJGc1pTQTlJRTFoZEdndWJXRjRLREVzSUUxaGRHZ3ViV2x1S0hoVFkyRnNaU3dnZVZOallXeGxLU2s3WEc0Z0lDQWdJQ0IzYVdSMGFDQTlJSGRwWkhSb0lDb2djMk5oYkdVN1hHNGdJQ0FnSUNCb1pXbG5hSFFnUFNCb1pXbG5hSFFnS2lCelkyRnNaVHRjYmlBZ0lDQWdJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnUFNCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1M2FXUjBhQ0E5SUhkcFpIUm9JQ29nY2p0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzUzYVdSMGFDQTlJR0FrZTNkcFpIUm9mWEI0WUR0Y2JseHVJQ0FnSUM4dklHTnZibk4wSUdOaGJuWmhjMGhsYVdkb2REb2diblZ0WW1WeUlEMGdkMmxrZEdnZ1BpQjBhR2x6TG5KdmIzUXVZMnhwWlc1MFYybGtkR2dnUHlCb1pXbG5hSFFnTFNBNElEb2dhR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdhR1ZwWjJoMGZYQjRZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyRnVkbUZ6U0dWcFoyaDBPaUJ1ZFcxaVpYSWdQU0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVZMkZ1ZG1GekxtaGxhV2RvZENBOUlHTmhiblpoYzBobGFXZG9kQ0FxSUhJN1hHNGdJQ0FnZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyaGxhV2RvZENjc0lHQWtlMk5oYm5aaGMwaGxhV2RvZEgxd2VHQXBPMXh1WEc0Z0lDQWdMeThnUVdScWRYTjBJR2h2YzNRZ1lXNWtJSEp2YjNRZ2QybGtkR2hjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdMeThnWm5Wc2JDQjNhV1IwYUNCbWIzSWdZMkZ1ZG1GeklHaHZjM1FnWVc1a0lISnZiM1JjYmlBZ0lDQWdJSFJvYVhNdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlIUm9hWE11YUc5emRDNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UzZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdG9aV2xuYUhSOWNIaGdPMXh1SUNBZ0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExuTmxkRkJ5YjNCbGNuUjVLQ2R2ZG1WeVpteHZkeWNzSUNkb2FXUmtaVzRuTENBbmFXMXdiM0owWVc1MEp5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklHRnNiRzkzSUhOamNtOXNiQ0JqWVc1MllYTWdhVzRnY205dmRGeHVJQ0FnSUNBZ2RHaHBjeTV5YjI5MExuTjBlV3hsTG5kcFpIUm9JRDBnZEdocGN5NW9iM04wTG5OMGVXeGxMbmRwWkhSb0lEMGdKekV3TUNVbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG05MlpYSm1iRzkzV0NBOUlDZGhkWFJ2SVdsdGNHOXlkR0Z1ZENjN1hHNGdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyOTJaWEptYkc5M0p5d2diblZzYkNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1elpYUlFjbTl3WlhKMGVTZ25kR1Y0ZEMxaGJHbG5iaWNzSUhSb2FYTXVhRzl5YVhwdmJuUmhiRUZzYVdkdWJXVnVkQ2s3WEc1Y2JpQWdJQ0FnSUM4dklIWmxjblJwWTJGc0lHRnNhV2R1YldWdWRGeHVJQ0FnSUNBZ2JHVjBJR2h2YzNSVWIzQk5ZWEpuYVc0Z1BTQXdPMXh1SUNBZ0lDQWdjM2RwZEdOb0lDaDBhR2x6TG5abGNuUnBZMkZzUVd4cFoyNXRaVzUwS1NCN1hHNGdJQ0FnSUNCallYTmxJQ2QwYjNBbk9seHVJQ0FnSUNBZ0lDQm9iM04wVkc5d1RXRnlaMmx1SUQwZ01EdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCallYTmxJQ2R0YVdSa2JHVW5PbHh1SUNBZ0lDQWdJQ0JvYjNOMFZHOXdUV0Z5WjJsdUlEMGdUV0YwYUM1dFlYZ29NQ3dnS0hSb2FYTXVjbTl2ZEM1amJHbGxiblJJWldsbmFIUWdMU0JvWldsbmFIUXBJQzhnTWlrN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQW5ZbTkwZEc5dEp6cGNiaUFnSUNBZ0lDQWdhRzl6ZEZSdmNFMWhjbWRwYmlBOUlFMWhkR2d1YldGNEtEQXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ0xTQm9aV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmJXRnlaMmx1TFhSdmNDY3NJR0FrZTJodmMzUlViM0JOWVhKbmFXNTljSGhnTENBbmFXMXdiM0owWVc1MEp5azdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJRHdnYUdWcFoyaDBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdkR2hwY3k1eWIyOTBMbU5zYVdWdWRFaGxhV2RvZEgxd2VHQXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjMlYwVUhKdmNHVnlkSGtvSjI5MlpYSm1iRzkzTFhrbkxDQnVkV3hzS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmIzWmxjbVpzYjNjdGVTY3NJQ2RvYVdSa1pXNG5MQ0FuYVcxd2IzSjBZVzUwSnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1kyOXVjMjlzWlM1a1pXSjFaeWhjYmlBZ0lDQXZMeUFnSUdCMGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBJRDBnSkh0MGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ1BTQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhSOVhGeHVZQ0FyWEc0Z0lDQWdMeThnSUNCZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kQ0E5SUNSN2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kSDFjWEc1Z0lDdGNiaUFnSUNBdkx5QWdJR0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMElEMGdKSHQwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ0oxeGNiaWNnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RDQWdJQ0FnSUNBOUlDUjdkR2hwY3k1allXNTJZWE11YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdVkyRnVkbUZ6TG5OMGVXeGxMbWhsYVdkb2RDQTlJQ1I3ZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YUdWcFoyaDBmV0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQnpaWEZEYjJ3Z1EyOXNkVzF1SUhSdklHeHZiMnNnWm05eUlHRWdjR0ZzWlhSMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnSUcxcGJreGxibWQwYUNCdGFXNXBiWFZ0SUd4bGJtZDBhQ0J2WmlCelpYRjFaVzVqWlNCMGJ5QmtaWFJsWTNRZ2NHRnNaWFIwWlNBb1pXMXdkSGtnYzNSeWFXNW5jeUJoY21VZ1lXeHNiM2RsWkNsY2JpQWdJQ29nUUhKbGRIVnliaUI3VTJWeFVHRnNaWFIwWlgwZ1VHRnNaWFIwWlNCamIzSnlaWE53YjI1a2FXNW5JSFJ2SUhSb1pTQmhiSEJvWVdKbGRDQnZaaUIwYUdVZ2MyVnhkV1Z1WTJWeklHbHVJSFJvWlNCamIyeDFiVzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjR2xqYTFWd1VHRnNaWFIwWlNoelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z2JXbHVUR1Z1WjNSb09pQnVkVzFpWlhJZ1BTQTFLVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYkdWMElISmxjem9nVTJWeFVHRnNaWFIwWlNCOElHNTFiR3dnUFNCdWRXeHNPMXh1SUNBZ0lITjNhWFJqYUNBb2MyVnhRMjlzTG5ObGJWUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElFRnRhVzV2WVdOcFpITXVVMlZ0Vkhsd1pVMTFiSFJwY0d4bFFXeHBaMjV0Wlc1ME9seHVJQ0FnSUNBZ2NtVnpJRDBnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGtkeWIydEhjbTkxY0hNN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUU1MVkyeGxiM1JwWkdWekxsTmxiVlI1Y0dWTmRXeDBhWEJzWlVGc2FXZHViV1Z1ZERwY2JpQWdJQ0FnSUhKbGN5QTlJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE11UTJoeWIyMWhkRzluY21GdE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlGZGxZa3h2WjI4dVoyVjBVM1JoZEhNb2MyVnhRMjlzTENCdGFXNU1aVzVuZEdnc0lGZGxZa3h2WjI4dWMzQnNhWFIwWlhKQmMwWmhjM1JoS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjem9nVzFObGREeHpkSEpwYm1jK0xDQlRaWEZRWVd4bGRIUmxYVnRkSUQwZ1cxeHVJQ0FnSUNBZ1cyNWxkeUJUWlhRb1QySnFaV04wTG10bGVYTW9UblZqYkdWdmRHbGtaWE11VG1GdFpYTXBLU3dnVG5WamJHVnZkR2xrWlhOUVlXeGxkSFJsY3k1RGFISnZiV0YwYjJkeVlXMWRMRnh1SUNBZ0lDQWdXMjVsZHlCVFpYUW9UMkpxWldOMExtdGxlWE1vUVcxcGJtOWhZMmxrY3k1T1lXMWxjeWtwTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2MxMHNYRzRnSUNBZ1hUdGNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpYRzRnSUNBZ0lDQXViV0Z3S0NoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekJkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCcFppQW9iV0Y0UTI5eklENGdNQzQxTlNsY2JpQWdJQ0FnSUhKbGN5QTlJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjMXRoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwdWFXNWtaWGhQWmlodFlYaERiM01wWFZzeFhUdGNiaUFnSUNCbGJITmxYRzRnSUNBZ0lDQnlaWE1nUFNCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlhNdVEyOXNiM0k3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFUybDZaU2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNqOHVaMlYwUVd4d2FHRmlaWFJUYVhwbEtDa2dQejhnTUR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJUZEdGMGN5QnZaaUJ6WlhGMVpXNWpaWE1nZDJsMGFDQnpjR1ZqYVdacFpXUWdjM0JzYVhSMFpYSWdablZ1WXl3Z2NtVjBkWEp1Y3lCN0lHWnlaWEVzSUhOaGJXVk1aVzVuZEdnZ2ZTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RVJ5NURiMngxYlc1OUlITmxjVU52YkZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiV2x1VEdWdVozUm9YRzRnSUNBcUlFQndZWEpoYlNCN1UzQnNhWFIwWlhKR2RXNWpmU0J6Y0d4cGRIUmxjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIc2dVMlZ4UTI5c1UzUmhkSE1nZlN3Z2MyRnRaVXhsYm1kMGFEb2dZbTl2YkdWaGJpQjlJSE4wWVhSeklHOW1JR052YkhWdGJpQnpaWEYxWlc1alpYTmNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFJUZEdGMGN5aHpaWEZEYjJ3NklFUkhMa052YkhWdGJpd2diV2x1VEdWdVozUm9PaUJ1ZFcxaVpYSXNJSE53YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NcE9pQlRaWEZEYjJ4VGRHRjBjeUI3WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVG9nZXlCYmJUb2djM1J5YVc1blhUb2diblZ0WW1WeUlIMGdQU0I3ZlR0Y2JpQWdJQ0JzWlhRZ2MyRnRaVXhsYm1kMGFDQTlJSFJ5ZFdVN1hHNGdJQ0FnYkdWMElHWnBjbk4wVEdWdVozUm9JRDBnYm5Wc2JEdGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjMlZ4SUc5bUlITmxjVU52YkM1allYUmxaMjl5YVdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFUyVnhJRDBnYzNCc2FYUjBaWElvYzJWeEtUdGNibHh1SUNBZ0lDQWdhV1lnS0dacGNuTjBUR1Z1WjNSb0lEMDlJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lHWnBjbk4wVEdWdVozUm9JRDBnYlZObGNTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCbGJITmxJR2xtSUNodFUyVnhMbXhsYm1kMGFDQWhQVDBnWm1seWMzUk1aVzVuZEdncFhHNGdJQ0FnSUNBZ0lITmhiV1ZNWlc1bmRHZ2dQU0JtWVd4elpUdGNibHh1SUNBZ0lDQWdhV1lnS0cxVFpYRXViR1Z1WjNSb0lENGdiV2x1VEdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JTQnZaaUJ0VTJWeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCbWNtVnhLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnlaWEZiYlYwZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnS3owZ01UdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZTJaeVpYRTZJR1p5WlhFc0lITmhiV1ZNWlc1bmRHZzZJSE5oYldWTVpXNW5kR2g5TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSQmJIQm9ZV0psZEZOcGJXbHNZWEpwZEhrb1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQmhiSEJvWVdKbGREb2dVMlYwUEhOMGNtbHVaejRzSUdkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUQwZ0p5MG5LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQmpiMjV6ZENCclpYbHpJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRnN1TGk1dVpYY2dVMlYwS0U5aWFtVmpkQzVyWlhsektHWnlaWEVwS1N3Z0xpNHVZV3h3YUdGaVpYUmRLVHRjYmlBZ0lDQnJaWGx6TG1SbGJHVjBaU2huWVhCVGVXMWliMndwTzF4dVhHNGdJQ0FnWTI5dWMzUWdabkpsY1VFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ1lXeHdhR0ZpWlhSQk9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCdlppQnJaWGx6S1NCN1hHNGdJQ0FnSUNCbWNtVnhRUzV3ZFhOb0tHMGdhVzRnWm5KbGNTQS9JR1p5WlhGYmJWMGdPaUF3S1R0Y2JpQWdJQ0FnSUdGc2NHaGhZbVYwUVM1d2RYTm9LR0ZzY0doaFltVjBMbWhoY3lodEtTQS9JREVnT2lBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvZ1ZHaGxjbVVnZDJWeVpTQmhJR1psZHlCcFpHVmhjem9nWTJocExYTnhkV0Z5WldRc0lIQmxZWEp6YjI0Z1kyOXljbVZzWVhScGIyNGdLSFpoY21saGJtTmxQeWtzSUhOallXeGhjaUJ3Y205a2RXTjBJQ292WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVlk2SUZabFkzUnZjaUE5SUc1bGR5QldaV04wYjNJb1puSmxjVUVwTzF4dUlDQWdJR052Ym5OMElHRnNjR2hoWW1WMFZqb2dWbVZqZEc5eUlEMGdibVYzSUZabFkzUnZjaWhoYkhCb1lXSmxkRUVwTzF4dUlDQWdJSEpsZEhWeWJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtHWnlaWEZXTENCaGJIQm9ZV0psZEZZcElDOGdLSFpsWTNSdmNreGxibWQwYUNobWNtVnhWaWtnS2lCMlpXTjBiM0pNWlc1bmRHZ29ZV3h3YUdGaVpYUldLU2s3WEc0Z0lIMWNibHh1SUNBdkx5QXZLaW9nUm1seWMzUWdkSEo1SUhSdklHWnBibVFnWTI5c2RXMXVJSGRwZEdnZ2MyVnRWSGx3WlNBbllXeHBaMjVsWkZObGNYVmxibU5sSnk1Y2JpQWdMeThnSUNvZ1RtVjRkQ0JzYjI5cklHWnZjaUJqYjJ4MWJXNGdkMmwwYUNCa1lYUmhJR0ZzY0doaFltVjBJR052Y25KbGMzQnZibVJwYm1jZ2RHOGdZVzU1SUc5bUlIUm9aU0JyYm05M2JpQndZV3hsZEhSbGN5NWNiaUFnTHk4Z0lDb2dRSEJoY21GdElIdEVSeTVFWVhSaFJuSmhiV1Y5SUdSaGRHRkdjbUZ0WlZ4dUlDQXZMeUFnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OUlGUm9aU0JqYjJ4MWJXNGdkMlVnZDJWeVpTQnNiMjlyYVc1bklHWnZjaUJ2Y2lCdWRXeHNYRzRnSUM4dklDQXFMMXh1SUNBdkx5QndjbWwyWVhSbElIQnBZMnRWY0ZObGNVTnZiQ2hrWVhSaFJuSmhiV1U2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBdkx5QWdJR3hsZENCeVpYTTZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dQU0JrWVhSaFJuSmhiV1V1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1VvSjJGc2FXZHVaV1JUWlhGMVpXNWpaU2NwTzF4dUlDQXZMeUFnSUdsbUlDaHlaWE1nUFQwZ2JuVnNiQ2tnZTF4dUlDQXZMeUFnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMndnYjJZZ1pHRjBZVVp5WVcxbExtTnZiSFZ0Ym5NcElIdGNiaUFnTHk4Z0lDQWdJQ0FnWTI5dWMzUWdZM0FnUFNCWFpXSk1iMmR2TG5CcFkydFZjRkJoYkdWMGRHVW9ZMjlzSUdGeklFUkhMa052YkhWdGJpd2dOU2s3WEc0Z0lDOHZJQ0FnSUNBZ0lHbG1JQ2hqY0NBaFBUMGdiblZzYkNBbUppQWhLR053SUdsdWMzUmhibU5sYjJZZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVcEtTQjdYRzRnSUM4dklDQWdJQ0FnSUNBZ2NtVnpJRDBnWTI5c08xeHVJQ0F2THlBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBdkx5QWdJQ0FnSUNCOVhHNGdJQzh2SUNBZ0lDQjlYRzRnSUM4dklDQWdmVnh1SUNBdkx5QWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lDOHZJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCcFkydFZjRk5sY1VOdmJESW9aR1k2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBZ0lHTnZibk4wSUhObGJWUjVjR1ZEYjJ4TWFYTjBJRDBnWkdZdVkyOXNkVzF1Y3k1aWVWTmxiVlI1Y0dWQmJHd29SRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktUdGNiaUFnSUNCc1pYUWdjbVZ6UTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0lEMGdjMlZ0Vkhsd1pVTnZiRXhwYzNRdVptbHVaQ2dvWTI5c0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlHTnZiQzVuWlhSVVlXY29SRWN1VkVGSFV5NVZUa2xVVXlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFc1cGRITWdQeUIxYm1sMGN5NXBibVJsZUU5bUtDZE5VMEVuS1NBaFBUMGdMVEVnT2lCbVlXeHpaVHRjYmlBZ0lDQjlLU0EvUHlCdWRXeHNPMXh1SUNBZ0lHbG1JQ2doY21WelEyOXNJQ1ltSUhObGJWUjVjR1ZEYjJ4TWFYTjBMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdJQ0J5WlhORGIyd2dQU0J6WlcxVWVYQmxRMjlzVEdsemRGc3dYVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpRMjlzTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nYlc5dWIyMWxjbEpsSUQwZ0wxeGNXeWhjWEhjcktWeGNYWHdvWEZ4M0tYd29MU2t2Wnp0Y2JseHVJQ0F2S2lvZ1UzQnNhWFFnYzJWeGRXVnVZMlVnWm05eUlITnBibWRzWlNCamFHRnlZV04wWlhJZ2JXOXViMjFsY25Nc0lITnhkV0Z5WlNCaWNtRmphMlYwY3lCdGRXeDBhV05vWVhJZ2JXOXViMjFsY2lCdVlXMWxjeUJ2Y2lCbllYQWdjM2x0WW05c0xseHVJQ0FnS2lCQWNHRnlZVzBnZTJGdWVYMGdjMlZ4SUc5aWFtVmpkQ0IzYVhSb0lITmxjWFZsYm1ObFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMXRkZlNCaGNuSmhlU0J2WmlCdGIyNXZiV1Z5YzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ6Y0d4cGRIUmxja0Z6Um1GemRHRW9jMlZ4T2lCaGJua3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpPaUJ6ZEhKcGJtZGJYU0E5SUhkMVBGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrK0tITmxjUzUwYjFOMGNtbHVaeWdwTG0xaGRHTm9RV3hzS0ZkbFlreHZaMjh1Ylc5dWIyMWxjbEpsS1NsY2JpQWdJQ0FnSUM1dFlYQW9LRzFoT2lCU1pXZEZlSEJOWVhSamFFRnljbUY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR3hsZENCdFVtVnpPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMDZJSE4wY21sdVp5QTlJRzFoV3pCZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYlM1c1pXNW5kR2dnUGlBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHMGdhVzRnVjJWaVRHOW5ieTVoWVZONWJtOXVlVzF6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdWMlZpVEc5bmJ5NWhZVk41Ym05dWVXMXpXMjFkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdKeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtUmxZblZuS0dCTWIyNW5JRzF2Ym05dFpYSWdKeVI3YlgwbklHaGhjeUJ1YjNRZ1lTQnphRzl5ZENCemVXNXZibmx0TG1BcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCdFVtVnpJRDBnYlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JWSmxjenRjYmlBZ0lDQWdJSDBwTG5SdlFYSnlZWGtvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVbVVnUFNBdktGQkZVRlJKUkVVeGZFUk9RVEY4VWs1Qk1TbGNYSHNvVzE1OVhTc3BmUzluTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVSEF4VW1VZ1BTQXZYRnhiS0Z0ZVhGeGJYRnhkWFNzcFhTOW5PMXh1WEc0Z0lDOHFLaUJUY0d4cGRITWdTR1ZzYlNCemRISnBibWNnZEc4Z2JXOXViMjFsY25Nc0lHSjFkQ0JrYjJWeklHNXZkQ0J5WlhCc1lXTmxJRzF2Ym05dFpYSWdibUZ0WlhNZ2RHOGdiM1JvWlhJZ2JtOTBZWFJwYjI0Z0tHVXVaeTRnWm05eUlGSk9RU2t1WEc0Z0lDQXFJRTl1YkhrZ1ptOXlJR3hwYm1WaGNpQndiMng1YldWeWN5d2daRzlsY3lCdWIzUWdjM0JzYVhRZ1VrNUJJR1p2Y2lCeWFXSnZjMlVnWVc1a0lIQm9iM053YUdGMFpTQnRiMjV2YldWeWN5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlRiM1Z5WTJVZ2MzUnlhVzVuSUc5bUlFaEZURTBnYm05MFlYUnBiMjVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1blcxMTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITndiR2wwZEdWeVFYTklaV3h0S0hObGNUb2dZVzU1S1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUZkbFlreHZaMjh1YUdWc2JWSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdaV0U2SUZKbFowVjRjRVY0WldOQmNuSmhlU0I4SUc1MWJHd2dQU0JYWldKTWIyZHZMbWhsYkcxU1pTNWxlR1ZqS0hObGNTNTBiMU4wY21sdVp5Z3BLVHRjYmlBZ0lDQmpiMjV6ZENCcGJsTmxjVG9nYzNSeWFXNW5JSHdnYm5Wc2JDQTlJR1ZoSUQ4Z1pXRmJNbDBnT2lCdWRXeHNPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXMVFiM04wVUhKdlkyVnpjeUE5SUNodGJUb2djM1J5YVc1bktUb2djM1J5YVc1bklEMCtJSHRjYmlBZ0lDQWdJRmRsWWt4dloyOHVhR1ZzYlZCd01WSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnSUNCamIyNXpkQ0J3Y0RGTklEMGdWMlZpVEc5bmJ5NW9aV3h0VUhBeFVtVXVaWGhsWXlodGJTazdYRzRnSUNBZ0lDQnBaaUFvY0hBeFRTQW1KaUJ3Y0RGTkxteGxibWQwYUNBK1BTQXlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEF4VFZzeFhUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzF0TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQnRiVXhwYzNRNklITjBjbWx1WjF0ZElEMGdhVzVUWlhFZ1B5QnBibE5sY1M1emNHeHBkQ2duTGljcElEb2dXMTA3WEc0Z0lDQWdZMjl1YzNRZ2JXMU1hWE4wVW1Wek9pQnpkSEpwYm1kYlhTQTlJRzF0VEdsemRDNXRZWEFvYlcxUWIzTjBVSEp2WTJWemN5azdYRzRnSUNBZ2NtVjBkWEp1SUcxdFRHbHpkRkpsY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhSeklHMWxkR2h2WkNCMGJ5QnpjR3hwZENCelpYRjFaVzVqWlNCaWVTQnpaWEJoY21GMGIzSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNsZHBkR2hUWlhCaGNtRjBiM0lvYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUd4cGJXbDBPaUJ1ZFcxaVpYSWdmQ0IxYm1SbFptbHVaV1FnUFNCMWJtUmxabWx1WldRcE9pQlRjR3hwZEhSbGNrWjFibU1nZTF4dUlDQWdJSEpsZEhWeWJpQW9jMlZ4T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYRXVjM0JzYVhRb2MyVndZWEpoZEc5eUxDQnNhVzFwZENrN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhRZ2MzQnNhWFIwWlhJZ2JXVjBhRzlrSUhSdklITndiR2wwSUhObGNYVmxibU5sY3lCMGJ5QnRiMjV2YldWeWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNpaDFibWwwY3pvZ2MzUnlhVzVuTENCelpYQmhjbUYwYjNJNklITjBjbWx1Wnl3Z2JHbHRhWFE2SUc1MWJXSmxjaUI4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpDazZJRk53YkdsMGRHVnlSblZ1WXlCN1hHNGdJQ0FnYVdZZ0tIVnVhWFJ6TG5SdlRHOTNaWEpEWVhObEtDa3VjM1JoY25SelYybDBhQ2hPVDFSQlZFbFBUaTVHUVZOVVFTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1YyVmlURzluYnk1emNHeHBkSFJsY2tGelJtRnpkR0U3WEc0Z0lDQWdaV3h6WlNCcFppQW9kVzVwZEhNdWRHOU1iM2RsY2tOaGMyVW9LUzV6ZEdGeWRITlhhWFJvS0U1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnVjJWaVRHOW5ieTVuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma2hGVEUwcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUZkbFlreHZaMjh1YzNCc2FYUjBaWEpCYzBobGJHMDdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQlZibVY0Y0dWamRHVmtJSFZ1YVhSeklDUjdkVzVwZEhOOUlDNWdLVHRjYmx4dUlDQWdJQzh2SUZSUFJFODZJRk53YkdsMGRHVnlJR1p2Y2lCSVJVeE5YRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLR052YkRvZ1JFY3VRMjlzZFcxdUtUb2dVM0JzYVhSMFpYSkdkVzVqSUh0Y2JpQWdJQ0JwWmlBb1kyOXNMbk5sYlZSNWNHVWdJVDA5SUVSSExsTkZUVlJaVUVVdVRVRkRVazlOVDB4RlExVk1SU2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSMlYwSUhOd2JHbDBkR1Z5SUdadmNpQnpaVzFVZVhCbElGd2lKSHRFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVjlYQ0lnYjI1c2VTNWdLVHRjYmx4dUlDQWdJR052Ym5OMElIVnVhWFJ6SUQwZ1kyOXNMbWRsZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUS1R0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG5ObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnY21WMGRYSnVJRmRsWWt4dloyOHVaMlYwVTNCc2FYUjBaWElvZFc1cGRITXNJSE5sY0dGeVlYUnZjaWs3WEc0Z0lIMWNibHh1SUNBdktpb2dUMjVzZVNCemIyMWxJRzltSUhSb1pTQnplVzV2Ym5sdGN5NGdWR2hsYzJVZ2QyVnlaU0J2WW5SaGFXNWxaQ0JtY205dElIUm9aU0JqYkhWemRHVnlaV1FnYjJ4cFoyOXdaWEIwYVdSbElHUmhkR0Z6WlhRdUlDb3ZYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0ZoVTNsdWIyNTViWE02SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5SUQwZ2UxeHVJQ0FnSUNkYlRXVk9iR1ZkSnpvZ0owd25MQ0F2THlCT2JHVWdMU0J1YjNKc1pYVmphVzVsWEc0Z0lDQWdKMXROWlVGZEp6b2dKMEVuTEZ4dUlDQWdJQ2RiVFdWSFhTYzZJQ2RISnl4Y2JpQWdJQ0FuVzAxbFJsMG5PaUFuUmljc1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHOXVaMDF2Ym05dFpYSlFZWEowVW1VZ1BTQXZLRnhjZHlzcEwyYzdYRzVjYmlBZ0x5b2dVMmh2Y25SbGJuTWdiVzl1YjIxbGNpQnlaWEJ5WlhObGJuUmhkR2x2YmlCMFpYaDBJR1p2Y2lCdGIyNXZiV1Z5Y3lCM2FYUm9JR3h2Ym1jZ2JtRnRaWE11WEc0Z0lDb3FMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRzF2Ym05dFpYSlViMVJsZUhRb2MzSmpPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJSE55WTFSNGREb2djM1J5YVc1bklEMGdjM0pqTG5SdlUzUnlhVzVuS0NrN1hHNGdJQ0FnYVdZZ0tITnlZMVI0ZEM1c1pXNW5kR2dnUEQwZ05Ta2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlITnlZMVI0ZER0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHRnlkSE02SUhOMGNtbHVaMXRkSUQwZ2QzVThVbVZuUlhod1RXRjBZMmhCY25KaGVUNG9jM0pqTG5SdlUzUnlhVzVuS0NrdWJXRjBZMmhCYkd3b1YyVmlURzluYnk1c2IyNW5UVzl1YjIxbGNsQmhjblJTWlNrcFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0cxaE9pQlNaV2RGZUhCTllYUmphRUZ5Y21GNUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlZKbGN6b2djM1J5YVc1bklEMGdiV0ZiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMVNaWE03WEc0Z0lDQWdJQ0FnSUgwcExuUnZRWEp5WVhrb0tUdGNibHh1SUNBZ0lDQWdhV1lnS0hCaGNuUnpMbXhsYm1kMGFDQTlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBbklDYzdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSjBNRG9nYzNSeWFXNW5JRDBnY0dGeWRITmJNRjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEpsYzFSNGREb2djM1J5YVc1bklEMGdjR0Z5ZERBdWJHVnVaM1JvSUR3Z05pQS9JR0FrZTNCaGNuUXdmZUtBcG1BZ09pQmdKSHR3WVhKME1DNXpkV0p6ZEhKcGJtY29NQ3dnTlNsOTRvQ21ZRHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzFSNGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUcxdmJtOXRaWEpVYjFOb2IzSjBLR0Z0YVc1dk9pQnpkSEpwYm1jc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNqb2diblZ0WW1WeUtUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWVcxcGJtOHViR1Z1WjNSb0lEdzlJRzFoZUV4bGJtZDBhRTltVFc5dWIyMWxjaUEvSUdGdGFXNXZJRG9nWVcxcGJtOHVjM1ZpYzNSeWFXNW5LREFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrZ0t5QW40b0NtSnp0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlciB9IGZyb20gJy4vd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvcic7XG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlRGltZW5zaW5hbGl0eVdpdGhOb3JtYWxpemF0aW9uKGRhdGFDb2wsIG1ldGhvZE5hbWUsIHNpbWlsYXJpdHlNZXRyaWMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcyA9IHlpZWxkIGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlcih7IGRhdGE6IGRhdGFDb2wsIG1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyB9LCBtZXRob2ROYW1lLCBvcHRpb25zKTtcbiAgICAgICAgZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nID0gZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nLm1hcChpdCA9PiBub3JtYWxpemUoaXQpKTtcbiAgICAgICAgcmV0dXJuIGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeGRXVnVZMlV0YzNCaFkyVXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKelpYRjFaVzVqWlMxemNHRmpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGRlFTeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc2FVUkJRV2xFTEVOQlFVTTdRVUZITlVVc1QwRkJUeXhGUVVGRkxHbERRVUZwUXl4RlFVRXJRaXhOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUjJ4SkxFMUJRVTBzVlVGQlowSXNiME5CUVc5RExFTkJRM1JFTEU5QlFYRkRMRVZCUTNKRExGVkJRV3RDTEVWQlEyeENMR2RDUVVFMlJDeEZRVU0zUkN4UFFVRmhPenRSUVVWaUxFMUJRVTBzZFVKQlFYVkNMRWRCUTNwQ0xFMUJRVTBzYVVOQlFXbERMRU5CUTI1RExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1owSkJRV2RDTEVWQlFXZENMRVZCUTNwRUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVTNRaXgxUWtGQmRVSXNRMEZCUXl4VFFVRlRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlHTEU5QlFVOHNkVUpCUVhWQ0xFTkJRVU03U1VGRGJrTXNRMEZCUXp0RFFVRkJJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRUpwZEVGeWNtRjVJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMkpwZEMxaGNuSmhlU2M3WEc1cGJYQnZjblFnZXlCTllYUnlhWGdzSUZabFkzUnZjaUI5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN0lHNXZjbTFoYkdsNlpTQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1psWTNSdmNpMXZjR1Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ2V5QkNhWFJCY25KaGVVMWxkSEpwWTNNc0lGTjBjbWx1WjAxbGRISnBZM01zSUZaaGJHbGtWSGx3WlhNc0lGWmxZM1J2Y2sxbGRISnBZM01nZlNCbWNtOXRJQ2N1TDNSNWNHVmtMVzFsZEhKcFkzTW5PMXh1YVcxd2IzSjBJSHNnWTNKbFlYUmxSR2x0Wlc1emFXNWhiR2wwZVZKbFpIVmphVzVuVjI5eWEyVnlMQ0JKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFFnZlNCbWNtOXRJQ2N1TDNkdmNtdGxjbk12WkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdOcGJtY3RkMjl5YTJWeUxXTnlaV0YwYjNJbk8xeHVYRzVjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQnlaV1IxWTJWRWFXMWxibk5wYm1Gc2FYUjVWMmwwYUU1dmNtMWhiR2w2WVhScGIyNG9YRzRnSUNBZ1pHRjBZVU52YkRvZ1FtbDBRWEp5WVhsYlhYeFdaV04wYjNKYlhYeHpkSEpwYm1kYlhTd2dYRzRnSUNBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCQ2FYUkJjbkpoZVUxbGRISnBZM044Vm1WamRHOXlUV1YwY21samMzeFRkSEpwYm1kTlpYUnlhV056TEZ4dUlDQWdJRzl3ZEdsdmJuTS9PaUJoYm5rcE9pQlFjbTl0YVhObFBFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RENGdlMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE02SUVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZENBOVhHNGdJQ0FnSUNBZ0lHRjNZV2wwSUdOeVpXRjBaVVJwYldWdWMybHVZV3hwZEhsU1pXUjFZMmx1WjFkdmNtdGxjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lIc2daR0YwWVRvZ1pHRjBZVU52YkN3Z2JXVjBjbWxqT2lCemFXMXBiR0Z5YVhSNVRXVjBjbWxqSUgwZ1lYTWdWbUZzYVdSVWVYQmxjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWxkR2h2WkU1aGJXVXNJRzl3ZEdsdmJuTXBPMXh1WEc0Z0lDQWdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bklEMGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bkxtMWhjQ2hwZENBOVBpQnViM0p0WVd4cGVtVW9hWFFwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNN1hHNTlJbDE5IiwiaW1wb3J0ICogYXMgZmwgZnJvbSAnZmFzdGVzdC1sZXZlbnNodGVpbic7XG5pbXBvcnQgeyBqYXJvV2lua2xlciB9IGZyb20gJ2phcm8td2lua2xlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGRpc3RhbmNlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmV4cG9ydCBjb25zdCBBdmFpbGFibGVNZXRyaWNzID0ge1xuICAgICdWZWN0b3InOiB7XG4gICAgICAgICdFdWNsaWRlYW5EaXN0YW5jZSc6IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlLFxuICAgIH0sXG4gICAgJ1N0cmluZyc6IHtcbiAgICAgICAgJ0xldmVuc2h0ZWluJzogZmwuZGlzdGFuY2UsXG4gICAgICAgICdKYXJvLVdpbmtsZXInOiBqYXJvV2lua2xlcixcbiAgICB9LFxuICAgICdCaXRBcnJheSc6IHtcbiAgICAgICAgJ1Rhbmltb3RvJzogZGlzdGFuY2VNZXRyaWNzWydUYW5pbW90byddLFxuICAgICAgICAnRGljZSc6IGRpc3RhbmNlTWV0cmljc1snRGljZSddLFxuICAgICAgICAnQXN5bW1ldHJpYyc6IGRpc3RhbmNlTWV0cmljc1snQXN5bW1ldHJpYyddLFxuICAgICAgICAnQnJhdW4tQmxhbnF1ZXQnOiBkaXN0YW5jZU1ldHJpY3NbJ0JyYXVuLUJsYW5xdWV0J10sXG4gICAgICAgICdDb3NpbmUnOiBkaXN0YW5jZU1ldHJpY3NbJ0Nvc2luZSddLFxuICAgICAgICAnS3VsY3p5bnNraSc6IGRpc3RhbmNlTWV0cmljc1snS3VsY3p5bnNraSddLFxuICAgICAgICAnTWMtQ29ubmF1Z2hleSc6IGRpc3RhbmNlTWV0cmljc1snTWMtQ29ubmF1Z2hleSddLFxuICAgICAgICAnUm9nb3QtR29sZGJlcmcnOiBkaXN0YW5jZU1ldHJpY3NbJ1JvZ290LUdvbGRiZXJnJ10sXG4gICAgICAgICdSdXNzZWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1J1c3NlbCddLFxuICAgICAgICAnU29rYWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1Nva2FsJ10sXG4gICAgfSxcbn07XG5leHBvcnQgY29uc3QgTWV0cmljVG9EYXRhVHlwZSA9IE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpXG4gICAgLnJlZHVjZSgocmV0LCBrZXkpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2tleV0pKSB7XG4gICAgICAgIHJldFt2YWxdID0ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xufSwge30pO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnU3RyaW5nJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdEFycmF5TWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnQml0QXJyYXknO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVmVjdG9yTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnVmVjdG9yJztcbn1cbi8qKiBVbmlmaWVkIGNsYXNzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgc3RyaW5nIG1lYXN1cmVzLiAqL1xuZXhwb3J0IGNsYXNzIE1lYXN1cmUge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTWVhc3VyZSB3aXRoIC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIE1ldGhvZCB0byBjYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzdHJpbmdzLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1ldGhvZCkge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5kYXRhVHlwZSA9IE1ldHJpY1RvRGF0YVR5cGVbbWV0aG9kXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGZ1bmN0aW9uIHNwZWNpZmllZC5cbiAgICAgKiBAcmV0dXJuIHtEaXN0YW5jZU1ldHJpY30gQ2FsbGJhY2sgb2YgdGhlIG1lYXN1cmUgY2hvc2VuLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGdldE1lYXN1cmUoKSB7XG4gICAgICAgIGNvbnN0IGRpY3QgPSBBdmFpbGFibGVNZXRyaWNzO1xuICAgICAgICByZXR1cm4gZGljdFt0aGlzLmRhdGFUeXBlXVt0aGlzLm1ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBieSB0aGUgZ2l2ZW4gZGF0YSB0eXBlLlxuICAgICAqIEBwYXJhbSB7QXZhaWxhYmxlRGF0YVR5cGVzfSBkYXRhVHlwZSBNZXRyaWMncyBkYXRhIHR5cGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gTWV0cmljIG5hbWVzIHdoaWNoIGV4cGVjdHMgdGhlIGdpdmVuIGRhdGEgdHlwZVxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRNZXRyaWNCeURhdGFUeXBlKGRhdGFUeXBlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2RhdGFUeXBlXSk7XG4gICAgfVxuICAgIC8qKiBSZXR1cm5zIG1ldHJpYyBuYW1lcyBhdmFpbGFibGUuXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgKi9cbiAgICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1lYXN1cmVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pXUXRiV1YwY21samN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5SNWNHVmtMVzFsZEhKcFkzTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVNeFF5eFBRVUZQTEVWQlFVTXNWMEZCVnl4RlFVRkRMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGY0VRc1QwRkJUeXhGUVVGRExHVkJRV1VzUlVGQlF5eE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJRMnBHTEU5QlFVOHNSVUZCUXl3d1FrRkJNRUlzUlVGQlF5eE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJTVE5HTEUxQlFVMHNRMEZCUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITzBsQlF6bENMRkZCUVZFc1JVRkJSVHRSUVVOU0xHMUNRVUZ0UWl4RlFVRkZMREJDUVVFd1FqdExRVU5vUkR0SlFVTkVMRkZCUVZFc1JVRkJSVHRSUVVOU0xHRkJRV0VzUlVGQlJTeEZRVUZGTEVOQlFVTXNVVUZCVVR0UlFVTXhRaXhqUVVGakxFVkJRVVVzVjBGQlZ6dExRVU0xUWp0SlFVTkVMRlZCUVZVc1JVRkJSVHRSUVVOV0xGVkJRVlVzUlVGQlJTeGxRVUZsTEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUTNaRExFMUJRVTBzUlVGQlJTeGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXk5Q0xGbEJRVmtzUlVGQlJTeGxRVUZsTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpORExHZENRVUZuUWl4RlFVRkZMR1ZCUVdVc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVTnVSQ3hSUVVGUkxFVkJRVVVzWlVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTnVReXhaUVVGWkxFVkJRVVVzWlVGQlpTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTXpReXhsUVVGbExFVkJRVVVzWlVGQlpTeERRVUZETEdWQlFXVXNRMEZCUXp0UlFVTnFSQ3huUWtGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEYmtRc1VVRkJVU3hGUVVGRkxHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEYmtNc1QwRkJUeXhGUVVGRkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTTdTMEZEYkVNN1EwRkRSaXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNaMEpCUVdkQ0xFZEJRWEZDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdTMEZETlVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQmNVSXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRKUVVOeVF5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJlVUlzUTBGQlF5eERRVUZETEVWQlFVVTdVVUZETVVVc1IwRkJSeXhEUVVGRExFZEJRWGxDTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1MwRkRkRU03U1VGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmlMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVmRVTEUxQlFVMHNWVUZCVlN4alFVRmpMRU5CUVVNc1NVRkJhMEk3U1VGREwwTXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNN1FVRkROVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eEpRVUZyUWp0SlFVTnFSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGVkJRVlVzUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eEpRVUZyUWp0SlFVTXZReXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF6dEJRVU0xUXl4RFFVRkRPMEZCUlVRc05FUkJRVFJFTzBGQlF6VkVMRTFCUVUwc1QwRkJUeXhQUVVGUE8wbEJTV3hDT3pzN08wOUJTVWM3U1VGRFNDeFpRVUZaTEUxQlFXOUNPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUYxUWl4RFFVRkRPMGxCUTJwRkxFTkJRVU03U1VGRlJEczdPenRQUVVsSE8wbEJRMGtzVlVGQlZUdFJRVU5tTEUxQlFVMHNTVUZCU1N4SFFVRnpSQ3huUWtGQlowSXNRMEZCUXp0UlFVTnFSaXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6RkRMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVFMFFqdFJRVU0xUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUkN4RFFVRkRPMGxCUlVRN08wMUJSVVU3U1VGRFJpeE5RVUZOTEV0QlFVc3NhVUpCUVdsQ08xRkJRekZDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMGxCUTNaRExFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUdac0lHWnliMjBnSjJaaGMzUmxjM1F0YkdWMlpXNXphSFJsYVc0bk8xeHVhVzF3YjNKMElIdHFZWEp2VjJsdWEyeGxjbjBnWm5KdmJTQW5hbUZ5YnkxM2FXNXJiR1Z5TFhSNWNHVnpZM0pwY0hRbk8xeHVhVzF3YjNKMElIdEVhWE4wWVc1alpVMWxkSEpwWTMwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdGthWE4wWVc1alpVMWxkSEpwWTNOOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzTnBiV2xzWVhKcGRIa3RiV1YwY21samN5YzdYRzVwYlhCdmNuUWdlMk5oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnUW1sMFFYSnlZWGtnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12WW1sMExXRnljbUY1Snp0Y2JtbHRjRzl5ZENCN1ZtVmpkRzl5TENCVGRISnBibWRFYVdOMGFXOXVZWEo1ZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3ljN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCQmRtRnBiR0ZpYkdWTlpYUnlhV056SUQwZ2UxeHVJQ0FuVm1WamRHOXlKem9nZTF4dUlDQWdJQ2RGZFdOc2FXUmxZVzVFYVhOMFlXNWpaU2M2SUdOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dUlDQjlMRnh1SUNBblUzUnlhVzVuSnpvZ2UxeHVJQ0FnSUNkTVpYWmxibk5vZEdWcGJpYzZJR1pzTG1ScGMzUmhibU5sTEZ4dUlDQWdJQ2RLWVhKdkxWZHBibXRzWlhJbk9pQnFZWEp2VjJsdWEyeGxjaXhjYmlBZ2ZTeGNiaUFnSjBKcGRFRnljbUY1SnpvZ2UxeHVJQ0FnSUNkVVlXNXBiVzkwYnljNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblZHRnVhVzF2ZEc4blhTeGNiaUFnSUNBblJHbGpaU2M2SUdScGMzUmhibU5sVFdWMGNtbGpjMXNuUkdsalpTZGRMRnh1SUNBZ0lDZEJjM2x0YldWMGNtbGpKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRCYzNsdGJXVjBjbWxqSjEwc1hHNGdJQ0FnSjBKeVlYVnVMVUpzWVc1eGRXVjBKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRDY21GMWJpMUNiR0Z1Y1hWbGRDZGRMRnh1SUNBZ0lDZERiM05wYm1Vbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowTnZjMmx1WlNkZExGeHVJQ0FnSUNkTGRXeGplbmx1YzJ0cEp6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZExkV3hqZW5sdWMydHBKMTBzWEc0Z0lDQWdKMDFqTFVOdmJtNWhkV2RvWlhrbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowMWpMVU52Ym01aGRXZG9aWGtuWFN4Y2JpQWdJQ0FuVW05bmIzUXRSMjlzWkdKbGNtY25PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKMUp2WjI5MExVZHZiR1JpWlhKbkoxMHNYRzRnSUNBZ0oxSjFjM05sYkNjNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblVuVnpjMlZzSjEwc1hHNGdJQ0FnSjFOdmEyRnNKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRUYjJ0aGJDZGRMRnh1SUNCOUxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0JQWW1wbFkzUXVhMlY1Y3loQmRtRnBiR0ZpYkdWTlpYUnlhV056S1Z4dUlDQXVjbVZrZFdObEtDaHlaWFE2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtzSUd0bGVTa2dQVDRnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1Gc0lHOW1JRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iYTJWNUlHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBwS1NCN1hHNGdJQ0FnSUNCeVpYUmJkbUZzSUdGeklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGMxMGdQU0JyWlhrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lIMHNJSHQ5S1R0Y2JseHVaWGh3YjNKMElIUjVjR1VnUVhaaGFXeGhZbXhsUkdGMFlWUjVjR1Z6SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzVsZUhCdmNuUWdkSGx3WlNCVGRISnBibWROWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxTjBjbWx1WnlkZE8xeHVaWGh3YjNKMElIUjVjR1VnUW1sMFFYSnlZWGxOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkowSnBkRUZ5Y21GNUoxMDdYRzVsZUhCdmNuUWdkSGx3WlNCV1pXTjBiM0pOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxWmxZM1J2Y2lkZE8xeHVaWGh3YjNKMElIUjVjR1VnUzI1dmQyNU5aWFJ5YVdOeklEMGdVM1J5YVc1blRXVjBjbWxqY3lCOElFSnBkRUZ5Y21GNVRXVjBjbWxqY3lCOElGWmxZM1J2Y2sxbGRISnBZM003WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRlpoYkdsa1ZIbHdaWE1nUFNCN1pHRjBZVG9nYzNSeWFXNW5XMTBzSUcxbGRISnBZem9nVTNSeWFXNW5UV1YwY21samMzMGdmQ0I3WkdGMFlUb2dWbVZqZEc5eVcxMHNJRzFsZEhKcFl6b2dWbVZqZEc5eVRXVjBjbWxqYzMwZ2ZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGtZWFJoT2lCQ2FYUkJjbkpoZVZ0ZExDQnRaWFJ5YVdNNklFSnBkRUZ5Y21GNVRXVjBjbWxqYzMwN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMU4wY21sdVowMWxkSEpwWXlodVlXMWxPaUJMYm05M2JrMWxkSEpwWTNNcElIdGNiaUFnY21WMGRYSnVJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJibUZ0WlYwZ1BUMGdKMU4wY21sdVp5YzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwSnBkRUZ5Y21GNVRXVjBjbWxqS0c1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0J5WlhSMWNtNGdUV1YwY21salZHOUVZWFJoVkhsd1pWdHVZVzFsWFNBOVBTQW5RbWwwUVhKeVlYa25PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTldaV04wYjNKTlpYUnlhV01vYm1GdFpUb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJSEpsZEhWeWJpQk5aWFJ5YVdOVWIwUmhkR0ZVZVhCbFcyNWhiV1ZkSUQwOUlDZFdaV04wYjNJbk8xeHVmVnh1WEc0dktpb2dWVzVwWm1sbFpDQmpiR0Z6Y3lCcGJYQnNaVzFsYm5ScGJtY2daR2xtWm1WeVpXNTBJSE4wY21sdVp5QnRaV0Z6ZFhKbGN5NGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5aV0Z6ZFhKbElIdGNiaUFnY0hKdmRHVmpkR1ZrSUcxbGRHaHZaRG9nUzI1dmQyNU5aWFJ5YVdOek8xeHVJQ0J3Y205MFpXTjBaV1FnWkdGMFlWUjVjR1U2SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsY3p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxjeUJoYmlCcGJuTjBZVzVqWlNCdlppQk5aV0Z6ZFhKbElIZHBkR2dnTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiV1YwYUc5a0lFMWxkR2h2WkNCMGJ5QmpZV3hqZFd4aGRHVWdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQnpkSEpwYm1kekxseHVJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1RXVmhjM1Z5WlhKY2JpQWdJQ292WEc0Z0lHTnZibk4wY25WamRHOXlLRzFsZEdodlpEb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJQ0FnZEdocGN5NXRaWFJvYjJRZ1BTQnRaWFJvYjJRN1hHNGdJQ0FnZEdocGN5NWtZWFJoVkhsd1pTQTlJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJiV1YwYUc5a1hTQmhjeUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCamRYTjBiMjBnYzNSeWFXNW5JR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVJSE53WldOcFptbGxaQzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR2x6ZEdGdVkyVk5aWFJ5YVdOOUlFTmhiR3hpWVdOcklHOW1JSFJvWlNCdFpXRnpkWEpsSUdOb2IzTmxiaTVjYmlBZ0lDb2dRRzFsYldKbGNtOW1JRTFsWVhOMWNtVnlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwVFdWaGMzVnlaU2dwT2lCRWFYTjBZVzVqWlUxbGRISnBZeUI3WEc0Z0lDQWdZMjl1YzNRZ1pHbGpkRG9nZTF0clpYazZJSE4wY21sdVoxMDZJSHRiYTJWNU1qb2djM1J5YVc1blhUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdOOWZTQTlJRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzRnSUNBZ2NtVjBkWEp1SUdScFkzUmJkR2hwY3k1a1lYUmhWSGx3WlYxYmRHaHBjeTV0WlhSb2IyUmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWTNWemRHOXRJSE4wY21sdVp5QmthWE4wWVc1alpTQmllU0IwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMEYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMzBnWkdGMFlWUjVjR1VnVFdWMGNtbGpKM01nWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVoxdGRmU0JOWlhSeWFXTWdibUZ0WlhNZ2QyaHBZMmdnWlhod1pXTjBjeUIwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJOWldGemRYSmxjbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJOWlhSeWFXTkNlVVJoZEdGVWVYQmxLR1JoZEdGVWVYQmxPaUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE1wT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iWkdGMFlWUjVjR1ZkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlhSMWNtNXpJRzFsZEhKcFl5QnVZVzFsY3lCaGRtRnBiR0ZpYkdVdVhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHRjJZV2xzWVdKc1pVMWxZWE4xY21WektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG10bGVYTW9RWFpoYVd4aFlteGxUV1YwY21samN5azdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgcmVtb3ZlRW1wdHlTdHJpbmdSb3dzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzJztcbmxldCB6b29tID0gZmFsc2U7XG5jb25zdCBtb2xDb2x1bW5OYW1lcyA9IFsnMV9zZXEnLCAnMl9zZXEnXTtcbmNvbnN0IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMgPSBbJ0xldmVuc2h0ZWluJ107XG4vLyBTZWFyY2hlcyBmb3IgYWN0aXZpdHkgY2xpZmZzIGluIGEgY2hlbWljYWwgZGF0YXNldCBieSBzZWxlY3RlZCBjdXRvZmZcbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgc2VxQ29sLCBlbmNvZGVkQ29sLCBheGVzTmFtZXMsIHNjYXR0ZXJUaXRsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgc2ltaWxhcml0eU1ldHJpYywgbWV0aG9kTmFtZSwgc2VtVHlwZSwgdGFncywgc2VxU3BhY2VGdW5jLCBzaW1NYXRyaXhGdW5jLCB0b29sdGlwRnVuYywgcHJvcGVydHlQYW5lbEZ1bmMsIHNlcVNwYWNlT3B0aW9ucykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGF1dG9tYXRpY1NpbWlsYXJpdHlMaW1pdCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBNSU5fU0lNSUxBUklUWSA9IDgwO1xuICAgICAgICBjb25zdCBpbml0aWFsU2ltaWxhcml0eUxpbWl0ID0gYXV0b21hdGljU2ltaWxhcml0eUxpbWl0ID8gTUlOX1NJTUlMQVJJVFkgOiBzaW1pbGFyaXR5IC8gMTAwO1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbCA9IGVuY29kZWRDb2wgIT09IG51bGwgJiYgZW5jb2RlZENvbCAhPT0gdm9pZCAwID8gZW5jb2RlZENvbCA6IHNlcUNvbDtcbiAgICAgICAgY29uc3Qgd2l0aG91dEVtcHR5VmFsdWVzID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtkaW1lbnNpb25hbGl0eVJlZHVjZUNvbF0pLmNsb25lKCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBlbXB0eVZhbHNJZHhzID0gcmVtb3ZlRW1wdHlTdHJpbmdSb3dzKHdpdGhvdXRFbXB0eVZhbHVlcywgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wpO1xuICAgICAgICBjb25zdCB7IGRpc3RhbmNlLCBjb29yZGluYXRlcyB9ID0geWllbGQgc2VxU3BhY2VGdW5jKHtcbiAgICAgICAgICAgIHNlcUNvbDogd2l0aG91dEVtcHR5VmFsdWVzLmNvbChkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5uYW1lKSxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5hbWUsXG4gICAgICAgICAgICBzaW1pbGFyaXR5TWV0cmljOiBzaW1pbGFyaXR5TWV0cmljLFxuICAgICAgICAgICAgZW1iZWRBeGVzTmFtZXM6IGF4ZXNOYW1lcyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHNlcVNwYWNlT3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgY29vcmRpbmF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZXMgPSBjb2wudG9MaXN0KCk7XG4gICAgICAgICAgICBlbXB0eVZhbHNJZHhzLmZvckVhY2goKGluZCkgPT4gbGlzdFZhbHVlcy5zcGxpY2UoaW5kLCAwLCBudWxsKSk7XG4gICAgICAgICAgICBkZi5jb2x1bW5zLmFkZChERy5Db2x1bW4uZnJvbUxpc3QoJ2RvdWJsZScsIGNvbC5uYW1lLCBsaXN0VmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGZTZXEgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW0RHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgJ3NlcScsIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLnRvTGlzdCgpKV0pO1xuICAgICAgICBjb25zdCBkaW0gPSBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHNpbUFyciA9IEFycmF5KGRpbSAtIDEpO1xuICAgICAgICBpZiAoIWRpc3RhbmNlIHx8IGVtcHR5VmFsc0lkeHMubGVuZ3RoICE9PSAwIHx8IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMuaW5jbHVkZXMoc2ltaWxhcml0eU1ldHJpYykpXG4gICAgICAgICAgICB5aWVsZCBzaW1NYXRyaXhGdW5jKGRpbSwgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wsIGRmU2VxLCAnc2VxJywgc2ltQXJyKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlLCBzaW1BcnIpO1xuICAgICAgICBjb25zdCBvcHRTaW1pbGFyaXR5TGltaXQgPSBpbml0aWFsU2ltaWxhcml0eUxpbWl0O1xuICAgICAgICBjb25zdCBzaW1WYWxzID0gW107XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzID0gW107XG4gICAgICAgIGNvbnN0IG4xID0gW107XG4gICAgICAgIGNvbnN0IG4yID0gW107XG4gICAgICAgIGNvbnN0IGNsaWZmc01vbElkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiAhPSBkaW0gLSAxIC0gaTsgKytqKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2ltID0gc2ltQXJyW2ldID8gc2ltQXJyW2ldLmdldChqKSA6IDA7XG4gICAgICAgICAgICAgICAgaWYgKHNpbSA+PSBvcHRTaW1pbGFyaXR5TGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbjEucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgbjIucHVzaChpICsgaiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkgKyBqICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIHNpbVZhbHMucHVzaChzaW0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQoaSkgLSBhY3Rpdml0aWVzLmdldChpICsgaiArIDEpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpbSAhPSAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChkaWZmIC8gKDEgLSBzaW0pKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChJbmZpbml0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzV2l0aG91dEluZmluaXR5ID0gc2FsaVZhbHMuZmlsdGVyKGl0ID0+IGl0ICE9PSBJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNaW4gPSBNYXRoLm1pbiguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNYXggPSBNYXRoLm1heCguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlPcGFjaXR5Q29lZiA9IDAuOCAvIChzYWxpTWF4IC0gc2FsaU1pbik7XG4gICAgICAgIGNvbnN0IG5laWdoYm91cnNDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNhbGlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IG4xLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjFbaV1dICs9IDE7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjJbaV1dICs9IDE7XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjFbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjJbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBpZiAoc2FsaVZhbHNbaV0gIT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdGllcy5nZXQobjFbaV0pID4gYWN0aXZpdGllcy5nZXQobjJbaV0pKVxuICAgICAgICAgICAgICAgICAgICBzYWxpQ291bnRbbjFbaV1dICs9IHNhbGlWYWxzW2ldO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgc2FsaUNvdW50W24yW2ldXSArPSBzYWxpVmFsc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYWxpID0gREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBgc2FsaV8ke2F4ZXNOYW1lc1swXS5zdWJzdHJpbmcoYXhlc05hbWVzWzBdLmxhc3RJbmRleE9mKCdfJykpfWAsIHNhbGlDb3VudCk7XG4gICAgICAgIGRmLmNvbHVtbnMuYWRkKHNhbGkpO1xuICAgICAgICBjb25zdCBjbGlmZnNDb2xOYW1lID0gYWRkQ2xpZmZzQm9vbGVhbkNvbChkZiwgY2xpZmZzTW9sSWRzKTtcbiAgICAgICAgY29uc3QgdmlldyA9IGdyb2suc2hlbGwuZ2V0VGFibGVWaWV3KGRmLm5hbWUpO1xuICAgICAgICB2aWV3LmdyaWQuY29sdW1ucy5ieU5hbWUoY2xpZmZzQ29sTmFtZSkudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzcCA9IHZpZXcuYWRkVmlld2VyKERHLlZpZXdlci5zY2F0dGVyUGxvdChkZiwge1xuICAgICAgICAgICAgeENvbHVtbk5hbWU6IGF4ZXNOYW1lc1swXSxcbiAgICAgICAgICAgIHlDb2x1bW5OYW1lOiBheGVzTmFtZXNbMV0sXG4gICAgICAgICAgICBzaXplOiBzYWxpLm5hbWUsXG4gICAgICAgICAgICBjb2xvcjogYWN0aXZpdGllcy5uYW1lLFxuICAgICAgICAgICAgc2hvd1hTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93WVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTaXplU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0NvbG9yU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgbWFya2VyTWluU2l6ZTogNSxcbiAgICAgICAgICAgIG1hcmtlck1heFNpemU6IDI1LFxuICAgICAgICAgICAgdGl0bGU6IHNjYXR0ZXJUaXRsZVxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHNwLmdldEluZm8oKVsnY2FudmFzJ107XG4gICAgICAgIGNvbnN0IGxpbmVzUmVzID0gY3JlYXRlTGluZXMobjEsIG4yLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGlWYWxzLCBzaW1WYWxzLCBzZW1UeXBlLCB0YWdzKTtcbiAgICAgICAgY29uc3QgY2FzaGVkTGluZXNEYXRhID0ge307XG4gICAgICAgIGxldCBhY2M7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25DdXJyZW50Q2VsbENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRNb2xJZHggPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRDb2wgJiYgbGluZXNSZXMubGluZXNEZi5jdXJyZW50Q29sLm5hbWUgPT09ICcyX3NlcScgPyAxIDogMDtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggIT09IC0xID8gbGluZXNSZXMubGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XSA6IG51bGw7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuY3VycmVudFJvd0lkeCA9IGxpbmUgPyBsaW5lLm1vbHNbY3VycmVudE1vbElkeF0gOiAtMTtcbiAgICAgICAgICAgIHNwLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KDAsICFsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldCgwLCBsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBsaW5lc0RmR3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICBpZiAobGluZSlcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWRMaW5lc0RhdGEsIGxpbmUsIHNlcUNvbCwgYWN0aXZpdGllcywgbGluZXNSZXMubGluZXNEZi5nZXQoJ3NhbGknLCBsaW5lLmlkKSwgcHJvcGVydHlQYW5lbEZ1bmMpOyB9LCAxMDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25TZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmVzUmVzLmxpbmVzRGYubW91c2VPdmVyUm93SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc1tsaW5lc1Jlcy5saW5lc0RmLm1vdXNlT3ZlclJvd0lkeF07XG4gICAgICAgICAgICAgICAgbGluZS5zZWxlY3RlZCA9ICFsaW5lLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgIGlmICghbGluZS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lc1Jlcy5saW5lcy5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGwuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGluZXNEZkdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGluZXNEZkdyaWQgPSBsaW5lc1Jlcy5saW5lc0RmLnBsb3QuZ3JpZCgpLnNvcnQoWydzYWxpJ10sIFtmYWxzZV0pO1xuICAgICAgICBsaW5lc0RmR3JpZC5vbkNlbGxDbGljay5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgem9vbSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsaXN0Q2xpZmZzTGluayA9IHVpLmJ1dHRvbihgJHtsaW5lc1Jlcy5saW5lc0RmLnJvd0NvdW50fSBjbGlmZnNgLCAoKSA9PiB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLmRvY2tNYW5hZ2VyLmRvY2sobGluZXNEZkdyaWQucm9vdCwgJ2Rvd24nLCBudWxsLCAnQWN0aXZpdHkgY2xpZmZzJywgMC4yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVkaXRTcExpbmtTdHlsZShsaXN0Q2xpZmZzTGluaywgc3AsIDEwKTtcbiAgICAgICAgY29uc3QgZmlsdGVyQ2xpZmZzQnV0dG9uID0gdWkuc3dpdGNoSW5wdXQoYFNob3cgb25seSBjbGlmZnNgLCBmYWxzZSk7XG4gICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi5vbkNoYW5nZWQoKCkgPT4ge1xuICAgICAgICAgICAgZmlsdGVyQ2xpZmZzQnV0dG9uLnZhbHVlID8gZGYucm93cy5maWx0ZXIoKHJvdykgPT4gcm93W2NsaWZmc0NvbE5hbWVdID09PSB0cnVlKSA6IGRmLmZpbHRlci5zZXRBbGwodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlZGl0U3BMaW5rU3R5bGUoZmlsdGVyQ2xpZmZzQnV0dG9uLnJvb3QsIHNwLCAzMCk7XG4gICAgICAgIGxldCB0aW1lcjtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIHRpbWVyID0gZ2xvYmFsLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lc1Jlcy5saW5lcyk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmUgJiYgZGYubW91c2VPdmVyUm93SWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codG9vbHRpcEZ1bmMoeyBjYXNoZWREYXRhOiBjYXNoZWRMaW5lc0RhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzIH0pLCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IGNoZWNrQ3Vyc29yT25MaW5lKGV2ZW50LCBjYW52YXMsIGxpbmVzUmVzLmxpbmVzKTtcbiAgICAgICAgICAgIGlmIChsaW5lICYmIGRmLm1vdXNlT3ZlclJvd0lkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLnNlbGVjdGVkID0gIWxpbmUuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzRGYuc2VsZWN0aW9uLnNldChsaW5lLmlkLCBsaW5lLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsaW5lLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzLmZvckVhY2goKGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ICE9PSBsaW5lLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggPSBsaW5lLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGYuY3VycmVudFJvd0lkeCA9IGxpbmUubW9sc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgIWxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gbGluZXNSZXMubGluZXNEZi5nZXRTb3J0ZWRPcmRlcihsaW5lc0RmR3JpZC5zb3J0QnlDb2x1bW5zLCBsaW5lc0RmR3JpZC5zb3J0VHlwZXMpO1xuICAgICAgICAgICAgICAgIGxpbmVzRGZHcmlkLnNjcm9sbFRvQ2VsbCgnc2VxXzEnLCBvcmRlci5pbmRleE9mKGxpbmUuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNwLm9uRXZlbnQoJ2Q0LWJlZm9yZS1kcmF3LXNjZW5lJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gcmVuZGVyTGluZXMoc3AsIGF4ZXNOYW1lc1swXSwgYXhlc05hbWVzWzFdLCBsaW5lc1Jlcywgc2FsaVZhbHMsIHNhbGlPcGFjaXR5Q29lZiwgc2FsaU1pbik7XG4gICAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gbGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB6b29tTGVmdCwgem9vbVJpZ2h0LCB6b29tVG9wLCB6b29tQm90dG9tIH0gPSBnZXRab29tQ29vcmRpbmF0ZXMoc3Audmlld3BvcnQud2lkdGgsIHNwLnZpZXdwb3J0LmhlaWdodCwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMF0sIGN1cnJlbnRMaW5lLm1vbHNbMF0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1sxXSwgY3VycmVudExpbmUubW9sc1swXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzBdLCBjdXJyZW50TGluZS5tb2xzWzFdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMV0sIGN1cnJlbnRMaW5lLm1vbHNbMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgc3Auem9vbSh6b29tTGVmdCwgem9vbVRvcCwgem9vbVJpZ2h0LCB6b29tQm90dG9tKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIHpvb20gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi52YWx1ZSA/IGRmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1tjbGlmZnNDb2xOYW1lXSA9PT0gdHJ1ZSkgOiBkZi5maWx0ZXIuc2V0QWxsKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3AuYWRkUHJvcGVydHkoJ3NpbWlsYXJpdHlMaW1pdCcsICdkb3VibGUnLCBvcHRTaW1pbGFyaXR5TGltaXQpO1xuICAgICAgICBhY2MgPSBjcmVhdGVQb3BlcnR5UGFuZWwoKTtcbiAgICAgICAgcmV0dXJuIHNwO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZWRpdFNwTGlua1N0eWxlKGVsLCBzcCwgdG9wTWFyZ2luKSB7XG4gICAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGVsLnN0eWxlLnRvcCA9IGAke3RvcE1hcmdpbn1weGA7XG4gICAgZWwuc3R5bGUucmlnaHQgPSAnMTBweCc7XG4gICAgc3Aucm9vdC5hcHBlbmQoZWwpO1xufVxuZnVuY3Rpb24gY3JlYXRlUG9wZXJ0eVBhbmVsKCkge1xuICAgIGNvbnN0IGFjYyA9IHVpLmFjY29yZGlvbigpO1xuICAgIGNvbnN0IGFjY0ljb24gPSB1aS5lbGVtZW50KCdpJyk7XG4gICAgYWNjSWNvbi5jbGFzc05hbWUgPSAnZ3Jvay1pY29uIHN2Zy1pY29uIHN2Zy12aWV3LWxheW91dCc7XG4gICAgYWNjLmFkZFRpdGxlKHVpLnNwYW4oW2FjY0ljb24sIHVpLmxhYmVsKGBBY3Rpdml0eSBjbGlmZnNgKV0pKTtcbiAgICBhY2MuYWRkUGFuZSgnQ2xpZmYgRGV0YWlscycsICgpID0+IHVpLmRpdlRleHQoJ0NsaWZmIGhhcyBub3QgYmVlbiBzZWxlY3RlZCcpLCB0cnVlKTtcbiAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICByZXR1cm4gYWNjO1xufVxuZnVuY3Rpb24gdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWREYXRhLCBsaW5lLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGksIHByb3BQYW5lbEZ1bmMpIHtcbiAgICBjb25zdCBwYW5lbCA9IGFjYy5nZXRQYW5lKCdDbGlmZiBEZXRhaWxzJyk7XG4gICAgdWkuZW1wdHkocGFuZWwucm9vdCk7XG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gcHJvcFBhbmVsRnVuYyh7IGNhc2hlZERhdGE6IGNhc2hlZERhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzLCBzYWxpOiBzYWxpIH0pO1xuICAgIHBhbmVsLnJvb3QuYXBwZW5kKHBhbmVsRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGdyb2suc2hlbGwubyA9IGFjYy5yb290O1xuICAgIH0sIDUwMCk7XG59XG5mdW5jdGlvbiBnZXRab29tQ29vcmRpbmF0ZXMoVzAsIEgwLCB4MSwgeTEsIHgyLCB5Mikge1xuICAgIGNvbnN0IFcxID0gTWF0aC5hYnMoeDEgLSB4Mik7XG4gICAgY29uc3QgSDEgPSBNYXRoLmFicyh5MSAtIHkyKTtcbiAgICBjb25zdCBzY2FsZVcgPSBXMCAvIFcxO1xuICAgIGNvbnN0IHNjYWxlSCA9IEgwIC8gSDE7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVcsIHNjYWxlSCk7XG4gICAgY29uc3QgVzIgPSAoVzAgLyBzY2FsZSkgKiA1O1xuICAgIGNvbnN0IEgyID0gKEgwIC8gc2NhbGUpICogNTtcbiAgICBjb25zdCBsZWZ0ID0geDEgPCB4MiA/IHgxIDogeDI7XG4gICAgY29uc3QgdG9wID0geTEgPiB5MiA/IHkxIDogeTI7XG4gICAgY29uc3Qgem9vbUxlZnQgPSAobGVmdCArIFcxIC8gMikgLSBXMiAvIDI7XG4gICAgY29uc3Qgem9vbVJpZ2h0ID0gem9vbUxlZnQgKyBXMjtcbiAgICBjb25zdCB6b29tVG9wID0gKHRvcCAtIEgxIC8gMikgKyBIMiAvIDI7XG4gICAgY29uc3Qgem9vbUJvdHRvbSA9IHpvb21Ub3AgLSBIMjtcbiAgICByZXR1cm4geyB6b29tTGVmdDogem9vbUxlZnQsIHpvb21SaWdodDogem9vbVJpZ2h0LCB6b29tVG9wOiB6b29tVG9wLCB6b29tQm90dG9tOiB6b29tQm90dG9tIH07XG59XG5mdW5jdGlvbiBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lcykge1xuICAgIGNvbnN0IHJlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgeSA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcbiAgICBsZXQgY2xvc2VzdExpbmUgPSBudWxsO1xuICAgIGxldCBtaW5EaXN0ID0gMDtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguYWJzKE1hdGguaHlwb3QobGluZS5hWzBdIC0geCwgbGluZS5hWzFdIC0geSkgK1xuICAgICAgICAgICAgTWF0aC5oeXBvdChsaW5lLmJbMF0gLSB4LCBsaW5lLmJbMV0gLSB5KSAtIE1hdGguaHlwb3QobGluZS5hWzBdIC0gbGluZS5iWzBdLCBsaW5lLmFbMV0gLSBsaW5lLmJbMV0pKTtcbiAgICAgICAgaWYgKCghbWluRGlzdCAmJiBkaXN0IDwgMikgfHwgZGlzdCA8IG1pbkRpc3QpIHtcbiAgICAgICAgICAgIG1pbkRpc3QgPSBkaXN0O1xuICAgICAgICAgICAgY2xvc2VzdExpbmUgPSBsaW5lO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbG9zZXN0TGluZTtcbn1cbmZ1bmN0aW9uIHJlbmRlckxpbmVzKHNwLCB4QXhpcywgeUF4aXMsIGxpbmVzUmVzLCBzYWxpVmFscywgc2FsaU9wYWNpdHlDb2VmLCBzYWxpTWluKSB7XG4gICAgY29uc3QgbGluZXMgPSBsaW5lc1Jlcy5saW5lcztcbiAgICBjb25zdCBjYW52YXMgPSBzcC5nZXRJbmZvKClbJ2NhbnZhcyddO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnN0IHggPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeEF4aXMpO1xuICAgIGNvbnN0IHkgPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeUF4aXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcG9pbnRGcm9tID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzBdKSwgeS5nZXQobGluZXNbaV0ubW9sc1swXSkpO1xuICAgICAgICBjb25zdCBwb2ludFRvID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzFdKSwgeS5nZXQobGluZXNbaV0ubW9sc1sxXSkpO1xuICAgICAgICBsaW5lc1tpXS5hID0gW3BvaW50RnJvbS54LCBwb2ludEZyb20ueV07XG4gICAgICAgIGxpbmVzW2ldLmIgPSBbcG9pbnRUby54LCBwb2ludFRvLnldO1xuICAgICAgICBjb25zdCBsaW5lID0gbmV3IFBhdGgyRCgpO1xuICAgICAgICBsaW5lLm1vdmVUbyhsaW5lc1tpXS5hWzBdLCBsaW5lc1tpXS5hWzFdKTtcbiAgICAgICAgY29uc3QgY29sb3IgPSBsaW5lc1tpXS5zZWxlY3RlZCA/ICcyNTUsMjU1LDAnIDogJzAsMTI4LDAnO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gc2FsaVZhbHNbaV0gPT09IEluZmluaXR5ID8gMSA6IDAuMiArIChzYWxpVmFsc1tpXSAtIHNhbGlNaW4pICogc2FsaU9wYWNpdHlDb2VmO1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke29wYWNpdHl9KWA7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBsaW5lc1tpXS5pZCA9PT0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ID8gMyA6IDE7XG4gICAgICAgIGxpbmUubGluZVRvKGxpbmVzW2ldLmJbMF0sIGxpbmVzW2ldLmJbMV0pO1xuICAgICAgICBjdHguc3Ryb2tlKGxpbmUpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZXM7XG59XG5mdW5jdGlvbiBjcmVhdGVMaW5lcyhuMSwgbjIsIHNlcSwgYWN0aXZpdGllcywgc2FsaVZhbHMsIHNpbVZhbHMsIHNlbVR5cGUsIHRhZ3MpIHtcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheShuMS5sZW5ndGgpLmZpbGwobnVsbCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBudW0xID0gbjFbaV07XG4gICAgICAgIGNvbnN0IG51bTIgPSBuMltpXTtcbiAgICAgICAgbGluZXNbaV0gPSAoeyBpZDogaSwgbW9sczogW251bTEsIG51bTJdLCBzZWxlY3RlZDogZmFsc2UsIGE6IFtdLCBiOiBbXSB9KTtcbiAgICB9XG4gICAgY29uc3QgbGluZXNEZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUobGluZXMubGVuZ3RoKTtcbiAgICBtb2xDb2x1bW5OYW1lcy5mb3JFYWNoKChpdCwgaWR4KSA9PiB7XG4gICAgICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdTdHJpbmcoaXQpLmluaXQoKGkpID0+IHNlcS5nZXQobGluZXNbaV0ubW9sc1tpZHhdKSk7XG4gICAgICAgIHNldFRhZ3MobGluZXNEZi5jb2woaXQpLCB0YWdzKTtcbiAgICAgICAgbGluZXNEZi5jb2woaXQpLnNlbVR5cGUgPSBzZW1UeXBlO1xuICAgIH0pO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnYWN0X2RpZmYnKVxuICAgICAgICAuaW5pdCgoaSkgPT4gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQobGluZXNbaV0ubW9sc1swXSkgLSBhY3Rpdml0aWVzLmdldChsaW5lc1tpXS5tb2xzWzFdKSkpO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdJbnQoJ2xpbmVfaW5kZXgnKS5pbml0KChpKSA9PiBpKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ3NhbGknKS5pbml0KChpKSA9PiBzYWxpVmFsc1tpXSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdzaW0nKS5pbml0KChpKSA9PiBzaW1WYWxzW2ldKTtcbiAgICByZXR1cm4geyBsaW5lcywgbGluZXNEZiB9O1xufVxuZnVuY3Rpb24gc2V0VGFncyhjb2wsIHRhZ3MpIHtcbiAgICBPYmplY3Qua2V5cyh0YWdzKS5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICAgIGNvbC50YWdzW3RhZ10gPSB0YWdzW3RhZ107XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmU2VxLCBzaW1BcnIsIHNpbUZ1bmMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbCA9IHNlcUNvbC5nZXQoaSk7XG4gICAgICAgICAgICBkZlNlcS5yb3dzLnJlbW92ZUF0KDAsIDEsIGZhbHNlKTtcbiAgICAgICAgICAgIHNpbUFycltpXSA9ICh5aWVsZCBzaW1GdW5jKGRmU2VxLmNvbCgnc2VxJyksIG1vbCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzaW1BcnI7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlcywgc2ltQXJyKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgY29uc3Qgc2ltaWxhcml0eUFyciA9IG5ldyBBcnJheShkaW0gLSBpIC0gMSkuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgZGltOyArK2opIHtcbiAgICAgICAgICAgIHNpbWlsYXJpdHlBcnJbaiAtIGkgLSAxXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgfVxuICAgICAgICBzaW1BcnJbaV0gPSBERy5Db2x1bW4uZnJvbUZsb2F0MzJBcnJheSgnc2ltaWxhcml0eScsIEZsb2F0MzJBcnJheS5mcm9tKHNpbWlsYXJpdHlBcnIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbUFycjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGlmZnNCb29sZWFuQ29sKGRmLCBpZHMpIHtcbiAgICBjb25zdCBjb2xuYW1lID0gJ2NvbnRhaW5zQ2xpZmYnO1xuICAgIGNvbnN0IGNvbE5hbWVJbmQgPSBkZi5jb2x1bW5zLm5hbWVzKCkuZmlsdGVyKChpdCkgPT4gaXQuaW5jbHVkZXMoY29sbmFtZSkpLmxlbmd0aCArIDE7XG4gICAgY29uc3QgbmV3Q29sTmFtZSA9IGAke2NvbG5hbWV9XyR7Y29sTmFtZUluZH1gO1xuICAgIGRmLmNvbHVtbnMuYWRkTmV3Qm9vbChuZXdDb2xOYW1lKS5pbml0KChpKSA9PiBpZHMuaGFzKGkpKTtcbiAgICByZXR1cm4gbmV3Q29sTmFtZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlXTjBhWFpwZEhrdFkyeHBabVp6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lZV04wYVhacGRIa3RZMnhwWm1aekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTTdRVUZETVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVOMFF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJSU3g1UWtGQmVVSXNSVUZCUlN4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlF6ZEdMRTlCUVU4c1JVRkJReXh4UWtGQmNVSXNSVUZCUXl4TlFVRk5MQ3REUVVFclF5eERRVUZCTzBGQmNVTnVSaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZGYWtJc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkZNVU1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlJTOURMSGRGUVVGM1JUdEJRVU40UlN4TlFVRk5MRlZCUVdkQ0xHbENRVUZwUWl4RFFVTnVReXhGUVVGblFpeEZRVU5vUWl4TlFVRnBRaXhGUVVOcVFpeFZRVUUwUWl4RlFVTTFRaXhUUVVGdFFpeEZRVU51UWl4WlFVRnZRaXhGUVVOd1FpeFZRVUZ4UWl4RlFVTnlRaXhWUVVGclFpeEZRVU5zUWl4blFrRkJkMElzUlVGRGVFSXNWVUZCYTBJc1JVRkRiRUlzVDBGQlpTeEZRVU5tTEVsQlFTdENMRVZCUXk5Q0xGbEJRVFpGTEVWQlF6ZEZMR0ZCUVN0SUxFVkJReTlJTEZkQlFUUkVMRVZCUXpWRUxHbENRVUZyUlN4RlFVTnNSU3hsUVVGeFFqczdVVUZGZGtJc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRka01zVFVGQlRTeGpRVUZqTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUlRGQ0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeEhRVUZITEVkQlFVY3NRMEZCUXp0UlFVVTFSaXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRlZCUVZVc1lVRkJWaXhWUVVGVkxHTkJRVllzVlVGQlZTeEhRVUZKTEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUTNKR0xGbEJRVms3VVVGRFpDeE5RVUZOTEdGQlFXRXNSMEZCUnl4eFFrRkJjVUlzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUlhwR0xFMUJRVTBzUlVGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkRMRWRCUVVjc1RVRkJUU3haUVVGWkxFTkJRVU03V1VGRGFrUXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeERRVUZETEVkQlFVY3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eEpRVUZKTEVOQlFVVTdXVUZETjBRc1ZVRkJWU3hGUVVGRkxGVkJRVlU3V1VGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMWxCUTJ4RExHTkJRV01zUlVGQlJTeFRRVUZUTzFsQlEzcENMRTlCUVU4c1JVRkJSU3hsUVVGbE8xTkJRM3BDTEVOQlFVTXNRMEZCUXp0UlFVVklMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTzFsQlF6TkNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9ReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU40UlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM1JGTzFGQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMmhJTEUxQlFVMHNSMEZCUnl4SFFVRkhMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXpReXhOUVVGTkxFMUJRVTBzUjBGQlowSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVV6UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxHRkJRV0VzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMSE5DUVVGelFpeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFpRVU01Uml4TlFVRk5MR0ZCUVdFc1EwRkJReXhIUVVGSExFVkJRVVVzZFVKQlFYVkNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXpzN1dVRkZlRVVzTkVKQlFUUkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVjBSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMSE5DUVVGelFpeERRVUZETzFGQlJXeEVMRTFCUVUwc1QwRkJUeXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE9VSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJWU3hEUVVGRE8xRkJSWFpETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRMnBETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEY2tNc1RVRkJUU3hIUVVGSExFZEJRVmNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlhKRUxFbEJRVWtzUjBGQlJ5eEpRVUZKTEd0Q1FVRnJRaXhGUVVGRk8yOUNRVU0zUWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTllMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGJrSXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU0xUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRM0pGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN2QwSkJRMVlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXpzN2QwSkJSV2hETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03YVVKQlF6TkNPMkZCUTBZN1UwRkRSanRSUVVWRUxFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4yUlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFZEJRVU1zUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkhhRVFzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzWlVGQlpTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYmtNc1pVRkJaU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVFpeGxRVUZsTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6VkNMR1ZCUVdVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGREwwTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenM3YjBKQlJXaERMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGJrTTdVMEZEUmp0UlFVVkVMRTFCUVUwc1NVRkJTU3hIUVVGakxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGYWtrc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja0lzVFVGQlRTeGhRVUZoTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRkxFTkJRVU1zVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTjZSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTnNSQ3hYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVazdXVUZEWml4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFbEJRVWs3V1VGRGRFSXNZVUZCWVN4RlFVRkZMRXRCUVVzN1dVRkRjRUlzWVVGQllTeEZRVUZGTEV0QlFVczdXVUZEY0VJc1owSkJRV2RDTEVWQlFVVXNTMEZCU3p0WlFVTjJRaXhwUWtGQmFVSXNSVUZCUlN4TFFVRkxPMWxCUTNoQ0xHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyaENMR0ZCUVdFc1JVRkJSU3hGUVVGRk8xbEJRMnBDTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ0xFTkJRVU1zUTBGQmVVSXNRMEZCUXp0UlFVVTFRaXhOUVVGTkxFMUJRVTBzUjBGQlNTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVVelJpeE5RVUZOTEdWQlFXVXNSMEZCVVN4RlFVRkZMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeEhRVUZwUWl4RFFVRkRPMUZCUlhSQ0xGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTnVSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFJ5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZETTBjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVNelJDeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZETVVRc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzcENMRWxCUVVrc1NVRkJTVHRuUWtGRFRpeFZRVUZWTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVVc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hsUVVGbExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRVZCUVVVc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGQkxFTkJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJoTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGTkxFVkJRVVVzUlVGQlJUdFpRVU4yUkN4SlFVRkpMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVNelF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1owSkJRemxFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTXZRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRTdiMEpCUTJoQ0xFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRemxDTzFsQlEwUXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRNMElzU1VGQlNTeERRVUZETEVOQlFVTXNVVUZCVVR0dlFrRkRXaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFNDeFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1VVRkRNMElzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmVrVXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlEzSkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRFpDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1kwRkJZeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzVTBGQlV5eEZRVUZGTEVkQlFVY3NSVUZCUlR0WlFVTXpSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSR0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NaVUZCWlN4RFFVRkRMR05CUVdNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGZUVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pGTEd0Q1FVRnJRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZGTEVWQlFVVTdXVUZETDBJc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16Unl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxHVkJRV1VzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUldwRUxFbEJRVWtzUzBGQmNVSXNRMEZCUXp0UlFVTXhRaXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQmFVSTdXVUZET1VRc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzQkNMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzJkQ1FVTjRRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNTVUZCU1N4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExHVkJRV1VzUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRia01zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVU1zVlVGQlZTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRNVW83V1VGRFNDeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFhRVUZYTEVWQlFVVXNWVUZCVXl4TFFVRnBRanRaUVVNM1JDeE5RVUZOTEVsQlFVa3NSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU01UkN4SlFVRkpMRWxCUVVrc1NVRkJTU3hGUVVGRkxFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVN2IwSkJRMnBDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTXZRaXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2IwSkJSWFpFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVVHQzUWtGRGFFSXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdiMEpCUlRkQ0xGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6TkNMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkU3TkVKQlExb3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU55UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRFNqdHhRa0ZCVFR0dlFrRkRUQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4TFFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6bERMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BETEVWQlFVVXNRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRhRU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dDNRa0ZEYWtRc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2NVSkJRMnBFTzJsQ1FVTkdPMmRDUVVORUxFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExGZEJRVmNzUTBGQlF5eGhRVUZoTEVWQlFVVXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU5vUnl4WFFVRlhMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlF6TkVPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETzJGQlF5OUNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTzFsQlEzQkNMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlF6RkNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkROVVVzU1VGQlNTeEpRVUZKTEVWQlFVVTdaMEpCUTFJc1RVRkJUU3hYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRlZCUVZVc1EwRkJReXhIUVVGRkxFVkJRVVU3YjBKQlEySXNUVUZCVFN4RlFVRkRMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEZWQlFWVXNSVUZCUXl4SFFVRkhMR3RDUVVGclFpeERRVU51UlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGRGFrSXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRMnhDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEzQkVMRU5CUVVFN2IwSkJRMFFzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUTJRc1QwRkJUeXhGUVVOUUxGTkJRVk1zUlVGRFZDeFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRhRUlzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOU0xFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdZVUZEWkR0WlFVTkVMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE0wY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZUQ3hGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEdsQ1FVRnBRaXhGUVVGRkxGRkJRVkVzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVkQlFVY3NSMEZCUnl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6TkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMW9zUTBGQlF6dERRVUZCTzBGQlJVUXNVMEZCVXl4bFFVRmxMRU5CUVVNc1JVRkJaU3hGUVVGRkxFVkJRWGRDTEVWQlFVVXNVMEZCYVVJN1NVRkRia1lzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wbEJReTlDTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzVTBGQlV5eEpRVUZKTEVOQlFVTTdTVUZEYUVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTNoQ0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pDTEVOQlFVTTdRVUZGUkN4VFFVRlRMR3RDUVVGclFqdEpRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETTBJc1RVRkJUU3hQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOb1F5eFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRzlEUVVGdlF5eERRVUZETzBsQlEzcEVMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzQkdMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRlRUlzVDBGQlR5eEhRVUZITEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZETVVJc1JVRkJaMElzUlVGRGFFSXNSMEZCYVVJc1JVRkRha0lzVlVGQlpTeEZRVU5tTEVsQlFWY3NSVUZEV0N4TlFVRnBRaXhGUVVOcVFpeFZRVUZ4UWl4RlFVTnlRaXhKUVVGWkxFVkJRMW9zWVVGQk9FUTdTVUZET1VRc1RVRkJUU3hMUVVGTExFZEJRVWNzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRKUVVNelF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU55UWl4TlFVRk5MRmxCUVZrc1IwRkJSeXhoUVVGaExFTkJRVU1zUlVGQlF5eFZRVUZWTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJReXhEUVVGRExFTkJRVU03U1VGRGRFa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdTVUZEYUVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU5rTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZETVVJc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlExWXNRMEZCUXp0QlFVVkVMRk5CUVZNc2EwSkJRV3RDTEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVZVc1JVRkJSU3hGUVVGVkxFVkJRVVVzUlVGQlZTeEZRVUZGTEVWQlFWVXNSVUZCUlN4RlFVRlZPMGxCUTJoSExFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZENMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU4yUWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETlVJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJReTlDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRekZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGFFTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5vUXl4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRPMEZCUXpsR0xFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRVlVzUlVGQlJTeE5RVUZYTEVWQlFVVXNTMEZCWXp0SlFVTm9SU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzUTBGQlF6dEpRVU0xUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRjRU1zVFVGQlRTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzBsQlEyNURMRWxCUVVrc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGFFSXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hMUVVGTExFVkJRVVU3VVVGRGVFSXNUVUZCVFN4SlFVRkpMRWRCUTFJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzWkhMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hIUVVGSExFOUJRVThzUlVGQlJUdFpRVU0xUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRMllzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTndRanRMUVVOR08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdRVUZEY2tJc1EwRkJRenRCUVVWRUxGTkJRVk1zVjBGQlZ5eERRVUZETEVWQlFYZENMRVZCUXpORExFdEJRV0VzUlVGQlJTeExRVUZoTEVWQlFVVXNVVUZCZDBJc1JVRkJSU3hSUVVGclFpeEZRVUZGTEdWQlFYVkNMRVZCUVVVc1QwRkJaVHRKUVVOd1NDeE5RVUZOTEV0QlFVc3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkpMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVGhDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRia1VzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVFpDTEVOQlFVTTdTVUZEYUVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6bERMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eFRRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU01UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU55UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1lzVFVGQlRTeFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUdMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNeFFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRekZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzFGQlF6RkVMRTFCUVUwc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVNM1JpeEhRVUZITEVOQlFVTXNWMEZCVnl4SFFVRkhMRkZCUVZFc1MwRkJTeXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlF6bERMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZGtVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTJ4Q08wbEJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRPMEZCUlVRc1UwRkJVeXhYUVVGWExFTkJRMnhDTEVWQlFWa3NSVUZEV2l4RlFVRlpMRVZCUTFvc1IwRkJZeXhGUVVOa0xGVkJRWEZDTEVWQlEzSkNMRkZCUVd0Q0xFVkJRMnhDTEU5QlFXbENMRVZCUTJwQ0xFOUJRV1VzUlVGRFppeEpRVUVyUWp0SlFVTXZRaXhOUVVGTkxFdEJRVXNzUjBGQldTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTJ4RExFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrSXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU03UzBGRGVrVTdTVUZEUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGJFUXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTnFReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYkVZc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVVVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRPMGxCUTNKRExFTkJRVU1zUTBGQlF5eERRVUZCTzBsQlEwWXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzQkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZEVjc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNdlJDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYmtVc1QwRkJUeXhGUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRE8wRkJSVVFzVTBGQlV5eFBRVUZQTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWxCUVN0Q08wbEJRemxFTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUXpsQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGQk8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCWjBJc2IwSkJRVzlDTEVOQlEzUkRMRWRCUVZjc1JVRkRXQ3hOUVVGcFFpeEZRVU5xUWl4TFFVRnRRaXhGUVVOdVFpeE5RVUZ0UWl4RlFVTnVRaXhQUVVGdFJUczdVVUZIY2tVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVVVzUTBGQlF6dFRRVU4wUkR0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdRMEZCUVR0QlFVZEVMRTFCUVUwc1ZVRkJWU3cwUWtGQk5FSXNRMEZCUXl4SFFVRlhMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeE5RVUZ0UWp0SlFVVTVSaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTm9ReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOb1F5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eDVRa0ZCZVVJc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOMlJUdFJRVU5FTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGVFWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzFDUVVGdFFpeERRVUZETEVWQlFXZENMRVZCUVVVc1IwRkJaMEk3U1VGRGNFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1pVRkJaU3hEUVVGRE8wbEJRMmhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTTVSaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEhRVUZITEU5QlFVOHNTVUZCU1N4VlFVRlZMRVZCUVVVc1EwRkJRenRKUVVNNVF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENCN0lFMWhkSEpwZUNCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJR2RsZEZOcGJXbHNZWEpwZEhsR2NtOXRSR2x6ZEdGdVkyVWdmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTl6YVcxcGJHRnlhWFI1TFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0eVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMlJoZEdGbWNtRnRaUzExZEdsc2N5ZGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JKVEdsdVpTQjdYRzRnSUdsa09pQnVkVzFpWlhJN1hHNGdJRzF2YkhNNklHNTFiV0psY2x0ZE8xeHVJQ0J6Wld4bFkzUmxaRG9nWW05dmJHVmhianRjYmlBZ1lUb2diblZ0WW1WeVcxMDdJQzh2SUZ0NExDQjVYVnh1SUNCaU9pQnVkVzFpWlhKYlhUc2dMeThnVzNnc0lIbGRYRzU5WEc1Y2JtbHVkR1Z5Wm1GalpTQkpVbVZ1WkdWeVpXUk1hVzVsY3lCN1hHNGdJR3hwYm1Wek9pQkpUR2x1WlZ0ZE8xeHVJQ0JzYVc1bGMwUm1PaUJFUnk1RVlYUmhSbkpoYldVN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1ZObGNYVmxibU5sVTNCaFkyVlFZWEpoYlhNZ2UxeHVJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXhjYmlBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUJ6ZEhKcGJtY3NYRzRnSUdWdFltVmtRWGhsYzA1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ2IzQjBhVzl1Y3o4NklHRnVlVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFbFRaWEYxWlc1alpWTndZV05sVW1WemRXeDBJSHRjYmlBZ1pHbHpkR0Z1WTJVNklFMWhkSEpwZUR0Y2JpQWdZMjl2Y21ScGJtRjBaWE02SUVSSExrTnZiSFZ0Ymt4cGMzUTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWUnZiMngwYVhCQmJtUlFZVzVsYkZCaGNtRnRjeUI3WEc0Z0lHTmhjMmhsWkVSaGRHRTZJR0Z1ZVN4Y2JpQWdiR2x1WlRvZ1NVeHBibVVzWEc0Z0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc1hHNGdJSE5sY1VOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCaFkzUnBkbWwwZVVOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCellXeHBQem9nYm5WdFltVnlYRzU5WEc1Y2JteGxkQ0I2YjI5dElEMGdabUZzYzJVN1hHNWNibU52Ym5OMElHMXZiRU52YkhWdGJrNWhiV1Z6SUQwZ1d5Y3hYM05sY1Njc0lDY3lYM05sY1NkZE8xeHVYRzVqYjI1emRDQnViMjVPYjNKdFlXeHBlbVZrUkdsemRHRnVZMlZ6SUQwZ1d5ZE1aWFpsYm5Ob2RHVnBiaWRkTzF4dVhHNHZMeUJUWldGeVkyaGxjeUJtYjNJZ1lXTjBhWFpwZEhrZ1kyeHBabVp6SUdsdUlHRWdZMmhsYldsallXd2daR0YwWVhObGRDQmllU0J6Wld4bFkzUmxaQ0JqZFhSdlptWmNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCblpYUkJZM1JwZG1sMGVVTnNhV1ptY3loY2JpQWdJQ0JrWmpvZ1JFY3VSR0YwWVVaeVlXMWxMQ0JjYmlBZ0lDQnpaWEZEYjJ3NklFUkhMa052YkhWdGJpeGNiaUFnSUNCbGJtTnZaR1ZrUTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0xGeHVJQ0FnSUdGNFpYTk9ZVzFsY3pvZ2MzUnlhVzVuVzEwc1hHNGdJQ0FnYzJOaGRIUmxjbFJwZEd4bE9pQnpkSEpwYm1jc1hHNGdJQ0FnWVdOMGFYWnBkR2xsY3pvZ1JFY3VRMjlzZFcxdUxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNU9pQnVkVzFpWlhJc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzNSeWFXNW5MQ0JjYmlBZ0lDQnRaWFJvYjJST1lXMWxPaUJ6ZEhKcGJtY3NJRnh1SUNBZ0lITmxiVlI1Y0dVNklITjBjbWx1Wnl4Y2JpQWdJQ0IwWVdkek9pQjdXMmx1WkdWNE9pQnpkSEpwYm1kZE9pQnpkSEpwYm1kOUxGeHVJQ0FnSUhObGNWTndZV05sUm5WdVl6b2dLSEJoY21GdGN6b2dTVk5sY1hWbGJtTmxVM0JoWTJWUVlYSmhiWE1wSUQwK0lGQnliMjFwYzJVOFNWTmxjWFZsYm1ObFUzQmhZMlZTWlhOMWJIUStMRnh1SUNBZ0lITnBiVTFoZEhKcGVFWjFibU02SUNoa2FXMDZJRzUxYldKbGNpd2djMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR052YkU1aGJXVTZJSE4wY21sdVp5d2djMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU2tnUFQ0Z1VISnZiV2x6WlR4RVJ5NURiMngxYlc1YlhUNHNYRzRnSUNBZ2RHOXZiSFJwY0VaMWJtTTZJQ2h3WVhKaGJYTTZJRWxVYjI5c2RHbHdRVzVrVUdGdVpXeFFZWEpoYlhNcElEMCtJRWhVVFV4RmJHVnRaVzUwTEZ4dUlDQWdJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpPaUFvY0dGeVlXMXpPaUJKVkc5dmJIUnBjRUZ1WkZCaGJtVnNVR0Z5WVcxektTQTlQaUJJVkUxTVJXeGxiV1Z1ZEN4Y2JpQWdJQ0J6WlhGVGNHRmpaVTl3ZEdsdmJuTS9PaUJoYm5rcElEb2dVSEp2YldselpUeEVSeTVXYVdWM1pYSStJSHRjYmx4dUlDQmpiMjV6ZENCaGRYUnZiV0YwYVdOVGFXMXBiR0Z5YVhSNVRHbHRhWFFnUFNCbVlXeHpaVHRjYmlBZ1kyOXVjM1FnVFVsT1gxTkpUVWxNUVZKSlZGa2dQU0E0TUR0Y2JseHVJQ0JqYjI1emRDQnBibWwwYVdGc1UybHRhV3hoY21sMGVVeHBiV2wwSUQwZ1lYVjBiMjFoZEdsalUybHRhV3hoY21sMGVVeHBiV2wwSUQ4Z1RVbE9YMU5KVFVsTVFWSkpWRmtnT2lCemFXMXBiR0Z5YVhSNUlDOGdNVEF3TzF4dVhHNGdJR052Ym5OMElHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzSUQwZ1pXNWpiMlJsWkVOdmJDQS9QeUJ6WlhGRGIydzdYRzRnSUdOdmJuTjBJSGRwZEdodmRYUkZiWEIwZVZaaGJIVmxjeUE5SUVSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyeGRLUzVqYkc5dVpTZ3BPMXh1SUNBZ0lDOHZRSFJ6TFdsbmJtOXlaVnh1SUNCamIyNXpkQ0JsYlhCMGVWWmhiSE5KWkhoeklEMGdjbVZ0YjNabFJXMXdkSGxUZEhKcGJtZFNiM2R6S0hkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3l3Z1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMndwTzF4dVhHNGdJR052Ym5OMElIdGthWE4wWVc1alpTd2dZMjl2Y21ScGJtRjBaWE45SUQwZ1lYZGhhWFFnYzJWeFUzQmhZMlZHZFc1aktIdGNiaUFnSUNCelpYRkRiMnc2SUhkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3k1amIyd29aR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ3dWJtRnRaU2toTEZ4dUlDQWdJRzFsZEdodlpFNWhiV1U2SUcxbGRHaHZaRTVoYldVc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzJsdGFXeGhjbWwwZVUxbGRISnBZeXhjYmlBZ0lDQmxiV0psWkVGNFpYTk9ZVzFsY3pvZ1lYaGxjMDVoYldWekxGeHVJQ0FnSUc5d2RHbHZibk02SUhObGNWTndZV05sVDNCMGFXOXVjMXh1SUNCOUtUdGNibHh1SUNCbWIzSWdLR052Ym5OMElHTnZiQ0J2WmlCamIyOXlaR2x1WVhSbGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JHbHpkRlpoYkhWbGN5QTlJR052YkM1MGIweHBjM1FvS1R0Y2JpQWdJQ0FnSUdWdGNIUjVWbUZzYzBsa2VITXVabTl5UldGamFDZ29hVzVrT2lCdWRXMWlaWElwSUQwK0lHeHBjM1JXWVd4MVpYTXVjM0JzYVdObEtHbHVaQ3dnTUN3Z2JuVnNiQ2twTzF4dUlDQWdJQ0FnWkdZdVkyOXNkVzF1Y3k1aFpHUW9SRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2RrYjNWaWJHVW5MQ0JqYjJ3dWJtRnRaU3dnYkdsemRGWmhiSFZsY3lrcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1pHWlRaWEVnUFNCRVJ5NUVZWFJoUm5KaGJXVXVabkp2YlVOdmJIVnRibk1vVzBSSExrTnZiSFZ0Ymk1bWNtOXRUR2x6ZENnbmMzUnlhVzVuSnl3Z0ozTmxjU2NzSUdScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObFEyOXNMblJ2VEdsemRDZ3BLVjBwTzF4dUlDQmpiMjV6ZENCa2FXMGdQU0JrYVcxbGJuTnBiMjVoYkdsMGVWSmxaSFZqWlVOdmJDNXNaVzVuZEdnN1hHNGdJR052Ym5OMElITnBiVUZ5Y2pvZ1JFY3VRMjlzZFcxdVcxMGdQU0JCY25KaGVTaGthVzBnTFNBeEtUdGNibHh1SUNCcFppQW9JV1JwYzNSaGJtTmxJSHg4SUdWdGNIUjVWbUZzYzBsa2VITXViR1Z1WjNSb0lDRTlQU0F3SUh4OElHNXZiazV2Y20xaGJHbDZaV1JFYVhOMFlXNWpaWE11YVc1amJIVmtaWE1vYzJsdGFXeGhjbWwwZVUxbGRISnBZeWtwWEc0Z0lDQWdZWGRoYVhRZ2MybHRUV0YwY21sNFJuVnVZeWhrYVcwc0lHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzTENCa1psTmxjU3dnSjNObGNTY3NJSE5wYlVGeWNpazdYRzRnSUdWc2MyVmNiaUFnSUNCblpYUlRhVzFwYkdGeWFYUnBaWE5HY205dFJHbHpkR0Z1WTJWektHUnBiU3dnWkdsemRHRnVZMlVzSUhOcGJVRnljaWs3WEc1Y2JpQWdZMjl1YzNRZ2IzQjBVMmx0YVd4aGNtbDBlVXhwYldsMElEMGdhVzVwZEdsaGJGTnBiV2xzWVhKcGRIbE1hVzFwZER0Y2JseHVJQ0JqYjI1emRDQnphVzFXWVd4ek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYmpFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHTnZibk4wSUc0eU9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCamJHbG1abk5OYjJ4SlpITWdQU0J1WlhjZ1UyVjBQRzUxYldKbGNqNG9LVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQWhQU0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCbWIzSWdLR3hsZENCcUlEMGdNRHNnYWlBaFBTQmthVzBnTFNBeElDMGdhVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCemFXMDZJRzUxYldKbGNpQTlJSE5wYlVGeWNsdHBYU0EvSUhOcGJVRnljbHRwWFM1blpYUW9haWtnT2lBd08xeHVYRzRnSUNBZ0lDQnBaaUFvYzJsdElENDlJRzl3ZEZOcGJXbHNZWEpwZEhsTWFXMXBkQ2tnZTF4dUlDQWdJQ0FnSUNCdU1TNXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnVNaTV3ZFhOb0tHa2dLeUJxSUNzZ01TazdYRzRnSUNBZ0lDQWdJR05zYVdabWMwMXZiRWxrY3k1aFpHUW9hU2s3WEc0Z0lDQWdJQ0FnSUdOc2FXWm1jMDF2YkVsa2N5NWhaR1FvYVNBcklHb2dLeUF4S1R0Y2JpQWdJQ0FnSUNBZ2MybHRWbUZzY3k1d2RYTm9LSE5wYlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdScFptWWdQU0JOWVhSb0xtRmljeWhoWTNScGRtbDBhV1Z6TG1kbGRDaHBLU0F0SUdGamRHbDJhWFJwWlhNdVoyVjBLR2tnS3lCcUlDc2dNU2twTzF4dUlDQWdJQ0FnSUNCcFppQW9jMmx0SUNFOUlERXBYRzRnSUNBZ0lDQWdJQ0FnYzJGc2FWWmhiSE11Y0hWemFDaGthV1ptSUM4Z0tERWdMU0J6YVcwcEtUdGNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lITmhiR2xXWVd4ekxuQjFjMmdvU1c1bWFXNXBkSGtwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSE5oYkdsV1lXeHpWMmwwYUc5MWRFbHVabWx1YVhSNUlEMGdjMkZzYVZaaGJITXVabWxzZEdWeUtHbDBJRDArSUdsMElDRTlQU0JKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbE5hVzRnUFNCTllYUm9MbTFwYmlndUxpNXpZV3hwVm1Gc2MxZHBkR2h2ZFhSSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xOWVhnZ1BTQk5ZWFJvTG0xaGVDZ3VMaTV6WVd4cFZtRnNjMWRwZEdodmRYUkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsUGNHRmphWFI1UTI5bFppQTlJREF1T0M4b2MyRnNhVTFoZUNBdElITmhiR2xOYVc0cE8xeHVYRzVjYmlBZ1kyOXVjM1FnYm1WcFoyaGliM1Z5YzBOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNiaUFnWTI5dWMzUWdjMmx0YVd4aGNtbDBlVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JpQWdZMjl1YzNRZ2MyRnNhVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0FoUFNCdU1TNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJRzVsYVdkb1ltOTFjbk5EYjNWdWRGdHVNVnRwWFYwZ0t6MGdNVHRjYmlBZ0lDQnVaV2xuYUdKdmRYSnpRMjkxYm5SYmJqSmJhVjFkSUNzOUlERTdYRzRnSUNBZ2MybHRhV3hoY21sMGVVTnZkVzUwVzI0eFcybGRYU0FyUFNCemFXMVdZV3h6VzJsZE8xeHVJQ0FnSUhOcGJXbHNZWEpwZEhsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJsdFZtRnNjMXRwWFR0Y2JpQWdJQ0JwWmlBb2MyRnNhVlpoYkhOYmFWMGdJVDBnU1c1bWFXNXBkSGtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGhZM1JwZG1sMGFXVnpMbWRsZENodU1WdHBYU2tnUGlCaFkzUnBkbWwwYVdWekxtZGxkQ2h1TWx0cFhTa3BYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TVZ0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzJGc2FUb2dSRWN1UTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0Nka2IzVmliR1VuTENCZ2MyRnNhVjhrZTJGNFpYTk9ZVzFsYzFzd1hTNXpkV0p6ZEhKcGJtY29ZWGhsYzA1aGJXVnpXekJkTG14aGMzUkpibVJsZUU5bUtDZGZKeWtwZldBc0lITmhiR2xEYjNWdWRDazdYRzVjYmlBZ1pHWXVZMjlzZFcxdWN5NWhaR1FvYzJGc2FTazdYRzRnSUdOdmJuTjBJR05zYVdabWMwTnZiRTVoYldVZ1BTQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtTENCamJHbG1abk5OYjJ4SlpITXBPMXh1WEc0Z0lHTnZibk4wSUhacFpYY2dQU0JuY205ckxuTm9aV3hzTG1kbGRGUmhZbXhsVm1sbGR5aGtaaTV1WVcxbEtUdGNiaUFnZG1sbGR5NW5jbWxrTG1OdmJIVnRibk11WW5sT1lXMWxLR05zYVdabWMwTnZiRTVoYldVcElTNTJhWE5wWW14bElEMGdabUZzYzJVN1hHNGdJR052Ym5OMElITndJRDBnZG1sbGR5NWhaR1JXYVdWM1pYSW9SRWN1Vm1sbGQyVnlMbk5qWVhSMFpYSlFiRzkwS0dSbUxDQjdYRzRnSUNBZ2VFTnZiSFZ0Yms1aGJXVTZJR0Y0WlhOT1lXMWxjMXN3WFN4Y2JpQWdJQ0I1UTI5c2RXMXVUbUZ0WlRvZ1lYaGxjMDVoYldWeld6RmRMRnh1SUNBZ0lITnBlbVU2SUhOaGJHa3VibUZ0WlN4Y2JpQWdJQ0JqYjJ4dmNqb2dZV04wYVhacGRHbGxjeTV1WVcxbExGeHVJQ0FnSUhOb2IzZFlVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFpVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFRhWHBsVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2REYjJ4dmNsTmxiR1ZqZEc5eU9pQm1ZV3h6WlN4Y2JpQWdJQ0J0WVhKclpYSk5hVzVUYVhwbE9pQTFMRnh1SUNBZ0lHMWhjbXRsY2sxaGVGTnBlbVU2SURJMUxGeHVJQ0FnSUhScGRHeGxPaUJ6WTJGMGRHVnlWR2wwYkdWY2JpQWdmU2twSUdGeklFUkhMbE5qWVhSMFpYSlFiRzkwVm1sbGQyVnlPMXh1WEc0Z0lHTnZibk4wSUdOaGJuWmhjeUE5SUNoemNDNW5aWFJKYm1adktDa2dZWE1nWVc1NUtWc25ZMkZ1ZG1GekoxMDdYRzRnSUdOdmJuTjBJR3hwYm1WelVtVnpJRDBnWTNKbFlYUmxUR2x1WlhNb2JqRXNJRzR5TENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lITmhiR2xXWVd4ekxDQnphVzFXWVd4ekxDQnpaVzFVZVhCbExDQjBZV2R6S1R0Y2JseHVJQ0JqYjI1emRDQmpZWE5vWldSTWFXNWxjMFJoZEdFNklHRnVlU0E5SUh0OU8xeHVJQ0JzWlhRZ1lXTmpPaUJFUnk1QlkyTnZjbVJwYjI0N1hHNWNiaUFnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTV2YmtOMWNuSmxiblJEWld4c1EyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5STmIyeEpaSGdnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJEYjJ3Z0ppWWdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFEyOXNMbTVoYldVZ1BUMDlJQ2N5WDNObGNTY2dQeUF4SURvZ01EdGNiaUFnSUNCamIyNXpkQ0JzYVc1bElEMGdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUNFOVBTQXRNU0EvSUd4cGJtVnpVbVZ6TG14cGJtVnpXMnhwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUYwZ09pQnVkV3hzTzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTQS9JR3hwYm1VdWJXOXNjMXRqZFhKeVpXNTBUVzlzU1dSNFhTQTZJQzB4TzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWMyVjBLREFzSUNGc2FXNWxjMUpsY3k1c2FXNWxjMXN3WFM1elpXeGxZM1JsWkNrN1hHNGdJQ0FnYzNBdVpHRjBZVVp5WVcxbExuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z2JHbHVaWE5TWlhNdWJHbHVaWE5iTUYwdWMyVnNaV04wWldRcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ0lDQnBaaUFvYkdsdVpTbGNiaUFnSUNBZ0lITmxkRlJwYldWdmRYUW9LQ2tnUFQ0Z2UzVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29aR1lzSUdGall5d2dZMkZ6YUdWa1RHbHVaWE5FWVhSaExDQnNhVzVsTENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lHeHBibVZ6VW1WekxteHBibVZ6UkdZdVoyVjBLQ2R6WVd4cEp5d2diR2x1WlM1cFpDa3NJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpLWDBzSURFd01EQXBPeUFnSUNBZ0lGeHVJQ0I5S1R0Y2JseHVJQ0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTl1VTJWc1pXTjBhVzl1UTJoaGJtZGxaQzV6ZFdKelkzSnBZbVVvS0Y4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtMXZkWE5sVDNabGNsSnZkMGxrZUNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG0xdmRYTmxUM1psY2xKdmQwbGtlRjA3WEc0Z0lDQWdJQ0JzYVc1bExuTmxiR1ZqZEdWa0lEMGdJV3hwYm1VdWMyVnNaV04wWldRN1hHNGdJQ0FnSUNCcFppQW9JV3hwYm1VdWMyVnNaV04wWldRcFhHNGdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JzYVc1bGMxSmxjeTVzYVc1bGN5NW1iM0pGWVdOb0tDaHNLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9iQzV6Wld4bFkzUmxaQ2xjYmlBZ0lDQWdJQ0FnYkM1dGIyeHpMbVp2Y2tWaFkyZ29LRzBwSUQwK0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhRb2JTd2dkSEoxWlNrcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnYkdsdVpYTkVaa2R5YVdRZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuQnNiM1F1WjNKcFpDZ3BMbk52Y25Rb1d5ZHpZV3hwSjEwc0lGdG1ZV3h6WlYwcE8xeHVYRzRnSUd4cGJtVnpSR1pIY21sa0xtOXVRMlZzYkVOc2FXTnJMbk4xWW5OamNtbGlaU2dvS1NBOVBpQjdYRzRnSUNBZ2VtOXZiU0E5SUhSeWRXVTdYRzRnSUgwcE8xeHVYRzRnSUdOdmJuTjBJR3hwYzNSRGJHbG1abk5NYVc1cklEMGdkV2t1WW5WMGRHOXVLR0FrZTJ4cGJtVnpVbVZ6TG14cGJtVnpSR1l1Y205M1EyOTFiblI5SUdOc2FXWm1jMkFzSUNncElEMCtJSHRjYmlBZ0lDQm5jbTlyTG5Ob1pXeHNMbVJ2WTJ0TllXNWhaMlZ5TG1Sdlkyc29iR2x1WlhORVprZHlhV1F1Y205dmRDd2dKMlJ2ZDI0bkxDQnVkV3hzTENBblFXTjBhWFpwZEhrZ1kyeHBabVp6Snl3Z01DNHlLVHRjYmlBZ2ZTazdYRzRnSUdWa2FYUlRjRXhwYm10VGRIbHNaU2hzYVhOMFEyeHBabVp6VEdsdWF5d2djM0FzSURFd0tUdGNibHh1SUNCamIyNXpkQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjRnUFNCMWFTNXpkMmwwWTJoSmJuQjFkQ2hnVTJodmR5QnZibXg1SUdOc2FXWm1jMkFzSUdaaGJITmxLVHRjYmlBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxtOXVRMmhoYm1kbFpDZ29LVDArSUh0Y2JpQWdJQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjR1ZG1Gc2RXVWdQeUJrWmk1eWIzZHpMbVpwYkhSbGNpZ29jbTkzS1NBOVBpQnliM2RiWTJ4cFptWnpRMjlzVG1GdFpWMGdQVDA5SUhSeWRXVXBJRG9nWkdZdVptbHNkR1Z5TG5ObGRFRnNiQ2gwY25WbEtUdGNiaUFnZlNrN1hHNGdJR1ZrYVhSVGNFeHBibXRUZEhsc1pTaG1hV3gwWlhKRGJHbG1abk5DZFhSMGIyNHVjbTl2ZEN3Z2MzQXNJRE13S1R0Y2JseHVJQ0JzWlhRZ2RHbHRaWEk2SUU1dlpHVktVeTVVYVcxbGIzVjBPMXh1SUNCallXNTJZWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduYlc5MWMyVnRiM1psSnl3Z1puVnVZM1JwYjI0Z0tHVjJaVzUwT2lCTmIzVnpaVVYyWlc1MEtTQjdYRzRnSUNBZ1kyeGxZWEpVYVcxbGIzVjBLSFJwYldWeUtUdGNiaUFnSUNCMGFXMWxjaUE5SUdkc2IySmhiQzV6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JqYUdWamEwTjFjbk52Y2s5dVRHbHVaU2hsZG1WdWRDd2dZMkZ1ZG1GekxDQnNhVzVsYzFKbGN5NXNhVzVsY3lrN1hHNGdJQ0FnSUNCcFppQW9iR2x1WlNBbUppQmtaaTV0YjNWelpVOTJaWEpTYjNkSlpIZ2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZFdrdWRHOXZiSFJwY0M1emFHOTNLSFJ2YjJ4MGFYQkdkVzVqS0h0allYTm9aV1JFWVhSaE9pQmpZWE5vWldSTWFXNWxjMFJoZEdFc0lHeHBibVU2SUd4cGJtVXNJR1JtT2lCa1ppd2djMlZ4UTI5c09pQnpaWEZEYjJ3c0lHRmpkR2wyYVhSNVEyOXNPaUJoWTNScGRtbDBhV1Z6ZlNrc0lHVjJaVzUwTG1Oc2FXVnVkRmdzSUdWMlpXNTBMbU5zYVdWdWRGa3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHNJRFV3TUNrN1hHNGdJSDBwTzF4dVhHNGdJR05oYm5aaGN5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtDZHRiM1Z6WldSdmQyNG5MQ0JtZFc1amRHbHZiaWhsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ2tnZTF4dUlDQWdJR052Ym5OMElHeHBibVVnUFNCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkQ3dnWTJGdWRtRnpMQ0JzYVc1bGMxSmxjeTVzYVc1bGN5azdYRzRnSUNBZ2FXWWdLR3hwYm1VZ0ppWWdaR1l1Ylc5MWMyVlBkbVZ5VW05M1NXUjRJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdhV1lnS0dWMlpXNTBMbU4wY214TFpYa3BJSHRjYmlBZ0lDQWdJQ0FnYkdsdVpTNXpaV3hsWTNSbFpDQTlJQ0ZzYVc1bExuTmxiR1ZqZEdWa08xeHVJQ0FnSUNBZ0lDQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvYkdsdVpTNXBaQ3dnYkdsdVpTNXpaV3hsWTNSbFpDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnNhVzVsTG5ObGJHVmpkR1ZrS1Z4dUlDQWdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVYRzRnSUNBZ0lDQWdJR3hwYm1WelVtVnpMbXhwYm1WekxtWnZja1ZoWTJnb0tHd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYkM1elpXeGxZM1JsWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJR3d1Ylc5c2N5NW1iM0pGWVdOb0tDaHRLU0E5UGlCa1ppNXpaV3hsWTNScGIyNHVjMlYwS0cwc0lIUnlkV1VwS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElDRTlQU0JzYVc1bExtbGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTNXBaRHRjYmlBZ0lDQWdJQ0FnSUNCa1ppNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaUzV0YjJ4eld6QmRPMXh1SUNBZ0lDQWdJQ0FnSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z0lXeHBibVZ6VW1WekxteHBibVZ6V3pCZExuTmxiR1ZqZEdWa0tUdGNiaUFnSUNBZ0lDQWdJQ0JrWmk1elpXeGxZM1JwYjI0dWMyVjBLREFzSUd4cGJtVnpVbVZ6TG14cGJtVnpXekJkTG5ObGJHVmpkR1ZrS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbWRsZEZOdmNuUmxaRTl5WkdWeUtHeHBibVZ6UkdaSGNtbGtMbk52Y25SQ2VVTnZiSFZ0Ym5Nc0lHeHBibVZ6UkdaSGNtbGtMbk52Y25SVWVYQmxjeWs3WEc0Z0lDQWdJQ0JzYVc1bGMwUm1SM0pwWkM1elkzSnZiR3hVYjBObGJHd29KM05sY1Y4eEp5d2diM0prWlhJdWFXNWtaWGhQWmloc2FXNWxMbWxrS1NrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQnpjQzV2YmtWMlpXNTBLQ2RrTkMxaVpXWnZjbVV0WkhKaGR5MXpZMlZ1WlNjcFhHNGdJQ0FnTG5OMVluTmpjbWxpWlNnb1h6b2dZVzU1S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCc2FXNWxjeUE5SUhKbGJtUmxja3hwYm1WektITndMRnh1SUNBZ0lDQWdJQ0JoZUdWelRtRnRaWE5iTUYwc0lHRjRaWE5PWVcxbGMxc3hYU3dnYkdsdVpYTlNaWE1zSUhOaGJHbFdZV3h6TENCellXeHBUM0JoWTJsMGVVTnZaV1lzSUhOaGJHbE5hVzRwTzF4dUlDQWdJQ0FnYVdZZ0tIcHZiMjBwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRXhwYm1VZ1BTQnNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJTYjNkSlpIaGRPMXh1SUNBZ0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncFBUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSHQ2YjI5dFRHVm1kQ3dnZW05dmJWSnBaMmgwTENCNmIyOXRWRzl3TENCNmIyOXRRbTkwZEc5dGZTQTlJR2RsZEZwdmIyMURiMjl5WkdsdVlYUmxjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lITndMblpwWlhkd2IzSjBMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdWRtbGxkM0J2Y25RdWFHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNRjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTUYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTVYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1GMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNVjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNVjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTVYwcFhHNGdJQ0FnSUNBZ0lDQWdLU0FnSUNBZ0lDQWdYRzRnSUNBZ0lDQWdJQ0FnYzNBdWVtOXZiU2g2YjI5dFRHVm1kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIcHZiMjFVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I2YjI5dFVtbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjZiMjl0UW05MGRHOXRLVHRjYmlBZ0lDQWdJQ0FnZlN3Z016QXdLVHRjYmlBZ0lDQWdJQ0FnZW05dmJTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxuWmhiSFZsSUQ4Z1pHWXVjbTkzY3k1bWFXeDBaWElvS0hKdmR5a2dQVDRnY205M1cyTnNhV1ptYzBOdmJFNWhiV1ZkSUQwOVBTQjBjblZsS1NBNklHUm1MbVpwYkhSbGNpNXpaWFJCYkd3b2RISjFaU2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdjM0F1WVdSa1VISnZjR1Z5ZEhrb0ozTnBiV2xzWVhKcGRIbE1hVzFwZENjc0lDZGtiM1ZpYkdVbkxDQnZjSFJUYVcxcGJHRnlhWFI1VEdsdGFYUXBPMXh1SUNCaFkyTWdQU0JqY21WaGRHVlFiM0JsY25SNVVHRnVaV3dvS1R0Y2JpQWdjbVYwZFhKdUlITndPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmxaR2wwVTNCTWFXNXJVM1I1YkdVb1pXdzZJRWhVVFV4RmJHVnRaVzUwTENCemNEb2dSRWN1VTJOaGRIUmxjbEJzYjNSV2FXVjNaWElzSUhSdmNFMWhjbWRwYmpvZ2JuVnRZbVZ5S1h0Y2JpQWdaV3d1YzNSNWJHVXVjRzl6YVhScGIyNGdQU0FuWVdKemIyeDFkR1VuTzF4dUlDQmxiQzV6ZEhsc1pTNTBiM0FnUFNCZ0pIdDBiM0JOWVhKbmFXNTljSGhnTzF4dUlDQmxiQzV6ZEhsc1pTNXlhV2RvZENBOUlDY3hNSEI0Snp0Y2JpQWdjM0F1Y205dmRDNWhjSEJsYm1Rb1pXd3BPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmpjbVZoZEdWUWIzQmxjblI1VUdGdVpXd29LVG9nUkVjdVFXTmpiM0prYVc5dUlIdGNiaUFnWTI5dWMzUWdZV05qSUQwZ2RXa3VZV05qYjNKa2FXOXVLQ2s3WEc0Z0lHTnZibk4wSUdGalkwbGpiMjRnUFNCMWFTNWxiR1Z0Wlc1MEtDZHBKeWs3WEc0Z0lHRmpZMGxqYjI0dVkyeGhjM05PWVcxbElEMGdKMmR5YjJzdGFXTnZiaUJ6ZG1jdGFXTnZiaUJ6ZG1jdGRtbGxkeTFzWVhsdmRYUW5PMXh1SUNCaFkyTXVZV1JrVkdsMGJHVW9kV2t1YzNCaGJpaGJZV05qU1dOdmJpd2dkV2t1YkdGaVpXd29ZRUZqZEdsMmFYUjVJR05zYVdabWMyQXBYU2twTzF4dUlDQmhZMk11WVdSa1VHRnVaU2duUTJ4cFptWWdSR1YwWVdsc2N5Y3NJQ2dwSUQwK0lIVnBMbVJwZGxSbGVIUW9KME5zYVdabUlHaGhjeUJ1YjNRZ1ltVmxiaUJ6Wld4bFkzUmxaQ2NwTENCMGNuVmxLVHRjYmlBZ1ozSnZheTV6YUdWc2JDNXZJRDBnWVdOakxuSnZiM1E3WEc0Z0lISmxkSFZ5YmlCaFkyTTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29YRzRnSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzWEc0Z0lHRmpZem9nUkVjdVFXTmpiM0prYVc5dUxGeHVJQ0JqWVhOb1pXUkVZWFJoT2lCaGJua3NYRzRnSUd4cGJtVTZJRWxNYVc1bExDQmNiaUFnYzJWeFEyOXNPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQmhZM1JwZG1sMGFXVnpPaUJFUnk1RGIyeDFiVzRzWEc0Z0lITmhiR2s2SUc1MWJXSmxjaXhjYmlBZ2NISnZjRkJoYm1Wc1JuVnVZem9nS0hCaGNtRnRjem9nU1ZSdmIyeDBhWEJCYm1SUVlXNWxiRkJoY21GdGN5a2dQVDRnU0ZSTlRFVnNaVzFsYm5RcGUxeHVJQ0JqYjI1emRDQndZVzVsYkNBOUlHRmpZeTVuWlhSUVlXNWxLQ2REYkdsbVppQkVaWFJoYVd4ekp5azdYRzRnSUhWcExtVnRjSFI1S0hCaGJtVnNMbkp2YjNRcE8xeHVJQ0JqYjI1emRDQndZVzVsYkVWc1pXMWxiblFnUFNCd2NtOXdVR0Z1Wld4R2RXNWpLSHRqWVhOb1pXUkVZWFJoT2lCallYTm9aV1JFWVhSaExDQnNhVzVsT2lCc2FXNWxMQ0JrWmpvZ1pHWXNJSE5sY1VOdmJEb2djMlZ4UTI5c0xDQmhZM1JwZG1sMGVVTnZiRG9nWVdOMGFYWnBkR2xsY3l3Z2MyRnNhVG9nYzJGc2FYMHBPMXh1SUNCd1lXNWxiQzV5YjI5MExtRndjR1Z1WkNod1lXNWxiRVZzWlcxbGJuUXBPMXh1SUNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUh0Y2JpQWdJQ0JuY205ckxuTm9aV3hzTG04Z1BTQmhZMk11Y205dmREdGNiaUFnZlN3Z05UQXdLVHRjYm4xY2JseHVablZ1WTNScGIyNGdaMlYwV205dmJVTnZiM0prYVc1aGRHVnpLRmN3T2lCdWRXMWlaWElzSUVnd09pQnVkVzFpWlhJc0lIZ3hPaUJ1ZFcxaVpYSXNJSGt4T2lCdWRXMWlaWElzSUhneU9pQnVkVzFpWlhJc0lIa3lPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnVnpFZ1BTQk5ZWFJvTG1GaWN5aDRNU0F0SUhneUtUdGNiaUFnWTI5dWMzUWdTREVnUFNCTllYUm9MbUZpY3loNU1TQXRJSGt5S1R0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZYSUQwZ1Z6QWdMeUJYTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZJSUQwZ1NEQWdMeUJJTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1VnUFNCTllYUm9MbTFwYmloelkyRnNaVmNzSUhOallXeGxTQ2s3WEc0Z0lHTnZibk4wSUZjeUlEMGdLRmN3SUM4Z2MyTmhiR1VwSUNvZ05UdGNiaUFnWTI5dWMzUWdTRElnUFNBb1NEQWdMeUJ6WTJGc1pTa2dLaUExTzF4dUlDQmpiMjV6ZENCc1pXWjBJRDBnZURFZ1BDQjRNaUEvSUhneElEb2dlREk3WEc0Z0lHTnZibk4wSUhSdmNDQTlJSGt4SUQ0Z2VUSWdQeUI1TVNBNklIa3lPMXh1SUNCamIyNXpkQ0I2YjI5dFRHVm1kQ0E5SUNoc1pXWjBJQ3NnVnpFZ0x5QXlLU0F0SUZjeUlDOGdNanRjYmlBZ1kyOXVjM1FnZW05dmJWSnBaMmgwSUQwZ2VtOXZiVXhsWm5RZ0t5QlhNanRjYmlBZ1kyOXVjM1FnZW05dmJWUnZjQ0E5SUNoMGIzQWdMU0JJTVNBdklESXBJQ3NnU0RJZ0x5QXlPMXh1SUNCamIyNXpkQ0I2YjI5dFFtOTBkRzl0SUQwZ2VtOXZiVlJ2Y0NBdElFZ3lPMXh1SUNCeVpYUjFjbTRnZTNwdmIyMU1aV1owT2lCNmIyOXRUR1ZtZEN3Z2VtOXZiVkpwWjJoME9pQjZiMjl0VW1sbmFIUXNJSHB2YjIxVWIzQTZJSHB2YjIxVWIzQXNJSHB2YjIxQ2IzUjBiMjA2SUhwdmIyMUNiM1IwYjIxOU8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkRG9nWVc1NUxDQmpZVzUyWVhNNklHRnVlU3dnYkdsdVpYTTZJRWxNYVc1bFcxMHBPaUJKVEdsdVpTQjhJRzUxYkd3Z2UxeHVJQ0JqYjI1emRDQnlaV04wSUQwZ1kyRnVkbUZ6TG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNCamIyNXpkQ0I0SUQwZ1pYWmxiblF1WTJ4cFpXNTBXQ0F0SUhKbFkzUXViR1ZtZER0Y2JpQWdZMjl1YzNRZ2VTQTlJR1YyWlc1MExtTnNhV1Z1ZEZrZ0xTQnlaV04wTG5SdmNEdGNiaUFnYkdWMElHTnNiM05sYzNSTWFXNWxJRDBnYm5Wc2JEdGNiaUFnYkdWMElHMXBia1JwYzNRZ1BTQXdPMXh1SUNCbWIzSWdLR052Ym5OMElHeHBibVVnYjJZZ2JHbHVaWE1wSUh0Y2JpQWdJQ0JqYjI1emRDQmthWE4wSUQxY2JpQWdJQ0FnSUUxaGRHZ3VZV0p6S0UxaGRHZ3VhSGx3YjNRb2JHbHVaUzVoV3pCZElDMGdlQ3dnYkdsdVpTNWhXekZkSUMwZ2VTa2dLMXh1SUNBZ0lDQWdUV0YwYUM1b2VYQnZkQ2hzYVc1bExtSmJNRjBnTFNCNExDQnNhVzVsTG1KYk1WMGdMU0I1S1NBdElFMWhkR2d1YUhsd2IzUW9iR2x1WlM1aFd6QmRJQzBnYkdsdVpTNWlXekJkTENCc2FXNWxMbUZiTVYwZ0xTQnNhVzVsTG1KYk1WMHBLVHRjYmlBZ0lDQnBaaUFvS0NGdGFXNUVhWE4wSUNZbUlHUnBjM1FnUENBeUtTQjhmQ0JrYVhOMElEd2diV2x1UkdsemRDa2dlMXh1SUNBZ0lDQWdiV2x1UkdsemRDQTlJR1JwYzNRN1hHNGdJQ0FnSUNCamJHOXpaWE4wVEdsdVpTQTlJR3hwYm1VN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJqYkc5elpYTjBUR2x1WlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnY21WdVpHVnlUR2x1WlhNb2MzQTZJRVJITGxOallYUjBaWEpRYkc5MFZtbGxkMlZ5TEZ4dUlDQjRRWGhwY3pvZ2MzUnlhVzVuTENCNVFYaHBjem9nYzNSeWFXNW5MQ0JzYVc1bGMxSmxjem9nU1ZKbGJtUmxjbVZrVEdsdVpYTXNJSE5oYkdsV1lXeHpPaUJ1ZFcxaVpYSmJYU3dnYzJGc2FVOXdZV05wZEhsRGIyVm1PaUJ1ZFcxaVpYSXNJSE5oYkdsTmFXNDZJRzUxYldKbGNpazZJRWxNYVc1bElGdGRJSHRjYmlBZ1kyOXVjM1FnYkdsdVpYTWdQU0JzYVc1bGMxSmxjeTVzYVc1bGN6dGNiaUFnWTI5dWMzUWdZMkZ1ZG1GeklEMGdLSE53TG1kbGRFbHVabThvS1NCaGN5QjdXMmx1WkdWNE9pQnpkSEpwYm1kZElEb2dZVzU1ZlNsYkoyTmhiblpoY3lkZE8xeHVJQ0JqYjI1emRDQmpkSGdnUFNCallXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LU0JoY3lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1E3WEc0Z0lHTnZibk4wSUhnZ1BTQnpjQzVrWVhSaFJuSmhiV1VoTG1OdmJIVnRibk11WW5sT1lXMWxLSGhCZUdsektUdGNiaUFnWTI5dWMzUWdlU0E5SUhOd0xtUmhkR0ZHY21GdFpTRXVZMjlzZFcxdWN5NWllVTVoYldVb2VVRjRhWE1wTzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hwYm1WekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHOXBiblJHY205dElEMGdjM0F1ZDI5eWJHUlViMU5qY21WbGJpaDRMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1N3Z2VTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2Mxc3dYU2twTzF4dUlDQWdJR052Ym5OMElIQnZhVzUwVkc4Z1BTQnpjQzUzYjNKc1pGUnZVMk55WldWdUtIZ3VaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwTENCNUxtZGxkQ2hzYVc1bGMxdHBYUzV0YjJ4eld6RmRLU2s3WEc0Z0lDQWdiR2x1WlhOYmFWMHVZU0E5SUZ0d2IybHVkRVp5YjIwdWVDd2djRzlwYm5SR2NtOXRMbmxkTzF4dUlDQWdJR3hwYm1WelcybGRMbUlnUFNCYmNHOXBiblJVYnk1NExDQndiMmx1ZEZSdkxubGRPMXh1SUNBZ0lHTnZibk4wSUd4cGJtVWdQU0J1WlhjZ1VHRjBhREpFS0NrN1hHNGdJQ0FnYkdsdVpTNXRiM1psVkc4b2JHbHVaWE5iYVYwdVlWc3dYU3dnYkdsdVpYTmJhVjB1WVZzeFhTazdYRzRnSUNBZ1kyOXVjM1FnWTI5c2IzSWdQU0JzYVc1bGMxdHBYUzV6Wld4bFkzUmxaQ0EvSUNjeU5UVXNNalUxTERBbklEb2dKekFzTVRJNExEQW5PMXh1SUNBZ0lHTnZibk4wSUc5d1lXTnBkSGtnUFNCellXeHBWbUZzYzF0cFhTQTlQVDBnU1c1bWFXNXBkSGtnUHlBeElEb2dNQzR5SUNzZ0tITmhiR2xXWVd4elcybGRJQzBnYzJGc2FVMXBiaWtxYzJGc2FVOXdZV05wZEhsRGIyVm1PMXh1SUNBZ0lHTjBlQzV6ZEhKdmEyVlRkSGxzWlNBOUlHQnlaMkpoS0NSN1kyOXNiM0o5TENSN2IzQmhZMmwwZVgwcFlEdGNiaUFnSUNCamRIZ3ViR2x1WlZkcFpIUm9JRDBnYkdsdVpYTmJhVjB1YVdRZ1BUMDlJR3hwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUNBL0lETWdPaUF4TzF4dUlDQWdJR3hwYm1VdWJHbHVaVlJ2S0d4cGJtVnpXMmxkTG1KYk1GMHNJR3hwYm1WelcybGRMbUpiTVYwcE8xeHVJQ0FnSUdOMGVDNXpkSEp2YTJVb2JHbHVaU2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR3hwYm1Wek8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZNYVc1bGN5aGNiaUFnYmpFNklHNTFiV0psY2x0ZExDQmNiaUFnYmpJNklHNTFiV0psY2x0ZExDQmNiaUFnYzJWeE9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCaFkzUnBkbWwwYVdWek9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJSE5wYlZaaGJITTZJRzUxYldKbGNsdGRMRnh1SUNCelpXMVVlWEJsT2lCemRISnBibWNzWEc0Z0lIUmhaM002SUh0YmFXNWtaWGc2SUhOMGNtbHVaMTA2SUhOMGNtbHVaMzBwSURvZ1NWSmxibVJsY21Wa1RHbHVaWE1nZTF4dUlDQmpiMjV6ZENCc2FXNWxjem9nU1V4cGJtVmJYU0E5SUc1bGR5QkJjbkpoZVNodU1TNXNaVzVuZEdncExtWnBiR3dvYm5Wc2JDazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JqRXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQnVkVzB4SUQwZ2JqRmJhVjA3WEc0Z0lDQWdZMjl1YzNRZ2JuVnRNaUE5SUc0eVcybGRPMXh1SUNBZ0lHeHBibVZ6VzJsZElEMGdLSHRwWkRvZ2FTd2diVzlzY3pvZ1cyNTFiVEVzSUc1MWJUSmRMQ0J6Wld4bFkzUmxaRG9nWm1Gc2MyVXNJR0U2SUZ0ZExDQmlPaUJiWFgwcE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUd4cGJtVnpSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHeHBibVZ6TG14bGJtZDBhQ2s3WEc0Z0lHMXZiRU52YkhWdGJrNWhiV1Z6TG1admNrVmhZMmdvS0dsMExDQnBaSGdwSUQwK0lIdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNVM1J5YVc1bktHbDBLUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUhObGNTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2MxdHBaSGhkS1NrN1hHNGdJQ0FnYzJWMFZHRm5jeWhzYVc1bGMwUm1MbU52YkNocGRDa2hMQ0IwWVdkektUdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJDaHBkQ2toTG5ObGJWUjVjR1VnUFNCelpXMVVlWEJsTzF4dUlDQjlLVnh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0oyRmpkRjlrYVdabUp5bGNiaUFnSUNBdWFXNXBkQ2dvYVRvZ2JuVnRZbVZ5S1NBOVBpQk5ZWFJvTG1GaWN5aGhZM1JwZG1sMGFXVnpMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1NBdElHRmpkR2wyYVhScFpYTXVaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwS1NrN1hHNGdJR3hwYm1WelJHWXVZMjlzZFcxdWN5NWhaR1JPWlhkSmJuUW9KMnhwYm1WZmFXNWtaWGduS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lHa3BPMXh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0ozTmhiR2tuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITmhiR2xXWVd4elcybGRLVHRjYmlBZ2JHbHVaWE5FWmk1amIyeDFiVzV6TG1Ga1pFNWxkMFpzYjJGMEtDZHphVzBuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITnBiVlpoYkhOYmFWMHBPMXh1SUNCeVpYUjFjbTRnZTJ4cGJtVnpMQ0JzYVc1bGMwUm1mVHRjYm4xY2JseHVablZ1WTNScGIyNGdjMlYwVkdGbmN5aGpiMnc2SUVSSExrTnZiSFZ0Yml3Z2RHRm5jem9nZTF0cGJtUmxlRG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mU2tnZTF4dUlDQlBZbXBsWTNRdWEyVjVjeWgwWVdkektTNW1iM0pGWVdOb0tIUmhaeUE5UGlCN1hHNGdJQ0FnWTI5c0xuUmhaM05iZEdGblhTQTlJSFJoWjNOYmRHRm5YVHRjYmlBZ2ZTbGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJR2RsZEZOcGJXbHNZWEpwZEdsbGMwMWhjbWw0S0Z4dUlDQWdJR1JwYlRvZ2JuVnRZbVZ5TENCY2JpQWdJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnWEc0Z0lDQWdaR1pUWlhFNklFUkhMa1JoZEdGR2NtRnRaU3dnWEc0Z0lDQWdjMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU3hjYmlBZ0lDQnphVzFHZFc1ak9pQW9ZMjlzT2lCRVJ5NURiMngxYlc0c0lHMXZiRG9nYzNSeWFXNW5LU0E5UGlCUWNtOXRhWE5sUEVSSExrTnZiSFZ0YmlCOElHNTFiR3crWEc0Z0lDQWdLVnh1SUNBNklGQnliMjFwYzJVOFJFY3VRMjlzZFcxdVcxMCtJSHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ0lUMGdaR2x0SUMwZ01Uc2dLeXRwS1NCN1hHNGdJQ0FnWTI5dWMzUWdiVzlzSUQwZ2MyVnhRMjlzTG1kbGRDaHBLVHRjYmlBZ0lDQmtabE5sY1M1eWIzZHpMbkpsYlc5MlpVRjBLREFzSURFc0lHWmhiSE5sS1R0Y2JpQWdJQ0J6YVcxQmNuSmJhVjBnUFNBb1lYZGhhWFFnYzJsdFJuVnVZeWhrWmxObGNTNWpiMndvSjNObGNTY3BJU3dnYlc5c0tTa2hPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnphVzFCY25JN1hHNTlYRzVjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRHbGxjMFp5YjIxRWFYTjBZVzVqWlhNb1pHbHRPaUJ1ZFcxaVpYSXNJR1JwYzNSaGJtTmxjem9nVFdGMGNtbDRMQ0J6YVcxQmNuSTZJRVJITGtOdmJIVnRibHRkS1Z4dUlDQTZJRVJITGtOdmJIVnRibHRkSUh0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCamIyNXpkQ0J6YVcxcGJHRnlhWFI1UVhKeUlEMGdibVYzSUVGeWNtRjVLR1JwYlNBdElHa2dMU0F4S1M1bWFXeHNLREFwTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNCcElDc2dNVHNnYWlBOElHUnBiVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQnphVzFwYkdGeWFYUjVRWEp5VzJvZ0xTQnBJQzBnTVYwZ1BTQm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtHUnBjM1JoYm1ObGMxdHBYVnRxWFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSE5wYlVGeWNsdHBYU0E5SUVSSExrTnZiSFZ0Ymk1bWNtOXRSbXh2WVhRek1rRnljbUY1S0NkemFXMXBiR0Z5YVhSNUp5d2dSbXh2WVhRek1rRnljbUY1TG1aeWIyMG9jMmx0YVd4aGNtbDBlVUZ5Y2lrcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemFXMUJjbkk3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR2xrY3pvZ1UyVjBQRzUxYldKbGNqNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCamIyNXpkQ0JqYjJ4dVlXMWxJRDBnSjJOdmJuUmhhVzV6UTJ4cFptWW5PMXh1SUNCamIyNXpkQ0JqYjJ4T1lXMWxTVzVrSUQwZ1pHWXVZMjlzZFcxdWN5NXVZVzFsY3lncExtWnBiSFJsY2lnb2FYUTZJSE4wY21sdVp5a2dQVDRnYVhRdWFXNWpiSFZrWlhNb1kyOXNibUZ0WlNrcExteGxibWQwYUNBcklERTdYRzRnSUdOdmJuTjBJRzVsZDBOdmJFNWhiV1VnUFNCZ0pIdGpiMnh1WVcxbGZWOGtlMk52YkU1aGJXVkpibVI5WUR0Y2JpQWdaR1l1WTI5c2RXMXVjeTVoWkdST1pYZENiMjlzS0c1bGQwTnZiRTVoYldVcExtbHVhWFFvS0drcElEMCtJR2xrY3k1b1lYTW9hU2twTzF4dUlDQnlaWFIxY200Z2JtVjNRMjlzVG1GdFpUdGNibjFjYmx4dUlsMTkiLCJleHBvcnQgZnVuY3Rpb24gY3JlYXRlRGltZW5zaW5hbGl0eVJlZHVjaW5nV29ya2VyKGRhdGFNZXRyaWMsIG1ldGhvZCwgb3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKG5ldyBVUkwoJy4vZGltZW5zaW9uYWxpdHktcmVkdWNlcicsIGltcG9ydC5tZXRhLnVybCkpO1xuICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgY29sdW1uRGF0YTogZGF0YU1ldHJpYy5kYXRhLFxuICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgICAgICBtZWFzdXJlOiBkYXRhTWV0cmljLm1ldHJpYyxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gKHsgZGF0YTogeyBkaXN0YW5jZSwgZW1iZWRkaW5nIH0gfSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IGRpc3RhbmNlOiBkaXN0YW5jZSwgZW1iZWRkaW5nOiBlbWJlZGRpbmcgfSk7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x0Wlc1emFXOXVZV3hwZEhrdGNtVmtkV05wYm1jdGQyOXlhMlZ5TFdOeVpXRjBiM0l1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SmthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMmx1WnkxM2IzSnJaWEl0WTNKbFlYUnZjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGcFFrRXNUVUZCVFN4VlFVRlZMR2xEUVVGcFF5eERRVUZETEZWQlFYTkNMRVZCUVVVc1RVRkJZeXhGUVVOc1JpeFBRVUZoTzBsQlJXcENMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlV5eFBRVUZQTzFGQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRMREJDUVVFd1FpeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5vUml4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRMnBDTEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1NVRkJTVHRaUVVNelFpeE5RVUZOTEVWQlFVVXNUVUZCVFR0WlFVTmtMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zVFVGQlRUdFpRVU14UWl4UFFVRlBMRVZCUVVVc1QwRkJUenRUUVVOcVFpeERRVUZETEVOQlFVTTdVVUZEU0N4TlFVRk5MRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzQkVMRTlCUVU4c1EwRkJReXhGUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNRMEZCUXl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1RXRjBjbWw0SUgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdFdZV3hwWkZSNWNHVnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibHh1THlvcVhHNGdLaUJCSUhkdmNtdGxjaUIwYnlCd1pYSm1iM0p0SUdScGJXVnVjMmx2Ym1Gc2FYUjVJSEpsWkhWamRHbHZiaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMVpoYkdsa1ZIbHdaWE45SUdSaGRHRk5aWFJ5YVdNZ1ZHaGxJR1JoZEdFZ2RHOGdjSEp2WTJWemN5NWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhSb2IyUWdRU0J0WlhSb2IyUWdiMllnWkdsdFpXNXphVzl1WVd4cGRIa2djbVZrZFdOMGFXOXVMbHh1SUNvZ1FIQmhjbUZ0SUc5d2RHbHZibk1nTFNCclpYa3RkbUZzZFdVZ2NHRnBjbk5jYmlBcUlFQndZWEpoYlNCeVpYUjFjbTVFYVhOMFlXNWpaVTFoZEhKcGVGeHVJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFErZlNCU1pYTjFiSFJwYm1jZ1pXMWlaV1JrYVc1bklHRnVaQ0JrYVhOMFlXNWpaU0J0WVhSeWFYZ3VYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWSmxaSFZqWlVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZ6ZFd4MElIdGNiaUFnWkdsemRHRnVZMlU2SUUxaGRISnBlRHRjYmlBZ1pXMWlaV1JrYVc1bk9pQk5ZWFJ5YVhnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqY21WaGRHVkVhVzFsYm5OcGJtRnNhWFI1VW1Wa2RXTnBibWRYYjNKclpYSW9aR0YwWVUxbGRISnBZem9nVm1Gc2FXUlVlWEJsY3l3Z2JXVjBhRzlrT2lCemRISnBibWNzWEc0Z0lDQWdJQ0J2Y0hScGIyNXpQem9nWVc1NUtUb2dVSEp2YldselpUeEpVbVZrZFdObFJHbHRaVzV6YVc5dVlXeHBkSGxTWlhOMWJIUStJSHRjYmx4dUlDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9ablZ1WTNScGIyNG9jbVZ6YjJ4MlpTa2dlMXh1SUNBZ0lHTnZibk4wSUhkdmNtdGxjaUE5SUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOWthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrN1hHNGdJQ0FnZDI5eWEyVnlMbkJ2YzNSTlpYTnpZV2RsS0h0Y2JpQWdJQ0FnSUdOdmJIVnRia1JoZEdFNklHUmhkR0ZOWlhSeWFXTXVaR0YwWVN4Y2JpQWdJQ0FnSUcxbGRHaHZaRG9nYldWMGFHOWtMRnh1SUNBZ0lDQWdiV1ZoYzNWeVpUb2daR0YwWVUxbGRISnBZeTV0WlhSeWFXTXNYRzRnSUNBZ0lDQnZjSFJwYjI1ek9pQnZjSFJwYjI1ekxGeHVJQ0FnSUgwcE8xeHVJQ0FnSUhkdmNtdGxjaTV2Ym0xbGMzTmhaMlVnUFNBb2UyUmhkR0U2SUh0a2FYTjBZVzVqWlN3Z1pXMWlaV1JrYVc1bmZYMHBJRDArSUh0Y2JpQWdJQ0FnY21WemIyeDJaU2g3WkdsemRHRnVZMlU2SUdScGMzUmhibU5sTENCbGJXSmxaR1JwYm1jNklHVnRZbVZrWkdsdVozMHBPMXh1SUNBZ0lIMDdYRzRnSUgwcE8xeHVmVnh1SWwxOSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBzaGEyNTYgZnJvbSAnZmFzdC1zaGEyNTYnO1xuLyoqXG4gKiBGb3IgY29sdW1ucyBvZiBzdHJpbmcgdHlwZS4gQ2hlY2tzIHdoZXRoZXIgY29sdW1uIGNvbnRhaW5zIGVtcHR5IHZhbHVlcyBhbmQgcmVtb3ZlcyBjb3JyZXNwb25kaW5nIHJvd3MgaW4gY2FzZSB1c2VyIHNlbGVjdHMgdG8gcmVtb3ZlLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVtcHR5U3RyaW5nUm93cyh0YWJsZSwgY29sKSB7XG4gICAgY29uc3QgY2F0cyA9IGNvbC5jYXRlZ29yaWVzO1xuICAgIGNvbnN0IGVtcHR5UmF3SW5kID0gY2F0cy5tYXAoKHZhbCwgaW5kKSA9PiAhdmFsID8gaW5kIDogbnVsbCkuZmlsdGVyKChpdCkgPT4gaXQgIT09IG51bGwpO1xuICAgIGNvbnN0IHJhd0RhdGEgPSBbLi4uY29sLmdldFJhd0RhdGEoKV07XG4gICAgY29uc3QgZW1wdHlSYXdzSW5kZXhlcyA9IFtdO1xuICAgIGxldCByZW1vdmVkUm93c0NvdW50ZXIgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBpZiAoZW1wdHlSYXdJbmQuaW5jbHVkZXMocmF3RGF0YVtpXSkpIHtcbiAgICAgICAgICAgIHRhYmxlLnJvd3MucmVtb3ZlQXQoaSAtIHJlbW92ZWRSb3dzQ291bnRlcik7XG4gICAgICAgICAgICBlbXB0eVJhd3NJbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICByZW1vdmVkUm93c0NvdW50ZXIgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZW1wdHlSYXdzSW5kZXhlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRGF0YUZyYW1lKHRhYmxlLCBuYW1lcykge1xuICAgIG5hbWVzICE9PSBudWxsICYmIG5hbWVzICE9PSB2b2lkIDAgPyBuYW1lcyA6IChuYW1lcyA9IHRhYmxlLmNvbHVtbnMubmFtZXMoKSk7XG4gICAgY29uc3QgaGFzaGVyID0gbmV3IHNoYTI1Ni5IYXNoKCk7XG4gICAgY29uc3Qgb3JkZXIgPSB0YWJsZS5nZXRTb3J0ZWRPcmRlcihuYW1lcyk7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0YWJsZS5jb2x1bW5zLmJ5TmFtZShuYW1lKTtcbiAgICAgICAgY29uc3QgZGF0YUFycmF5ID0gY29sdW1uLmdldFJhd0RhdGEoKTtcbiAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4udHlwZSA9PSBERy5UWVBFLlNUUklORztcbiAgICAgICAgY29uc3QgY2F0cyA9IGNvbHVtbi5jYXRlZ29yaWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNhdHNbZGF0YUFycmF5W29yZGVyW2ldXV07XG4gICAgICAgICAgICAgICAgaGFzaGVyLnVwZGF0ZShlbmNvZGVyLmVuY29kZShkYXRhKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YUFycmF5W29yZGVyW2ldXTtcbiAgICAgICAgICAgICAgICBoYXNoZXIudXBkYXRlKFVpbnQ4QXJyYXkuZnJvbShbZGF0YV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzaGVyLmRpZ2VzdCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdGMFlXWnlZVzFsTFhWMGFXeHpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVpHRjBZV1p5WVcxbExYVjBhV3h6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEUxQlFVMHNUVUZCVFN4aFFVRmhMRU5CUVVNN1FVRkRkRU03T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRXRCUVcxQ0xFVkJRVVVzUjBGQll6dEpRVU4yUlN4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETzBsQlF6VkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkROVUlzU1VGQlNTeHJRa0ZCYTBJc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE0wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGRrTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUTNCRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMWxCUXpWRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4clFrRkJhMElzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEZWtJN1MwRkRSanRKUVVORUxFOUJRVThzWjBKQlFXZENMRU5CUVVNN1FVRkRNVUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeExRVUZuUWp0SlFVTnFSU3hMUVVGTExHRkJRVXdzUzBGQlN5eGpRVUZNTEV0QlFVc3NTVUZCVEN4TFFVRkxMRWRCUVVzc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUXp0SlFVTm9ReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRKUVVOcVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6RkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEYkVNc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVTdVVUZEZUVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlEzUkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGREwwTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU12UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU42UXl4SlFVRkpMRkZCUVZFc1JVRkJSVHRuUWtGRFdpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNKRE8ybENRVUZOTzJkQ1FVTk1MRTFCUVUwc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hETzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEzcENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2MyaGhNalUySUdaeWIyMGdKMlpoYzNRdGMyaGhNalUySnp0Y2JpOHFLbHh1SUNvZ1JtOXlJR052YkhWdGJuTWdiMllnYzNSeWFXNW5JSFI1Y0dVdUlFTm9aV05yY3lCM2FHVjBhR1Z5SUdOdmJIVnRiaUJqYjI1MFlXbHVjeUJsYlhCMGVTQjJZV3gxWlhNZ1lXNWtJSEpsYlc5MlpYTWdZMjl5Y21WemNHOXVaR2x1WnlCeWIzZHpJR2x1SUdOaGMyVWdkWE5sY2lCelpXeGxZM1J6SUhSdklISmxiVzkyWlM1Y2JpQXFYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTW9kR0ZpYkdVNklFUkhMa1JoZEdGR2NtRnRaU3dnWTI5c09pQkVSeTVEYjJ4MWJXNHBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUdOaGRITWdQU0JqYjJ3dVkyRjBaV2R2Y21sbGN6dGNiaUFnWTI5dWMzUWdaVzF3ZEhsU1lYZEpibVFnUFNCallYUnpMbTFoY0Nnb2RtRnNMQ0JwYm1RcElEMCtJQ0YyWVd3Z1B5QnBibVFnT2lCdWRXeHNLUzVtYVd4MFpYSW9LR2wwS1NBOVBpQnBkQ0FoUFQwZ2JuVnNiQ2s3WEc0Z0lHTnZibk4wSUhKaGQwUmhkR0VnUFNCYkxpNHVZMjlzTG1kbGRGSmhkMFJoZEdFb0tWMDdYRzRnSUdOdmJuTjBJR1Z0Y0hSNVVtRjNjMGx1WkdWNFpYTWdQU0JiWFR0Y2JpQWdiR1YwSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHRmliR1V1Y205M1EyOTFiblE3SUdrckt5a2dlMXh1SUNBZ0lHbG1JQ2hsYlhCMGVWSmhkMGx1WkM1cGJtTnNkV1JsY3loeVlYZEVZWFJoVzJsZEtTa2dlMXh1SUNBZ0lDQWdkR0ZpYkdVdWNtOTNjeTV5WlcxdmRtVkJkQ2hwSUMwZ2NtVnRiM1psWkZKdmQzTkRiM1Z1ZEdWeUtUdGNiaUFnSUNBZ0lHVnRjSFI1VW1GM2MwbHVaR1Y0WlhNdWNIVnphQ2hwS1R0Y2JpQWdJQ0FnSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBclBTQXhPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1pXMXdkSGxTWVhkelNXNWtaWGhsY3p0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYzJoRVlYUmhSbkpoYldVb2RHRmliR1U2SUVSSExrUmhkR0ZHY21GdFpTd2dibUZ0WlhNL09pQnpkSEpwYm1kYlhTazZJRlZwYm5RNFFYSnlZWGtnZTF4dUlDQnVZVzFsY3lBL1B6MGdkR0ZpYkdVdVkyOXNkVzF1Y3k1dVlXMWxjeWdwTzF4dUlDQmpiMjV6ZENCb1lYTm9aWElnUFNCdVpYY2djMmhoTWpVMkxraGhjMmdvS1R0Y2JpQWdZMjl1YzNRZ2IzSmtaWElnUFNCMFlXSnNaUzVuWlhSVGIzSjBaV1JQY21SbGNpaHVZVzFsY3lrN1hHNGdJR052Ym5OMElHVnVZMjlrWlhJZ1BTQnVaWGNnVkdWNGRFVnVZMjlrWlhJb0tUdGNiaUFnWm05eUlDaGpiMjV6ZENCdVlXMWxJRzltSUc1aGJXVnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNkVzF1SUQwZ2RHRmliR1V1WTI5c2RXMXVjeTVpZVU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVVGeWNtRjVJRDBnWTI5c2RXMXVMbWRsZEZKaGQwUmhkR0VvS1R0Y2JpQWdJQ0JqYjI1emRDQnBjMU4wY21sdVp5QTlJR052YkhWdGJpNTBlWEJsSUQwOUlFUkhMbFJaVUVVdVUxUlNTVTVITzF4dUlDQWdJR052Ym5OMElHTmhkSE1nUFNCamIyeDFiVzR1WTJGMFpXZHZjbWxsY3p0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdhV1lnS0dselUzUnlhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0JqWVhSelcyUmhkR0ZCY25KaGVWdHZjbVJsY2x0cFhWMWRPMXh1SUNBZ0lDQWdJQ0JvWVhOb1pYSXVkWEJrWVhSbEtHVnVZMjlrWlhJdVpXNWpiMlJsS0dSaGRHRXBLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCa1lYUmhRWEp5WVhsYmIzSmtaWEpiYVYxZE8xeHVJQ0FnSUNBZ0lDQm9ZWE5vWlhJdWRYQmtZWFJsS0ZWcGJuUTRRWEp5WVhrdVpuSnZiU2hiWkdGMFlWMHBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHaGhjMmhsY2k1a2FXZGxjM1FvS1R0Y2JuMWNiaUpkZlE9PSIsIi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gZmxvYXQgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gZmxvYXQgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tRmxvYXQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHJhbmdlO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGludGVnZXIgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tSW50KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQocmFuZ2UpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNtRnVaRzl0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljbUZ1Wkc5dExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hYUVVGWExFTkJRVU1zUzBGQllUdEpRVU4yUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETDBJc1EwRkJRenRCUVVWRU96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1MwRkJZVHRKUVVOeVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdabXh2WVhRZ1puSnZiU0F3SUhSdklISmhibWRsTGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCeVlXNW5aU0JOWVhnZ1oyVnVaWEpoZEdsdVp5QjJZV3gxWlM1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdRU0J5WVc1a2IyMGdabXh2WVhRZ1oyVnVaWEpoZEdWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21GdVpHOXRSbXh2WVhRb2NtRnVaMlU2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nY21GdVoyVTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnYVc1MFpXZGxjaUJtY205dElEQWdkRzhnY21GdVoyVXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEpoYm1kbElFMWhlQ0JuWlc1bGNtRjBhVzVuSUhaaGJIVmxMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCQklISmhibVJ2YlNCcGJuUmxaMlZ5SUdkbGJtVnlZWFJsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpoYm1SdmJVbHVkQ2h5WVc1blpUb2diblZ0WW1WeUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJRTFoZEdndVpteHZiM0lvY21GdVpHOXRSbXh2WVhRb2NtRnVaMlVwS1R0Y2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbmV4cG9ydCBjb25zdCBzaW1pbGFyaXR5TWV0cmljID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvU2ltaWxhcml0eSxcbiAgICAnRGljZSc6IGRpY2VTaW1pbGFyaXR5LFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY1NpbWlsYXJpdHksXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldFNpbWlsYXJpdHksXG4gICAgJ0Nvc2luZSc6IGNvc2luZVNpbWlsYXJpdHksXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpU2ltaWxhcml0eSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleVNpbWlsYXJpdHksXG4gICAgJ1JvZ290LUdvbGRiZXJnJzogcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHksXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbFNpbWlsYXJpdHksXG4gICAgJ1Nva2FsJzogc29rYWxTaW1pbGFyaXR5LFxuICAgICdIYW1taW5nJzogaGFtbWluZ1NpbWlsYXJpdHksXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhblNpbWlsYXJpdHksXG59O1xuZXhwb3J0IGNvbnN0IGRpc3RhbmNlTWV0cmljcyA9IHtcbiAgICAnVGFuaW1vdG8nOiB0YW5pbW90b0Rpc3RhbmNlLFxuICAgICdEaWNlJzogZGljZURpc3RhbmNlLFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY0Rpc3RhbmNlLFxuICAgICdCcmF1bi1CbGFucXVldCc6IGJyYXVuQmxhbnF1ZXREaXN0YW5jZSxcbiAgICAnQ29zaW5lJzogY29zaW5lRGlzdGFuY2UsXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpRGlzdGFuY2UsXG4gICAgJ01jLUNvbm5hdWdoZXknOiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnRGlzdGFuY2UsXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbERpc3RhbmNlLFxuICAgICdTb2thbCc6IHNva2FsRGlzdGFuY2UsXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nRGlzdGFuY2UsXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhbkRpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyA9IFsnVGFuaW1vdG8nLCAnRGljZScsICdDb3NpbmUnLCAnSGFtbWluZycsICdFdWNsaWRlYW4nXTtcbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAodG90YWwgLSBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAyICogY29tbW9uIC8gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShkaWNlU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIE1hdGguc3FydCh0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGNvc2luZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhblNpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIE1hdGguc3FydCh4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShoYW1taW5nRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAoMiAqIHRvdGFsIC0gMyAqIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc29rYWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwpIC8gKDIgKiB0b3RhbFByb2QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoa3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsIC0gdG90YWxQcm9kKSAvIHRvdGFsUHJvZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkobWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtaW4gPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1pbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1heCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWF4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGlmICh4Lmxlbmd0aCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8geC5sZW5ndGg7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgY29uc3QgdG90YWwgPSB4LmNvdW50Qml0cyh0cnVlKSArIHkuY291bnRCaXRzKHRydWUpO1xuICAgIGNvbnN0IGxlbiA9IHgubGVuZ3RoO1xuICAgIGNvbnN0IGRpZmYgPSBsZW4gLSB0b3RhbCArIGNvbW1vbjtcbiAgICBpZiAoKGNvbW1vbiA9PSBsZW4pIHx8IChkaWZmID09IGxlbikpXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY29tbW9uIC8gdG90YWwgKyBkaWZmIC8gKDIgKiBsZW4gLSB0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShyb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZSkge1xuICAgIHJldHVybiAxIC8gKDEgKyBkaXN0YW5jZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzaW1pbGFyaXR5KSB7XG4gICAgcmV0dXJuIDEgLyBzaW1pbGFyaXR5IC0gMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHggIT0gbnVsbCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMybHRhV3hoY21sMGVTMXRaWFJ5YVdOekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJsdGFXeGhjbWwwZVMxdFpYUnlhV056TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVTkJMRTlCUVU4c1JVRkJReXhUUVVGVExFVkJRVU1zVFVGQlRTeFZRVUZWTEVOQlFVTTdRVUZGYmtNc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVRKRU8wbEJRM1JHTEZWQlFWVXNSVUZCUlN4clFrRkJhMEk3U1VGRE9VSXNUVUZCVFN4RlFVRkZMR05CUVdNN1NVRkRkRUlzV1VGQldTeEZRVUZGTEc5Q1FVRnZRanRKUVVOc1F5eG5Ra0ZCWjBJc1JVRkJSU3gxUWtGQmRVSTdTVUZEZWtNc1VVRkJVU3hGUVVGRkxHZENRVUZuUWp0SlFVTXhRaXhaUVVGWkxFVkJRVVVzYjBKQlFXOUNPMGxCUTJ4RExHVkJRV1VzUlVGQlJTeHpRa0ZCYzBJN1NVRkRka01zWjBKQlFXZENMRVZCUVVVc2RVSkJRWFZDTzBsQlEzcERMRkZCUVZFc1JVRkJSU3huUWtGQlowSTdTVUZETVVJc1QwRkJUeXhGUVVGRkxHVkJRV1U3U1VGRGVFSXNVMEZCVXl4RlFVRkZMR2xDUVVGcFFqdEpRVU0xUWl4WFFVRlhMRVZCUVVVc2JVSkJRVzFDTzBOQlEycERMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeGxRVUZsTEVkQlFUSkVPMGxCUTNKR0xGVkJRVlVzUlVGQlJTeG5Ra0ZCWjBJN1NVRkROVUlzVFVGQlRTeEZRVUZGTEZsQlFWazdTVUZEY0VJc1dVRkJXU3hGUVVGRkxHdENRVUZyUWp0SlFVTm9ReXhuUWtGQlowSXNSVUZCUlN4eFFrRkJjVUk3U1VGRGRrTXNVVUZCVVN4RlFVRkZMR05CUVdNN1NVRkRlRUlzV1VGQldTeEZRVUZGTEd0Q1FVRnJRanRKUVVOb1F5eGxRVUZsTEVWQlFVVXNiMEpCUVc5Q08wbEJRM0pETEdkQ1FVRm5RaXhGUVVGRkxIRkNRVUZ4UWp0SlFVTjJReXhSUVVGUkxFVkJRVVVzWTBGQll6dEpRVU40UWl4UFFVRlBMRVZCUVVVc1lVRkJZVHRKUVVOMFFpeFRRVUZUTEVWQlFVVXNaVUZCWlR0SlFVTXhRaXhYUVVGWExFVkJRVVVzYVVKQlFXbENPME5CUXk5Q0xFTkJRVU03UVVGRlJpeE5RVUZOTEVOQlFVTXNUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVVTVSaXhOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RFFVRkRPMUZCUTFvc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNUVUZCVFN4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTTdVVUZEV2l4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVNMVFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRmxCUVZrc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU51UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTmFMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNKRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE0wUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNeFJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYVVKQlFXbENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZETEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNoRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaVUZCWlN4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1JFTEU5QlFVOHNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU4yUlN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjBSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTndSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEc5Q1FVRnZRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6TkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVOb1JDeEpRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRPMUZCUTJoQ0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRelZETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU12UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRemRFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTm9SQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETzFGQlEyaENMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdRVUZEYkVRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHZRa0ZCYjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU16UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRkxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZETTBRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTldMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjZSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOV0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h4UWtGQmNVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNMVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03VVVGRFppeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZFVKQlFYVkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE9VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTnlRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVOc1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE96dFJRVU0xUXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRelZFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeDVRa0ZCZVVJc1EwRkJReXhSUVVGblFqdEpRVU40UkN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhsQ1FVRjVRaXhEUVVGRExGVkJRV3RDTzBsQlF6RkVMRTlCUVU4c1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTJZc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnFRaXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08wdEJRMFk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElFSnBkRUZ5Y21GNUlHWnliMjBnSnk0dlltbDBMV0Z5Y21GNUp6dGNibWx0Y0c5eWRDQjdjbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQjdXMjVoYldVNklITjBjbWx1WjEwNklDaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcElEMCtJRzUxYldKbGNuMGdQU0I3WEc0Z0lDZFVZVzVwYlc5MGJ5YzZJSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxVMmx0YVd4aGNtbDBlU3hjYmlBZ0owRnplVzF0WlhSeWFXTW5PaUJoYzNsdGJXVjBjbWxqVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMEp5WVhWdUxVSnNZVzV4ZFdWMEp6b2dZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrc1hHNGdJQ2REYjNOcGJtVW5PaUJqYjNOcGJtVlRhVzFwYkdGeWFYUjVMRnh1SUNBblMzVnNZM3A1Ym5OcmFTYzZJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1TEZ4dUlDQW5UV010UTI5dWJtRjFaMmhsZVNjNklHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtzWEc0Z0lDZFNiMmR2ZEMxSGIyeGtZbVZ5WnljNklISnZaMjkwUjI5c1pHSmxjbWRUYVcxcGJHRnlhWFI1TEZ4dUlDQW5VblZ6YzJWc0p6b2djblZ6YzJWc1UybHRhV3hoY21sMGVTeGNiaUFnSjFOdmEyRnNKem9nYzI5cllXeFRhVzFwYkdGeWFYUjVMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuUlhWamJHbGtaV0Z1SnpvZ1pYVmpiR2xrWldGdVUybHRhV3hoY21sMGVTeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrYVhOMFlXNWpaVTFsZEhKcFkzTTZJSHRiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTa2dQVDRnYm5WdFltVnlmU0E5SUh0Y2JpQWdKMVJoYm1sdGIzUnZKem9nZEdGdWFXMXZkRzlFYVhOMFlXNWpaU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxSR2x6ZEdGdVkyVXNYRzRnSUNkQmMzbHRiV1YwY21sakp6b2dZWE41YlcxbGRISnBZMFJwYzNSaGJtTmxMRnh1SUNBblFuSmhkVzR0UW14aGJuRjFaWFFuT2lCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVXNYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZFYVhOMFlXNWpaU3hjYmlBZ0owdDFiR042ZVc1emEya25PaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lDZE5ZeTFEYjI1dVlYVm5hR1Y1SnpvZ2JXTkRiMjV1WVhWbmFHVjVSR2x6ZEdGdVkyVXNYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZEVhWE4wWVc1alpTeGNiaUFnSjFKMWMzTmxiQ2M2SUhKMWMzTmxiRVJwYzNSaGJtTmxMRnh1SUNBblUyOXJZV3duT2lCemIydGhiRVJwYzNSaGJtTmxMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kRWFYTjBZVzVqWlN4Y2JpQWdKMFYxWTJ4cFpHVmhiaWM2SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFTklSVTFmVTBsTlNVeEJVa2xVV1Y5TlJWUlNTVU5USUQwZ1d5ZFVZVzVwYlc5MGJ5Y3NJQ2RFYVdObEp5d2dKME52YzJsdVpTY3NJQ2RJWVcxdGFXNW5KeXdnSjBWMVkyeHBaR1ZoYmlkZE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkR0Z1YVcxdmRHOVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJDQTlQU0F3S1Z4dUlDQWdJSEpsZEhWeWJpQXhMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlHTnZiVzF2YmlBdklDaDBiM1JoYkNBdElHTnZiVzF2YmlrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwWVc1cGJXOTBiMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQXlJQ29nWTI5dGJXOXVJQzhnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29aR2xqWlZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCTllYUm9Mbk54Y25Rb2RHOTBZV3dwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1kyOXphVzVsVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxkV05zYVdSbFlXNVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSVGFXMXBiR0Z5YVhSNVJuSnZiVVJwYzNSaGJtTmxLR1YxWTJ4cFpHVmhia1JwYzNSaGJtTmxLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9Mbk54Y25Rb2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDa2dMU0F5S25ndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJvWVcxdGFXNW5VMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hvWVcxdGFXNW5SR2x6ZEdGdVkyVW9lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYUdGdGJXbHVaMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUI0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1NBdElESXFlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MyOXJZV3hUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2d5SUNvZ2RHOTBZV3dnTFNBeklDb2dZMjl0Ylc5dUtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdmEyRnNSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBYRzRnSUNBZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnS0dOdmJXMXZiaUFxSUhSdmRHRnNLU0F2SUNneUlDb2dkRzkwWVd4UWNtOWtLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHdDFiR042ZVc1emEybEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHJkV3hqZW5sdWMydHBVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFkwTnZibTVoZFdkb1pYbFRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHTnZibk4wSUhSdmRHRnNVSEp2WkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd4UWNtOWtJRDA5SURBcFhHNGdJQ0FnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdLR052YlcxdmJpQXFJSFJ2ZEdGc0lDMGdkRzkwWVd4UWNtOWtLU0F2SUhSdmRHRnNVSEp2WkR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzFqUTI5dWJtRjFaMmhsZVVScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0cxalEyOXVibUYxWjJobGVWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXbHVJRDBnVFdGMGFDNXRhVzRvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodGFXNGdQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QnRhVzQ3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhjM2x0YldWMGNtbGpSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYldGNElEMGdUV0YwYUM1dFlYZ29lQzUwY25WbFEyOTFiblFvS1N3Z2VTNTBjblZsUTI5MWJuUW9LU2s3WEc0Z0lHbG1JQ2h0WVhnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCdFlYZzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjblZ6YzJWc1UybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JwWmlBb2VDNXNaVzVuZEdnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCNExteGxibWQwYUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEoxYzNObGJFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtISjFjM05sYkZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTluYjNSSGIyeGtZbVZ5WjFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VZMjkxYm5SQ2FYUnpLSFJ5ZFdVcElDc2dlUzVqYjNWdWRFSnBkSE1vZEhKMVpTazdYRzRnSUdOdmJuTjBJR3hsYmlBOUlIZ3ViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2JHVnVJQzBnZEc5MFlXd2dLeUJqYjIxdGIyNDdYRzRnSUdsbUlDZ29ZMjl0Ylc5dUlEMDlJR3hsYmlrZ2ZId2dLR1JwWm1ZZ1BUMGdiR1Z1S1NrZ2NtVjBkWEp1SURFdU1EdGNiaUFnWld4elpTQnlaWFIxY200Z1kyOXRiVzl1SUM4Z2RHOTBZV3dnS3lCa2FXWm1JQzhnS0RJZ0tpQnNaVzRnTFNCMGIzUmhiQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hrYVhOMFlXNWpaVG9nYm5WdFltVnlLU0I3WEc0Z0lISmxkSFZ5YmlBeElDOGdLQ0F4SUNzZ1pHbHpkR0Z1WTJVcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2h6YVcxcGJHRnlhWFI1T2lCdWRXMWlaWElwSUh0Y2JpQWdjbVYwZFhKdUlERWdMeUJ6YVcxcGJHRnlhWFI1SUMwZ01UdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFUnBkbVZ5YzJWVGRXSnpaWFFvYkdWdVozUm9PaUJ1ZFcxaVpYSXNJRzQ2SUc1MWJXSmxjaXdnWkdsemREb2dLR2t4T2lCdWRXMWlaWElzSUdreU9pQnVkVzFpWlhJcElEMCtJRzUxYldKbGNpa2dlMXh1SUNCbWRXNWpkR2x2YmlCdFlYaENlU2gyWVd4MVpYTTZJRWwwWlhKaFlteGxTWFJsY21GMGIzSThiblZ0WW1WeVBpd2diM0prWlhKQ2VUb2dLR2s2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1NCN1hHNGdJQ0FnYkdWMElHMWhlRlpoYkhWbElEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ2JXRjRUM0prWlhKQ2VTQTlJRzUxYkd3N1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHVnNaVzFsYm5RZ2IyWWdkbUZzZFdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwVDNKa1pYSkNlU0E5SUc5eVpHVnlRbmtvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0JwWmlBb2JXRjRUM0prWlhKQ2VTQTlQU0J1ZFd4c0lIeDhJR1ZzWlcxbGJuUlBjbVJsY2tKNUlENGdiV0Y0VDNKa1pYSkNlU2tnZTF4dUlDQWdJQ0FnSUNCdFlYaFdZV3gxWlNBOUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHMWhlRTl5WkdWeVFua2dQU0JsYkdWdFpXNTBUM0prWlhKQ2VUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzFoZUZaaGJIVmxPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjM1ZpYzJWMElEMGdXM0poYm1SdmJVbHVkQ2hzWlc1bmRHZ2dMU0F4S1YwN1hHNGdJR052Ym5OMElHTnZiWEJzWlcxbGJuUWdQU0J1WlhjZ1UyVjBLQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUdsbUlDZ2hjM1ZpYzJWMExtbHVZMngxWkdWektHa3BLVnh1SUNBZ0lDQWdZMjl0Y0d4bGJXVnVkQzVoWkdRb2FTazdYRzRnSUgxY2JseHVJQ0IzYUdsc1pTQW9jM1ZpYzJWMExteGxibWQwYUNBOElHNHBJSHRjYmlBZ0lDQmpiMjV6ZENCcFpIZ2dQU0J0WVhoQ2VTaGNiaUFnSUNBZ0lHTnZiWEJzWlcxbGJuUXVkbUZzZFdWektDa2dZWE1nU1hSbGNtRmliR1ZKZEdWeVlYUnZjanh1ZFcxaVpYSStMRnh1SUNBZ0lDQWdLR2twSUQwK0lFMWhkR2d1YldsdUxtRndjR3g1S0UxaGRHZ3NJSE4xWW5ObGRDNXRZWEFvWm5WdVkzUnBiMjRvZG1Gc0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHbHpkQ2hwTENCMllXd3BPMXh1SUNBZ0lDQWdmU2twS1R0Y2JpQWdJQ0JwWmlBb2FXUjRJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSE4xWW5ObGRDNXdkWE5vS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjF3YkdWdFpXNTBMbVJsYkdWMFpTaHBaSGdwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdjM1ZpYzJWME8xeHVmVnh1SWwxOSIsIi8qKlxuICogRGVub3RlcyBhIHZlY3RvciBvZiBmbG9hdGluZyBwb2l0IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yXG4gKiBAZXh0ZW5kcyB7RmxvYXQzMkFycmF5fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yIGV4dGVuZHMgRmxvYXQzMkFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBhIHR3by1kaW1lbnNpb25hbCBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE1hdHJpeFxuICogQGV4dGVuZHMge0FycmF5PFZlY3Rvcj59XG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRyaXggZXh0ZW5kcyBBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgY2FydGVzaWFuIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb29yZGluYXRlc1xuICogQGV4dGVuZHMge01hdHJpeH1cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzIGV4dGVuZHMgTWF0cml4IHtcbn1cbi8qKlxuICogRGVub3RlcyBhbiBhcnJheSBvZiBhcmJpdHJhcnktdHlwZWQgdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yc1xuICogQGV4dGVuZHMge0FycmF5PGFueT59XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JzIGV4dGVuZHMgQXJyYXkge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pTMWtaV05zWVhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEZsQlFWazdRMEZCUnp0QlFVVXpRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRXRCUVdFN1EwRkJSenRCUVVVMVF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1YwRkJXU3hUUVVGUkxFMUJRVTA3UTBGQlJ6dEJRVVV4UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVDBGQlVTeFRRVUZSTEV0QlFWVTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIWmxZM1J2Y2lCdlppQm1iRzloZEdsdVp5QndiMmwwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVm1WamRHOXlYRzRnS2lCQVpYaDBaVzVrY3lCN1JteHZZWFF6TWtGeWNtRjVmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1WamRHOXlJR1Y0ZEdWdVpITWdSbXh2WVhRek1rRnljbUY1SUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFIzYnkxa2FXMWxibk5wYjI1aGJDQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFMWhkSEpwZUZ4dUlDb2dRR1Y0ZEdWdVpITWdlMEZ5Y21GNVBGWmxZM1J2Y2o1OVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5ZWFJ5YVhnZ1pYaDBaVzVrY3lCQmNuSmhlVHhXWldOMGIzSStJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCallYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpYTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRU52YjNKa2FXNWhkR1Z6WEc0Z0tpQkFaWGgwWlc1a2N5QjdUV0YwY21sNGZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjl2Y21ScGJtRjBaWE1nWlhoMFpXNWtjeUJOWVhSeWFYZ2dlMzFjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdGdUlHRnljbUY1SUc5bUlHRnlZbWwwY21GeWVTMTBlWEJsWkNCMlpXTjBiM0p6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQmpiR0Z6Y3lCV1pXTjBiM0p6WEc0Z0tpQkFaWGgwWlc1a2N5QjdRWEp5WVhrOFlXNTVQbjFjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZabFkzUnZjbk1nWlhoMFpXNWtjeUJCY25KaGVUeGhibmsrSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJR1JwWTNScGIyNWhjbmtnWTI5dWRHRnBibWx1WnlCbWRXNWpkR2x2YmlCdmNIUnBiMjV6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQjBlWEJsSUU5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVDNCMGFXOXVjeUE5SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nWVc1NWZUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR04xYzNSdmJTQmthWE4wWVc1alpTQnRaWFJ5YVdNZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUdkcGRtVnVJSFpsWTNSdmNuTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhSNWNHVWdSR2x6ZEdGdVkyVk5aWFJ5YVdOY2JpQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCMk1TQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRoYm5sOUlIWXlJRlJvWlNCelpXTnZibVFnZG1WamRHOXlMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pYTmxJSFIzYnlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCRWFYTjBZVzVqWlUxbGRISnBZeUE5SUNoMk1Ub2dZVzU1TENCMk1qb2dZVzU1S1NBOVBpQW9iblZ0WW1WeUtUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0VnYzJsdGNHeGxJSE4wY21sdVp5QjBieUJ6ZEhKcGJtY2daR2xqZEdsdmJtRnllUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWRIbHdaU0JUZEhKcGJtZEVhV04wYVc5dVlYSjVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3VzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bmZUdGNiaUpkZlE9PSIsImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgcmFuZG9tRmxvYXQsIHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbi8qKlxuICogQXNzZXJ0cyBhIGNvbmRpdGlvbiBieSB0aHJvd2luZyBhbiBFcnJvci5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25kaXRpb249ZmFsc2VdIENvbmRpdGlvbiB0byBhc3NlcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2U9J0Fzc2VydGlvbiBlcnJvci4nXSBNZXNzYWdlIHRvIG91dHB1dC5cbiAqIEB0aHJvd3Mge0Vycm9yfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiA9IGZhbHNlLCBtZXNzYWdlID0gJ0Fzc2VydGlvbiBlcnJvci4nKSB7XG4gICAgaWYgKCFjb25kaXRpb24pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBuZXcgdHdvLWRpbWVuc2lvbmFsIGFycmF5IGFuZCBmaWxscyBpdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIHJvd3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2YgY29sdW1ucykuXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGw9MF0gQSB2YWx1ZSB0byBmaWxsIHRoZSBjb29yZGluYXRlcyB3aXRoLlxuICogQHJldHVybiB7Q29vcmRpbmF0ZXN9IEEgdHdvLWRpbWVuc2lvbmFsIGZpbGxlZCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5mdW5jdGlvbiBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgZmlsbCA9IDApIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGRpbWVuc2lvbjEpLmZpbGwoZmlsbCkubWFwKCgpID0+IChuZXcgVmVjdG9yKGRpbWVuc2lvbjIpLmZpbGwoZmlsbCkpKTtcbn1cbi8qKlxuICogVHJhbnNwb3NlIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4IFRoZSBtYXRyaXggdG8gYmUgdHJhbnNwb3NlZC5cbiAqIEByZXR1cm4ge01hdHJpeH0gVHJhbnNwb3NlZCBtYXRyaXguXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcG9zZU1hdHJpeChtYXRyaXgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG1hdHJpeFswXS5sZW5ndGgpLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gKG5ldyBWZWN0b3IobWF0cml4Lmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGopID0+IChtYXRyaXhbal1baV0pKSkpO1xufVxuLyoqXG4gKiBBZGRzIHR3byB2ZWN0b3JzIHdpdGggdGhlIHNlY29uZCBvbmUgdG8gYmUgbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge251bWJlcn0gW211bHRpcGxpZXI9MV0gQSBtdWx0aXBsaWVyIHRvIGJlIHVzZWQgYmVmb3JlIHRoZSBzZWNvbmQgdmVjdG9yIGlzIGFkZGVkLlxuICogQHJldHVybiB7VmVjdG9yfSBOZXcgdmVjdG9yIGNvbnRhaW5lZCB0aGUgcmVzdWx0IG9mIG9wZXJhdGlvbiBwK211bHRpcGxpZXIqcS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckFkZChwLCBxLCBtdWx0aXBsaWVyID0gMSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IHAubGVuZ3RoO1xuICAgIGFzc2VydChuSXRlbXMgPT0gcS5sZW5ndGgsICdWZWN0b3IgbGVuZ3RocyBkbyBub3QgbWF0Y2guJyk7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHBbaV0gKyBtdWx0aXBsaWVyICogcVtpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1bXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gYmUgc3VtbWVkLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVjdG9yJ3MgaXRlbXMgc3VtLlxuICovXG5mdW5jdGlvbiBpdGVtc1N1bSh2KSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsICs9IHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdXFhcmVzIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIHNxdWFyZS5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gQSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsJ3MgaXRlbXMgc3F1YXJlZC5cbiAqL1xuZnVuY3Rpb24gdmVjdG9yU3F1YXJlKHYpIHtcbiAgICBjb25zdCBuSXRlbXMgPSB2Lmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3Rvckxlbmd0aCh2KSB7XG4gICAgbGV0IHNxclN1bSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKVxuICAgICAgICBzcXJTdW0gKz0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIE1hdGguc3FydChzcXJTdW0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckRvdFByb2R1Y3QodjEsIHYyKSB7XG4gICAgaWYgKHYxLmxlbmd0aCAhPSB2Mi5sZW5ndGgpXG4gICAgICAgIHRocm93IEVycm9yKCdUaGUgZGltZW5zaW9uYWxpdHkgb2YgdGhlIHZlY3RvcnMgbXVzdCBtYXRjaCcpO1xuICAgIGxldCBwcm9kID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYxLmxlbmd0aDsgaSsrKVxuICAgICAgICBwcm9kICs9IHYxW2ldICogdjJbaV07XG4gICAgcmV0dXJuIHByb2Q7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBtYXRyaXguXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZT0xLl0gTWF4IHZhbHVlIGdpdmVuIGJ5IHJhbmRvbSBnZW5lcmF0b3IuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IEEgbmV3IG1hdHJpeCBmaWxsZWQgd2l0aCByYW5kb20gZmxvYXRpbmcgcG9pbnQgIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxSYW5kb21NYXRyaXgoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgc2NhbGUgPSAxLikge1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpbWVuc2lvbjE7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRpbWVuc2lvbjI7ICsrailcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IHJhbmRvbUZsb2F0KHNjYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKlxuICogQ2FsY3VsYXRlcyBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB2ZWN0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UocCwgcSkge1xuICAgIGNvbnN0IGRpZmYgPSB2ZWN0b3JBZGQocCwgcSwgLTEpO1xuICAgIGNvbnN0IHNxZGlmZiA9IHZlY3RvclNxdWFyZShkaWZmKTtcbiAgICBjb25zdCBzcWRpZmZTdW1tID0gaXRlbXNTdW0oc3FkaWZmKTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxZGlmZlN1bW0pO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzdGFuY2UgbWF0cml4IHVzaW5nIGEgY3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yc30gZGF0YSBJbnB1dCB2ZWN0b3JzIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZXMuXG4gKiBAcGFyYW0ge0Rpc3RhbmNlTWV0cmljfSBkaXN0YW5jZSBDdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtNYXRyaXh9IENhbGN1bGF0ZWQgY3VzdG9tIGRpc3RhbmNlIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGNEaXN0YW5jZU1hdHJpeChkYXRhLCBkaXN0YW5jZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhuSXRlbXMsIG5JdGVtcywgMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuSXRlbXM7ICsraikge1xuICAgICAgICAgICAgY29uc3QgZCA9IChkYXRhW2ldID09IG51bGwpIHx8IChkYXRhW2pdID09IG51bGwpID8gMCA6IGRpc3RhbmNlKGRhdGFbaV0sIGRhdGFbal0pO1xuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gbWF0cml4W2pdW2ldID0gZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqIEdlbmVyYXRlcyBhcnJheSBmcm9tIGEgcmFuZ2UgW2JlZ2luOyBlbmRdIG9yIFtiZWdpbjsgZW5kKSBpZiBlbmRFeGNsdXNpdmUuICoqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlblJhbmdlKGJlZ2luLCBlbmQsIGVuZEV4Y2x1c2l2ZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZW5kIC0gYmVnaW4gKyAoZW5kRXhjbHVzaXZlID8gMCA6IDEpO1xuICAgIGNvbnN0IHNlcmllcyA9IG5ldyBJbnQzMkFycmF5KG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSlcbiAgICAgICAgc2VyaWVzW2ldID0gYmVnaW4gKyBpO1xuICAgIHJldHVybiBzZXJpZXM7XG59XG4vKipcbiAqIFJldHVybnMgb3JkZXIgb2YgdmFsdWVzIGFzIGlmIHRoZXkgYXJlIHNvcnRlZC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2FueVtdfSB2YWx1ZXMgSW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXZlcnNlPWZhbHNlXSBXaGV0aGVyIHRvIHJldHVybiByZXZlcnNlZCBvcmRlci5cbiAqIEByZXR1cm4ge251bWJlcltdfSBUaGUgb3JkZXIgY29tcHV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcmdTb3J0KHZhbHVlcywgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc29ydGZuID0gcmV2ZXJzZSA/IChhLCBiKSA9PiAoYlswXSAtIGFbMF0pIDogKGEsIGIpID0+IChhWzBdIC0gYlswXSk7XG4gICAgY29uc3QgZGVjb3IgPSAodiwgaSkgPT4gW3YsIGldOyAvLyBzZXQgaW5kZXggdG8gdmFsdWVcbiAgICBjb25zdCB1bmRlY29yID0gKGEpID0+IGFbMV07IC8vIGxlYXZlIG9ubHkgaW5kZXhcbiAgICBjb25zdCBfYXJnc29ydCA9IChhcnIpID0+IGFyci5tYXAoZGVjb3IpLnNvcnQoc29ydGZuKS5tYXAodW5kZWNvcik7XG4gICAgcmV0dXJuIF9hcmdzb3J0KHZhbHVlcyk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzIGFjY29yZGluZyB0byB0aGUgZGlzdCBmdW5jdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCB0b3RhbCBudW1iZXIgb2Ygb2JqZWN0c1xuICogQHBhcmFtIHtudW1iZXJ9IG4gbnVtYmVyIG9mIGRpdmVyc2UgZWxlbWVudHMgdG8gZmluZFxuICogQHBhcmFtIHsoaTE6IG51bWJlciwgaTI6IG51bWJlcikgPT4gbnVtYmVyfSBkaXN0IGEgZnVuY3Rpb24gd2hpY2ggY2FsY3VsYXRlcyBkaXN0YW5jZSBiZXR3ZWVuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdvIG9iamVjdHMgdXNpbmcgdGhlaXIgaW5kZXhlc1xuICogQHJldHVybnMge251bWJlcltdfSBUaGUgaW5kZXhlcyBvZiB0aGUgbW9zdCBkaXZlcnNlIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpdmVyc2VTdWJzZXQobGVuZ3RoLCBuLCBkaXN0KSB7XG4gICAgZnVuY3Rpb24gbWF4QnkodmFsdWVzLCBvcmRlckJ5KSB7XG4gICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7XG4gICAgICAgIGxldCBtYXhPcmRlckJ5ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE9yZGVyQnkgPSBvcmRlckJ5KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKG1heE9yZGVyQnkgPT0gbnVsbCB8fCBlbGVtZW50T3JkZXJCeSA+IG1heE9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbWF4T3JkZXJCeSA9IGVsZW1lbnRPcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2V0ID0gW3JhbmRvbUludChsZW5ndGggLSAxKV07XG4gICAgY29uc3QgY29tcGxlbWVudCA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmICghc3Vic2V0LmluY2x1ZGVzKGkpKVxuICAgICAgICAgICAgY29tcGxlbWVudC5hZGQoaSk7XG4gICAgfVxuICAgIHdoaWxlIChzdWJzZXQubGVuZ3RoIDwgbikge1xuICAgICAgICBjb25zdCBpZHggPSBtYXhCeShjb21wbGVtZW50LnZhbHVlcygpLCAoaSkgPT4gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3Vic2V0Lm1hcChmdW5jdGlvbiAodmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3QoaSwgdmFsKTtcbiAgICAgICAgfSkpKTtcbiAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8qKlxuICogUmV0dXJucyBub3JtYWxpemVkIHZlY3RvclxuICogQHBhcmFtIHtWZWN0b3J9IGRhdGEgbnVtZXJpY2FsIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGF0YSkge1xuICAgIGxldCBtZWFuID0gMDtcbiAgICBsZXQgc3RkID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIG1lYW4gKz0gZGF0YVtpXTtcbiAgICBtZWFuIC89IGRhdGEubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgc3RkICs9IChkYXRhW2ldIC0gbWVhbikgKiAoZGF0YVtpXSAtIG1lYW4pO1xuICAgIHN0ZCA9IE1hdGguc3FydChzdGQgLyBkYXRhLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBkYXRhW2ldID0gKGRhdGFbaV0gLSBtZWFuKSAvIHN0ZDtcbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogRmluZHMgc2V0IGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbGlzdHMuXG4gKiBAcGFyYW0ge2FueVtdfSBhIFRoZSBmaXJzdCBsaXN0LlxuICogQHBhcmFtIHthbnlbXX0gYiBUaGUgc2Vjb25kIGxpc3QuXG4gKiBAcmV0dXJuIHthbnlbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERpZmZlcmVuY2UoYSwgYikge1xuICAgIGNvbnN0IGJTZXQgPSBuZXcgU2V0KGIpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYS5maWx0ZXIoKHgpID0+ICFiU2V0Lmhhcyh4KSkpLnZhbHVlcygpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWldOMGIzSXRiM0JsY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFWTXNUVUZCVFN4RlFVRjFReXhOUVVGTkxIRkNRVUZ4UWl4RFFVRkRPMEZCUTNwR0xFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkRMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJSV2hFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVFVGQlRTeERRVUZETEZsQlFYRkNMRXRCUVVzc1JVRkJSU3hWUVVGclFpeHJRa0ZCYTBJN1NVRkRja1lzU1VGQlNTeERRVUZETEZOQlFWTTdVVUZEV2l4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNN1FVRkZSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRk5CUVZNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNWVUZCYTBJc1JVRkJSU3hQUVVGbExFTkJRVU03U1VGREwwVXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlFVTXNUVUZCWXp0SlFVTTFReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNaRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JHTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFTkJRVk1zUlVGQlJTeGhRVUZ4UWl4RFFVRkRPMGxCUTNCRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkZlRUlzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxEaENRVUU0UWl4RFFVRkRMRU5CUVVNN1NVRkZNMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYwUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEZOQlFWTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1NVRkRla0lzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUldRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYUVJc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4VFFVRlRMRmxCUVZrc1EwRkJReXhEUVVGVE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYcENMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1EwRkJVenRKUVVOd1F5eEpRVUZKTEUxQlFVMHNSMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTNaRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEzSkVMRWxCUVVrc1JVRkJSU3hEUVVGRExFMUJRVTBzU1VGQlNTeEZRVUZGTEVOQlFVTXNUVUZCVFR0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUTBGQlF5dzRRMEZCT0VNc1EwRkJReXhEUVVGRE8wbEJRemxFTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRKUVVOeVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVJc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETzBGQlJVUTdPenM3T3pzN08wZEJVVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zVlVGQmEwSXNSVUZCUlN4VlFVRnJRaXhGUVVGRkxGRkJRV2RDTEVWQlFVVTdTVUZEZWtZc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeERRVUZETEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVWMlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTI1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEycERMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGNrTTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTd3dRa0ZCTUVJc1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU0zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5zUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEY0VNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRWxCUVdFc1JVRkJSU3hSUVVGM1FqdEpRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3hFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRia01zVFVGQlRTeERRVUZETEVkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOcVF6dExRVU5HTzBsQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzUTBGQlF6dEJRVVZFTEd0R1FVRnJSanRCUVVOc1JpeE5RVUZOTEZWQlFWVXNVVUZCVVN4RFFVRkRMRXRCUVdFc1JVRkJSU3hIUVVGWExFVkJRVVVzV1VGQldTeEhRVUZITEV0QlFVczdTVUZEZGtVc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEV0QlFVc3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOd1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVVYwUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVNM1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVY0UWl4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFBRVUZQTEVOQlFVTXNUVUZCWVN4RlFVRkZMRTlCUVU4c1IwRkJSeXhMUVVGTE8wbEJRM0JFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSeXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVMHNSVUZCUlN4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2NVSkJRWEZDTzBsQlEyeEZMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJN1NVRkRka1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4SFFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNeFJTeFBRVUZQTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZEVUN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEycENMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZUVJN1MwRkRSanRKUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNN1FVRkZSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1UwRkJVeXhEUVVGRExFbEJRVms3U1VGRGNFTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMklzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUlZvc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYkVJc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGY0VJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVVM1F5eEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUlc1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUlc1RExFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVR0SlFVTTVReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKRkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTAxaGRISnBlQ3dnVm1WamRHOXlMQ0JEYjI5eVpHbHVZWFJsY3l3Z1ZtVmpkRzl5Y3l3Z1JHbHpkR0Z1WTJWTlpYUnlhV045SUdaeWIyMGdKeTR2ZEhsd1pTMWtaV05zWVhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUh0eVlXNWtiMjFHYkc5aGRDd2djbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYmk4cUtseHVJQ29nUVhOelpYSjBjeUJoSUdOdmJtUnBkR2x2YmlCaWVTQjBhSEp2ZDJsdVp5QmhiaUJGY25KdmNpNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRqYjI1a2FYUnBiMjQ5Wm1Gc2MyVmRJRU52Ym1ScGRHbHZiaUIwYnlCaGMzTmxjblF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyMWxjM05oWjJVOUowRnpjMlZ5ZEdsdmJpQmxjbkp2Y2k0blhTQk5aWE56WVdkbElIUnZJRzkxZEhCMWRDNWNiaUFxSUVCMGFISnZkM01nZTBWeWNtOXlmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTnpaWEowS0dOdmJtUnBkR2x2YmpvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTENCdFpYTnpZV2RsT2lCemRISnBibWNnUFNBblFYTnpaWEowYVc5dUlHVnljbTl5TGljcElIdGNiaUFnYVdZZ0tDRmpiMjVrYVhScGIyNHBYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0cxbGMzTmhaMlVwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdibVYzSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0JoY25KaGVTQmhibVFnWm1sc2JITWdhWFFnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdScGJXVnVjMmx2YmpFZ1ZHaGxJR1pwY25OMElHUnBiV1Z1YzJsdmJpQnZaaUIwYUdVZ1kyOXZjbVJwYm1GMFpYTWdLRzUxYldKbGNpQnZaaUJ5YjNkektTNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JrYVcxbGJuTnBiMjR5SUZSb1pTQnpaV052Ym1RZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCamIyOXlaR2x1WVhSbGN5QW9iblZ0WW1WeUlHOW1JR052YkhWdGJuTXBMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0bWFXeHNQVEJkSUVFZ2RtRnNkV1VnZEc4Z1ptbHNiQ0IwYUdVZ1kyOXZjbVJwYm1GMFpYTWdkMmwwYUM1Y2JpQXFJRUJ5WlhSMWNtNGdlME52YjNKa2FXNWhkR1Z6ZlNCQklIUjNieTFrYVcxbGJuTnBiMjVoYkNCbWFXeHNaV1FnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLaUJBZEc5a2J5Qk5hV2RvZENCaVpTQnpiRzkzSUhOcGJtTmxJSFZ6WldRZ1FYSnlZWGt1YldGd0xpQlFjbTlpWVdKc2VTQnVaV1ZrY3lCd1pYSm1iM0p0WVc1alpTQnlaWFpwYzJsdmJpNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2FXNXBkRU52YjNKa2FXNWhkR1Z6S0dScGJXVnVjMmx2YmpFNklHNTFiV0psY2l3Z1pHbHRaVzV6YVc5dU1qb2diblZ0WW1WeUxDQm1hV3hzT2lCdWRXMWlaWElnUFNBd0tUb2dRMjl2Y21ScGJtRjBaWE1nZTF4dUlDQnlaWFIxY200Z2JtVjNJRUZ5Y21GNUtHUnBiV1Z1YzJsdmJqRXBMbVpwYkd3b1ptbHNiQ2t1YldGd0tDZ3BJRDArSUNodVpYY2dWbVZqZEc5eUtHUnBiV1Z1YzJsdmJqSXBMbVpwYkd3b1ptbHNiQ2twS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJVY21GdWMzQnZjMlVnYldGMGNtbDRMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3VFdGMGNtbDRmU0J0WVhSeWFYZ2dWR2hsSUcxaGRISnBlQ0IwYnlCaVpTQjBjbUZ1YzNCdmMyVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN1RXRjBjbWw0ZlNCVWNtRnVjM0J2YzJWa0lHMWhkSEpwZUM1Y2JpQXFJRUIwYjJSdklFMXBaMmgwSUdKbElITnNiM2NnYzJsdVkyVWdkWE5sWkNCQmNuSmhlUzV0WVhBdUlGQnliMkpoWW14NUlHNWxaV1J6SUhCbGNtWnZjbTFoYm1ObElISmxkbWx6YVc5dUxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEhKaGJuTndiM05sVFdGMGNtbDRLRzFoZEhKcGVEb2dUV0YwY21sNEtUb2dUV0YwY21sNElIdGNiaUFnY21WMGRYSnVJRzVsZHlCQmNuSmhlU2h0WVhSeWFYaGJNRjB1YkdWdVozUm9LUzVtYVd4c0tEQXBYRzRnSUNBZ0xtMWhjQ2dvWHl3Z2FTa2dQVDRnS0c1bGR5QldaV04wYjNJb2JXRjBjbWw0TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLUzV0WVhBb0tGOHNJR29wSUQwK0lDaHRZWFJ5YVhoYmFsMWJhVjBwS1NrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVGa1pITWdkSGR2SUhabFkzUnZjbk1nZDJsMGFDQjBhR1VnYzJWamIyNWtJRzl1WlNCMGJ5QmlaU0J0ZFd4MGFYQnNhV1ZrSUdKNUlIUm9aU0JuYVhabGJpQnlZWFJwYnk1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUlIUnZJR0ZrWkM1Y2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQnhJRlJvWlNCelpXTnZibVFnZG1WamRHOXlJSFJ2SUdGa1pDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYlhWc2RHbHdiR2xsY2oweFhTQkJJRzExYkhScGNHeHBaWElnZEc4Z1ltVWdkWE5sWkNCaVpXWnZjbVVnZEdobElITmxZMjl1WkNCMlpXTjBiM0lnYVhNZ1lXUmtaV1F1WEc0Z0tpQkFjbVYwZFhKdUlIdFdaV04wYjNKOUlFNWxkeUIyWldOMGIzSWdZMjl1ZEdGcGJtVmtJSFJvWlNCeVpYTjFiSFFnYjJZZ2IzQmxjbUYwYVc5dUlIQXJiWFZzZEdsd2JHbGxjaXB4TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkbVZqZEc5eVFXUmtLSEE2SUZabFkzUnZjaXdnY1RvZ1ZtVmpkRzl5TENCdGRXeDBhWEJzYVdWeU9pQnVkVzFpWlhJZ1BTQXhLVG9nVm1WamRHOXlJSHRjYmlBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnY0M1c1pXNW5kR2c3WEc1Y2JpQWdZWE56WlhKMEtHNUpkR1Z0Y3lBOVBTQnhMbXhsYm1kMGFDd2dKMVpsWTNSdmNpQnNaVzVuZEdoeklHUnZJRzV2ZENCdFlYUmphQzRuS1R0Y2JseHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIQXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0J3VzJsZElDc2diWFZzZEdsd2JHbGxjaUFxSUhGYmFWMDdYRzVjYmlBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGTjFiWE1nZEdobElIWmxZM1J2Y2lkeklHbDBaVzF6TGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0IySUZSb1pTQjJaV04wYjNJZ2RHOGdZbVVnYzNWdGJXVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCVWFHVWdkbVZqZEc5eUozTWdhWFJsYlhNZ2MzVnRMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQnBkR1Z0YzFOMWJTaDJPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCc1pYUWdkRzkwWVd3Z1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkaTVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0IwYjNSaGJDQXJQU0IyVzJsZE8xeHVYRzRnSUhKbGRIVnliaUIwYjNSaGJEdGNibjFjYmx4dUx5b3FYRzRnS2lCVGRYRmhjbVZ6SUhSb1pTQjJaV04wYjNJbmN5QnBkR1Z0Y3k1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnZGlCVWFHVWdkbVZqZEc5eUlIUnZJSE54ZFdGeVpTNWNiaUFxSUVCeVpYUjFjbTRnZTFabFkzUnZjbjBnUVNCdVpYY2dkbVZqZEc5eUlHTnZiblJoYVc1cGJtY2dkR2hsSUc5eWFXZHBibUZzSjNNZ2FYUmxiWE1nYzNGMVlYSmxaQzVjYmlBcUwxeHVablZ1WTNScGIyNGdkbVZqZEc5eVUzRjFZWEpsS0hZNklGWmxZM1J2Y2lrNklGWmxZM1J2Y2lCN1hHNGdJR052Ym5OMElHNUpkR1Z0Y3lBOUlIWXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0IyVzJsZElDb2dkbHRwWFR0Y2JseHVJQ0J5WlhSMWNtNGdkRzkwWVd3N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSk1aVzVuZEdnb2Rqb2dWbVZqZEc5eUtUb2diblZ0WW1WeUlIdGNiaUFnYkdWMElITnhjbE4xYlRvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnWm05eUlDaHNaWFFnYVRvZ2JuVnRZbVZ5SUQwZ01Ec2dhU0E4SUhZdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ2MzRnlVM1Z0SUNzOUlIWmJhVjBnS2lCMlcybGRPMXh1SUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOeGNsTjFiU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtIWXhPaUJXWldOMGIzSXNJSFl5T2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZGpFdWJHVnVaM1JvSUNFOUlIWXlMbXhsYm1kMGFDbGNiaUFnSUNCMGFISnZkeUJGY25KdmNpZ25WR2hsSUdScGJXVnVjMmx2Ym1Gc2FYUjVJRzltSUhSb1pTQjJaV04wYjNKeklHMTFjM1FnYldGMFkyZ25LVHRjYmlBZ2JHVjBJSEJ5YjJRNklHNTFiV0psY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrNklHNTFiV0psY2lBOUlEQTdJR2tnUENCMk1TNXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQndjbTlrSUNzOUlIWXhXMmxkSUNvZ2RqSmJhVjA3WEc0Z0lISmxkSFZ5YmlCd2NtOWtPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQnRZWFJ5YVhnZ1ptbHNiR1ZrSUhkcGRHZ2djbUZ1Wkc5dElHWnNiMkYwYVc1bklIQnZhVzUwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TVNCVWFHVWdabWx5YzNRZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCdFlYUnlhWGd1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1pQlVhR1VnYzJWamIyNWtJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdiV0YwY21sNExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR6WTJGc1pUMHhMbDBnVFdGNElIWmhiSFZsSUdkcGRtVnVJR0o1SUhKaGJtUnZiU0JuWlc1bGNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFRWdibVYzSUcxaGRISnBlQ0JtYVd4c1pXUWdkMmwwYUNCeVlXNWtiMjBnWm14dllYUnBibWNnY0c5cGJuUWdJSFpoYkhWbGN5NWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdacGJHeFNZVzVrYjIxTllYUnlhWGdvWkdsdFpXNXphVzl1TVRvZ2JuVnRZbVZ5TENCa2FXMWxibk5wYjI0eU9pQnVkVzFpWlhJc0lITmpZV3hsT2lCdWRXMWlaWElnUFNBeExpazZJRTFoZEhKcGVDQjdYRzRnSUdOdmJuTjBJRzFoZEhKcGVDQTlJR2x1YVhSRGIyOXlaR2x1WVhSbGN5aGthVzFsYm5OcGIyNHhMQ0JrYVcxbGJuTnBiMjR5S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdScGJXVnVjMmx2YmpFN0lDc3JhU2tnZTF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnWkdsdFpXNXphVzl1TWpzZ0t5dHFLVnh1SUNBZ0lDQWdiV0YwY21sNFcybGRXMnBkSUQwZ2NtRnVaRzl0Um14dllYUW9jMk5oYkdVcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dRMkZzWTNWc1lYUmxjeUJGZFdOc2FXUmxZVzRnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUIwZDI4Z2RtVmpkRzl5Y3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSEVnVkdobElITmxZMjl1WkNCMlpXTjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aU0JuYVhabGJpQjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJGc1kzVnNZWFJsUlhWamJHbGtaV0Z1UkdsemRHRnVZMlVvY0RvZ1ZtVmpkRzl5TENCeE9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2RtVmpkRzl5UVdSa0tIQXNJSEVzSUMweEtUdGNiaUFnWTI5dWMzUWdjM0ZrYVdabUlEMGdkbVZqZEc5eVUzRjFZWEpsS0dScFptWXBPMXh1SUNCamIyNXpkQ0J6Y1dScFptWlRkVzF0SUQwZ2FYUmxiWE5UZFcwb2MzRmthV1ptS1R0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaHpjV1JwWm1aVGRXMXRLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR2x6ZEdGdVkyVWdiV0YwY21sNElIVnphVzVuSUdFZ1kzVnpkRzl0SUdScGMzUmhibU5sSUdaMWJtTjBhVzl1TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5YzMwZ1pHRjBZU0JKYm5CMWRDQjJaV04wYjNKeklIUnZJR05oYkdOMWJHRjBaU0JrYVhOMFlXNWpaWE11WEc0Z0tpQkFjR0Z5WVcwZ2UwUnBjM1JoYm1ObFRXVjBjbWxqZlNCa2FYTjBZVzVqWlNCRGRYTjBiMjBnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFTmhiR04xYkdGMFpXUWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHMWhkSEpwZUM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR05oYkdORWFYTjBZVzVqWlUxaGRISnBlQ2hrWVhSaE9pQldaV04wYjNKekxDQmthWE4wWVc1alpUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdNcE9pQk5ZWFJ5YVhnZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQmtZWFJoTG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnYldGMGNtbDRJRDBnYVc1cGRFTnZiM0prYVc1aGRHVnpLRzVKZEdWdGN5d2dia2wwWlcxekxDQXdLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVKZEdWdGN6c2dLeXRwS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dia2wwWlcxek95QXJLMm9wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1E2SUc1MWJXSmxjaUE5SUNoa1lYUmhXMmxkSUQwOUlHNTFiR3dwSUh4OElDaGtZWFJoVzJwZElEMDlJRzUxYkd3cElEOGdNQ0E2SUdScGMzUmhibU5sS0dSaGRHRmJhVjBzSUdSaGRHRmJhbDBwTzF4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdiV0YwY21sNFcycGRXMmxkSUQwZ1pEdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUcxaGRISnBlRHRjYm4xY2JseHVMeW9xSUVkbGJtVnlZWFJsY3lCaGNuSmhlU0JtY205dElHRWdjbUZ1WjJVZ1cySmxaMmx1T3lCbGJtUmRJRzl5SUZ0aVpXZHBianNnWlc1a0tTQnBaaUJsYm1SRmVHTnNkWE5wZG1VdUlDb3FMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsYmxKaGJtZGxLR0psWjJsdU9pQnVkVzFpWlhJc0lHVnVaRG9nYm5WdFltVnlMQ0JsYm1SRmVHTnNkWE5wZG1VZ1BTQm1ZV3h6WlNrNklFbHVkRE15UVhKeVlYa2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JsYm1RZ0xTQmlaV2RwYmlBcklDaGxibVJGZUdOc2RYTnBkbVVnUHlBd0lEb2dNU2s3WEc0Z0lHTnZibk4wSUhObGNtbGxjeUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLRzVKZEdWdGN5azdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2xjYmlBZ0lDQnpaWEpwWlhOYmFWMGdQU0JpWldkcGJpQXJJR2s3WEc1Y2JpQWdjbVYwZFhKdUlITmxjbWxsY3p0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzl5WkdWeUlHOW1JSFpoYkhWbGN5QmhjeUJwWmlCMGFHVjVJR0Z5WlNCemIzSjBaV1F1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnZG1Gc2RXVnpJRWx1Y0hWMElHRnljbUY1TGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJjbVYyWlhKelpUMW1ZV3h6WlYwZ1YyaGxkR2hsY2lCMGJ5QnlaWFIxY200Z2NtVjJaWEp6WldRZ2IzSmtaWEl1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdWR2hsSUc5eVpHVnlJR052YlhCMWRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYSm5VMjl5ZENoMllXeDFaWE02SUdGdWVWdGRMQ0J5WlhabGNuTmxJRDBnWm1Gc2MyVXBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUhOdmNuUm1iaUE5SUhKbGRtVnljMlVnUHlBb1lUb2dZVzU1VzEwc0lHSTZJR0Z1ZVZ0ZEtTQTlQaUFvWWxzd1hTQXRJR0ZiTUYwcElEb2dLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2tnUFQ0Z0tHRmJNRjBnTFNCaVd6QmRLVHRjYmlBZ1kyOXVjM1FnWkdWamIzSWdQU0FvZGpvZ1lXNTVMQ0JwT2lCdWRXMWlaWElwSUQwK0lGdDJMQ0JwWFRzZ0x5OGdjMlYwSUdsdVpHVjRJSFJ2SUhaaGJIVmxYRzRnSUdOdmJuTjBJSFZ1WkdWamIzSWdQU0FvWVRvZ1lXNTVXMTBwSUQwK0lHRmJNVjA3SUM4dklHeGxZWFpsSUc5dWJIa2dhVzVrWlhoY2JpQWdZMjl1YzNRZ1gyRnlaM052Y25RZ1BTQW9ZWEp5T2lCaGJubGJYU2tnUFQ0Z1lYSnlMbTFoY0Noa1pXTnZjaWt1YzI5eWRDaHpiM0owWm00cExtMWhjQ2gxYm1SbFkyOXlLVHRjYmlBZ2NtVjBkWEp1SUY5aGNtZHpiM0owS0haaGJIVmxjeWs3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QjBhR1VnYVc1a1pYaGxjeUJ2WmlCMGFHVWdiVzl6ZENCa2FYWmxjbk5sSUc5aWFtVmpkSE1nWVdOamIzSmthVzVuSUhSdklIUm9aU0JrYVhOMElHWjFibU4wYVc5dVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiR1Z1WjNSb0lIUnZkR0ZzSUc1MWJXSmxjaUJ2WmlCdlltcGxZM1J6WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JpQnVkVzFpWlhJZ2IyWWdaR2wyWlhKelpTQmxiR1Z0Wlc1MGN5QjBieUJtYVc1a1hHNGdLaUJBY0dGeVlXMGdleWhwTVRvZ2JuVnRZbVZ5TENCcE1qb2diblZ0WW1WeUtTQTlQaUJ1ZFcxaVpYSjlJR1JwYzNRZ1lTQm1kVzVqZEdsdmJpQjNhR2xqYUNCallXeGpkV3hoZEdWeklHUnBjM1JoYm1ObElHSmxkSGRsWlc1Y2JpQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGQyOGdiMkpxWldOMGN5QjFjMmx1WnlCMGFHVnBjaUJwYm1SbGVHVnpYRzRnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5VzExOUlGUm9aU0JwYm1SbGVHVnpJRzltSUhSb1pTQnRiM04wSUdScGRtVnljMlVnYjJKcVpXTjBjMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2wyWlhKelpWTjFZbk5sZENoc1pXNW5kR2c2SUc1MWJXSmxjaXdnYmpvZ2JuVnRZbVZ5TENCa2FYTjBPaUFvYVRFNklHNTFiV0psY2l3Z2FUSTZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLVG9nYm5WdFltVnlXMTBnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0S1NCN1hHNGdJQ0FnSUNCemRXSnpaWFF1Y0hWemFDaHBaSGdwTzF4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1a1pXeGxkR1VvYVdSNEtUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUhOMVluTmxkRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlNaWFIxY201eklHNXZjbTFoYkdsNlpXUWdkbVZqZEc5eVhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdaR0YwWVNCdWRXMWxjbWxqWVd3Z1lYSnlZWGxjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZjbTFoYkdsNlpTaGtZWFJoT2lCV1pXTjBiM0lwT2lCV1pXTjBiM0lnZTF4dUlDQnNaWFFnYldWaGJpQTlJREE3WEc0Z0lHeGxkQ0J6ZEdRZ1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daR0YwWVM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCdFpXRnVJQ3M5SUdSaGRHRmJhVjA3WEc1Y2JpQWdiV1ZoYmlBdlBTQmtZWFJoTG14bGJtZDBhRHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdFdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2MzUmtJQ3M5SUNoa1lYUmhXMmxkSUMwZ2JXVmhiaWtnS2lBb1pHRjBZVnRwWFNBdElHMWxZVzRwTzF4dVhHNGdJSE4wWkNBOUlFMWhkR2d1YzNGeWRDaHpkR1FnTHlCa1lYUmhMbXhsYm1kMGFDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmtZWFJoTG14bGJtZDBhRHNnS3l0cEtWeHVJQ0FnSUdSaGRHRmJhVjBnUFNBb1pHRjBZVnRwWFNBdElHMWxZVzRwSUM4Z2MzUmtPMXh1WEc0Z0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFWnBibVJ6SUhObGRDQmthV1ptWlhKbGJtTmxJR0psZEhkbFpXNGdkSGR2SUd4cGMzUnpMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnWVNCVWFHVWdabWx5YzNRZ2JHbHpkQzVjYmlBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUdJZ1ZHaGxJSE5sWTI5dVpDQnNhWE4wTGx4dUlDb2dRSEpsZEhWeWJpQjdZVzU1VzExOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6WlhSRWFXWm1aWEpsYm1ObEtHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTazZJR0Z1ZVZ0ZElIdGNiaUFnWTI5dWMzUWdZbE5sZENBOUlHNWxkeUJUWlhRb1lpazdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0c1bGR5QlRaWFFvWVM1bWFXeDBaWElvS0hncElEMCtJQ0ZpVTJWMExtaGhjeWg0S1NrcExuWmhiSFZsY3lncEtUdGNibjFjYmlKZGZRPT0iLCIoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcbiAgICAvLyBIYWNrIHRvIG1ha2UgYWxsIGV4cG9ydHMgb2YgdGhpcyBtb2R1bGUgc2hhMjU2IGZ1bmN0aW9uIG9iamVjdCBwcm9wZXJ0aWVzLlxuICAgIHZhciBleHBvcnRzID0ge307XG4gICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB2YXIgc2hhMjU2ID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4gICAgZm9yICh2YXIgayBpbiBleHBvcnRzKSB7XG4gICAgICAgIHNoYTI1NltrXSA9IGV4cG9ydHNba107XG4gICAgfVxuICAgICAgICBcbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHNoYTI1NjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7IHJldHVybiBzaGEyNTY7IH0pOyBcbiAgICB9IGVsc2Uge1xuICAgICAgICByb290LnNoYTI1NiA9IHNoYTI1NjtcbiAgICB9XG59KSh0aGlzLCBmdW5jdGlvbihleHBvcnRzKSB7XG5cInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBTSEEtMjU2ICgrIEhNQUMgYW5kIFBCS0RGMikgZm9yIEphdmFTY3JpcHQuXG4vL1xuLy8gV3JpdHRlbiBpbiAyMDE0LTIwMTYgYnkgRG1pdHJ5IENoZXN0bnlraC5cbi8vIFB1YmxpYyBkb21haW4sIG5vIHdhcnJhbnR5LlxuLy9cbi8vIEZ1bmN0aW9ucyAoYWNjZXB0IGFuZCByZXR1cm4gVWludDhBcnJheXMpOlxuLy9cbi8vICAgc2hhMjU2KG1lc3NhZ2UpIC0+IGhhc2hcbi8vICAgc2hhMjU2LmhtYWMoa2V5LCBtZXNzYWdlKSAtPiBtYWNcbi8vICAgc2hhMjU2LnBia2RmMihwYXNzd29yZCwgc2FsdCwgcm91bmRzLCBka0xlbikgLT4gZGtcbi8vXG4vLyAgQ2xhc3Nlczpcbi8vXG4vLyAgIG5ldyBzaGEyNTYuSGFzaCgpXG4vLyAgIG5ldyBzaGEyNTYuSE1BQyhrZXkpXG4vL1xuZXhwb3J0cy5kaWdlc3RMZW5ndGggPSAzMjtcbmV4cG9ydHMuYmxvY2tTaXplID0gNjQ7XG4vLyBTSEEtMjU2IGNvbnN0YW50c1xudmFyIEsgPSBuZXcgVWludDMyQXJyYXkoW1xuICAgIDB4NDI4YTJmOTgsIDB4NzEzNzQ0OTEsIDB4YjVjMGZiY2YsIDB4ZTliNWRiYTUsIDB4Mzk1NmMyNWIsXG4gICAgMHg1OWYxMTFmMSwgMHg5MjNmODJhNCwgMHhhYjFjNWVkNSwgMHhkODA3YWE5OCwgMHgxMjgzNWIwMSxcbiAgICAweDI0MzE4NWJlLCAweDU1MGM3ZGMzLCAweDcyYmU1ZDc0LCAweDgwZGViMWZlLCAweDliZGMwNmE3LFxuICAgIDB4YzE5YmYxNzQsIDB4ZTQ5YjY5YzEsIDB4ZWZiZTQ3ODYsIDB4MGZjMTlkYzYsIDB4MjQwY2ExY2MsXG4gICAgMHgyZGU5MmM2ZiwgMHg0YTc0ODRhYSwgMHg1Y2IwYTlkYywgMHg3NmY5ODhkYSwgMHg5ODNlNTE1MixcbiAgICAweGE4MzFjNjZkLCAweGIwMDMyN2M4LCAweGJmNTk3ZmM3LCAweGM2ZTAwYmYzLCAweGQ1YTc5MTQ3LFxuICAgIDB4MDZjYTYzNTEsIDB4MTQyOTI5NjcsIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsXG4gICAgMHg1MzM4MGQxMywgMHg2NTBhNzM1NCwgMHg3NjZhMGFiYiwgMHg4MWMyYzkyZSwgMHg5MjcyMmM4NSxcbiAgICAweGEyYmZlOGExLCAweGE4MWE2NjRiLCAweGMyNGI4YjcwLCAweGM3NmM1MWEzLCAweGQxOTJlODE5LFxuICAgIDB4ZDY5OTA2MjQsIDB4ZjQwZTM1ODUsIDB4MTA2YWEwNzAsIDB4MTlhNGMxMTYsIDB4MWUzNzZjMDgsXG4gICAgMHgyNzQ4Nzc0YywgMHgzNGIwYmNiNSwgMHgzOTFjMGNiMywgMHg0ZWQ4YWE0YSwgMHg1YjljY2E0ZixcbiAgICAweDY4MmU2ZmYzLCAweDc0OGY4MmVlLCAweDc4YTU2MzZmLCAweDg0Yzg3ODE0LCAweDhjYzcwMjA4LFxuICAgIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjJcbl0pO1xuZnVuY3Rpb24gaGFzaEJsb2Nrcyh3LCB2LCBwLCBwb3MsIGxlbikge1xuICAgIHZhciBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB1LCBpLCBqLCB0MSwgdDI7XG4gICAgd2hpbGUgKGxlbiA+PSA2NCkge1xuICAgICAgICBhID0gdlswXTtcbiAgICAgICAgYiA9IHZbMV07XG4gICAgICAgIGMgPSB2WzJdO1xuICAgICAgICBkID0gdlszXTtcbiAgICAgICAgZSA9IHZbNF07XG4gICAgICAgIGYgPSB2WzVdO1xuICAgICAgICBnID0gdls2XTtcbiAgICAgICAgaCA9IHZbN107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICAgICAgICBqID0gcG9zICsgaSAqIDQ7XG4gICAgICAgICAgICB3W2ldID0gKCgocFtqXSAmIDB4ZmYpIDw8IDI0KSB8ICgocFtqICsgMV0gJiAweGZmKSA8PCAxNikgfFxuICAgICAgICAgICAgICAgICgocFtqICsgMl0gJiAweGZmKSA8PCA4KSB8IChwW2ogKyAzXSAmIDB4ZmYpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAxNjsgaSA8IDY0OyBpKyspIHtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAyXTtcbiAgICAgICAgICAgIHQxID0gKHUgPj4+IDE3IHwgdSA8PCAoMzIgLSAxNykpIF4gKHUgPj4+IDE5IHwgdSA8PCAoMzIgLSAxOSkpIF4gKHUgPj4+IDEwKTtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAxNV07XG4gICAgICAgICAgICB0MiA9ICh1ID4+PiA3IHwgdSA8PCAoMzIgLSA3KSkgXiAodSA+Pj4gMTggfCB1IDw8ICgzMiAtIDE4KSkgXiAodSA+Pj4gMyk7XG4gICAgICAgICAgICB3W2ldID0gKHQxICsgd1tpIC0gN10gfCAwKSArICh0MiArIHdbaSAtIDE2XSB8IDApO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICB0MSA9ICgoKCgoZSA+Pj4gNiB8IGUgPDwgKDMyIC0gNikpIF4gKGUgPj4+IDExIHwgZSA8PCAoMzIgLSAxMSkpIF5cbiAgICAgICAgICAgICAgICAoZSA+Pj4gMjUgfCBlIDw8ICgzMiAtIDI1KSkpICsgKChlICYgZikgXiAofmUgJiBnKSkpIHwgMCkgK1xuICAgICAgICAgICAgICAgICgoaCArICgoS1tpXSArIHdbaV0pIHwgMCkpIHwgMCkpIHwgMDtcbiAgICAgICAgICAgIHQyID0gKCgoYSA+Pj4gMiB8IGEgPDwgKDMyIC0gMikpIF4gKGEgPj4+IDEzIHwgYSA8PCAoMzIgLSAxMykpIF5cbiAgICAgICAgICAgICAgICAoYSA+Pj4gMjIgfCBhIDw8ICgzMiAtIDIyKSkpICsgKChhICYgYikgXiAoYSAmIGMpIF4gKGIgJiBjKSkpIHwgMDtcbiAgICAgICAgICAgIGggPSBnO1xuICAgICAgICAgICAgZyA9IGY7XG4gICAgICAgICAgICBmID0gZTtcbiAgICAgICAgICAgIGUgPSAoZCArIHQxKSB8IDA7XG4gICAgICAgICAgICBkID0gYztcbiAgICAgICAgICAgIGMgPSBiO1xuICAgICAgICAgICAgYiA9IGE7XG4gICAgICAgICAgICBhID0gKHQxICsgdDIpIHwgMDtcbiAgICAgICAgfVxuICAgICAgICB2WzBdICs9IGE7XG4gICAgICAgIHZbMV0gKz0gYjtcbiAgICAgICAgdlsyXSArPSBjO1xuICAgICAgICB2WzNdICs9IGQ7XG4gICAgICAgIHZbNF0gKz0gZTtcbiAgICAgICAgdls1XSArPSBmO1xuICAgICAgICB2WzZdICs9IGc7XG4gICAgICAgIHZbN10gKz0gaDtcbiAgICAgICAgcG9zICs9IDY0O1xuICAgICAgICBsZW4gLT0gNjQ7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG59XG4vLyBIYXNoIGltcGxlbWVudHMgU0hBMjU2IGhhc2ggYWxnb3JpdGhtLlxudmFyIEhhc2ggPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSGFzaCgpIHtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSBleHBvcnRzLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSBleHBvcnRzLmJsb2NrU2l6ZTtcbiAgICAgICAgLy8gTm90ZTogSW50MzJBcnJheSBpcyB1c2VkIGluc3RlYWQgb2YgVWludDMyQXJyYXkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBuZXcgSW50MzJBcnJheSg4KTsgLy8gaGFzaCBzdGF0ZVxuICAgICAgICB0aGlzLnRlbXAgPSBuZXcgSW50MzJBcnJheSg2NCk7IC8vIHRlbXBvcmFyeSBzdGF0ZVxuICAgICAgICB0aGlzLmJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDEyOCk7IC8vIGJ1ZmZlciBmb3IgZGF0YSB0byBoYXNoXG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDsgLy8gbnVtYmVyIG9mIGJ5dGVzIGluIGJ1ZmZlclxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDsgLy8gbnVtYmVyIG9mIHRvdGFsIGJ5dGVzIGhhc2hlZFxuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7IC8vIGluZGljYXRlcyB3aGV0aGVyIHRoZSBoYXNoIHdhcyBmaW5hbGl6ZWRcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgICAvLyBSZXNldHMgaGFzaCBzdGF0ZSBtYWtpbmcgaXQgcG9zc2libGVcbiAgICAvLyB0byByZS11c2UgdGhpcyBpbnN0YW5jZSB0byBoYXNoIG90aGVyIGRhdGEuXG4gICAgSGFzaC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc3RhdGVbMF0gPSAweDZhMDllNjY3O1xuICAgICAgICB0aGlzLnN0YXRlWzFdID0gMHhiYjY3YWU4NTtcbiAgICAgICAgdGhpcy5zdGF0ZVsyXSA9IDB4M2M2ZWYzNzI7XG4gICAgICAgIHRoaXMuc3RhdGVbM10gPSAweGE1NGZmNTNhO1xuICAgICAgICB0aGlzLnN0YXRlWzRdID0gMHg1MTBlNTI3ZjtcbiAgICAgICAgdGhpcy5zdGF0ZVs1XSA9IDB4OWIwNTY4OGM7XG4gICAgICAgIHRoaXMuc3RhdGVbNl0gPSAweDFmODNkOWFiO1xuICAgICAgICB0aGlzLnN0YXRlWzddID0gMHg1YmUwY2QxOTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIENsZWFucyBpbnRlcm5hbCBidWZmZXJzIGFuZCByZS1pbml0aWFsaXplcyBoYXNoIHN0YXRlLlxuICAgIEhhc2gucHJvdG90eXBlLmNsZWFuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlbXAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMudGVtcFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBoYXNoIHN0YXRlIHdpdGggdGhlIGdpdmVuIGRhdGEuXG4gICAgLy9cbiAgICAvLyBPcHRpb25hbGx5LCBsZW5ndGggb2YgdGhlIGRhdGEgY2FuIGJlIHNwZWNpZmllZCB0byBoYXNoXG4gICAgLy8gZmV3ZXIgYnl0ZXMgdGhhbiBkYXRhLmxlbmd0aC5cbiAgICAvL1xuICAgIC8vIFRocm93cyBlcnJvciB3aGVuIHRyeWluZyB0byB1cGRhdGUgYWxyZWFkeSBmaW5hbGl6ZWQgaGFzaDpcbiAgICAvLyBpbnN0YW5jZSBtdXN0IGJlIHJlc2V0IHRvIHVzZSBpdCBhZ2Fpbi5cbiAgICBIYXNoLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSwgZGF0YUxlbmd0aCkge1xuICAgICAgICBpZiAoZGF0YUxlbmd0aCA9PT0gdm9pZCAwKSB7IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDsgfVxuICAgICAgICBpZiAodGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0hBMjU2OiBjYW4ndCB1cGRhdGUgYmVjYXVzZSBoYXNoIHdhcyBmaW5pc2hlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRhdGFQb3MgPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkICs9IGRhdGFMZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmJ1ZmZlckxlbmd0aCA8IDY0ICYmIGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW2RhdGFQb3MrK107XG4gICAgICAgICAgICAgICAgZGF0YUxlbmd0aC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyTGVuZ3RoID09PSA2NCkge1xuICAgICAgICAgICAgICAgIGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCB0aGlzLmJ1ZmZlciwgMCwgNjQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YUxlbmd0aCA+PSA2NCkge1xuICAgICAgICAgICAgZGF0YVBvcyA9IGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCBkYXRhLCBkYXRhUG9zLCBkYXRhTGVuZ3RoKTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGggJT0gNjQ7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXSA9IGRhdGFbZGF0YVBvcysrXTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGgtLTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIEZpbmFsaXplcyBoYXNoIHN0YXRlIGFuZCBwdXRzIGhhc2ggaW50byBvdXQuXG4gICAgLy9cbiAgICAvLyBJZiBoYXNoIHdhcyBhbHJlYWR5IGZpbmFsaXplZCwgcHV0cyB0aGUgc2FtZSB2YWx1ZS5cbiAgICBIYXNoLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAob3V0KSB7XG4gICAgICAgIGlmICghdGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdmFyIGJ5dGVzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZDtcbiAgICAgICAgICAgIHZhciBsZWZ0ID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICAgICAgICB2YXIgYml0TGVuSGkgPSAoYnl0ZXNIYXNoZWQgLyAweDIwMDAwMDAwKSB8IDA7XG4gICAgICAgICAgICB2YXIgYml0TGVuTG8gPSBieXRlc0hhc2hlZCA8PCAzO1xuICAgICAgICAgICAgdmFyIHBhZExlbmd0aCA9IChieXRlc0hhc2hlZCAlIDY0IDwgNTYpID8gNjQgOiAxMjg7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltsZWZ0XSA9IDB4ODA7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gbGVmdCArIDE7IGkgPCBwYWRMZW5ndGggLSA4OyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA4XSA9IChiaXRMZW5IaSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDddID0gKGJpdExlbkhpID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNl0gPSAoYml0TGVuSGkgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDVdID0gKGJpdExlbkhpID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA0XSA9IChiaXRMZW5MbyA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDNdID0gKGJpdExlbkxvID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gMl0gPSAoYml0TGVuTG8gPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDFdID0gKGJpdExlbkxvID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgdGhpcy5idWZmZXIsIDAsIHBhZExlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaW5hbCBoYXNoIGRpZ2VzdC5cbiAgICBIYXNoLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7XG4gICAgICAgIHRoaXMuZmluaXNoKG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICAvLyBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgdXNlIGluIEhNQUMgZm9yIG9wdGltaXphdGlvbi5cbiAgICBIYXNoLnByb3RvdHlwZS5fc2F2ZVN0YXRlID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IHRoaXMuc3RhdGVbaV07XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIEludGVybmFsIGZ1bmN0aW9uIGZvciB1c2UgaW4gSE1BQyBmb3Igb3B0aW1pemF0aW9uLlxuICAgIEhhc2gucHJvdG90eXBlLl9yZXN0b3JlU3RhdGUgPSBmdW5jdGlvbiAoZnJvbSwgYnl0ZXNIYXNoZWQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlW2ldID0gZnJvbVtpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gYnl0ZXNIYXNoZWQ7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgIH07XG4gICAgcmV0dXJuIEhhc2g7XG59KCkpO1xuZXhwb3J0cy5IYXNoID0gSGFzaDtcbi8vIEhNQUMgaW1wbGVtZW50cyBITUFDLVNIQTI1NiBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobS5cbnZhciBITUFDID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhNQUMoa2V5KSB7XG4gICAgICAgIHRoaXMuaW5uZXIgPSBuZXcgSGFzaCgpO1xuICAgICAgICB0aGlzLm91dGVyID0gbmV3IEhhc2goKTtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSB0aGlzLmlubmVyLmJsb2NrU2l6ZTtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSB0aGlzLmlubmVyLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdmFyIHBhZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTtcbiAgICAgICAgaWYgKGtleS5sZW5ndGggPiB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICAgICAgKG5ldyBIYXNoKCkpLnVwZGF0ZShrZXkpLmZpbmlzaChwYWQpLmNsZWFuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhZFtpXSA9IGtleVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldIF49IDB4MzY7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUocGFkKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSBePSAweDM2IF4gMHg1YztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShwYWQpO1xuICAgICAgICB0aGlzLmlzdGF0ZSA9IG5ldyBVaW50MzJBcnJheSg4KTtcbiAgICAgICAgdGhpcy5vc3RhdGUgPSBuZXcgVWludDMyQXJyYXkoOCk7XG4gICAgICAgIHRoaXMuaW5uZXIuX3NhdmVTdGF0ZSh0aGlzLmlzdGF0ZSk7XG4gICAgICAgIHRoaXMub3V0ZXIuX3NhdmVTdGF0ZSh0aGlzLm9zdGF0ZSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJldHVybnMgSE1BQyBzdGF0ZSB0byB0aGUgc3RhdGUgaW5pdGlhbGl6ZWQgd2l0aCBrZXlcbiAgICAvLyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biBITUFDIG92ZXIgdGhlIG90aGVyIGRhdGEgd2l0aCB0aGUgc2FtZVxuICAgIC8vIGtleSB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgIEhNQUMucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmlubmVyLl9yZXN0b3JlU3RhdGUodGhpcy5pc3RhdGUsIHRoaXMuaW5uZXIuYmxvY2tTaXplKTtcbiAgICAgICAgdGhpcy5vdXRlci5fcmVzdG9yZVN0YXRlKHRoaXMub3N0YXRlLCB0aGlzLm91dGVyLmJsb2NrU2l6ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gQ2xlYW5zIEhNQUMgc3RhdGUuXG4gICAgSE1BQy5wcm90b3R5cGUuY2xlYW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMub3N0YXRlW2ldID0gdGhpcy5pc3RhdGVbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXIuY2xlYW4oKTtcbiAgICAgICAgdGhpcy5vdXRlci5jbGVhbigpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBzdGF0ZSB3aXRoIHByb3ZpZGVkIGRhdGEuXG4gICAgSE1BQy5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUoZGF0YSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gRmluYWxpemVzIEhNQUMgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbiBvdXQuXG4gICAgSE1BQy5wcm90b3R5cGUuZmluaXNoID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBpZiAodGhpcy5vdXRlci5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vdXRlci5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXIuZmluaXNoKG91dCk7XG4gICAgICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXQsIHRoaXMuZGlnZXN0TGVuZ3RoKS5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIFJldHVybnMgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlLlxuICAgIEhNQUMucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG91dCA9IG5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5maW5pc2gob3V0KTtcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIHJldHVybiBITUFDO1xufSgpKTtcbmV4cG9ydHMuSE1BQyA9IEhNQUM7XG4vLyBSZXR1cm5zIFNIQTI1NiBoYXNoIG9mIGRhdGEuXG5mdW5jdGlvbiBoYXNoKGRhdGEpIHtcbiAgICB2YXIgaCA9IChuZXcgSGFzaCgpKS51cGRhdGUoZGF0YSk7XG4gICAgdmFyIGRpZ2VzdCA9IGguZGlnZXN0KCk7XG4gICAgaC5jbGVhbigpO1xuICAgIHJldHVybiBkaWdlc3Q7XG59XG5leHBvcnRzLmhhc2ggPSBoYXNoO1xuLy8gRnVuY3Rpb24gaGFzaCBpcyBib3RoIGF2YWlsYWJsZSBhcyBtb2R1bGUuaGFzaCBhbmQgYXMgZGVmYXVsdCBleHBvcnQuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGhhc2g7XG4vLyBSZXR1cm5zIEhNQUMtU0hBMjU2IG9mIGRhdGEgdW5kZXIgdGhlIGtleS5cbmZ1bmN0aW9uIGhtYWMoa2V5LCBkYXRhKSB7XG4gICAgdmFyIGggPSAobmV3IEhNQUMoa2V5KSkudXBkYXRlKGRhdGEpO1xuICAgIHZhciBkaWdlc3QgPSBoLmRpZ2VzdCgpO1xuICAgIGguY2xlYW4oKTtcbiAgICByZXR1cm4gZGlnZXN0O1xufVxuZXhwb3J0cy5obWFjID0gaG1hYztcbi8vIEZpbGxzIGhrZGYgYnVmZmVyIGxpa2UgdGhpczpcbi8vIFQoMSkgPSBITUFDLUhhc2goUFJLLCBUKDApIHwgaW5mbyB8IDB4MDEpXG5mdW5jdGlvbiBmaWxsQnVmZmVyKGJ1ZmZlciwgaG1hYywgaW5mbywgY291bnRlcikge1xuICAgIC8vIENvdW50ZXIgaXMgYSBieXRlIHZhbHVlOiBjaGVjayBpZiBpdCBvdmVyZmxvd2VkLlxuICAgIHZhciBudW0gPSBjb3VudGVyWzBdO1xuICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlXCIpO1xuICAgIH1cbiAgICAvLyBQcmVwYXJlIEhNQUMgaW5zdGFuY2UgZm9yIG5ldyBkYXRhIHdpdGggb2xkIGtleS5cbiAgICBobWFjLnJlc2V0KCk7XG4gICAgLy8gSGFzaCBpbiBwcmV2aW91cyBvdXRwdXQgaWYgaXQgd2FzIGdlbmVyYXRlZFxuICAgIC8vIChpLmUuIGNvdW50ZXIgaXMgZ3JlYXRlciB0aGFuIDEpLlxuICAgIGlmIChudW0gPiAxKSB7XG4gICAgICAgIGhtYWMudXBkYXRlKGJ1ZmZlcik7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gaW5mbyBpZiBpdCBleGlzdHMuXG4gICAgaWYgKGluZm8pIHtcbiAgICAgICAgaG1hYy51cGRhdGUoaW5mbyk7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gdGhlIGNvdW50ZXIuXG4gICAgaG1hYy51cGRhdGUoY291bnRlcik7XG4gICAgLy8gT3V0cHV0IHJlc3VsdCB0byBidWZmZXIgYW5kIGNsZWFuIEhNQUMgaW5zdGFuY2UuXG4gICAgaG1hYy5maW5pc2goYnVmZmVyKTtcbiAgICAvLyBJbmNyZW1lbnQgY291bnRlciBpbnNpZGUgdHlwZWQgYXJyYXksIHRoaXMgd29ya3MgcHJvcGVybHkuXG4gICAgY291bnRlclswXSsrO1xufVxudmFyIGhrZGZTYWx0ID0gbmV3IFVpbnQ4QXJyYXkoZXhwb3J0cy5kaWdlc3RMZW5ndGgpOyAvLyBGaWxsZWQgd2l0aCB6ZXJvZXMuXG5mdW5jdGlvbiBoa2RmKGtleSwgc2FsdCwgaW5mbywgbGVuZ3RoKSB7XG4gICAgaWYgKHNhbHQgPT09IHZvaWQgMCkgeyBzYWx0ID0gaGtkZlNhbHQ7IH1cbiAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsgbGVuZ3RoID0gMzI7IH1cbiAgICB2YXIgY291bnRlciA9IG5ldyBVaW50OEFycmF5KFsxXSk7XG4gICAgLy8gSEtERi1FeHRyYWN0IHVzZXMgc2FsdCBhcyBITUFDIGtleSwgYW5kIGtleSBhcyBkYXRhLlxuICAgIHZhciBva20gPSBobWFjKHNhbHQsIGtleSk7XG4gICAgLy8gSW5pdGlhbGl6ZSBITUFDIGZvciBleHBhbmRpbmcgd2l0aCBleHRyYWN0ZWQga2V5LlxuICAgIC8vIEVuc3VyZSBubyBjb2xsaXNpb25zIHdpdGggYGhtYWNgIGZ1bmN0aW9uLlxuICAgIHZhciBobWFjXyA9IG5ldyBITUFDKG9rbSk7XG4gICAgLy8gQWxsb2NhdGUgYnVmZmVyLlxuICAgIHZhciBidWZmZXIgPSBuZXcgVWludDhBcnJheShobWFjXy5kaWdlc3RMZW5ndGgpO1xuICAgIHZhciBidWZwb3MgPSBidWZmZXIubGVuZ3RoO1xuICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGJ1ZnBvcyA9PT0gYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgZmlsbEJ1ZmZlcihidWZmZXIsIGhtYWNfLCBpbmZvLCBjb3VudGVyKTtcbiAgICAgICAgICAgIGJ1ZnBvcyA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgb3V0W2ldID0gYnVmZmVyW2J1ZnBvcysrXTtcbiAgICB9XG4gICAgaG1hY18uY2xlYW4oKTtcbiAgICBidWZmZXIuZmlsbCgwKTtcbiAgICBjb3VudGVyLmZpbGwoMCk7XG4gICAgcmV0dXJuIG91dDtcbn1cbmV4cG9ydHMuaGtkZiA9IGhrZGY7XG4vLyBEZXJpdmVzIGEga2V5IGZyb20gcGFzc3dvcmQgYW5kIHNhbHQgdXNpbmcgUEJLREYyLUhNQUMtU0hBMjU2XG4vLyB3aXRoIHRoZSBnaXZlbiBudW1iZXIgb2YgaXRlcmF0aW9ucy5cbi8vXG4vLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJldHVybmVkIGlzIGVxdWFsIHRvIGRrTGVuLlxuLy9cbi8vIChGb3IgYmV0dGVyIHNlY3VyaXR5LCBhdm9pZCBka0xlbiBncmVhdGVyIHRoYW4gaGFzaCBsZW5ndGggLSAzMiBieXRlcykuXG5mdW5jdGlvbiBwYmtkZjIocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGRrTGVuKSB7XG4gICAgdmFyIHByZiA9IG5ldyBITUFDKHBhc3N3b3JkKTtcbiAgICB2YXIgbGVuID0gcHJmLmRpZ2VzdExlbmd0aDtcbiAgICB2YXIgY3RyID0gbmV3IFVpbnQ4QXJyYXkoNCk7XG4gICAgdmFyIHQgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIHZhciB1ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgZGsgPSBuZXcgVWludDhBcnJheShka0xlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgKiBsZW4gPCBka0xlbjsgaSsrKSB7XG4gICAgICAgIHZhciBjID0gaSArIDE7XG4gICAgICAgIGN0clswXSA9IChjID4+PiAyNCkgJiAweGZmO1xuICAgICAgICBjdHJbMV0gPSAoYyA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgY3RyWzJdID0gKGMgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgY3RyWzNdID0gKGMgPj4+IDApICYgMHhmZjtcbiAgICAgICAgcHJmLnJlc2V0KCk7XG4gICAgICAgIHByZi51cGRhdGUoc2FsdCk7XG4gICAgICAgIHByZi51cGRhdGUoY3RyKTtcbiAgICAgICAgcHJmLmZpbmlzaCh1KTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgICAgICAgdFtqXSA9IHVbal07XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaiA9IDI7IGogPD0gaXRlcmF0aW9uczsgaisrKSB7XG4gICAgICAgICAgICBwcmYucmVzZXQoKTtcbiAgICAgICAgICAgIHByZi51cGRhdGUodSkuZmluaXNoKHUpO1xuICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICAgIHRba10gXj0gdVtrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbiAmJiBpICogbGVuICsgaiA8IGRrTGVuOyBqKyspIHtcbiAgICAgICAgICAgIGRrW2kgKiBsZW4gKyBqXSA9IHRbal07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB0W2ldID0gdVtpXSA9IDA7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIGN0cltpXSA9IDA7XG4gICAgfVxuICAgIHByZi5jbGVhbigpO1xuICAgIHJldHVybiBkaztcbn1cbmV4cG9ydHMucGJrZGYyID0gcGJrZGYyO1xufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbmNvbnN0IHBlcSA9IG5ldyBVaW50MzJBcnJheSgweDEwMDAwKTtcbmNvbnN0IG15ZXJzXzMyID0gKGEsIGIpID0+IHtcbiAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICBjb25zdCBtID0gYi5sZW5ndGg7XG4gIGNvbnN0IGxzdCA9IDEgPDwgKG4gLSAxKTtcbiAgbGV0IHB2ID0gLTE7XG4gIGxldCBtdiA9IDA7XG4gIGxldCBzYyA9IG47XG4gIGxldCBpID0gbjtcbiAgd2hpbGUgKGktLSkge1xuICAgIHBlcVthLmNoYXJDb2RlQXQoaSldIHw9IDEgPDwgaTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgbGV0IGVxID0gcGVxW2IuY2hhckNvZGVBdChpKV07XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGVxIHw9ICgoZXEgJiBwdikgKyBwdikgXiBwdjtcbiAgICBtdiB8PSB+KGVxIHwgcHYpO1xuICAgIHB2ICY9IGVxO1xuICAgIGlmIChtdiAmIGxzdCkge1xuICAgICAgc2MrKztcbiAgICB9XG4gICAgaWYgKHB2ICYgbHN0KSB7XG4gICAgICBzYy0tO1xuICAgIH1cbiAgICBtdiA9IChtdiA8PCAxKSB8IDE7XG4gICAgcHYgPSAocHYgPDwgMSkgfCB+KHh2IHwgbXYpO1xuICAgIG12ICY9IHh2O1xuICB9XG4gIGkgPSBuO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcGVxW2EuY2hhckNvZGVBdChpKV0gPSAwO1xuICB9XG4gIHJldHVybiBzYztcbn07XG5cbmNvbnN0IG15ZXJzX3ggPSAoYSwgYikgPT4ge1xuICBjb25zdCBuID0gYS5sZW5ndGg7XG4gIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgY29uc3QgbWhjID0gW107XG4gIGNvbnN0IHBoYyA9IFtdO1xuICBjb25zdCBoc2l6ZSA9IE1hdGguY2VpbChuIC8gMzIpO1xuICBjb25zdCB2c2l6ZSA9IE1hdGguY2VpbChtIC8gMzIpO1xuICBsZXQgc2NvcmUgPSBtO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGhzaXplOyBpKyspIHtcbiAgICBwaGNbaV0gPSAtMTtcbiAgICBtaGNbaV0gPSAwO1xuICB9XG4gIGxldCBqID0gMDtcbiAgZm9yICg7IGogPCB2c2l6ZSAtIDE7IGorKykge1xuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHB2ID0gLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oMzIsIG0pICsgc3RhcnQ7XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgICB9XG4gICAgc2NvcmUgPSBtO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgICAgaWYgKChwaCA+Pj4gMzEpIF4gcGIpIHtcbiAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgaWYgKChtaCA+Pj4gMzEpIF4gbWIpIHtcbiAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgIG12ID0gcGggJiB4djtcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICB9XG4gIH1cbiAgbGV0IG12ID0gMDtcbiAgbGV0IHB2ID0gLTE7XG4gIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICBjb25zdCBlbmQgPSBNYXRoLm1pbigzMiwgbSAtIHN0YXJ0KSArIHN0YXJ0O1xuICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCBlbmQ7IGsrKykge1xuICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgfVxuICBzY29yZSA9IG07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICBzY29yZSArPSAocGggPj4+IChtIC0gMSkpICYgMTtcbiAgICBzY29yZSAtPSAobWggPj4+IChtIC0gMSkpICYgMTtcbiAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgbXYgPSBwaCAmIHh2O1xuICB9XG4gIGZvciAobGV0IGsgPSBzdGFydDsgayA8IGVuZDsgaysrKSB7XG4gICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICB9XG4gIHJldHVybiBzY29yZTtcbn07XG5cbmNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IHtcbiAgaWYgKGEubGVuZ3RoID4gYi5sZW5ndGgpIHtcbiAgICBjb25zdCB0bXAgPSBiO1xuICAgIGIgPSBhO1xuICAgIGEgPSB0bXA7XG4gIH1cbiAgaWYgKGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGIubGVuZ3RoO1xuICB9XG4gIGlmIChhLmxlbmd0aCA8PSAzMikge1xuICAgIHJldHVybiBteWVyc18zMihhLCBiKTtcbiAgfVxuICByZXR1cm4gbXllcnNfeChhLCBiKTtcbn07XG5cbmNvbnN0IGNsb3Nlc3QgPSAoc3RyLCBhcnIpID0+IHtcbiAgbGV0IG1pbl9kaXN0YW5jZSA9IEluZmluaXR5O1xuICBsZXQgbWluX2luZGV4ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBkaXN0ID0gZGlzdGFuY2Uoc3RyLCBhcnJbaV0pO1xuICAgIGlmIChkaXN0IDwgbWluX2Rpc3RhbmNlKSB7XG4gICAgICBtaW5fZGlzdGFuY2UgPSBkaXN0O1xuICAgICAgbWluX2luZGV4ID0gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFyclttaW5faW5kZXhdO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNsb3Nlc3QsIGRpc3RhbmNlXG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvamFyby1hbmQtamFyby13aW5rbGVyLXNpbWlsYXJpdHkvXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphcm9XaW5rbGVyID0gZXhwb3J0cy5qYXJvID0gdm9pZCAwO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBFeGl0IGVhcmx5IGlmIGVpdGhlciBhcmUgZW1wdHkuXG4gICAgaWYgKHN0cjEubGVuZ3RoID09PSAwIHx8IHN0cjIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyIGlmIGNhc2Utc2Vuc2l0aXZlIGlzIGZhbHNlLlxuICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgc3RyMSA9IHN0cjEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgc3RyMiA9IHN0cjIudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgLy8gRXhhY3QgbWF0Y2hcbiAgICBpZiAoc3RyMSA9PT0gc3RyMikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgLy8gTnVtYmVyIG9mIG1hdGNoZXNcbiAgICB2YXIgbSA9IDA7XG4gICAgLy8gTGVuZ3RoIG9mIHR3byBTdHJpbmdzXG4gICAgdmFyIGxlbjEgPSBzdHIxLmxlbmd0aDtcbiAgICB2YXIgbGVuMiA9IHN0cjIubGVuZ3RoO1xuICAgIC8vIE1heGltdW0gZGlzdGFuY2VcbiAgICB2YXIgd2luZG93ID0gTWF0aC5mbG9vcihNYXRoLm1heChsZW4xLCBsZW4yKSAvIDIpIC0gMTtcbiAgICAvLyBIYXNoIGZvciBtYXRjaGVzXG4gICAgdmFyIHN0cjFIYXNoID0gbmV3IEFycmF5KGxlbjEpO1xuICAgIHZhciBzdHIySGFzaCA9IG5ldyBBcnJheShsZW4yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgaSAtIHdpbmRvdyk7IGogPD0gTWF0aC5taW4obGVuMiwgaSArIHdpbmRvdyArIDEpOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghc3RyMUhhc2hbaV0gJiYgIXN0cjJIYXNoW2pdICYmIHN0cjFbaV0gPT09IHN0cjJbal0pIHtcbiAgICAgICAgICAgICAgICArK207XG4gICAgICAgICAgICAgICAgc3RyMUhhc2hbaV0gPSBzdHIySGFzaFtqXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdCBlYXJseSBpZiBubyBtYXRjaGVzIHdlcmUgZm91bmQuXG4gICAgaWYgKG0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvdW50IHRoZSB0cmFuc3Bvc2l0aW9ucy5cbiAgICB2YXIgdCA9IDA7XG4gICAgdmFyIHBvaW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBpZiAoc3RyMUhhc2hbaV0pIHtcbiAgICAgICAgICAgIHdoaWxlICghc3RyMkhhc2hbcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIxLmNoYXJBdChpKSAhPT0gc3RyMi5jaGFyQXQocG9pbnQrKykpIHtcbiAgICAgICAgICAgICAgICB0Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdCAvPSAyO1xuICAgIHJldHVybiAobSAvIGxlbjEgKyBtIC8gbGVuMiArIChtIC0gdCkgLyBtKSAvIDM7XG59XG5leHBvcnRzLmphcm8gPSBqYXJvO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvV2lua2xlcihzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gSmFybyBEaXN0YW5jZVxuICAgIHZhciBqYXJvRGlzdCA9IGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucyk7XG4gICAgLy8gU2FtZSBwcmVmaXggbGVuZ3RoLCBtYXhpdW0gaXMgNFxuICAgIHZhciBwcmVmaXggPSAwO1xuICAgIGlmIChqYXJvRGlzdCA+IDAuNykge1xuICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRoLm1pbihzdHIxLmxlbmd0aCwgc3RyMi5sZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChzdHIxW2ldID09PSBzdHIyW2ldICYmIGkgPCA0ICYmIGkgPCBtaW5JbmRleCkge1xuICAgICAgICAgICAgKytwcmVmaXg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgamFyb0Rpc3QgKz0gMC4xICogcHJlZml4ICogKDEgLSBqYXJvRGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBqYXJvRGlzdDtcbn1cbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBqYXJvV2lua2xlcjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5jb25zdCBWMjAwMF9BVE9NX05BTUVfUE9TID0gMzE7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RmluZ2VycHJpbnRzKG1vbHMsIG1vbm9tZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9kID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBjb25zdCBmcHMgPSBbXTtcbiAgICAgICAgbGV0IGRpY3QgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9ub21lcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBkaWN0LnNldChtb25vbWVyc1tpXSwgYFIke01hdGgucG93KDEwLCAoaSArIDEpKX1gKTtcbiAgICAgICAgbW9scyA9IGNoYW5nZVRvVjMwMDAobW9scywgZGljdCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kLmdldF9tb2wobW9sc1tpXSk7XG4gICAgICAgICAgICBjb25zdCBmcCA9IG1vbC5nZXRfcGF0dGVybl9mcF9hc191aW50OGFycmF5KCk7XG4gICAgICAgICAgICBmcHMucHVzaChmcCk7XG4gICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZwcztcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYW5nZVRvVjMwMDAobW9scywgZGljdCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3VyUG9zID0gMDtcbiAgICAgICAgbGV0IGVuZFBvcyA9IDA7XG4gICAgICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgICBEYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBWMzAgQkVHSU4gQ1RBQlxuYDtcbiAgICAgICAgY29uc3QgbW9sID0gbW9sc1tpXTtcbiAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxO1xuICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgY29uc3QgYXRvbU1vbm9tZXJDb3VudHMgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykpO1xuICAgICAgICBjb25zdCBib25kTW9ub21lckNvdW50cyA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgMywgY3VyUG9zICsgNikpO1xuICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwIENPVU5UUyAke2F0b21Nb25vbWVyQ291bnRzfSAke2JvbmRNb25vbWVyQ291bnRzfSAwIDAgMFxcbmA7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgQkVHSU4gQVRPTVxcbic7XG4gICAgICAgIGZvciAobGV0IGF0b21Sb3dJID0gMDsgYXRvbVJvd0kgPCBhdG9tTW9ub21lckNvdW50czsgYXRvbVJvd0krKykge1xuICAgICAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxICsgVjIwMDBfQVRPTV9OQU1FX1BPUztcbiAgICAgICAgICAgIGVuZFBvcyA9IG1vbC5pbmRleE9mKCcgJywgY3VyUG9zKTtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJOYW1lID0gbW9sLnN1YnN0cmluZyhjdXJQb3MsIGVuZFBvcyk7XG4gICAgICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSAke2RpY3QuZ2V0KG1vbm9tZXJOYW1lKX0gMC4wMDAgMC4wMDAgMCAwXFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBBVE9NXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBCRUdJTiBCT05EXFxuJztcbiAgICAgICAgZm9yIChsZXQgYm9uZFJvd0kgPSAwOyBib25kUm93SSA8IGJvbmRNb25vbWVyQ291bnRzOyBib25kUm93SSsrKSB7XG4gICAgICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykudHJpbSgpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcyArIDMsIGN1clBvcyArIDYpLnRyaW0oKSk7XG4gICAgICAgICAgICBjb25zdCBvcmRlciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgNiwgY3VyUG9zICsgOSkudHJpbSgpKTtcbiAgICAgICAgICAgIG1vbFYzMDAwICs9IGBNICBWMzAgJHtib25kUm93SSArIDF9ICR7b3JkZXJ9ICR7Zmlyc3RNb25vbWVyfSAke3NlY29uZE1vbm9tZXJ9XFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBCT05EXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBFTkQgQ1RBQlxcbic7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBFTkQnO1xuICAgICAgICBjb25zb2xlLmxvZyhtb2xWMzAwMCk7XG4gICAgICAgIG1vbHNbaV0gPSBtb2xWMzAwMDtcbiAgICB9XG4gICAgcmV0dXJuIG1vbHM7XG59XG4iLCJleHBvcnQgY29uc3QganNvblNkZk1vbm9tZXJMaWJEaWN0ID0ge1xuICAgICdtb25vbWVyVHlwZSc6IG51bGwsXG4gICAgJ3NtaWxlcyc6IG51bGwsXG4gICAgJ25hbWUnOiAnTW9ub21lck5hbWUnLFxuICAgICdhdXRob3InOiBudWxsLFxuICAgICdtb2xmaWxlJzogJ21vbGVjdWxlJyxcbiAgICAnbmF0dXJhbEFuYWxvZyc6ICdNb25vbWVyTmF0dXJhbEFuYWxvZ0NvZGUnLFxuICAgICdyZ3JvdXBzJzogJ01vbm9tZXJDYXBzJyxcbiAgICAnY3JlYXRlRGF0ZSc6IG51bGwsXG4gICAgJ2lkJzogbnVsbCxcbiAgICAncG9seW1lclR5cGUnOiAnTW9ub21lclR5cGUnLFxuICAgICdzeW1ib2wnOiAnTW9ub21lckNvZGUnXG59O1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9GSUVMRCA9ICdyZ3JvdXBzJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfU01JTEVTID0gJ2NhcEdyb3VwU21pbGVzJztcbmV4cG9ydCBjb25zdCBSR1JPVVBfQUxURVJfSUQgPSAnYWx0ZXJuYXRlSWQnO1xuZXhwb3J0IGNvbnN0IENBUF9HUk9VUF9OQU1FID0gJ2NhcEdyb3VwTmFtZSc7XG5leHBvcnQgY29uc3QgUkdST1VQX0xBQkVMID0gJ2xhYmVsJztcbmV4cG9ydCBjb25zdCBNT05PTUVSX1NZTUJPTCA9ICdzeW1ib2wnO1xuZXhwb3J0IGNvbnN0IFNERl9NT05PTUVSX05BTUUgPSAnTW9ub21lck5hbWUnO1xuLy8gcmFuZ2Ugb2YgaGV4IG51YmVycyB1c2VkIGluIFBlcFNlYSBsaWJyYXJ5IHRvIGVuZG9kZSBtb25vbWVyc1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01JTiA9IDB4MTAwO1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01BWCA9IDB4NDBBO1xuIiwiY2xhc3MgQ2VsbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEkgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEogPSAwO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBBbGlnbmVkIHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIHNjb3JlXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMuc2NvcmUgPSBzY29yZV87XG4gICAgfVxufVxuO1xuZXhwb3J0IGNsYXNzIFNlcXVlbmNlQWxpZ25tZW50IHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIGdhcF8sIGFsaWduR3JpZF8gPSBcIlwiKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9ICcnO1xuICAgICAgICB0aGlzLnNlcTIgPSAnJztcbiAgICAgICAgdGhpcy5nYXAgPSAxO1xuICAgICAgICB0aGlzLmxlbjEgPSAwO1xuICAgICAgICB0aGlzLmxlbjIgPSAwO1xuICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICB0aGlzLmFsaWduR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0ge307XG4gICAgICAgIHRoaXMuQkxPU1VNNDUgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCA3LCAwLCAtMSwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDMsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDYsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtMiwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAyLCA3LCAtMywgMCwgMiwgLTEsIDAsIC00LCAtMywgMCwgLTMsIC00LCAtMSwgMCwgLTEsIC00LCAtMiwgLTMsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTMsIDEyLCAtMywgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMiwgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA2LCAyLCAtMiwgMSwgLTIsIC0yLCAxLCAwLCAtNCwgLTEsIDAsIC0xLCAtMiwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTIsIDAsIC0zLCAtMiwgMSwgLTIsIC0zLCAwLCAwLCAtMSwgLTMsIC0yLCAtMywgMSwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTEsIC0zLCAtMiwgLTIsIDcsIC0yLCAtNCwgLTMsIC0yLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAwLCAtMywgMSwgMCwgLTIsIDEwLCAtMywgLTIsIC0xLCAwLCAtMiwgLTIsIC0xLCAtMiwgLTMsIDIsIC0zLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC00LCAtMywgLTIsIC0zLCAtNCwgLTMsIDUsIDIsIC0zLCAyLCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMywgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC0zLCAtMiwgLTIsIC0yLCAtMywgLTIsIDIsIDUsIC0zLCAyLCAxLCAtMywgLTMsIC0xLCAtMiwgMCwgMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAwLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTMsIDUsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMiwgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0yLCAtMywgLTIsIDAsIC0yLCAtMiwgMCwgMiwgMiwgLTEsIDYsIDAsIC0yLCAtMiwgLTEsIC0yLCAwLCAxLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTQsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgMSwgLTMsIDAsIDgsIC0zLCAtMiwgLTEsIDEsIDMsIDAsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMSwgLTQsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgOSwgLTEsIC0xLCAtMywgLTMsIC0zLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMSwgNCwgMiwgLTQsIC0yLCAtMSwgMCwgMCwgMCwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyLCA1LCAtMywgLTEsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtNCwgLTQsIC01LCAtMiwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIDEsIC0zLCAtNCwgLTMsIDE1LCAzLCAtMywgLTQsIC0yLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgMiwgMCwgMCwgLTEsIDAsIDMsIC0zLCAtMiwgLTEsIDMsIDgsIC0xLCAtMiwgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIC0zLCAtMywgLTEsIC0zLCAtMywgLTMsIC0zLCAzLCAxLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMywgLTEsIDUsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDQsIDUsIC0yLCAwLCAxLCAtMSwgMCwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAwLCAwLCAtNCwgLTIsIC0zLCA0LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNCwgLTIsIDAsIC0zLCAtMiwgMSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAwLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNNTAgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgLTEsIC0yLCAtNCwgMSwgMCwgLTMsIDAsIC00LCAtMywgMywgLTIsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0zLCAtMSwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDcsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMywgLTQsIDAsIC0yLCAtNCwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAyLCA4LCAtNCwgMCwgMiwgLTEsIC0xLCAtNCwgLTQsIC0xLCAtNCwgLTUsIC0xLCAwLCAtMSwgLTUsIC0zLCAtNCwgNSwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC0yLCAtNCwgMTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTIsIC0zLCAtMiwgLTIsIC00LCAtMSwgLTEsIC01LCAtMywgLTEsIC0zLCAtMywgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDcsIDIsIC0yLCAxLCAtMywgLTIsIDIsIDAsIC00LCAtMSwgMCwgLTEsIC0xLCAtMSwgLTMsIDAsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC0zLCAyLCA2LCAtMywgMCwgLTQsIC0zLCAxLCAtMiwgLTMsIC0xLCAtMSwgLTEsIC0zLCAtMiwgLTMsIDEsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTMsIDAsIC0xLCAtMywgLTIsIC0zLCA4LCAtMiwgLTQsIC00LCAtMiwgLTMsIC00LCAtMiwgMCwgLTIsIC0zLCAtMywgLTQsIC0xLCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAxLCAwLCAtMiwgMTAsIC00LCAtMywgMCwgLTEsIC0xLCAtMiwgLTEsIC0yLCAtMywgMiwgLTQsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMywgLTQsIC0yLCAtMywgLTQsIC00LCAtNCwgNSwgMiwgLTMsIDIsIDAsIC0zLCAtMywgLTEsIC0zLCAtMSwgNCwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC00LCAtMiwgLTIsIC0zLCAtNCwgLTMsIDIsIDUsIC0zLCAzLCAxLCAtNCwgLTMsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTEsIC0zLCAyLCAxLCAtMiwgMCwgLTMsIC0zLCA2LCAtMiwgLTQsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMywgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtNCwgLTIsIDAsIC0yLCAtMywgLTEsIDIsIDMsIC0yLCA3LCAwLCAtMywgLTIsIC0xLCAtMSwgMCwgMSwgLTMsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC01LCAtMiwgLTQsIC0zLCAtNCwgLTEsIDAsIDEsIC00LCAwLCA4LCAtNCwgLTMsIC0yLCAxLCA0LCAtMSwgLTQsIC00LCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0xLCAtNCwgLTEsIC0xLCAtMiwgLTIsIC0zLCAtNCwgLTEsIC0zLCAtNCwgMTAsIC0xLCAtMSwgLTQsIC0zLCAtMywgLTIsIC0xLCAtMiwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgLTEsIDAsIC0xLCAtMywgLTMsIDAsIC0yLCAtMywgLTEsIDUsIDIsIC00LCAtMiwgLTIsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDIsIDUsIC0zLCAtMiwgMCwgMCwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTUsIC0xLCAtMywgLTMsIC0zLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC00LCAtMywgMTUsIDIsIC0zLCAtNSwgLTIsIC0zLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAwLCA0LCAtMywgLTIsIC0yLCAyLCA4LCAtMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTQsIC0xLCAtMywgLTMsIC00LCAtNCwgNCwgMSwgLTMsIDEsIC0xLCAtMywgLTIsIDAsIC0zLCAtMSwgNSwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNCwgNSwgLTMsIDAsIDEsIC0xLCAwLCAtNCwgLTQsIDAsIC0zLCAtNCwgLTIsIDAsIDAsIC01LCAtMywgLTQsIDUsIDIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCA0LCA1LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTQsIC0xLCAwLCAtMSwgLTIsIC0yLCAtMywgMiwgNSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgMCwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTYyID0gW1s0LCAtMSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgMCwgLTRdLFxuICAgICAgICAgICAgWy0xLCA1LCAwLCAtMiwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDIsIC0xLCAtMywgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMywgLTEsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDYsIDEsIC0zLCAwLCAwLCAwLCAxLCAtMywgLTMsIDAsIC0yLCAtMywgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDMsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAxLCA2LCAtMywgMCwgMiwgLTEsIC0xLCAtMywgLTQsIC0xLCAtMywgLTMsIC0xLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCA5LCAtMywgLTQsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0yLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMywgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA1LCAyLCAtMiwgMCwgLTMsIC0yLCAxLCAwLCAtMywgLTEsIDAsIC0xLCAtMiwgLTEsIC0yLCAwLCAzLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtNCwgMiwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTIsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDEsIDQsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA2LCAtMiwgLTQsIC00LCAtMiwgLTMsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAwLCAwLCAtMiwgOCwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtMiwgLTEsIC0yLCAtMiwgMiwgLTMsIDAsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMywgLTMsIC0xLCAtMywgLTMsIC00LCAtMywgNCwgMiwgLTMsIDEsIDAsIC0zLCAtMiwgLTEsIC0zLCAtMSwgMywgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC00LCAtMSwgLTIsIC0zLCAtNCwgLTMsIDIsIDQsIC0yLCAyLCAwLCAtMywgLTIsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC0zLCAxLCAxLCAtMiwgLTEsIC0zLCAtMiwgNSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDAsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0xLCAwLCAtMiwgLTMsIC0yLCAxLCAyLCAtMSwgNSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAxLCAtMywgLTEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTMsIC0yLCAtMywgLTMsIC0zLCAtMSwgMCwgMCwgLTMsIDAsIDYsIC00LCAtMiwgLTIsIDEsIDMsIC0xLCAtMywgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC0zLCAtMSwgLTEsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC00LCA3LCAtMSwgLTEsIC00LCAtMywgLTIsIC0yLCAtMSwgLTIsIC00XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIDAsIDAsIC0xLCAtMiwgLTIsIDAsIC0xLCAtMiwgLTEsIDQsIDEsIC0zLCAtMiwgLTIsIDAsIDAsIDAsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgNSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC0zLCAtMiwgMTEsIDIsIC0zLCAtNCwgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTMsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAtMSwgMywgLTMsIC0yLCAtMiwgMiwgNywgLTEsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAtMywgLTMsIDMsIDEsIC0yLCAxLCAtMSwgLTIsIC0yLCAwLCAtMywgLTEsIDQsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDMsIDQsIC0zLCAwLCAxLCAtMSwgMCwgLTMsIC00LCAwLCAtMywgLTMsIC0yLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDMsIDQsIC0yLCAwLCAtMywgLTMsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTgwID0gW1s3LCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAwLCAtMywgLTMsIC0zLCAtMSwgLTIsIC00LCAtMSwgMiwgMCwgLTUsIC00LCAtMSwgLTMsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCA5LCAtMSwgLTMsIC02LCAxLCAtMSwgLTQsIDAsIC01LCAtNCwgMywgLTMsIC01LCAtMywgLTIsIC0yLCAtNSwgLTQsIC00LCAtMiwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTEsIDksIDIsIC01LCAwLCAtMSwgLTEsIDEsIC02LCAtNiwgMCwgLTQsIC02LCAtNCwgMSwgMCwgLTcsIC00LCAtNSwgNSwgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAyLCAxMCwgLTcsIC0xLCAyLCAtMywgLTIsIC03LCAtNywgLTIsIC02LCAtNiwgLTMsIC0xLCAtMiwgLTgsIC02LCAtNiwgNiwgMSwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC01LCAtNywgMTMsIC01LCAtNywgLTYsIC03LCAtMiwgLTMsIC02LCAtMywgLTQsIC02LCAtMiwgLTIsIC01LCAtNSwgLTIsIC02LCAtNywgLTQsIC04XSxcbiAgICAgICAgICAgIFstMiwgMSwgMCwgLTEsIC01LCA5LCAzLCAtNCwgMSwgLTUsIC00LCAyLCAtMSwgLTUsIC0zLCAtMSwgLTEsIC00LCAtMywgLTQsIC0xLCA1LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTEsIDIsIC03LCAzLCA4LCAtNCwgMCwgLTYsIC02LCAxLCAtNCwgLTYsIC0yLCAtMSwgLTIsIC02LCAtNSwgLTQsIDEsIDYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTQsIC0xLCAtMywgLTYsIC00LCAtNCwgOSwgLTQsIC03LCAtNywgLTMsIC01LCAtNiwgLTUsIC0xLCAtMywgLTYsIC02LCAtNiwgLTIsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0zLCAwLCAxLCAtMiwgLTcsIDEsIDAsIC00LCAxMiwgLTYsIC01LCAtMSwgLTQsIC0yLCAtNCwgLTIsIC0zLCAtNCwgMywgLTUsIC0xLCAwLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNSwgLTYsIC03LCAtMiwgLTUsIC02LCAtNywgLTYsIDcsIDIsIC01LCAyLCAtMSwgLTUsIC00LCAtMiwgLTUsIC0zLCA0LCAtNiwgLTYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNiwgLTcsIC0zLCAtNCwgLTYsIC03LCAtNSwgMiwgNiwgLTQsIDMsIDAsIC01LCAtNCwgLTMsIC00LCAtMiwgMSwgLTcsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAtMiwgLTYsIDIsIDEsIC0zLCAtMSwgLTUsIC00LCA4LCAtMywgLTUsIC0yLCAtMSwgLTEsIC02LCAtNCwgLTQsIC0xLCAxLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC02LCAtMywgLTEsIC00LCAtNSwgLTQsIDIsIDMsIC0zLCA5LCAwLCAtNCwgLTMsIC0xLCAtMywgLTMsIDEsIC01LCAtMywgLTIsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTUsIC02LCAtNiwgLTQsIC01LCAtNiwgLTYsIC0yLCAtMSwgMCwgLTUsIDAsIDEwLCAtNiwgLTQsIC00LCAwLCA0LCAtMiwgLTYsIC02LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC0zLCAtNiwgLTMsIC0yLCAtNSwgLTQsIC01LCAtNSwgLTIsIC00LCAtNiwgMTIsIC0yLCAtMywgLTcsIC02LCAtNCwgLTQsIC0yLCAtMywgLThdLFxuICAgICAgICAgICAgWzIsIC0yLCAxLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtNCwgLTQsIC0xLCAtMywgLTQsIC0yLCA3LCAyLCAtNiwgLTMsIC0zLCAwLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMywgLTIsIC0zLCAtMSwgLTEsIC00LCAtMywgMiwgOCwgLTUsIC0zLCAwLCAtMSwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNywgLTgsIC01LCAtNCwgLTYsIC02LCAtNCwgLTUsIC00LCAtNiwgLTMsIDAsIC03LCAtNiwgLTUsIDE2LCAzLCAtNSwgLTgsIC01LCAtNSwgLThdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC02LCAtNSwgLTMsIC01LCAtNiwgMywgLTMsIC0yLCAtNCwgLTMsIDQsIC02LCAtMywgLTMsIDMsIDExLCAtMywgLTUsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTUsIC02LCAtMiwgLTQsIC00LCAtNiwgLTUsIDQsIDEsIC00LCAxLCAtMiwgLTQsIC0zLCAwLCAtNSwgLTMsIDcsIC02LCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTIsIDUsIDYsIC02LCAtMSwgMSwgLTIsIC0xLCAtNiwgLTcsIC0xLCAtNSwgLTYsIC00LCAwLCAtMSwgLTgsIC01LCAtNiwgNiwgMCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDEsIC03LCA1LCA2LCAtNCwgMCwgLTYsIC01LCAxLCAtMywgLTYsIC0yLCAtMSwgLTIsIC01LCAtNCwgLTQsIDAsIDYsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTMsIC00LCAtMiwgLTIsIC0zLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0xLCAtNSwgLTMsIC0yLCAtMywgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNOTAgPSBbWzUsIC0yLCAtMiwgLTMsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTMsIC0xLCAxLCAwLCAtNCwgLTMsIC0xLCAtMiwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTIsIDYsIC0xLCAtMywgLTUsIDEsIC0xLCAtMywgMCwgLTQsIC0zLCAyLCAtMiwgLTQsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIC0yLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNywgMSwgLTQsIDAsIC0xLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0zLCAwLCAwLCAtNSwgLTMsIC00LCA0LCAtMSwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIDEsIDcsIC01LCAtMSwgMSwgLTIsIC0yLCAtNSwgLTUsIC0xLCAtNCwgLTUsIC0zLCAtMSwgLTIsIC02LCAtNCwgLTUsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC01LCAtNCwgLTUsIDksIC00LCAtNiwgLTQsIC01LCAtMiwgLTIsIC00LCAtMiwgLTMsIC00LCAtMiwgLTIsIC00LCAtNCwgLTIsIC00LCAtNSwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgLTEsIC00LCA3LCAyLCAtMywgMSwgLTQsIC0zLCAxLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTMsIC0zLCAtMywgLTEsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgMSwgLTYsIDIsIDYsIC0zLCAtMSwgLTQsIC00LCAwLCAtMywgLTUsIC0yLCAtMSwgLTEsIC01LCAtNCwgLTMsIDAsIDQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMCwgLTMsIC0xLCAtMiwgLTQsIC0zLCAtMywgNiwgLTMsIC01LCAtNSwgLTIsIC00LCAtNSwgLTMsIC0xLCAtMywgLTQsIC01LCAtNSwgLTIsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAwLCAwLCAtMiwgLTUsIDEsIC0xLCAtMywgOCwgLTQsIC00LCAtMSwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMywgMSwgLTQsIC0xLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAtMiwgLTQsIC00LCAtNSwgLTQsIDUsIDEsIC00LCAxLCAtMSwgLTQsIC0zLCAtMSwgLTQsIC0yLCAzLCAtNSwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTQsIC01LCAtNCwgMSwgNSwgLTMsIDIsIDAsIC00LCAtMywgLTIsIC0zLCAtMiwgMCwgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAyLCAwLCAtMSwgLTQsIDEsIDAsIC0yLCAtMSwgLTQsIC0zLCA2LCAtMiwgLTQsIC0yLCAtMSwgLTEsIC01LCAtMywgLTMsIC0xLCAxLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTMsIC00LCAtMiwgMCwgLTMsIC00LCAtMywgMSwgMiwgLTIsIDcsIC0xLCAtMywgLTIsIC0xLCAtMiwgLTIsIDAsIC00LCAtMiwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMywgLTQsIC00LCAtNSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMSwgMCwgLTQsIC0xLCA3LCAtNCwgLTMsIC0zLCAwLCAzLCAtMiwgLTQsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTMsIC00LCAtNCwgLTIsIC0zLCAtNCwgOCwgLTIsIC0yLCAtNSwgLTQsIC0zLCAtMywgLTIsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgLTIsIDUsIDEsIC00LCAtMywgLTIsIDAsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0yLCAxLCA2LCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNSwgLTYsIC00LCAtMywgLTUsIC00LCAtMywgLTQsIC0zLCAtNSwgLTIsIDAsIC01LCAtNCwgLTQsIDExLCAyLCAtMywgLTYsIC00LCAtMywgLTZdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTMsIC00LCAtNCwgLTMsIC00LCAtNSwgMSwgLTIsIC0yLCAtMywgLTIsIDMsIC00LCAtMywgLTIsIDIsIDgsIC0zLCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTMsIC01LCAtNCwgMywgMCwgLTMsIDAsIC0yLCAtMywgLTIsIC0xLCAtMywgLTMsIDUsIC00LCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDQsIDQsIC00LCAtMSwgMCwgLTIsIC0xLCAtNSwgLTUsIC0xLCAtNCwgLTQsIC0zLCAwLCAtMSwgLTYsIC00LCAtNCwgNCwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTEsIDAsIC01LCA0LCA0LCAtMywgMCwgLTQsIC00LCAxLCAtMiwgLTQsIC0yLCAtMSwgLTEsIC00LCAtMywgLTMsIDAsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0yLCAtMiwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAxXV07XG4gICAgICAgIHRoaXMuTlVDTEVPVElERVMgPSBbWzEsIC0xLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAxLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0zMCA9IFtbNiwgLTcsIC00LCAtMywgLTYsIC00LCAtMiwgLTIsIC03LCAtNSwgLTYsIC03LCAtNSwgLTgsIC0yLCAwLCAtMSwgLTEzLCAtOCwgLTIsIC0zLCAtMywgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTcsIDgsIC02LCAtMTAsIC04LCAtMiwgLTksIC05LCAtMiwgLTUsIC04LCAwLCAtNCwgLTksIC00LCAtMywgLTYsIC0yLCAtMTAsIC04LCAtNywgLTQsIC02LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtNiwgOCwgMiwgLTExLCAtMywgLTIsIC0zLCAwLCAtNSwgLTcsIC0xLCAtOSwgLTksIC02LCAwLCAtMiwgLTgsIC00LCAtOCwgNiwgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtMTAsIDIsIDgsIC0xNCwgLTIsIDIsIC0zLCAtNCwgLTcsIC0xMiwgLTQsIC0xMSwgLTE1LCAtOCwgLTQsIC01LCAtMTUsIC0xMSwgLTgsIDYsIDEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy02LCAtOCwgLTExLCAtMTQsIDEwLCAtMTQsIC0xNCwgLTksIC03LCAtNiwgLTE1LCAtMTQsIC0xMywgLTEzLCAtOCwgLTMsIC04LCAtMTUsIC00LCAtNiwgLTEyLCAtMTQsIC05LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtMiwgLTMsIC0yLCAtMTQsIDgsIDEsIC03LCAxLCAtOCwgLTUsIC0zLCAtNCwgLTEzLCAtMywgLTUsIC01LCAtMTMsIC0xMiwgLTcsIC0zLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0yLCAyLCAtMTQsIDEsIDgsIC00LCAtNSwgLTUsIC05LCAtNCwgLTcsIC0xNCwgLTUsIC00LCAtNiwgLTE3LCAtOCwgLTYsIDEsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOSwgLTMsIC0zLCAtOSwgLTcsIC00LCA2LCAtOSwgLTExLCAtMTAsIC03LCAtOCwgLTksIC02LCAtMiwgLTYsIC0xNSwgLTE0LCAtNSwgLTMsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNywgLTIsIDAsIC00LCAtNywgMSwgLTUsIC05LCA5LCAtOSwgLTYsIC02LCAtMTAsIC02LCAtNCwgLTYsIC03LCAtNywgLTMsIC02LCAtMSwgLTEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC03LCAtNiwgLTgsIC01LCAtMTEsIC05LCA4LCAtMSwgLTYsIC0xLCAtMiwgLTgsIC03LCAtMiwgLTE0LCAtNiwgMiwgLTYsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC03LCAtMTIsIC0xNSwgLTUsIC05LCAtMTAsIC02LCAtMSwgNywgLTgsIDEsIC0zLCAtNywgLTgsIC03LCAtNiwgLTcsIC0yLCAtOSwgLTcsIC02LCAtMTddLFxuICAgICAgICAgICAgWy03LCAwLCAtMSwgLTQsIC0xNCwgLTMsIC00LCAtNywgLTYsIC02LCAtOCwgNywgLTIsIC0xNCwgLTYsIC00LCAtMywgLTEyLCAtOSwgLTksIC0yLCAtNCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTUsIC00LCAtOSwgLTExLCAtMTMsIC00LCAtNywgLTgsIC0xMCwgLTEsIDEsIC0yLCAxMSwgLTQsIC04LCAtNSwgLTQsIC0xMywgLTExLCAtMSwgLTEwLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC05LCAtOSwgLTE1LCAtMTMsIC0xMywgLTE0LCAtOSwgLTYsIC0yLCAtMywgLTE0LCAtNCwgOSwgLTEwLCAtNiwgLTksIC00LCAyLCAtOCwgLTEwLCAtMTMsIC04LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTYsIC04LCAtOCwgLTMsIC01LCAtNiwgLTQsIC04LCAtNywgLTYsIC04LCAtMTAsIDgsIC0yLCAtNCwgLTE0LCAtMTMsIC02LCAtNywgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtNCwgLTMsIC01LCAtNCwgLTIsIC02LCAtNywgLTgsIC00LCAtNSwgLTYsIC0yLCA2LCAwLCAtNSwgLTcsIC02LCAtMSwgLTUsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0xLCAtNiwgLTIsIC01LCAtOCwgLTUsIC02LCAtNiwgLTcsIC0yLCAtNywgLTMsIC00LCAtOSwgLTQsIDAsIDcsIC0xMywgLTYsIC0zLCAtMywgLTYsIC00LCAtMTddLFxuICAgICAgICAgICAgWy0xMywgLTIsIC04LCAtMTUsIC0xNSwgLTEzLCAtMTcsIC0xNSwgLTcsIC0xNCwgLTYsIC0xMiwgLTEzLCAtNCwgLTE0LCAtNSwgLTEzLCAxMywgLTUsIC0xNSwgLTEwLCAtMTQsIC0xMSwgLTE3XSxcbiAgICAgICAgICAgIFstOCwgLTEwLCAtNCwgLTExLCAtNCwgLTEyLCAtOCwgLTE0LCAtMywgLTYsIC03LCAtOSwgLTExLCAyLCAtMTMsIC03LCAtNiwgLTUsIDEwLCAtNywgLTYsIC05LCAtNywgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTgsIC04LCAtOCwgLTYsIC03LCAtNiwgLTUsIC02LCAyLCAtMiwgLTksIC0xLCAtOCwgLTYsIC02LCAtMywgLTE1LCAtNywgNywgLTgsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTcsIDYsIDYsIC0xMiwgLTMsIDEsIC0zLCAtMSwgLTYsIC05LCAtMiwgLTEwLCAtMTAsIC03LCAtMSwgLTMsIC0xMCwgLTYsIC04LCA2LCAwLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0zLCAxLCAtMTQsIDYsIDYsIC01LCAtMSwgLTYsIC03LCAtNCwgLTUsIC0xMywgLTQsIC01LCAtNiwgLTE0LCAtOSwgLTYsIDAsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNiwgLTMsIC01LCAtOSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNiwgLTUsIC01LCAtOCwgLTUsIC0zLCAtNCwgLTExLCAtNywgLTUsIC01LCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIDFdXTtcbiAgICAgICAgdGhpcy5QQU03MCA9IFtbNSwgLTQsIC0yLCAtMSwgLTQsIC0yLCAtMSwgMCwgLTQsIC0yLCAtNCwgLTQsIC0zLCAtNiwgMCwgMSwgMSwgLTksIC01LCAtMSwgLTEsIC0xLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstNCwgOCwgLTMsIC02LCAtNSwgMCwgLTUsIC02LCAwLCAtMywgLTYsIDIsIC0yLCAtNywgLTIsIC0xLCAtNCwgMCwgLTcsIC01LCAtNCwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgNiwgMywgLTcsIC0xLCAwLCAtMSwgMSwgLTMsIC01LCAwLCAtNSwgLTYsIC0zLCAxLCAwLCAtNiwgLTMsIC01LCA1LCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC02LCAzLCA2LCAtOSwgMCwgMywgLTEsIC0xLCAtNSwgLTgsIC0yLCAtNywgLTEwLCAtNCwgLTEsIC0yLCAtMTAsIC03LCAtNSwgNSwgMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNywgLTksIDksIC05LCAtOSwgLTYsIC01LCAtNCwgLTEwLCAtOSwgLTksIC04LCAtNSwgLTEsIC01LCAtMTEsIC0yLCAtNCwgLTgsIC05LCAtNiwgLTExXSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDAsIC05LCA3LCAyLCAtNCwgMiwgLTUsIC0zLCAtMSwgLTIsIC05LCAtMSwgLTMsIC0zLCAtOCwgLTgsIC00LCAtMSwgNSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC01LCAwLCAzLCAtOSwgMiwgNiwgLTIsIC0yLCAtNCwgLTYsIC0yLCAtNCwgLTksIC0zLCAtMiwgLTMsIC0xMSwgLTYsIC00LCAyLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFswLCAtNiwgLTEsIC0xLCAtNiwgLTQsIC0yLCA2LCAtNiwgLTYsIC03LCAtNSwgLTYsIC03LCAtMywgMCwgLTMsIC0xMCwgLTksIC0zLCAtMSwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAwLCAxLCAtMSwgLTUsIDIsIC0yLCAtNiwgOCwgLTYsIC00LCAtMywgLTYsIC00LCAtMiwgLTMsIC00LCAtNSwgLTEsIC00LCAwLCAxLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtNSwgLTQsIC01LCAtNCwgLTYsIC02LCA3LCAxLCAtNCwgMSwgMCwgLTUsIC00LCAtMSwgLTksIC00LCAzLCAtNCwgLTQsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNiwgLTUsIC04LCAtMTAsIC0zLCAtNiwgLTcsIC00LCAxLCA2LCAtNSwgMiwgLTEsIC01LCAtNiwgLTQsIC00LCAtNCwgMCwgLTYsIC00LCAtNCwgLTExXSxcbiAgICAgICAgICAgIFstNCwgMiwgMCwgLTIsIC05LCAtMSwgLTIsIC01LCAtMywgLTQsIC01LCA2LCAwLCAtOSwgLTQsIC0yLCAtMSwgLTcsIC03LCAtNiwgLTEsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMywgLTIsIC01LCAtNywgLTksIC0yLCAtNCwgLTYsIC02LCAxLCAyLCAwLCAxMCwgLTIsIC01LCAtMywgLTIsIC04LCAtNywgMCwgLTYsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNiwgLTcsIC02LCAtMTAsIC04LCAtOSwgLTksIC03LCAtNCwgMCwgLTEsIC05LCAtMiwgOCwgLTcsIC00LCAtNiwgLTIsIDQsIC01LCAtNywgLTksIC01LCAtMTFdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTQsIC01LCAtMSwgLTMsIC0zLCAtMiwgLTUsIC01LCAtNCwgLTUsIC03LCA3LCAwLCAtMiwgLTksIC05LCAtMywgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgLTEsIC0xLCAtMywgLTIsIDAsIC0zLCAtNCwgLTYsIC0yLCAtMywgLTQsIDAsIDUsIDIsIC0zLCAtNSwgLTMsIDAsIC0yLCAtMSwgLTExXSxcbiAgICAgICAgICAgIFsxLCAtNCwgMCwgLTIsIC01LCAtMywgLTMsIC0zLCAtNCwgLTEsIC00LCAtMSwgLTIsIC02LCAtMiwgMiwgNiwgLTgsIC00LCAtMSwgLTEsIC0zLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstOSwgMCwgLTYsIC0xMCwgLTExLCAtOCwgLTExLCAtMTAsIC01LCAtOSwgLTQsIC03LCAtOCwgLTIsIC05LCAtMywgLTgsIDEzLCAtMywgLTEwLCAtNywgLTEwLCAtNywgLTExXSxcbiAgICAgICAgICAgIFstNSwgLTcsIC0zLCAtNywgLTIsIC04LCAtNiwgLTksIC0xLCAtNCwgLTQsIC03LCAtNywgNCwgLTksIC01LCAtNCwgLTMsIDksIC01LCAtNCwgLTcsIC01LCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTUsIC01LCAtNCwgLTQsIC00LCAtMywgLTQsIDMsIDAsIC02LCAwLCAtNSwgLTMsIC0zLCAtMSwgLTEwLCAtNSwgNiwgLTUsIC00LCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTQsIDUsIDUsIC04LCAtMSwgMiwgLTEsIDAsIC00LCAtNiwgLTEsIC02LCAtNywgLTQsIDAsIC0xLCAtNywgLTQsIC01LCA1LCAxLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0xLCAyLCAtOSwgNSwgNSwgLTMsIDEsIC00LCAtNCwgLTIsIC0zLCAtOSwgLTIsIC0yLCAtMywgLTEwLCAtNywgLTQsIDEsIDUsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTIsIC0zLCAtNiwgLTIsIC0zLCAtMywgLTMsIC0zLCAtNCwgLTMsIC0zLCAtNSwgLTMsIC0xLCAtMiwgLTcsIC01LCAtMiwgLTIsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgMV1dO1xuICAgICAgICB0aGlzLlBBTTI1MCA9IFtbMiwgLTIsIDAsIDAsIC0yLCAwLCAwLCAxLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0zLCAxLCAxLCAxLCAtNiwgLTMsIDAsIDAsIDAsIDAsIC04XSxcbiAgICAgICAgICAgIFstMiwgNiwgMCwgLTEsIC00LCAxLCAtMSwgLTMsIDIsIC0yLCAtMywgMywgMCwgLTQsIDAsIDAsIC0xLCAyLCAtNCwgLTIsIC0xLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDIsIDIsIC00LCAxLCAxLCAwLCAyLCAtMiwgLTMsIDEsIC0yLCAtMywgMCwgMSwgMCwgLTQsIC0yLCAtMiwgMiwgMSwgMCwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCA0LCAtNSwgMiwgMywgMSwgMSwgLTIsIC00LCAwLCAtMywgLTYsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAxMiwgLTUsIC01LCAtMywgLTMsIC0yLCAtNiwgLTUsIC01LCAtNCwgLTMsIDAsIC0yLCAtOCwgMCwgLTIsIC00LCAtNSwgLTMsIC04XSxcbiAgICAgICAgICAgIFswLCAxLCAxLCAyLCAtNSwgNCwgMiwgLTEsIDMsIC0yLCAtMiwgMSwgLTEsIC01LCAwLCAtMSwgLTEsIC01LCAtNCwgLTIsIDEsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDEsIDMsIC01LCAyLCA0LCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtNSwgLTEsIDAsIDAsIC03LCAtNCwgLTIsIDMsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTMsIDAsIDEsIC0zLCAtMSwgMCwgNSwgLTIsIC0zLCAtNCwgLTIsIC0zLCAtNSwgMCwgMSwgMCwgLTcsIC01LCAtMSwgMCwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMiwgMiwgMSwgLTMsIDMsIDEsIC0yLCA2LCAtMiwgLTIsIDAsIC0yLCAtMiwgMCwgLTEsIC0xLCAtMywgMCwgLTIsIDEsIDIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMiwgNSwgMiwgLTIsIDIsIDEsIC0yLCAtMSwgMCwgLTUsIC0xLCA0LCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAtMiwgMiwgNiwgLTMsIDQsIDIsIC0zLCAtMywgLTIsIC0yLCAtMSwgMiwgLTMsIC0zLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAxLCAwLCAtNSwgMSwgMCwgLTIsIDAsIC0yLCAtMywgNSwgMCwgLTUsIC0xLCAwLCAwLCAtMywgLTQsIC0yLCAxLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAwLCAtMiwgLTMsIC01LCAtMSwgLTIsIC0zLCAtMiwgMiwgNCwgMCwgNiwgMCwgLTIsIC0yLCAtMSwgLTQsIC0yLCAyLCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgLTYsIC00LCAtNSwgLTUsIC01LCAtMiwgMSwgMiwgLTUsIDAsIDksIC01LCAtMywgLTMsIDAsIDcsIC0xLCAtNCwgLTUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMCwgLTEsIC0zLCAwLCAtMSwgMCwgMCwgLTIsIC0zLCAtMSwgLTIsIC01LCA2LCAxLCAwLCAtNiwgLTUsIC0xLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFsxLCAwLCAxLCAwLCAwLCAtMSwgMCwgMSwgLTEsIC0xLCAtMywgMCwgLTIsIC0zLCAxLCAyLCAxLCAtMiwgLTMsIC0xLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIDAsIC0yLCAtMSwgMCwgMCwgLTEsIDAsIC0yLCAwLCAtMSwgLTMsIDAsIDEsIDMsIC01LCAtMywgMCwgMCwgLTEsIDAsIC04XSxcbiAgICAgICAgICAgIFstNiwgMiwgLTQsIC03LCAtOCwgLTUsIC03LCAtNywgLTMsIC01LCAtMiwgLTMsIC00LCAwLCAtNiwgLTIsIC01LCAxNywgMCwgLTYsIC01LCAtNiwgLTQsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0yLCAtNCwgMCwgLTQsIC00LCAtNSwgMCwgLTEsIC0xLCAtNCwgLTIsIDcsIC01LCAtMywgLTMsIDAsIDEwLCAtMiwgLTMsIC00LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0xLCAtMiwgNCwgMiwgLTIsIDIsIC0xLCAtMSwgLTEsIDAsIC02LCAtMiwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCAzLCAtNCwgMSwgMywgMCwgMSwgLTIsIC0zLCAxLCAtMiwgLTQsIC0xLCAwLCAwLCAtNSwgLTMsIC0yLCAzLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDEsIDMsIC01LCAzLCAzLCAwLCAyLCAtMiwgLTMsIDAsIC0yLCAtNSwgMCwgMCwgLTEsIC02LCAtNCwgLTIsIDIsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDAsIDAsIC00LCAtMiwgLTEsIC0xLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFstOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIDFdXTtcbiAgICAgICAgdGhpcy5TQ0hORUlERVIgPSBbWzExLjYsIC0yLjcsIDkuNywgLTEuNywgLTIuNywgLTYuNCwgLTMuOSwgLTUuNiwgNS4xLCAtNS4wLCAzLjYsIC00LjIsIC02LjMsIC0xMy4wLCAtNy4xLCAtMTEuNSwgMC40LCAtNi4wLCAtMS45LCAtNS4zLCAtOC41LCAtMTEuMiwgLTguOSwgLTEwLjgsIDIuMSwgMC4wLCAxLjQsIDAuMiwgLTEwLjIsIC0xMy41LCAtMTMuMCwgLTEyLjUsIC0yLjYsIC04LjUsIC01LjAsIC04LjEsIC02LjMsIC05LjksIC03LjUsIC05LjAsIC03LjEsIC0xMC4yLCAtOC4yLCAtOS4yLCAtOC4yLCAtMTIuNSwgLTExLjEsIC0xMS40LCAtNTAuMCwgLTE0LjgsIC01MC4wLCAtMTMuOCwgLTcuMywgLTEwLjEsIC04LjQsIC05LjEsIC01MC4wLCAtMTMuMCwgLTEzLjUsIC0xMi40LCAtMTAuNywgLTE4LjEsIC0xMS44LCAtMTcuMixdLFxuICAgICAgICAgICAgWy0yLjcsIDEzLjAsIC0zLjMsIDEwLjksIC0zLjUsIC0wLjQsIC0zLjMsIC0xLjgsIC01LjQsIDQuNiwgLTUuNSwgMy4wLCAtMTAuMiwgLTcuOSwgLTkuOSwgLTkuNiwgLTUuMCwgMC41LCAtNS41LCAtMS4wLCAtMTAuMywgLTguMSwgLTkuNCwgLTkuNiwgLTguMSwgLTUuMCwgLTcuMywgLTYuMywgLTEzLjQsIC0xMS4zLCAtMTQuNCwgLTEyLjksIC02LjMsIDAuOCwgLTYuNCwgLTEuMSwgLTcuNCwgLTUuMCwgLTYuMiwgLTYuNSwgLTUuNiwgLTEuNiwgLTQuNywgLTMuMCwgLTEwLjgsIC04LjcsIC0xMS45LCAtMTAuMCwgLTUwLjAsIC02LjIsIC01MC4wLCAtNy41LCAtNi4zLCAtNC4zLCAtNi4yLCAtNS40LCAtNTAuMCwgLTcuMCwgLTE2LjMsIC04LjIsIC0xMy4yLCAtMTIuMywgLTEzLjEsIC0xMy4zLF0sXG4gICAgICAgICAgICBbOS43LCAtMy4zLCAxMS42LCAtMi44LCAtNC41LCAtNi43LCAtMy4xLCAtNi45LCAzLjMsIC01LjUsIDQuOCwgLTUuMSwgLTguOSwgLTEzLjIsIC01LjcsIC0xMi42LCAtMS41LCAtNi4xLCAtMC42LCAtNi4xLCAtMTAuMCwgLTExLjgsIC04LjYsIC0xMS45LCAxLjIsIDAuNSwgMi4yLCAwLjEsIC0xMS44LCAtMTQuMCwgLTExLjksIC0xMy40LCAtNC45LCAtOS4xLCAtMy40LCAtOC45LCAtOC4wLCAtMTAuMCwgLTcuMiwgLTEwLjAsIC05LjEsIC0xMC4yLCAtNy4xLCAtOS45LCAtMTAuMSwgLTEzLjAsIC0xMC42LCAtMTIuNywgLTUwLjAsIC0xNC45LCAtNTAuMCwgLTE0LjQsIC04LjksIC0xMC44LCAtOC45LCAtMTAuNCwgLTUwLjAsIC0xMy4xLCAtMTEuOCwgLTEzLjAsIC0xMi40LCAtMTkuNCwgLTExLjUsIC0xNy44LF0sXG4gICAgICAgICAgICBbLTEuNywgMTAuOSwgLTIuOCwgMTIuOSwgLTIuNywgLTIuMiwgLTIuOCwgMC4yLCAtNC44LCAyLjksIC01LjIsIDUuMiwgLTkuMSwgLTkuNSwgLTkuMCwgLTcuMCwgLTQuMCwgLTEuMCwgLTUuMCwgMS4wLCAtOS4wLCAtOC44LCAtOC45LCAtNy43LCAtNy4wLCAtNi44LCAtNy4xLCAtNC4zLCAtMTIuNCwgLTEyLjksIC0xMy45LCAtMTAuMCwgLTQuOSwgLTAuNywgLTUuNiwgMS40LCAtNi4wLCAtNi41LCAtNi4yLCAtNC44LCAtNS4xLCAtMy4yLCAtNS4wLCAtMS4yLCAtOS44LCAtOS45LCAtMTEuMywgLTguMiwgLTUwLjAsIC03LjYsIC01MC4wLCAtNS4xLCAtNS41LCAtNS44LCAtNS45LCAtNC4yLCAtNTAuMCwgLTguMywgLTE1LjUsIC01LjksIC0xMS42LCAtMTQuMiwgLTEyLjAsIC0xMS42LF0sXG4gICAgICAgICAgICBbLTIuNywgLTMuNSwgLTQuNSwgLTIuNywgMTEuNywgOS4wLCAxMC42LCA5LjYsIC0zLjIsIC0wLjcsIC01LjEsIC0wLjQsIDAuNywgLTQuNiwgLTAuNCwgLTMuNiwgLTQuOCwgLTguOSwgLTYuNSwgLTcuOCwgLTEuNCwgLTQuMSwgLTIuOSwgLTMuMywgLTguMCwgLTkuMSwgLTguMCwgLTguMiwgLTYuMCwgLTkuMywgLTcuNywgLTguNSwgLTYuNCwgLTEwLjEsIC03LjUsIC04LjYsIDIuOCwgLTAuNywgMC45LCAwLjEsIC01LjksIC03LjMsIC02LjUsIC02LjUsIC0wLjQsIC0zLjksIC0yLjYsIC0zLjEsIC01MC4wLCAtMTQuNiwgLTUwLjAsIC0xMi42LCAyLjksIDAuMSwgMS44LCAxLjAsIC01MC4wLCAtOS4yLCAtMTMuNiwgLTcuNywgLTQuOCwgLTEyLjIsIC02LjIsIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTYuNCwgLTAuNCwgLTYuNywgLTIuMiwgOS4wLCAxMi4zLCA5LjgsIDkuNiwgLTcuMSwgMi40LCAtNy4yLCAwLjMsIC0yLjksIC0xLjIsIC0zLjAsIC0zLjMsIC03LjYsIC02LjcsIC04LjEsIC03LjksIC00LjksIC0xLjksIC00LjUsIC0zLjgsIC05LjUsIC03LjgsIC05LjMsIC04LjksIC05LjQsIC03LjEsIC05LjAsIC05LjAsIC05LjQsIC03LjUsIC05LjMsIC05LjIsIC0wLjcsIDIuNiwgMC4yLCAtMC4xLCAtOC4wLCAtNC42LCAtNy43LCAtNi4xLCAtMy42LCAtMS4wLCAtNC4xLCAtMy4xLCAtNTAuMCwgLTExLjYsIC01MC4wLCAtMTEuNiwgMC4yLCAyLjMsIDAuNCwgMC41LCAtNTAuMCwgLTYuNSwgLTE1LjMsIC03LjgsIC04LjQsIC05LjUsIC04LjMsIC0xMS4xLF0sXG4gICAgICAgICAgICBbLTMuOSwgLTMuMywgLTMuMSwgLTIuOCwgMTAuNiwgOS44LCAxMi4yLCA5LjgsIC00LjksIDAuMSwgLTMuNiwgLTAuMiwgLTEuNywgLTQuMSwgMC45LCAtMy41LCAtNS45LCAtOC45LCAtNS42LCAtOC41LCAtMy45LCAtMy45LCAtMi4yLCAtNC41LCAtNy4zLCAtNy41LCAtNi40LCAtOC41LCAtNy4xLCAtOC4yLCAtNi43LCAtNy44LCAtNy45LCAtOS4xLCAtNy4xLCAtOS40LCAwLjksIC0wLjIsIDIuNSwgLTAuMywgLTYuOSwgLTYuNSwgLTUuNSwgLTYuOCwgLTEuNywgLTMuNCwgLTEuNywgLTIuOCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTExLjUsIDEuNSwgMC43LCAyLjcsIDAuNiwgLTUwLjAsIC04LjksIC0xMi4xLCAtNy40LCAtNi4xLCAtMTEuNSwgLTUuNCwgLTEwLjQsXSxcbiAgICAgICAgICAgIFstNS42LCAtMS44LCAtNi45LCAwLjIsIDkuNiwgOS42LCA5LjgsIDExLjYsIC02LjYsIDAuOSwgLTcuMiwgMi41LCAtMi4zLCAtMy40LCAtMi4zLCAtMC42LCAtNi41LCAtOC4yLCAtOC4wLCAtNi4zLCAtMy43LCAtMy41LCAtMy45LCAtMS42LCAtOS45LCAtOC45LCAtOS42LCAtNy4wLCAtOC42LCAtOC45LCAtOC44LCAtNi44LCAtOC42LCAtOC4yLCAtOC44LCAtNi44LCAwLjMsIDAuMSwgMC4yLCAyLjQsIC03LjQsIC02LjIsIC02LjksIC00LjQsIC0yLjksIC0yLjksIC0zLjUsIC0wLjksIC01MC4wLCAtMTIuMiwgLTUwLjAsIC0xMC4xLCAxLjIsIDAuNiwgMS4yLCAyLjQsIC01MC4wLCAtNy42LCAtMTYuMSwgLTUuOCwgLTcuMiwgLTEwLjgsIC03LjQsIC05LjAsXSxcbiAgICAgICAgICAgIFs1LjEsIC01LjQsIDMuMywgLTQuOCwgLTMuMiwgLTcuMSwgLTQuOSwgLTYuNiwgMTMuMywgLTIuOCwgMTEuMiwgLTEuOSwgLTUuNywgLTEyLjUsIC03LjIsIC0xMS42LCAtMC43LCAtNC44LCAtMy4xLCAtNC4zLCAtMTAuMCwgLTExLjYsIC04LjgsIC0xMS43LCAxMC41LCA3LjcsIDkuMSwgOC41LCAtOS44LCAtMTIuNywgLTExLjcsIC0xMS44LCAtNi4zLCAtMTEuNCwgLTguOCwgLTExLjAsIC03LjUsIC0xMC4zLCAtOC4zLCAtOS45LCAtMS45LCAtNi43LCAtNC4xLCAtNi40LCAtNy45LCAtMTIuNSwgLTExLjQsIC0xMS43LCAtNTAuMCwgLTE0LjAsIC01MC4wLCAtMTMuMiwgLTguNSwgLTEwLjQsIC05LjEsIC05LjYsIC01MC4wLCAtOS44LCAtNy43LCAtOC44LCAtMTAuMywgLTE3LjksIC0xMS44LCAtMTYuMCxdLFxuICAgICAgICAgICAgWy01LjAsIDQuNiwgLTUuNSwgMi45LCAtMC43LCAyLjQsIDAuMSwgMC45LCAtMi44LCAxMi44LCAtMi42LCAxMS4wLCAtOC40LCAtNi4zLCAtOC4zLCAtNy43LCAtNi4xLCAtMi45LCAtNi41LCAtNC4yLCAtOC41LCAtNS45LCAtNy41LCAtNy43LCAtNS41LCAtMi40LCAtNS41LCAtNC4xLCAtMTIuOSwgLTEwLjMsIC0xMi43LCAtMTEuMywgLTcuNCwgLTMuMSwgLTcuNCwgLTQuOSwgLTQuNCwgLTEuOCwgLTMuNSwgLTMuNSwgLTEuNiwgMy4wLCAtMC44LCAwLjksIC04LjQsIC02LjMsIC05LjYsIC03LjMsIC01MC4wLCAtOS4wLCAtNTAuMCwgLTkuNywgLTIuMywgLTAuMiwgLTEuMiwgLTEuNSwgLTUwLjAsIC0wLjcsIC0xMy4zLCAtMi4wLCAtMTEuOCwgLTExLjksIC0xMi4zLCAtMTIuNyxdLFxuICAgICAgICAgICAgWzMuNiwgLTUuNSwgNC44LCAtNS4yLCAtNS4xLCAtNy4yLCAtMy42LCAtNy4yLCAxMS4yLCAtMi42LCAxMy40LCAtMi4xLCAtNy43LCAtMTIuNSwgLTUuMywgLTExLjksIC0yLjIsIC00LjQsIC0xLjksIC00LjgsIC0xMC4yLCAtMTEuNSwgLTguMSwgLTEyLjAsIDkuMywgOC4yLCAxMC4wLCA4LjAsIC0xMC44LCAtMTEuOSwgLTEwLjcsIC0xMi40LCAtOC4yLCAtMTEuOCwgLTYuOSwgLTExLjUsIC04LjQsIC05LjksIC03LjEsIC0xMC42LCAtNC43LCAtNi44LCAtMS4yLCAtNy4wLCAtOS44LCAtMTEuNiwgLTkuNiwgLTEyLjEsIC01MC4wLCAtMTQuMSwgLTUwLjAsIC0xMi43LCAtMTAuMCwgLTEwLjgsIC04LjgsIC0xMC41LCAtNTAuMCwgLTkuMiwgLTQuMiwgLTkuMywgLTExLjAsIC0xOC4yLCAtMTEuMSwgLTE2LjEsXSxcbiAgICAgICAgICAgIFstNC4yLCAzLjAsIC01LjEsIDUuMiwgLTAuNCwgMC4zLCAtMC4yLCAyLjUsIC0xLjksIDExLjAsIC0yLjEsIDEzLjIsIC03LjYsIC04LjUsIC04LjAsIC01LjMsIC01LjYsIC00LjUsIC02LjgsIC0yLjQsIC03LjgsIC03LjksIC03LjksIC02LjIsIC01LjcsIC01LjEsIC01LjQsIC0yLjEsIC0xMi40LCAtMTIuMywgLTEzLjEsIC0xMC4xLCAtNi42LCAtNC40LCAtNi45LCAtMi42LCAtMy42LCAtMy44LCAtMy43LCAtMi4wLCAtMS40LCAwLjgsIC0wLjksIDMuMCwgLTguMiwgLTguMSwgLTkuMiwgLTUuOCwgLTUwLjAsIC0xMC4xLCAtNTAuMCwgLTcuNCwgLTEuNywgLTIuMCwgLTEuNSwgLTAuNSwgLTUwLjAsIC0yLjEsIC0xMi42LCAtMC40LCAtMTEuNiwgLTEzLjksIC0xMS40LCAtMTEuMSxdLFxuICAgICAgICAgICAgWy02LjMsIC0xMC4yLCAtOC45LCAtOS4xLCAwLjcsIC0yLjksIC0xLjcsIC0yLjMsIC01LjcsIC04LjQsIC03LjcsIC03LjYsIDEzLjIsIDkuNiwgMy41LCA5LjcsIC04LjcsIC0xMi40LCAtMTAuNywgLTEwLjcsIC03LjgsIC0xMC4yLCAtOC44LCAtOS42LCAtOS41LCAtMTEuOSwgLTEwLjksIC0xMC41LCAyLjMsIC0wLjQsIC0wLjIsIC0wLjMsIC05LjcsIC0xNS41LCAtMTEuNCwgLTEzLjcsIC0zLjAsIC02LjQsIC00LjEsIC01LjQsIC05LjYsIC0xMS45LCAtMTAuNSwgLTExLjgsIDYuMiwgMy4zLCAzLjcsIDMuNiwgLTUwLjAsIC0xMy42LCAtNTAuMCwgLTExLjksIC01LjYsIC04LjgsIC03LjIsIC04LjksIC01MC4wLCAtMTIuNCwgLTE0LjEsIC0xMS42LCAyLjgsIC02LjQsIDAuNSwgLTUuMixdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy45LCAtMTMuMiwgLTkuNSwgLTQuNiwgLTEuMiwgLTQuMSwgLTMuNCwgLTEyLjUsIC02LjMsIC0xMi41LCAtOC41LCA5LjYsIDEyLjcsIDAuMiwgMTAuNSwgLTEyLjQsIC0xMS42LCAtMTMuMiwgLTEyLjAsIC0xMi40LCAtMTAuMSwgLTExLjYsIC0xMi4wLCAtMTUuMSwgLTEzLjEsIC0xNC4zLCAtMTMuNCwgLTEuNCwgMS40LCAtMS42LCAtMC41LCAtMTQuOSwgLTE0LjMsIC0xNS4yLCAtMTYuOCwgLTcuNywgLTQuNywgLTYuMywgLTYuNiwgLTE0LjYsIC0xMC44LCAtMTIuOCwgLTEzLjAsIDIuMywgNi4wLCAyLjUsIDMuNiwgLTUwLjAsIC0xMS4yLCAtNTAuMCwgLTExLjksIC0xMC41LCAtOS4yLCAtMTAuNSwgLTEwLjUsIC01MC4wLCAtMTAuMywgLTE2LjIsIC0xMS4zLCAtMS43LCAtMy43LCAtMi41LCAtNS40LF0sXG4gICAgICAgICAgICBbLTcuMSwgLTkuOSwgLTUuNywgLTkuMCwgLTAuNCwgLTMuMCwgMC45LCAtMi4zLCAtNy4yLCAtOC4zLCAtNS4zLCAtOC4wLCAzLjUsIDAuMiwgMTQuMywgMS4wLCAtNy4zLCAtMTEuMiwgLTYuOSwgLTkuNywgLTguNSwgLTEwLjIsIC03LjcsIC05LjgsIC0xMC4wLCAtMTAuNCwgLTguNCwgLTEwLjIsIDEuMCwgLTAuNiwgMS43LCAtMC41LCAtMTEuMSwgLTE0LjgsIC05LjcsIC0xNC41LCAtMy43LCAtNS44LCAtMy4xLCAtNS42LCAtMTAuNCwgLTExLjUsIC04LjIsIC0xMS4xLCAwLjYsIC0xLjYsIDEuNiwgLTEuMSwgLTUwLjAsIC0xMi40LCAtNTAuMCwgLTExLjUsIC01LjUsIC04LjAsIC00LjksIC03LjIsIC01MC4wLCAtMTIuNCwgLTEwLjMsIC0xMS42LCAwLjcsIC02LjgsIDIuNCwgLTYuMCxdLFxuICAgICAgICAgICAgWy0xMS41LCAtOS42LCAtMTIuNiwgLTcuMCwgLTMuNiwgLTMuMywgLTMuNSwgLTAuNiwgLTExLjYsIC03LjcsIC0xMS45LCAtNS4zLCA5LjcsIDEwLjUsIDEuMCwgMTIuNiwgLTEyLjAsIC0xMi4yLCAtMTIuNSwgLTkuNywgLTExLjEsIC0xMS4yLCAtMTEuOSwgLTkuNCwgLTEyLjksIC0xNC4zLCAtMTQuMCwgLTExLjksIC0xLjAsIC0wLjQsIC0xLjYsIDEuMiwgLTEzLjksIC0xNS40LCAtMTMuNywgLTEyLjYsIC02LjIsIC02LjcsIC02LjMsIC00LjQsIC0xMy4wLCAtMTIuMiwgLTEzLjAsIC0xMC40LCAyLjksIDMuOCwgMi41LCA1LjgsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC0xMC4yLCAtOS42LCAtOS43LCAtOS42LCAtOC4zLCAtNTAuMCwgLTExLjYsIC0xNS40LCAtOS40LCAtMS4xLCAtNS40LCAtMS42LCAtMy4zLF0sXG4gICAgICAgICAgICBbMC40LCAtNS4wLCAtMS41LCAtNC4wLCAtNC44LCAtNy42LCAtNS45LCAtNi41LCAtMC43LCAtNi4xLCAtMi4yLCAtNS42LCAtOC43LCAtMTIuNCwgLTcuMywgLTEyLjAsIDEyLjgsIDIuMywgMTAuMiwgMy4wLCAwLjAsIC0zLjQsIC0wLjcsIC0zLjIsIDIuNSwgLTAuOCwgMC45LCAwLjIsIC0zLjAsIC03LjIsIC01LjcsIC02LjEsIC0wLjIsIC02LjYsIC0xLjgsIC02LjAsIC01LjMsIC04LjIsIC01LjcsIC03LjYsIC02LjcsIC05LjYsIC03LjUsIC05LjMsIC03LjEsIC0xMC41LCAtOS42LCAtOS40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjIsIC00LjMsIC02LjgsIC01LjcsIC02LjMsIC01MC4wLCAtOS41LCAtOS42LCAtOC45LCAtNi4yLCAtMTIuOCwgLTYuOCwgLTExLjgsXSxcbiAgICAgICAgICAgIFstNi4wLCAwLjUsIC02LjEsIC0xLjAsIC04LjksIC02LjcsIC04LjksIC04LjIsIC00LjgsIC0yLjksIC00LjQsIC00LjUsIC0xMi40LCAtMTEuNiwgLTExLjIsIC0xMi4yLCAyLjMsIDE0LjYsIDEuOSwgMTIuOSwgLTUuNSwgLTIuNiwgLTQuMSwgLTQuNywgLTEuMiwgMy4wLCAtMS4xLCAxLjYsIC04LjAsIC00LjcsIC04LjcsIC02LjAsIC04LjIsIC00LjcsIC03LjgsIC02LjcsIC0xMC4wLCAtOC4zLCAtOC45LCAtOS45LCAtMTAuOCwgLTcuMSwgLTEwLjAsIC05LjIsIC0xMS42LCAtMTAuMSwgLTEyLjMsIC0xMS45LCAtNTAuMCwgMi4yLCAtNTAuMCwgMC45LCAtNy45LCAtNS45LCAtNy40LCAtNi45LCAtNTAuMCwgLTQuNiwgLTExLjYsIC01LjYsIC05LjcsIC01LjksIC05LjksIC03LjMsXSxcbiAgICAgICAgICAgIFstMS45LCAtNS41LCAtMC42LCAtNS4wLCAtNi41LCAtOC4xLCAtNS42LCAtOC4wLCAtMy4xLCAtNi41LCAtMS45LCAtNi44LCAtMTAuNywgLTEzLjIsIC02LjksIC0xMi41LCAxMC4yLCAxLjksIDExLjksIDIuMSwgLTIuMywgLTQuMSwgLTAuNSwgLTQuNiwgLTAuMSwgLTAuOSwgMi40LCAtMC44LCAtNS4xLCAtNi45LCAtNC44LCAtNi43LCAtMi4zLCAtNy4xLCAtMC44LCAtNy4yLCAtNy4yLCAtOC4wLCAtNS42LCAtOC41LCAtOS40LCAtOS43LCAtNy4yLCAtOS44LCAtOS4yLCAtMTEuMSwgLTkuNSwgLTEwLjcsIC01MC4wLCAtOC43LCAtNTAuMCwgLTguNiwgLTYuMSwgLTcuNSwgLTUuNSwgLTcuNywgLTUwLjAsIC0xMC40LCAtNy43LCAtMTAuMCwgLTcuMywgLTEzLjYsIC02LjQsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTUuMywgLTEuMCwgLTYuMSwgMS4wLCAtNy44LCAtNy45LCAtOC41LCAtNi4zLCAtNC4zLCAtNC4yLCAtNC44LCAtMi40LCAtMTAuNywgLTEyLjAsIC05LjcsIC05LjcsIDMuMCwgMTIuOSwgMi4xLCAxNC43LCAtNC45LCAtMy44LCAtNC4wLCAtMi40LCAtMS4wLCAwLjgsIC0xLjMsIDMuNCwgLTcuNiwgLTUuNywgLTguMSwgLTMuNSwgLTYuOCwgLTUuOCwgLTcuMiwgLTQuMiwgLTguOSwgLTEwLjIsIC04LjQsIC04LjIsIC05LjksIC04LjQsIC05LjcsIC02LjQsIC0xMS4xLCAtMTEuMSwgLTExLjgsIC0xMC4wLCAtNTAuMCwgMC40LCAtNTAuMCwgMi42LCAtNy4yLCAtNy4wLCAtNy40LCAtNS4xLCAtNTAuMCwgLTUuNywgLTkuOCwgLTMuMiwgLTguNCwgLTcuNCwgLTguOSwgLTUuOSxdLFxuICAgICAgICAgICAgWy04LjUsIC0xMC4zLCAtMTAuMCwgLTkuMCwgLTEuNCwgLTQuOSwgLTMuOSwgLTMuNywgLTEwLjAsIC04LjUsIC0xMC4yLCAtNy44LCAtNy44LCAtMTIuNCwgLTguNSwgLTExLjEsIDAuMCwgLTUuNSwgLTIuMywgLTQuOSwgMTIuNiwgMTAuMCwgMTEuMSwgMTAuNSwgLTYuMCwgLTguMywgLTYuOSwgLTcuNSwgLTIuMiwgLTcuNCwgLTUuMywgLTUuOSwgLTguOSwgLTEyLjUsIC05LjQsIC0xMS42LCAtMC43LCAtMy45LCAtMi4zLCAtMy4wLCAtOS4xLCAtOS44LCAtOS4yLCAtOS41LCAtNS42LCAtOS4wLCAtOC4wLCAtOC41LCAtNTAuMCwgLTE1LjMsIC01MC4wLCAtMTQuMSwgMi4zLCAtMS40LCAwLjMsIC0wLjUsIC01MC4wLCAtMTMuNiwgLTE0LjMsIC0xMS41LCAtNS4zLCAtMTMuNywgLTYuMSwgLTEyLjcsXSxcbiAgICAgICAgICAgIFstMTEuMiwgLTguMSwgLTExLjgsIC04LjgsIC00LjEsIC0xLjksIC0zLjksIC0zLjUsIC0xMS42LCAtNS45LCAtMTEuNSwgLTcuOSwgLTEwLjIsIC0xMC4xLCAtMTAuMiwgLTExLjIsIC0zLjQsIC0yLjYsIC00LjEsIC0zLjgsIDEwLjAsIDEzLjEsIDEwLjcsIDEwLjYsIC04LjEsIC01LjIsIC04LjAsIC02LjcsIC02LjEsIC0zLjcsIC03LjUsIC01LjYsIC0xMS4xLCAtMTAuMywgLTEwLjYsIC0xMS45LCAtMy4yLCAtMS4wLCAtMi4yLCAtMi44LCAtMTAuNSwgLTguMSwgLTkuNCwgLTkuNSwgLTguMywgLTYuOSwgLTkuNCwgLTguOCwgLTUwLjAsIC0xMS4zLCAtNTAuMCwgLTEyLjgsIC0wLjYsIDIuMiwgLTAuMywgMC4xLCAtNTAuMCwgLTEwLjEsIC0xNy41LCAtMTEuMSwgLTguNiwgLTkuOSwgLTguNiwgLTExLjksXSxcbiAgICAgICAgICAgIFstOC45LCAtOS40LCAtOC42LCAtOC45LCAtMi45LCAtNC41LCAtMi4yLCAtMy45LCAtOC44LCAtNy41LCAtOC4xLCAtNy45LCAtOC44LCAtMTEuNiwgLTcuNywgLTExLjksIC0wLjcsIC00LjEsIC0wLjUsIC00LjAsIDExLjEsIDEwLjcsIDEzLjIsIDEwLjQsIC01LjcsIC01LjgsIC0zLjUsIC02LjEsIC0zLjYsIC02LjUsIC0zLjMsIC01LjUsIC05LjQsIC0xMS4wLCAtOC43LCAtMTEuMiwgLTEuOCwgLTIuNywgMC43LCAtMy4wLCAtOS4xLCAtOC4yLCAtNy4zLCAtOS40LCAtNy4yLCAtOC4yLCAtNy4yLCAtOC4yLCAtNTAuMCwgLTEzLjIsIC01MC4wLCAtMTMuMywgMC41LCAtMC45LCAxLjgsIC0wLjYsIC01MC4wLCAtMTEuNCwgLTExLjEsIC0xMC41LCAtNi4xLCAtMTIuOSwgLTUuMCwgLTExLjksXSxcbiAgICAgICAgICAgIFstMTAuOCwgLTkuNiwgLTExLjksIC03LjcsIC0zLjMsIC0zLjgsIC00LjUsIC0xLjYsIC0xMS43LCAtNy43LCAtMTIuMCwgLTYuMiwgLTkuNiwgLTEyLjAsIC05LjgsIC05LjQsIC0zLjIsIC00LjcsIC00LjYsIC0yLjQsIDEwLjUsIDEwLjYsIDEwLjQsIDEyLjYsIC04LjIsIC03LjksIC05LjAsIC00LjcsIC02LjEsIC02LjAsIC03LjUsIC0yLjksIC0xMC45LCAtMTIuMiwgLTExLjIsIC0xMC45LCAtMi40LCAtMi45LCAtMi43LCAtMC45LCAtMTAuNCwgLTkuNywgLTEwLjIsIC04LjAsIC04LjQsIC05LjEsIC05LjMsIC02LjUsIC01MC4wLCAtMTMuMywgLTUwLjAsIC0xMS4wLCAtMC4wLCAtMC40LCAtMC40LCAyLjMsIC01MC4wLCAtMTAuOSwgLTE3LjIsIC04LjMsIC04LjMsIC0xMi43LCAtNy44LCAtOS4zLF0sXG4gICAgICAgICAgICBbMi4xLCAtOC4xLCAxLjIsIC03LjAsIC04LjAsIC05LjUsIC03LjMsIC05LjksIDEwLjUsIC01LjUsIDkuMywgLTUuNywgLTkuNSwgLTE1LjEsIC0xMC4wLCAtMTIuOSwgMi41LCAtMS4yLCAtMC4xLCAtMS4wLCAtNi4wLCAtOC4xLCAtNS43LCAtOC4yLCAxMy44LCAxMS4zLCAxMS44LCAxMi4xLCAtNi4wLCAtOS4xLCAtOS4wLCAtOS41LCAtOC45LCAtMTMuNCwgLTEwLjAsIC0xMy4xLCAtOS45LCAtMTEuNywgLTkuOCwgLTEyLjgsIC01LjksIC05LjQsIC02LjUsIC04LjEsIC0xMC43LCAtMTQuMCwgLTEzLjMsIC0xMy45LCAtNTAuMCwgLTExLjksIC01MC4wLCAtOS43LCAtOC45LCAtMTAuOCwgLTkuMCwgLTExLjEsIC01MC4wLCAtNi41LCAtNS4zLCAtNi4zLCAtMTAuNSwgLTE2LjIsIC0xMC40LCAtMTUuMixdLFxuICAgICAgICAgICAgWzAuMCwgLTUuMCwgMC41LCAtNi44LCAtOS4xLCAtNy44LCAtNy41LCAtOC45LCA3LjcsIC0yLjQsIDguMiwgLTUuMSwgLTExLjksIC0xMy4xLCAtMTAuNCwgLTE0LjMsIC0wLjgsIDMuMCwgLTAuOSwgMC44LCAtOC4zLCAtNS4yLCAtNS44LCAtNy45LCAxMS4zLCAxNS4wLCAxMS4yLCAxMi44LCAtOS43LCAtNS4zLCAtOS4yLCAtNy44LCAtMTEuNywgLTEwLjYsIC0xMC4xLCAtMTIuMiwgLTExLjcsIC04LjgsIC04LjksIC0xMS44LCAtOS4zLCAtNS4wLCAtOC4wLCAtOC4yLCAtMTMuNiwgLTExLjQsIC0xMi44LCAtMTMuMCwgLTUwLjAsIC03LjIsIC01MC4wLCAtOC40LCAtMTEuMCwgLTcuNywgLTguNywgLTEwLjIsIC01MC4wLCAtMS41LCAtNy4xLCAtNC45LCAtMTEuMiwgLTExLjYsIC0xMS42LCAtMTUuMCxdLFxuICAgICAgICAgICAgWzEuNCwgLTcuMywgMi4yLCAtNy4xLCAtOC4wLCAtOS4zLCAtNi40LCAtOS42LCA5LjEsIC01LjUsIDEwLjAsIC01LjQsIC0xMC45LCAtMTQuMywgLTguNCwgLTE0LjAsIDAuOSwgLTEuMSwgMi40LCAtMS4zLCAtNi45LCAtOC4wLCAtMy41LCAtOS4wLCAxMS44LCAxMS4yLCAxMy40LCAxMS40LCAtNy4zLCAtOC44LCAtNi41LCAtOC41LCAtMTAuMCwgLTEyLjUsIC03LjgsIC0xMi41LCAtOS42LCAtMTEuMCwgLTcuMSwgLTEwLjcsIC03LjksIC04LjAsIC00LjMsIC05LjQsIC0xMS40LCAtMTIuMywgLTEwLjksIC0xMi45LCAtNTAuMCwgLTExLjgsIC01MC4wLCAtMTEuMiwgLTkuNCwgLTkuOCwgLTcuMywgLTEwLjUsIC01MC4wLCAtNi4yLCAtMi4yLCAtNi43LCAtOS44LCAtMTUuMiwgLTguNSwgLTE0LjksXSxcbiAgICAgICAgICAgIFswLjIsIC02LjMsIDAuMSwgLTQuMywgLTguMiwgLTguOSwgLTguNSwgLTcuMCwgOC41LCAtNC4xLCA4LjAsIC0yLjEsIC0xMC41LCAtMTMuNCwgLTEwLjIsIC0xMS45LCAwLjIsIDEuNiwgLTAuOCwgMy40LCAtNy41LCAtNi43LCAtNi4xLCAtNC43LCAxMi4xLCAxMi44LCAxMS40LCAxNC43LCAtOC43LCAtNy40LCAtOS40LCAtNS4zLCAtOS45LCAtMTEuOCwgLTEwLjUsIC0xMC4zLCAtOS45LCAtMTAuMSwgLTkuMywgLTkuMywgLTguMSwgLTcuMiwgLTguMCwgLTUuMiwgLTEyLjAsIC0xMi4xLCAtMTIuNiwgLTEwLjksIC01MC4wLCAtNy45LCAtNTAuMCwgLTUuMywgLTkuMywgLTguOCwgLTguOSwgLTcuMCwgLTUwLjAsIC0zLjYsIC03LjEsIC0xLjIsIC0xMC4yLCAtMTIuNywgLTkuOSwgLTExLjAsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEzLjQsIC0xMS44LCAtMTIuNCwgLTYuMCwgLTkuNCwgLTcuMSwgLTguNiwgLTkuOCwgLTEyLjksIC0xMC44LCAtMTIuNCwgMi4zLCAtMS40LCAxLjAsIC0xLjAsIC0zLjAsIC04LjAsIC01LjEsIC03LjYsIC0yLjIsIC02LjEsIC0zLjYsIC02LjEsIC02LjAsIC05LjcsIC03LjMsIC04LjcsIDExLjIsIDcuOSwgOC45LCA4LjEsIC0xMi4xLCAtMTcuNCwgLTEzLjIsIC0xNi44LCAtNi4zLCAtOS41LCAtNy41LCAtOC44LCAtMTIuNywgLTE1LjIsIC0xMy4xLCAtMTQuMiwgMC4wLCAtMy4xLCAtMS44LCAtMy4xLCAtNTAuMCwgLTEwLjcsIC01MC4wLCAtOS4zLCAtNC42LCAtOC45LCAtNS45LCAtOC4zLCAtNTAuMCwgLTEyLjgsIC05LjYsIC0xMC42LCA5LjUsIC0zLjIsIDguMiwgLTIuOCxdLFxuICAgICAgICAgICAgWy0xMy41LCAtMTEuMywgLTE0LjAsIC0xMi45LCAtOS4zLCAtNy4xLCAtOC4yLCAtOC45LCAtMTIuNywgLTEwLjMsIC0xMS45LCAtMTIuMywgLTAuNCwgMS40LCAtMC42LCAtMC40LCAtNy4yLCAtNC43LCAtNi45LCAtNS43LCAtNy40LCAtMy43LCAtNi41LCAtNi4wLCAtOS4xLCAtNS4zLCAtOC44LCAtNy40LCA3LjksIDExLjksIDcuOCwgOS4zLCAtMTUuMiwgLTE1LjEsIC0xNC42LCAtMTcuMiwgLTkuNywgLTcuMywgLTguMiwgLTkuMiwgLTE1LjAsIC0xMi44LCAtMTQuMSwgLTE0LjksIC0yLjgsIDAuMiwgLTIuOSwgLTIuMywgLTUwLjAsIC03LjQsIC01MC4wLCAtOC43LCAtOS40LCAtNy4zLCAtOS40LCAtOS40LCAtNTAuMCwgLTguMCwgLTExLjksIC05LjcsIDYuNSwgMC41LCA2LjQsIC0xLjgsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTE0LjQsIC0xMS45LCAtMTMuOSwgLTcuNywgLTkuMCwgLTYuNywgLTguOCwgLTExLjcsIC0xMi43LCAtMTAuNywgLTEzLjEsIC0wLjIsIC0xLjYsIDEuNywgLTEuNiwgLTUuNywgLTguNywgLTQuOCwgLTguMSwgLTUuMywgLTcuNSwgLTMuMywgLTcuNSwgLTkuMCwgLTkuMiwgLTYuNSwgLTkuNCwgOC45LCA3LjgsIDEwLjEsIDcuOCwgLTE0LjMsIC0xNy43LCAtMTMuMCwgLTE3LjgsIC04LjAsIC05LjQsIC02LjIsIC05LjIsIC0xNS4xLCAtMTQuOSwgLTEyLjIsIC0xNC45LCAtMS44LCAtMy4yLCAtMC44LCAtMy4yLCAtNTAuMCwgLTEwLjgsIC01MC4wLCAtOS45LCAtNy4zLCAtOS42LCAtNi40LCAtOS40LCAtNTAuMCwgLTEyLjMsIC04LjcsIC0xMS4zLCA3LjYsIC0zLjMsIDguNywgLTIuOSxdLFxuICAgICAgICAgICAgWy0xMi41LCAtMTIuOSwgLTEzLjQsIC0xMC4wLCAtOC41LCAtOS4wLCAtNy44LCAtNi44LCAtMTEuOCwgLTExLjMsIC0xMi40LCAtMTAuMSwgLTAuMywgLTAuNSwgLTAuNSwgMS4yLCAtNi4xLCAtNi4wLCAtNi43LCAtMy41LCAtNS45LCAtNS42LCAtNS41LCAtMi45LCAtOS41LCAtNy44LCAtOC41LCAtNS4zLCA4LjEsIDkuMywgNy44LCAxMS44LCAtMTQuNCwgLTE1LjcsIC0xNC41LCAtMTQuNiwgLTguNCwgLTguNywgLTcuOSwgLTcuMSwgLTE0LjMsIC0xMy44LCAtMTMuOCwgLTEyLjMsIC0yLjQsIC0yLjIsIC0yLjksIC0wLjIsIC01MC4wLCAtOC45LCAtNTAuMCwgLTcuMSwgLTguMSwgLTkuMSwgLTguNywgLTYuNiwgLTUwLjAsIC05LjcsIC0xMS40LCAtOC4wLCA2LjgsIC0xLjgsIDYuOSwgMC40LF0sXG4gICAgICAgICAgICBbLTIuNiwgLTYuMywgLTQuOSwgLTQuOSwgLTYuNCwgLTkuNCwgLTcuOSwgLTguNiwgLTYuMywgLTcuNCwgLTguMiwgLTYuNiwgLTkuNywgLTE0LjksIC0xMS4xLCAtMTMuOSwgLTAuMiwgLTguMiwgLTIuMywgLTYuOCwgLTguOSwgLTExLjEsIC05LjQsIC0xMC45LCAtOC45LCAtMTEuNywgLTEwLjAsIC05LjksIC0xMi4xLCAtMTUuMiwgLTE0LjMsIC0xNC40LCAxMS4xLCAyLjksIDkuMiwgMy41LCAtMy4wLCAtNy4wLCAtNC4zLCAtNi4yLCAtMi4yLCAtNi42LCAtMy43LCAtNS43LCAtNi4wLCAtMTAuNCwgLTguNiwgLTkuNSwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTEzLjksIC03LjgsIC0xMC41LCAtOC43LCAtOS42LCAtNTAuMCwgLTE2LjUsIC0xNy4xLCAtMTQuOCwgLTEyLjEsIC0xOC45LCAtMTIuNCwgLTE3LjQsXSxcbiAgICAgICAgICAgIFstOC41LCAwLjgsIC05LjEsIC0wLjcsIC0xMC4xLCAtNy41LCAtOS4xLCAtOC4yLCAtMTEuNCwgLTMuMSwgLTExLjgsIC00LjQsIC0xNS41LCAtMTQuMywgLTE0LjgsIC0xNS40LCAtNi42LCAtNC43LCAtNy4xLCAtNS44LCAtMTIuNSwgLTEwLjMsIC0xMS4wLCAtMTIuMiwgLTEzLjQsIC0xMC42LCAtMTIuNSwgLTExLjgsIC0xNy40LCAtMTUuMSwgLTE3LjcsIC0xNS43LCAyLjksIDEyLjUsIDMuMSwgMTAuMywgLTcuNywgLTUuMiwgLTYuMiwgLTcuMywgLTUuNCwgLTEuNywgLTUuNCwgLTMuNywgLTExLjYsIC05LjEsIC0xMy4wLCAtMTAuOCwgLTUwLjAsIC0xMC4zLCAtNTAuMCwgLTExLjIsIC05LjgsIC04LjMsIC05LjEsIC05LjcsIC01MC4wLCAtMTIuNywgLTIwLjYsIC0xMy4xLCAtMTYuMCwgLTE2LjYsIC0xNy4wLCAtMTguNCxdLFxuICAgICAgICAgICAgWy01LjAsIC02LjQsIC0zLjQsIC01LjYsIC03LjUsIC05LjMsIC03LjEsIC04LjgsIC04LjgsIC03LjQsIC02LjksIC02LjksIC0xMS40LCAtMTUuMiwgLTkuNywgLTEzLjcsIC0xLjgsIC03LjgsIC0wLjgsIC03LjIsIC05LjQsIC0xMC42LCAtOC43LCAtMTEuMiwgLTEwLjAsIC0xMC4xLCAtNy44LCAtMTAuNSwgLTEzLjIsIC0xNC42LCAtMTMuMCwgLTE0LjUsIDkuMiwgMy4xLCAxMC44LCAzLjAsIC00LjUsIC02LjcsIC0yLjcsIC02LjcsIC01LjAsIC02LjgsIC0yLjUsIC02LjcsIC03LjUsIC0xMC40LCAtNy40LCAtMTAuMiwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTE0LjIsIC04LjksIC0xMC4yLCAtOC41LCAtMTAuMCwgLTUwLjAsIC0xNS42LCAtMTUuMywgLTE1LjUsIC0xMy4wLCAtMTguOCwgLTEyLjYsIC0xOC4zLF0sXG4gICAgICAgICAgICBbLTguMSwgLTEuMSwgLTguOSwgMS40LCAtOC42LCAtOS4yLCAtOS40LCAtNi44LCAtMTEuMCwgLTQuOSwgLTExLjUsIC0yLjYsIC0xMy43LCAtMTYuOCwgLTE0LjUsIC0xMi42LCAtNi4wLCAtNi43LCAtNy4yLCAtNC4yLCAtMTEuNiwgLTExLjksIC0xMS4yLCAtMTAuOSwgLTEzLjEsIC0xMi4yLCAtMTIuNSwgLTEwLjMsIC0xNi44LCAtMTcuMiwgLTE3LjgsIC0xNC42LCAzLjUsIDEwLjMsIDMuMCwgMTIuNCwgLTYuOSwgLTcuNSwgLTYuOCwgLTQuOSwgLTUuNCwgLTQuMiwgLTUuNCwgLTEuMywgLTEwLjgsIC0xMS41LCAtMTIuNCwgLTguMiwgLTUwLjAsIC0xMi41LCAtNTAuMCwgLTguOSwgLTkuMiwgLTEwLjAsIC05LjQsIC03LjksIC01MC4wLCAtMTQuMywgLTE5LjksIC0xMS40LCAtMTYuMiwgLTE5LjIsIC0xNS44LCAtMTUuOSxdLFxuICAgICAgICAgICAgWy02LjMsIC03LjQsIC04LjAsIC02LjAsIDIuOCwgLTAuNywgMC45LCAwLjMsIC03LjUsIC00LjQsIC04LjQsIC0zLjYsIC0zLjAsIC03LjcsIC0zLjcsIC02LjIsIC01LjMsIC0xMC4wLCAtNy4yLCAtOC45LCAtMC43LCAtMy4yLCAtMS44LCAtMi40LCAtOS45LCAtMTEuNywgLTkuNiwgLTkuOSwgLTYuMywgLTkuNywgLTguMCwgLTguNCwgLTMuMCwgLTcuNywgLTQuNSwgLTYuOSwgMTEuMywgOC4yLCA5LjQsIDkuMSwgLTEuMCwgLTMuMywgLTEuOCwgLTIuNCwgMS41LCAtMi4xLCAtMC40LCAtMS4xLCAtNTAuMCwgLTE0LjUsIC01MC4wLCAtMTIuOSwgMi44LCAtMC4wLCAxLjQsIDAuNywgLTUwLjAsIC04LjcsIC0xNC4xLCAtNy41LCAtNS4yLCAtMTIuNSwgLTYuNSwgLTEwLjcsXSxcbiAgICAgICAgICAgIFstOS45LCAtNS4wLCAtMTAuMCwgLTYuNSwgLTAuNywgMi42LCAtMC4yLCAwLjEsIC0xMC4zLCAtMS44LCAtOS45LCAtMy44LCAtNi40LCAtNC43LCAtNS44LCAtNi43LCAtOC4yLCAtOC4zLCAtOC4wLCAtMTAuMiwgLTMuOSwgLTEuMCwgLTIuNywgLTIuOSwgLTExLjcsIC04LjgsIC0xMS4wLCAtMTAuMSwgLTkuNSwgLTcuMywgLTkuNCwgLTguNywgLTcuMCwgLTUuMiwgLTYuNywgLTcuNSwgOC4yLCAxMS42LCA4LjgsIDkuMSwgLTMuNywgLTAuOSwgLTMuMSwgLTMuMCwgLTIuMCwgMS4yLCAtMi4zLCAtMS4zLCAtNTAuMCwgLTEyLjEsIC01MC4wLCAtMTIuNiwgMC4xLCAyLjUsIDAuNywgMC42LCAtNTAuMCwgLTYuMCwgLTE0LjgsIC03LjUsIC04LjYsIC05LjQsIC04LjUsIC0xMS4yLF0sXG4gICAgICAgICAgICBbLTcuNSwgLTYuMiwgLTcuMiwgLTYuMiwgMC45LCAwLjIsIDIuNSwgMC4yLCAtOC4zLCAtMy41LCAtNy4xLCAtMy43LCAtNC4xLCAtNi4zLCAtMy4xLCAtNi4zLCAtNS43LCAtOC45LCAtNS42LCAtOC40LCAtMi4zLCAtMi4yLCAwLjcsIC0yLjcsIC05LjgsIC04LjksIC03LjEsIC05LjMsIC03LjUsIC04LjIsIC02LjIsIC03LjksIC00LjMsIC02LjIsIC0yLjcsIC02LjgsIDkuNCwgOC44LCAxMi4xLCA4LjgsIC0yLjEsIC0yLjAsIDAuMSwgLTIuNCwgMC4wLCAtMS4xLCAxLjMsIC0wLjgsIC01MC4wLCAtMTEuOSwgLTUwLjAsIC0xMi42LCAxLjIsIDAuNywgMy41LCAwLjgsIC01MC4wLCAtNy4xLCAtMTIuNCwgLTcuMSwgLTcuMSwgLTEwLjYsIC01LjAsIC0xMC42LF0sXG4gICAgICAgICAgICBbLTkuMCwgLTYuNSwgLTEwLjAsIC00LjgsIDAuMSwgLTAuMSwgLTAuMywgMi40LCAtOS45LCAtMy41LCAtMTAuNiwgLTIuMCwgLTUuNCwgLTYuNiwgLTUuNiwgLTQuNCwgLTcuNiwgLTkuOSwgLTguNSwgLTguMiwgLTMuMCwgLTIuOCwgLTMuMCwgLTAuOSwgLTEyLjgsIC0xMS44LCAtMTAuNywgLTkuMywgLTguOCwgLTkuMiwgLTkuMiwgLTcuMSwgLTYuMiwgLTcuMywgLTYuNywgLTQuOSwgOS4xLCA5LjEsIDguOCwgMTEuMiwgLTMuMSwgLTMuMCwgLTMuMywgLTEuMCwgLTEuMSwgLTEuNCwgLTIuMCwgMS4yLCAtNTAuMCwgLTEyLjgsIC01MC4wLCAtMTAuOSwgMC44LCAwLjUsIDAuNywgMi4zLCAtNTAuMCwgLTcuNSwgLTE2LjUsIC01LjksIC03LjgsIC0xMS4xLCAtNy44LCAtOS4wLF0sXG4gICAgICAgICAgICBbLTcuMSwgLTUuNiwgLTkuMSwgLTUuMSwgLTUuOSwgLTguMCwgLTYuOSwgLTcuNCwgLTEuOSwgLTEuNiwgLTQuNywgLTEuNCwgLTkuNiwgLTE0LjYsIC0xMC40LCAtMTMuMCwgLTYuNywgLTEwLjgsIC05LjQsIC05LjksIC05LjEsIC0xMC41LCAtOS4xLCAtMTAuNCwgLTUuOSwgLTkuMywgLTcuOSwgLTguMSwgLTEyLjcsIC0xNS4wLCAtMTUuMSwgLTE0LjMsIC0yLjIsIC01LjQsIC01LjAsIC01LjQsIC0xLjAsIC0zLjcsIC0yLjEsIC0zLjEsIDEyLjgsIDkuNiwgMTEuMSwgMTAuMSwgLTQuOCwgLTkuNCwgLTguMSwgLTguNiwgLTUwLjAsIC0xOC4zLCAtNTAuMCwgLTE1LjQsIC01LjksIC03LjUsIC02LjYsIC03LjEsIC01MC4wLCAtOS41LCAtMTEuNywgLTguNCwgLTEyLjUsIC0xNy4zLCAtMTMuMiwgLTE1LjQsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEuNiwgLTEwLjIsIC0zLjIsIC03LjMsIC00LjYsIC02LjUsIC02LjIsIC02LjcsIDMuMCwgLTYuOCwgMC44LCAtMTEuOSwgLTEwLjgsIC0xMS41LCAtMTIuMiwgLTkuNiwgLTcuMSwgLTkuNywgLTguNCwgLTkuOCwgLTguMSwgLTguMiwgLTkuNywgLTkuNCwgLTUuMCwgLTguMCwgLTcuMiwgLTE1LjIsIC0xMi44LCAtMTQuOSwgLTEzLjgsIC02LjYsIC0xLjcsIC02LjgsIC00LjIsIC0zLjMsIC0wLjksIC0yLjAsIC0zLjAsIDkuNiwgMTIuOCwgOS43LCAxMC41LCAtOC41LCAtNS42LCAtOS4zLCAtNy44LCAtNTAuMCwgLTEyLjcsIC01MC4wLCAtMTMuOCwgLTYuOCwgLTUuMSwgLTUuMywgLTYuNSwgLTUwLjAsIC00LjEsIC0xMi44LCAtNS44LCAtMTQuNCwgLTE0LjEsIC0xMy42LCAtMTQuOCxdLFxuICAgICAgICAgICAgWy04LjIsIC00LjcsIC03LjEsIC01LjAsIC02LjUsIC03LjcsIC01LjUsIC02LjksIC00LjEsIC0wLjgsIC0xLjIsIC0wLjksIC0xMC41LCAtMTIuOCwgLTguMiwgLTEzLjAsIC03LjUsIC0xMC4wLCAtNy4yLCAtOS43LCAtOS4yLCAtOS40LCAtNy4zLCAtMTAuMiwgLTYuNSwgLTguMCwgLTQuMywgLTguMCwgLTEzLjEsIC0xNC4xLCAtMTIuMiwgLTEzLjgsIC0zLjcsIC01LjQsIC0yLjUsIC01LjQsIC0xLjgsIC0zLjEsIDAuMSwgLTMuMywgMTEuMSwgOS43LCAxMi45LCA5LjgsIC01LjUsIC04LjEsIC01LjQsIC03LjgsIC01MC4wLCAtMTYuNCwgLTUwLjAsIC0xNC44LCAtNS45LCAtNy4xLCAtNC43LCAtNy4yLCAtNTAuMCwgLTguNCwgLTYuNCwgLTguMSwgLTEyLjEsIC0xNi4yLCAtMTAuMywgLTE1LjgsXSxcbiAgICAgICAgICAgIFstOS4yLCAtMy4wLCAtOS45LCAtMS4yLCAtNi41LCAtNi4xLCAtNi44LCAtNC40LCAtNi40LCAwLjksIC03LjAsIDMuMCwgLTExLjgsIC0xMy4wLCAtMTEuMSwgLTEwLjQsIC05LjMsIC05LjIsIC05LjgsIC02LjQsIC05LjUsIC05LjUsIC05LjQsIC04LjAsIC04LjEsIC04LjIsIC05LjQsIC01LjIsIC0xNC4yLCAtMTQuOSwgLTE0LjksIC0xMi4zLCAtNS43LCAtMy43LCAtNi43LCAtMS4zLCAtMi40LCAtMy4wLCAtMi40LCAtMS4wLCAxMC4xLCAxMC41LCA5LjgsIDEzLjEsIC03LjIsIC04LjAsIC04LjQsIC01LjAsIC01MC4wLCAtMTQuNywgLTUwLjAsIC0xMS40LCAtNi4zLCAtNi43LCAtNS44LCAtNS4wLCAtNTAuMCwgLTYuMSwgLTEzLjQsIC0zLjYsIC0xMy4wLCAtMTYuMCwgLTEzLjcsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTguMiwgLTEwLjgsIC0xMC4xLCAtOS44LCAtMC40LCAtMy42LCAtMS43LCAtMi45LCAtNy45LCAtOC40LCAtOS44LCAtOC4yLCA2LjIsIDIuMywgMC42LCAyLjksIC03LjEsIC0xMS42LCAtOS4yLCAtMTEuMSwgLTUuNiwgLTguMywgLTcuMiwgLTguNCwgLTEwLjcsIC0xMy42LCAtMTEuNCwgLTEyLjAsIDAuMCwgLTIuOCwgLTEuOCwgLTIuNCwgLTYuMCwgLTExLjYsIC03LjUsIC0xMC44LCAxLjUsIC0yLjAsIDAuMCwgLTEuMSwgLTQuOCwgLTguNSwgLTUuNSwgLTcuMiwgMTEuOSwgOC42LCAxMC4wLCA5LjAsIC01MC4wLCAtMTQuMiwgLTUwLjAsIC0xMi44LCAtNC4xLCAtNy40LCAtNS43LCAtNi41LCAtNTAuMCwgLTExLjAsIC0xNC4zLCAtOS45LCAxLjQsIC03LjksIC0wLjcsIC02LjgsXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTguNywgLTEzLjAsIC05LjksIC0zLjksIC0xLjAsIC0zLjQsIC0yLjksIC0xMi41LCAtNi4zLCAtMTEuNiwgLTguMSwgMy4zLCA2LjAsIC0xLjYsIDMuOCwgLTEwLjUsIC0xMC4xLCAtMTEuMSwgLTExLjEsIC05LjAsIC02LjksIC04LjIsIC05LjEsIC0xNC4wLCAtMTEuNCwgLTEyLjMsIC0xMi4xLCAtMy4xLCAwLjIsIC0zLjIsIC0yLjIsIC0xMC40LCAtOS4xLCAtMTAuNCwgLTExLjUsIC0yLjEsIDEuMiwgLTEuMSwgLTEuNCwgLTkuNCwgLTUuNiwgLTguMSwgLTguMCwgOC42LCAxMi40LCA4LjYsIDkuNSwgLTUwLjAsIC0xMC40LCAtNTAuMCwgLTExLjYsIC03LjIsIC01LjcsIC03LjUsIC03LjQsIC01MC4wLCAtOC42LCAtMTUuNywgLTkuNywgLTMuMCwgLTMuNywgLTMuMiwgLTUuOSxdLFxuICAgICAgICAgICAgWy0xMS4xLCAtMTEuOSwgLTEwLjYsIC0xMS4zLCAtMi42LCAtNC4xLCAtMS43LCAtMy41LCAtMTEuNCwgLTkuNiwgLTkuNiwgLTkuMiwgMy43LCAyLjUsIDEuNiwgMi41LCAtOS42LCAtMTIuMywgLTkuNSwgLTExLjgsIC04LjAsIC05LjQsIC03LjIsIC05LjMsIC0xMy4zLCAtMTIuOCwgLTEwLjksIC0xMi42LCAtMS44LCAtMi45LCAtMC44LCAtMi45LCAtOC42LCAtMTMuMCwgLTcuNCwgLTEyLjQsIC0wLjQsIC0yLjMsIDEuMywgLTIuMCwgLTguMSwgLTkuMywgLTUuNCwgLTguNCwgMTAuMCwgOC42LCAxMS40LCA4LjksIC01MC4wLCAtMTMuNywgLTUwLjAsIC0xMy4yLCAtNi4xLCAtOC4xLCAtNS41LCAtNy41LCAtNTAuMCwgLTExLjMsIC0xMi43LCAtMTAuMSwgLTEuNiwgLTcuOCwgLTAuMywgLTcuMixdLFxuICAgICAgICAgICAgWy0xMS40LCAtMTAuMCwgLTEyLjcsIC04LjIsIC0zLjEsIC0zLjEsIC0yLjgsIC0wLjksIC0xMS43LCAtNy4zLCAtMTIuMSwgLTUuOCwgMy42LCAzLjYsIC0xLjEsIDUuOCwgLTkuNCwgLTExLjksIC0xMC43LCAtMTAuMCwgLTguNSwgLTguOCwgLTguMiwgLTYuNSwgLTEzLjksIC0xMy4wLCAtMTIuOSwgLTEwLjksIC0zLjEsIC0yLjMsIC0zLjIsIC0wLjIsIC05LjUsIC0xMC44LCAtMTAuMiwgLTguMiwgLTEuMSwgLTEuMywgLTAuOCwgMS4yLCAtOC42LCAtNy44LCAtNy44LCAtNS4wLCA5LjAsIDkuNSwgOC45LCAxMi4wLCAtNTAuMCwgLTEzLjAsIC01MC4wLCAtMTAuMywgLTYuMiwgLTcuMCwgLTcuMSwgLTUuNCwgLTUwLjAsIC05LjMsIC0xNC4wLCAtOC4yLCAtMi40LCAtNi4zLCAtMi40LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIDMwLjYsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTQuOCwgLTYuMiwgLTE0LjksIC03LjYsIC0xNC42LCAtMTEuNiwgLTEzLjAsIC0xMi4yLCAtMTQuMCwgLTkuMCwgLTE0LjEsIC0xMC4xLCAtMTMuNiwgLTExLjIsIC0xMi40LCAtMTIuNSwgLTguMSwgMi4yLCAtOC43LCAwLjQsIC0xNS4zLCAtMTEuMywgLTEzLjIsIC0xMy4zLCAtMTEuOSwgLTcuMiwgLTExLjgsIC03LjksIC0xMC43LCAtNy40LCAtMTAuOCwgLTguOSwgLTE1LjUsIC0xMC4zLCAtMTUuNSwgLTEyLjUsIC0xNC41LCAtMTIuMSwgLTExLjksIC0xMi44LCAtMTguMywgLTEyLjcsIC0xNi40LCAtMTQuNywgLTE0LjIsIC0xMC40LCAtMTMuNywgLTEzLjAsIC01MC4wLCAxNS4xLCAtNTAuMCwgMTMuMywgLTkuOSwgLTUuOCwgLTguOSwgLTcuNiwgLTUwLjAsIC0xLjUsIC03LjgsIC0zLjAsIC04LjEsIDMuNiwgLTkuNCwgMi4wLF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzAuNiwgLTUwLjAsIDM1LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuOCwgLTcuNSwgLTE0LjQsIC01LjEsIC0xMi42LCAtMTEuNiwgLTExLjUsIC0xMC4xLCAtMTMuMiwgLTkuNywgLTEyLjcsIC03LjQsIC0xMS45LCAtMTEuOSwgLTExLjUsIC0xMC4yLCAtNy4yLCAwLjksIC04LjYsIDIuNiwgLTE0LjEsIC0xMi44LCAtMTMuMywgLTExLjAsIC05LjcsIC04LjQsIC0xMS4yLCAtNS4zLCAtOS4zLCAtOC43LCAtOS45LCAtNy4xLCAtMTMuOSwgLTExLjIsIC0xNC4yLCAtOC45LCAtMTIuOSwgLTEyLjYsIC0xMi42LCAtMTAuOSwgLTE1LjQsIC0xMy44LCAtMTQuOCwgLTExLjQsIC0xMi44LCAtMTEuNiwgLTEzLjIsIC0xMC4zLCAtNTAuMCwgMTMuMywgLTUwLjAsIDE1LjIsIC04LjYsIC03LjAsIC04LjQsIC00LjgsIC01MC4wLCAtMy4wLCAtNy4xLCAtMC4xLCAtNy4zLCAyLjMsIC04LjcsIDMuOSxdLFxuICAgICAgICAgICAgWy03LjMsIC02LjMsIC04LjksIC01LjUsIDIuOSwgMC4yLCAxLjUsIDEuMiwgLTguNSwgLTIuMywgLTEwLjAsIC0xLjcsIC01LjYsIC0xMC41LCAtNS41LCAtOS42LCAtNC4zLCAtNy45LCAtNi4xLCAtNy4yLCAyLjMsIC0wLjYsIDAuNSwgLTAuMCwgLTguOSwgLTExLjAsIC05LjQsIC05LjMsIC00LjYsIC05LjQsIC03LjMsIC04LjEsIC03LjgsIC05LjgsIC04LjksIC05LjIsIDIuOCwgMC4xLCAxLjIsIDAuOCwgLTUuOSwgLTYuOCwgLTUuOSwgLTYuMywgLTQuMSwgLTcuMiwgLTYuMSwgLTYuMiwgLTUwLjAsIC05LjksIC01MC4wLCAtOC42LCAxMi41LCA5LjQsIDExLjAsIDkuOCwgLTUwLjAsIC00LjgsIC04LjcsIC0zLjUsIC0wLjAsIC04LjYsIC0yLjEsIC03LjAsXSxcbiAgICAgICAgICAgIFstMTAuMSwgLTQuMywgLTEwLjgsIC01LjgsIDAuMSwgMi4zLCAwLjcsIDAuNiwgLTEwLjQsIC0wLjIsIC0xMC44LCAtMi4wLCAtOC44LCAtOS4yLCAtOC4wLCAtOS43LCAtNi44LCAtNS45LCAtNy41LCAtNy4wLCAtMS40LCAyLjIsIC0wLjksIC0wLjQsIC0xMC44LCAtNy43LCAtOS44LCAtOC44LCAtOC45LCAtNy4zLCAtOS42LCAtOS4xLCAtMTAuNSwgLTguMywgLTEwLjIsIC0xMC4wLCAtMC4wLCAyLjUsIDAuNywgMC41LCAtNy41LCAtNS4xLCAtNy4xLCAtNi43LCAtNy40LCAtNS43LCAtOC4xLCAtNy4wLCAtNTAuMCwgLTUuOCwgLTUwLjAsIC03LjAsIDkuNCwgMTIuNywgMTAuMSwgMTAuMCwgLTUwLjAsIC0xLjUsIC0xMS4zLCAtMy4zLCAtNS40LCAtNC4yLCAtNS42LCAtNi44LF0sXG4gICAgICAgICAgICBbLTguNCwgLTYuMiwgLTguOSwgLTUuOSwgMS44LCAwLjQsIDIuNywgMS4yLCAtOS4xLCAtMS4yLCAtOC44LCAtMS41LCAtNy4yLCAtMTAuNSwgLTQuOSwgLTkuNiwgLTUuNywgLTcuNCwgLTUuNSwgLTcuNCwgMC4zLCAtMC4zLCAxLjgsIC0wLjQsIC05LjAsIC04LjcsIC03LjMsIC04LjksIC01LjksIC05LjQsIC02LjQsIC04LjcsIC04LjcsIC05LjEsIC04LjUsIC05LjQsIDEuNCwgMC43LCAzLjUsIDAuNywgLTYuNiwgLTUuMywgLTQuNywgLTUuOCwgLTUuNywgLTcuNSwgLTUuNSwgLTcuMSwgLTUwLjAsIC04LjksIC01MC4wLCAtOC40LCAxMS4wLCAxMC4xLCAxMy4yLCAxMC4yLCAtNTAuMCwgLTQuMiwgLTYuMSwgLTMuNiwgLTMuNSwgLTguNCwgLTEuMiwgLTYuOCxdLFxuICAgICAgICAgICAgWy05LjEsIC01LjQsIC0xMC40LCAtNC4yLCAxLjAsIDAuNSwgMC42LCAyLjQsIC05LjYsIC0xLjUsIC0xMC41LCAtMC41LCAtOC45LCAtMTAuNSwgLTcuMiwgLTguMywgLTYuMywgLTYuOSwgLTcuNywgLTUuMSwgLTAuNSwgMC4xLCAtMC42LCAyLjMsIC0xMS4xLCAtMTAuMiwgLTEwLjUsIC03LjAsIC04LjMsIC05LjQsIC05LjQsIC02LjYsIC05LjYsIC05LjcsIC0xMC4wLCAtNy45LCAwLjcsIDAuNiwgMC44LCAyLjMsIC03LjEsIC02LjUsIC03LjIsIC01LjAsIC02LjUsIC03LjQsIC03LjUsIC01LjQsIC01MC4wLCAtNy42LCAtNTAuMCwgLTQuOCwgOS44LCAxMC4wLCAxMC4yLCAxMi4xLCAtNTAuMCwgLTMuMSwgLTExLjQsIC0wLjcsIC00LjYsIC02LjYsIC00LjksIC0zLjksXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOS4yLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMy4zLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy4wLCAtMTMuMSwgLTguMywgLTkuMiwgLTYuNSwgLTguOSwgLTcuNiwgLTkuOCwgLTAuNywgLTkuMiwgLTIuMSwgLTEyLjQsIC0xMC4zLCAtMTIuNCwgLTExLjYsIC05LjUsIC00LjYsIC0xMC40LCAtNS43LCAtMTMuNiwgLTEwLjEsIC0xMS40LCAtMTAuOSwgLTYuNSwgLTEuNSwgLTYuMiwgLTMuNiwgLTEyLjgsIC04LjAsIC0xMi4zLCAtOS43LCAtMTYuNSwgLTEyLjcsIC0xNS42LCAtMTQuMywgLTguNywgLTYuMCwgLTcuMSwgLTcuNSwgLTkuNSwgLTQuMSwgLTguNCwgLTYuMSwgLTExLjAsIC04LjYsIC0xMS4zLCAtOS4zLCAtNTAuMCwgLTEuNSwgLTUwLjAsIC0zLjAsIC00LjgsIC0xLjUsIC00LjIsIC0zLjEsIC01MC4wLCAxNi40LCAtNS4xLCAxNC4yLCAtMTAuMSwgLTQuMywgLTEwLjAsIC01LjQsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTE2LjMsIC0xMS44LCAtMTUuNSwgLTEzLjYsIC0xNS4zLCAtMTIuMSwgLTE2LjEsIC03LjcsIC0xMy4zLCAtNC4yLCAtMTIuNiwgLTE0LjEsIC0xNi4yLCAtMTAuMywgLTE1LjQsIC05LjYsIC0xMS42LCAtNy43LCAtOS44LCAtMTQuMywgLTE3LjUsIC0xMS4xLCAtMTcuMiwgLTUuMywgLTcuMSwgLTIuMiwgLTcuMSwgLTkuNiwgLTExLjksIC04LjcsIC0xMS40LCAtMTcuMSwgLTIwLjYsIC0xNS4zLCAtMTkuOSwgLTE0LjEsIC0xNC44LCAtMTIuNCwgLTE2LjUsIC0xMS43LCAtMTIuOCwgLTYuNCwgLTEzLjQsIC0xNC4zLCAtMTUuNywgLTEyLjcsIC0xNC4wLCAtNTAuMCwgLTcuOCwgLTUwLjAsIC03LjEsIC04LjcsIC0xMS4zLCAtNi4xLCAtMTEuNCwgLTUwLjAsIC01LjEsIDE4LjYsIC00LjgsIC04LjYsIC04LjEsIC00LjUsIC03LjMsXSxcbiAgICAgICAgICAgIFstMTIuNCwgLTguMiwgLTEzLjAsIC01LjksIC03LjcsIC03LjgsIC03LjQsIC01LjgsIC04LjgsIC0yLjAsIC05LjMsIC0wLjQsIC0xMS42LCAtMTEuMywgLTExLjYsIC05LjQsIC04LjksIC01LjYsIC0xMC4wLCAtMy4yLCAtMTEuNSwgLTExLjEsIC0xMC41LCAtOC4zLCAtNi4zLCAtNC45LCAtNi43LCAtMS4yLCAtMTAuNiwgLTkuNywgLTExLjMsIC04LjAsIC0xNC44LCAtMTMuMSwgLTE1LjUsIC0xMS40LCAtNy41LCAtNy41LCAtNy4xLCAtNS45LCAtOC40LCAtNS44LCAtOC4xLCAtMy42LCAtOS45LCAtOS43LCAtMTAuMSwgLTguMiwgLTUwLjAsIC0zLjAsIC01MC4wLCAtMC4xLCAtMy41LCAtMy4zLCAtMy42LCAtMC43LCAtNTAuMCwgMTQuMiwgLTQuOCwgMTYuNCwgLTguOSwgLTUuOCwgLTguOSwgLTMuNCxdLFxuICAgICAgICAgICAgWy0xMC43LCAtMTMuMiwgLTEyLjQsIC0xMS42LCAtNC44LCAtOC40LCAtNi4xLCAtNy4yLCAtMTAuMywgLTExLjgsIC0xMS4wLCAtMTEuNiwgMi44LCAtMS43LCAwLjcsIC0xLjEsIC02LjIsIC05LjcsIC03LjMsIC04LjQsIC01LjMsIC04LjYsIC02LjEsIC04LjMsIC0xMC41LCAtMTEuMiwgLTkuOCwgLTEwLjIsIDkuNSwgNi41LCA3LjYsIDYuOCwgLTEyLjEsIC0xNi4wLCAtMTMuMCwgLTE2LjIsIC01LjIsIC04LjYsIC03LjEsIC03LjgsIC0xMi41LCAtMTQuNCwgLTEyLjEsIC0xMy4wLCAxLjQsIC0zLjAsIC0xLjYsIC0yLjQsIC01MC4wLCAtOC4xLCAtNTAuMCwgLTcuMywgLTAuMCwgLTUuNCwgLTMuNSwgLTQuNiwgLTUwLjAsIC0xMC4xLCAtOC42LCAtOC45LCAxMy4yLCAtMC45LCA5LjcsIC0wLjMsXSxcbiAgICAgICAgICAgIFstMTguMSwgLTEyLjMsIC0xOS40LCAtMTQuMiwgLTEyLjIsIC05LjUsIC0xMS41LCAtMTAuOCwgLTE3LjksIC0xMS45LCAtMTguMiwgLTEzLjksIC02LjQsIC0zLjcsIC02LjgsIC01LjQsIC0xMi44LCAtNS45LCAtMTMuNiwgLTcuNCwgLTEzLjcsIC05LjksIC0xMi45LCAtMTIuNywgLTE2LjIsIC0xMS42LCAtMTUuMiwgLTEyLjcsIC0zLjIsIDAuNSwgLTMuMywgLTEuOCwgLTE4LjksIC0xNi42LCAtMTguOCwgLTE5LjIsIC0xMi41LCAtOS40LCAtMTAuNiwgLTExLjEsIC0xNy4zLCAtMTQuMSwgLTE2LjIsIC0xNi4wLCAtNy45LCAtMy43LCAtNy44LCAtNi4zLCAtNTAuMCwgMy42LCAtNTAuMCwgMi4zLCAtOC42LCAtNC4yLCAtOC40LCAtNi42LCAtNTAuMCwgLTQuMywgLTguMSwgLTUuOCwgLTAuOSwgMTQuMiwgLTEuOCwgMTEuNixdLFxuICAgICAgICAgICAgWy0xMS44LCAtMTMuMSwgLTExLjUsIC0xMi4wLCAtNi4yLCAtOC4zLCAtNS40LCAtNy40LCAtMTEuOCwgLTEyLjMsIC0xMS4xLCAtMTEuNCwgMC41LCAtMi41LCAyLjQsIC0xLjYsIC02LjgsIC05LjksIC02LjQsIC04LjksIC02LjEsIC04LjYsIC01LjAsIC03LjgsIC0xMC40LCAtMTEuNiwgLTguNSwgLTkuOSwgOC4yLCA2LjQsIDguNywgNi45LCAtMTIuNCwgLTE3LjAsIC0xMi42LCAtMTUuOCwgLTYuNSwgLTguNSwgLTUuMCwgLTcuOCwgLTEzLjIsIC0xMy42LCAtMTAuMywgLTEzLjcsIC0wLjcsIC0zLjIsIC0wLjMsIC0yLjQsIC01MC4wLCAtOS40LCAtNTAuMCwgLTguNywgLTIuMSwgLTUuNiwgLTEuMiwgLTQuOSwgLTUwLjAsIC0xMC4wLCAtNC41LCAtOC45LCA5LjcsIC0xLjgsIDExLjMsIC0wLjksXSxcbiAgICAgICAgICAgIFstMTcuMiwgLTEzLjMsIC0xNy44LCAtMTEuNiwgLTExLjAsIC0xMS4xLCAtMTAuNCwgLTkuMCwgLTE2LjAsIC0xMi43LCAtMTYuMSwgLTExLjEsIC01LjIsIC01LjQsIC02LjAsIC0zLjMsIC0xMS44LCAtNy4zLCAtMTMuMywgLTUuOSwgLTEyLjcsIC0xMS45LCAtMTEuOSwgLTkuMywgLTE1LjIsIC0xNS4wLCAtMTQuOSwgLTExLjAsIC0yLjgsIC0xLjgsIC0yLjksIDAuNCwgLTE3LjQsIC0xOC40LCAtMTguMywgLTE1LjksIC0xMC43LCAtMTEuMiwgLTEwLjYsIC05LjAsIC0xNS40LCAtMTQuOCwgLTE1LjgsIC0xMy4zLCAtNi44LCAtNS45LCAtNy4yLCAtMy45LCAtNTAuMCwgMi4wLCAtNTAuMCwgMy45LCAtNy4wLCAtNi44LCAtNi44LCAtMy45LCAtNTAuMCwgLTUuNCwgLTcuMywgLTMuNCwgLTAuMywgMTEuNiwgLTAuOSwgMTQuMSxdXTtcbiAgICAgICAgdGhpcy5UUkFOUyA9IFtbNSwgMCwgMCwgNF0sXG4gICAgICAgICAgICBbMCwgNSwgNCwgMF0sXG4gICAgICAgICAgICBbMCwgNCwgNSwgMF0sXG4gICAgICAgICAgICBbNCwgMCwgMCwgNV1dO1xuICAgICAgICB0aGlzLkNPTkJMTyA9IHsgJ0EnOiAwLCAnUic6IDEsICdOJzogMiwgJ0QnOiAzLCAnQyc6IDQsICdRJzogNSwgJ0UnOiA2LCAnRyc6IDcsICdIJzogOCwgJ0knOiA5LCAnTCc6IDEwLCAnSyc6IDExLCAnTSc6IDEyLCAnRic6IDEzLCAnUCc6IDE0LCAnUyc6IDE1LCAnVCc6IDE2LCAnVyc6IDE3LCAnWSc6IDE4LCAnVic6IDE5LCAnQic6IDIwLCAnWic6IDIxLCAnWCc6IDIyLCAnKic6IDIzIH07XG4gICAgICAgIHRoaXMuQ09OTlVDTCA9IHsgJ0EnOiAwLCAnVCc6IDEsICdDJzogMiwgJ0cnOiAzIH07XG4gICAgICAgIHRoaXMuQ09OU0NITiA9IHsgJ0FBQSc6IDAsICdBQUMnOiAxLCAnQUFHJzogMiwgJ0FBVCc6IDMsICdBQ0EnOiA0LCAnQUNDJzogNSwgJ0FDRyc6IDYsICdBQ1QnOiA3LCAnQUdBJzogOCwgJ0FHQyc6IDksICdBR0cnOiAxMCwgJ0FHVCc6IDExLCAnQVRBJzogMTIsICdBVEMnOiAxMywgJ0FURyc6IDE0LCAnQVRUJzogMTUsICdDQUEnOiAxNiwgJ0NBQyc6IDE3LCAnQ0FHJzogMTgsICdDQVQnOiAxOSwgJ0NDQSc6IDIwLCAnQ0NDJzogMjEsICdDQ0cnOiAyMiwgJ0NDVCc6IDIzLCAnQ0dBJzogMjQsICdDR0MnOiAyNSwgJ0NHRyc6IDI2LCAnQ0dUJzogMjcsICdDVEEnOiAyOCwgJ0NUQyc6IDI5LCAnQ1RHJzogMzAsICdDVFQnOiAzMSwgJ0dBQSc6IDMyLCAnR0FDJzogMzMsICdHQUcnOiAzNCwgJ0dBVCc6IDM1LCAnR0NBJzogMzYsICdHQ0MnOiAzNywgJ0dDRyc6IDM4LCAnR0NUJzogMzksICdHR0EnOiA0MCwgJ0dHQyc6IDQxLCAnR0dHJzogNDIsICdHR1QnOiA0MywgJ0dUQSc6IDQ0LCAnR1RDJzogNDUsICdHVEcnOiA0NiwgJ0dUVCc6IDQ3LCAnVEFBJzogNDgsICdUQUMnOiA0OSwgJ1RBRyc6IDUwLCAnVEFUJzogNTEsICdUQ0EnOiA1MiwgJ1RDQyc6IDUzLCAnVENHJzogNTQsICdUQ1QnOiA1NSwgJ1RHQSc6IDU2LCAnVEdDJzogNTcsICdUR0cnOiA1OCwgJ1RHVCc6IDU5LCAnVFRBJzogNjAsICdUVEMnOiA2MSwgJ1RURyc6IDYyLCAnVFRUJzogNjMgfTtcbiAgICAgICAgdGhpcy5zZXRNZXRob2QoYWxpZ25HcmlkXyk7XG4gICAgICAgIHRoaXMuc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXyk7XG4gICAgICAgIHRoaXMuc2V0R2FwKGdhcF8pO1xuICAgIH1cbiAgICBmaWxsTmVlZGxlbWFuKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0udmFsdWUgPSAtaSAqIHRoaXMuZ2FwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4yOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0ucGFyZW50SiA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbGxPbmUoaSwgaikge1xuICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IE1hdGgubWF4KHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdLCBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1bal0udmFsdWUgLSB0aGlzLmdhcCwgdGhpcy5kcEdyaWRbaV1baiAtIDFdLnZhbHVlIC0gdGhpcy5nYXApKTtcbiAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPT0gdGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXApIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ3JpZEZyb21OYW1lKHBhdGgpIHtcbiAgICAgICAgc3dpdGNoIChwYXRoKSB7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU00NSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTQ1O1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU01MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTYyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNjI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU04MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTgwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNOTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU05MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTMwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMzA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU03MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTcwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNMjUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMjUwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTlVDTEVPVElERVMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5OVUNMRU9USURFUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUUkFOUyc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlRSQU5TO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTk5VQ0w7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NDSE5FSURFUic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlNDSE5FSURFUjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05TQ0hOO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsU2NvcmVzKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdFJlc3VsdChpLCBqKSB7XG4gICAgICAgIGxldCByZXMxID0gXCJcIiwgcmVzMiA9IFwiXCIsIGdhcFMgPSBcIlwiO1xuICAgICAgICBsZXQgdG90YWwgPSB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0ZXA7IGkrKykge1xuICAgICAgICAgICAgZ2FwUyArPSAnfCc7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPiAwIHx8IGogPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9PSBpKSB7XG4gICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIHJlczIgPSB0aGlzLnNlcTIuc3Vic3RyKChqIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9PSBqKSB7XG4gICAgICAgICAgICAgICAgcmVzMiA9IGdhcFMgKyByZXMyO1xuICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgLSAxID49IDApXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIGlmIChqIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0ZW1wSSA9IGk7XG4gICAgICAgICAgICBpID0gdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50STtcbiAgICAgICAgICAgIGogPSB0aGlzLmRwR3JpZFt0ZW1wSV1bal0ucGFyZW50SjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsaWduZWQocmVzMSwgcmVzMiwgdG90YWwpO1xuICAgIH1cbiAgICBmaWxsU2NvcmVzKCkge1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnNjb3Jlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3Jlc1tpXS5wdXNoKHRoaXMuYWxpZ25HcmlkW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXExLnN1YnN0cihpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV1bdGhpcy5jb25uZWN0aW9uc1t0aGlzLnNlcTIuc3Vic3RyKGogKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCldXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHlwZVJlYygpIHtcbiAgICAgICAgaWYgKC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBVEdDXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIk5VQ0xFT1RJREVTXCI7XG4gICAgICAgIGlmICgvW0FSTkRDUUVHSElMS01GUFNUV1lWQlpYKl0qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTIpKVxuICAgICAgICAgICAgcmV0dXJuIFwiQkxPU1VNNjJcIjtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW4ndCByZWNvZ25pemUgc2VxdWVuY2UgdHlwZVwiKTtcbiAgICB9XG4gICAgbmVlZGxlbWFuV3VuY2goKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGxOZWVkbGVtYW4oKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdFJlc3VsdCh0aGlzLmxlbjEsIHRoaXMubGVuMik7XG4gICAgfVxuICAgIHNtaXRoV2F0ZXJtYW4oKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYmVzdFZhbCA9IDA7XG4gICAgICAgIGxldCBiZXN0SSA9IDAsIGJlc3RKID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJXVt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKXS52YWx1ZSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID4gYmVzdFZhbCkge1xuICAgICAgICAgICAgICAgICAgICBiZXN0VmFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RJID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEogPSBqO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQoYmVzdEksIGJlc3RKKTtcbiAgICB9XG4gICAgc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMubGVuMSA9IHRoaXMuc2VxMS5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMubGVuMiA9IHRoaXMuc2VxMi5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBzZXRHYXAoZ2FwXykge1xuICAgICAgICB0aGlzLmdhcCA9IGdhcF87XG4gICAgfVxuICAgIHNldE1ldGhvZChhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICBpZiAoYWxpZ25HcmlkXyA9PSBcIkFVVE9cIikge1xuICAgICAgICAgICAgYWxpZ25HcmlkXyA9IHRoaXMudHlwZVJlYygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZEZyb21OYW1lKGFsaWduR3JpZF8pO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFjcm9Nb2wobW9ub21lcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIGNvbnN0IG1vZHVsZVJka2l0ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kdWxlUmRraXQuZ2V0X21vbChtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gbW9sLmdldF92M0ttb2xibG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSBnZXRJbmRpY2VzKG1vbm9tZXJzW2ldW2pdLCBhKTtcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnaW5kaWNlcyddID0gaW5kaWNlcztcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddID0geWllbGQgcm90YXRlQmFja2JvbmVWMzAwMChhLCBpbmRpY2VzKTtcbiAgICAgICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5rVjMwMDAobW9ub21lcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0SW5kaWNlcyhtb25vbWVyLCBtb2xWMzAwMCkge1xuICAgIGNvbnN0IG1vbGZpbGUgPSBtb25vbWVyW1wibW9sZmlsZVwiXTtcbiAgICBsZXQgaW5kZXhTdGFydCA9IG1vbGZpbGUuaW5kZXhPZignTSAgUkdQJywgMCkgKyA4O1xuICAgIGxldCBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgY29uc3QgaW5kaWNlc0RhdGEgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICBsZXQgcGFyc2VkRGF0YSA9IGluZGljZXNEYXRhLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgcmVtRmlyc3QgPSBwYXJzZWREYXRhWzJdID09ICcxJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgcmVtTGFzdCA9IHBhcnNlZERhdGFbMl0gPT0gJzInID8gcGFyc2VJbnQocGFyc2VkRGF0YVsxXSkgOiBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sVjMwMDApO1xuICAgIGxldCBpbmRleEJvbmRzID0gbW9sVjMwMDAuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgIGluZGV4U3RhcnQgPSBpbmRleEJvbmRzO1xuICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICBsZXQgZmlyc3QgPSAwO1xuICAgIGxldCBsYXN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZEZpcnN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZExhc3QgPSAwO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgIGlmIChmaXJzdCA9PSAwIHx8IGxhc3QgPT0gMCkge1xuICAgICAgICAgICAgaW5kZXhTdGFydCA9IG1vbFYzMDAwLmluZGV4T2YoJ1YzMCcsIGluZGV4U3RhcnQpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sVjMwMDAuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgICAgICAgICBjb25zdCBib25kRGF0YSA9IG1vbFYzMDAwLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICAgICAgICAgIHBhcnNlZERhdGEgPSBib25kRGF0YS5zcGxpdCgnICcpO1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzJdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaXJzdCwgbGFzdCwgcmVtRmlyc3QsIHJlbUxhc3QsIHJlbUJvbmRGaXJzdCwgcmVtQm9uZExhc3QgfTtcbn1cbmZ1bmN0aW9uIHJvdGF0ZUJhY2tib25lVjMwMDAobW9sQmxvY2ssIGluZGljZXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGV4dHJhY3RBdG9tRGF0YVYzMDAwKG1vbEJsb2NrKTtcbiAgICAgICAgY29uc3QgbmF0b20gPSBjb29yZGluYXRlcy5hdG9tSW5kZXgubGVuZ3RoO1xuICAgICAgICBjb25zdCBmaXJzdCA9IGluZGljZXNbJ2ZpcnN0J107XG4gICAgICAgIGNvbnN0IGxhc3QgPSBpbmRpY2VzWydsYXN0J107XG4gICAgICAgIGNvbnN0IHhDZW50ZXIgPSAoY29vcmRpbmF0ZXMueFtsYXN0XSArIGNvb3JkaW5hdGVzLnhbZmlyc3RdKSAvIDI7XG4gICAgICAgIGNvbnN0IHlDZW50ZXIgPSAoY29vcmRpbmF0ZXMueVtsYXN0XSArIGNvb3JkaW5hdGVzLnlbZmlyc3RdKSAvIDI7XG4gICAgICAgIC8vcGxhY2UgdG8gY2VudGVyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSAtPSB4Q2VudGVyO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSAtPSB5Q2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhbmdsZSA9IDA7XG4gICAgICAgIGlmIChjb29yZGluYXRlcy54W2ZpcnN0XSA9PSAwKVxuICAgICAgICAgICAgYW5nbGUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSA+IGNvb3JkaW5hdGVzLnlbbGFzdF0gPyBNYXRoLlBJIC8gMiA6IDMgKiBNYXRoLlBJIC8gMjtcbiAgICAgICAgZWxzZSBpZiAoY29vcmRpbmF0ZXMueVtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueFtmaXJzdF0gPiBjb29yZGluYXRlcy54W2xhc3RdID8gTWF0aC5QSSA6IDA7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVyaXZhdGl2ZSA9IGNvb3JkaW5hdGVzLnlbZmlyc3RdIC8gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPCBjb29yZGluYXRlcy54W2xhc3RdKVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLmF0YW4oZGVyaXZhdGl2ZSkgOiBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcbiAgICAgICAgY29uc3Qgc2luID0gTWF0aC5zaW4oYW5nbGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHhBZGQgPSBjb29yZGluYXRlcy54W2ldO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSA9IHhBZGQgKiBjb3MgLSBjb29yZGluYXRlcy55W2ldICogc2luO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSA9IHhBZGQgKiBzaW4gKyBjb29yZGluYXRlcy55W2ldICogY29zO1xuICAgICAgICB9XG4gICAgICAgIC8vcGxhY2UgdG8gcmlnaHRcbiAgICAgICAgY29uc3QgeFNoaWZ0ID0gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKylcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geFNoaWZ0O1xuICAgICAgICAvL3Jld3JpdGUgbW9sQmxvY2tcbiAgICAgICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXhFbmQgPSBpbmRleDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleEVuZCk7XG4gICAgICAgICAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnNsaWNlKDAsIGluZGV4KSArXG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSArICcgJyArIGNvb3JkaW5hdGVzLnlbaV0gK1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9sQmxvY2s7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jaykge1xuICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xCbG9jayk7XG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdcXG4nLCBpbmRleCk7XG4gICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgY29uc3QgaW5kZXhlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHR5cGVzID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgY29uc3QgeCA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHkgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlcnMubmF0b207IGkrKykge1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgaW5kZXhlc1tpXSA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgdHlwZXNbaV0gPSBtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeFtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IGluZGV4RW5kICsgMTtcbiAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICB5W2ldID0gcGFyc2VGbG9hdChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYXRvbUluZGV4OiBpbmRleGVzLCBhdG9tVHlwZTogdHlwZXMsIHg6IHgsIHk6IHkgfTtcbn1cbmZ1bmN0aW9uIGxpbmtWMzAwMChtb25vbWVycykge1xuICAgIGxldCBtYWNyb01vbEJsb2NrID0gJ1xcbkRhdGFncm9rIG1hY3JvbW9sZWN1bGUgaGFuZGxlclxcblxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ1RBQlxcbic7XG4gICAgbGV0IGF0b21CbG9jayA9ICcnO1xuICAgIGxldCBib25kQmxvY2sgPSAnJztcbiAgICBsZXQgY29sbGVjdGlvbkJsb2NrID0gJyc7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IFtdO1xuICAgIGxldCBuYXRvbSA9IDA7XG4gICAgbGV0IG5ib25kID0gMDtcbiAgICBsZXQgeFNoaWZ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBtb2xmaWxlID0gbW9ub21lcnNbaV1bJ21vbGZpbGUnXTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnbGFzdCddO1xuICAgICAgICBjb25zdCByZW1GaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUZpcnN0J107XG4gICAgICAgIGNvbnN0IHJlbUxhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1MYXN0J107XG4gICAgICAgIGNvbnN0IHJlbUJvbmRGaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRGaXJzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kTGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRMYXN0J107XG4gICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnJlcGxhY2VBbGwoJygtXFxuTSAgVjMwICcsICcoJylcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKCctXFxuTSAgVjMwICcsICcnKS5yZXBsYWNlQWxsKCcgKScsICcpJyk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgbGV0IGluZGV4QXRvbXMgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleEF0b21zKTtcbiAgICAgICAgbGV0IGluZGV4ID0gaW5kZXhBdG9tcztcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXhBdG9tcztcbiAgICAgICAgY29uc3QgdG90YWxTaGlmdCA9IHhTaGlmdCAtIGNvb3JkaW5hdGVzLnhbZmlyc3QgLSAxXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1iZXJzLm5hdG9tOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChjb29yZGluYXRlcy5hdG9tSW5kZXhbal0gIT0gcmVtRmlyc3QgJiYgY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUxhc3QpIHsgLy98fCBpID09IDApIHtcbiAgICAgICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBudW1iZXJcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSArIHRvdGFsU2hpZnQpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSkpIC8gMTAwMDA7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgY29vcmRpbmF0ZSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCcsIGluZGV4KSAtIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhBdG9tc0VuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBBVE9NJyk7XG4gICAgICAgIGF0b21CbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEF0b21zICsgMSwgaW5kZXhBdG9tc0VuZCk7XG4gICAgICAgIGxldCBpbmRleEJvbmRzID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQk9ORCcpOyAvLyBWMzAwMCBpbmRleCBmb3IgYm9uZHNcbiAgICAgICAgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhCb25kcyk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhCb25kcztcbiAgICAgICAgaW5kZXhFbmQgPSBpbmRleEJvbmRzO1xuICAgICAgICBsZXQgYm9uZE51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYm9uZCBudW1iZXJcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBib25kTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBpZiAoYm9uZE51bWJlciA9PSByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA9PSByZW1Cb25kTGFzdCkge1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4IC09IDc7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib25kTnVtYmVyID0gKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgJiYgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYm9uZE51bWJlciA+IHJlbUJvbmRGaXJzdCB8fCBib25kTnVtYmVyID4gcmVtQm9uZExhc3QpID8gYm9uZE51bWJlciAtIDEgOiBib25kTnVtYmVyO1xuICAgICAgICAgICAgYm9uZE51bWJlciArPSBuYm9uZDtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGJvbmROdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIC8vcmV3cml0ZSBhdG9tIHBhaXIgaW4gYm9uZFxuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gTWF0aC5taW4obW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCksIG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICBhdG9tTnVtYmVyICs9IG5hdG9tO1xuICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhCb25kRW5kID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgRU5EIEJPTkQnKTtcbiAgICAgICAgYm9uZEJsb2NrICs9IG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4Qm9uZHMgKyAxLCBpbmRleEJvbmRFbmQpO1xuICAgICAgICAvL2xldCBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGNvbGxlY3Rpb25zXG4gICAgICAgIC8vIHdoaWxlIChpbmRleENvbGxlY3Rpb24gIT0gLTEpIHtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gKz0gMjg7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVuZCA9IG1vbGZpbGUuaW5kZXhPZignKScsIGluZGV4Q29sbGVjdGlvbik7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVudHJpZXMgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleENvbGxlY3Rpb24sIGNvbGxlY3Rpb25FbmQpLnNwbGl0KCcgJykuc2xpY2UoMSk7XG4gICAgICAgIC8vICAgY29sbGVjdGlvbkVudHJpZXMuZm9yRWFjaCgoZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vICAgICBjb2xsZWN0aW9uLnB1c2gocGFyc2VJbnQoZSkgKyBuYXRvbSk7XG4gICAgICAgIC8vICAgfSk7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gY29sbGVjdGlvbkVuZDtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyB9XG4gICAgICAgIG5hdG9tICs9IG51bWJlcnMubmF0b20gLSAyO1xuICAgICAgICBuYm9uZCArPSBudW1iZXJzLm5ib25kIC0gMjtcbiAgICAgICAgeFNoaWZ0ICs9IGNvb3JkaW5hdGVzLnhbbGFzdF0gLSBjb29yZGluYXRlcy54W2ZpcnN0XSArIDE7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5hdG9tKys7XG4gICAgICAgICAgICBjb25zdCBzaGlmdCA9IHhTaGlmdCArIDAuMjtcbiAgICAgICAgICAgIGF0b21CbG9jayArPSAnTSAgVjMwICcgKyBuYXRvbSArICcgTyAnICsgc2hpZnQgKyAnIDAgMC4wMDAwMDAgMFxcbic7XG4gICAgICAgIH1cbiAgICAgICAgbmJvbmQrKztcbiAgICAgICAgaWYgKGkgPT0gbW9ub21lcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDMgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMTtcbiAgICAgICAgICAgIGJvbmRCbG9jayArPSAnTSAgVjMwICcgKyBuYm9uZCArICcgMSAnICsgcmlnaHRUZXJtaW5hbCArICcgJyArIG5hdG9tICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByaWdodFRlcm1pbmFsID0gKGxhc3QgPiByZW1GaXJzdCAmJiBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMiA6XG4gICAgICAgICAgICAgICAgKGxhc3QgPiByZW1GaXJzdCB8fCBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMik7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbW9ub21lcnNbaSArIDFdWydpbmRpY2VzJ107XG4gICAgICAgICAgICBjb25zdCBuZXh0Rmlyc3QgPSBuZXh0WydmaXJzdCddO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlbUZpcnN0ID0gbmV4dFsncmVtRmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1MYXN0ID0gbmV4dFsncmVtTGFzdCddO1xuICAgICAgICAgICAgY29uc3QgbGVmdFRlcm1pbmFsID0gKG5leHRGaXJzdCA+IG5leHRSZW1GaXJzdCAmJiBuZXh0Rmlyc3QgPiBuZXh0UmVtTGFzdCkgPyBuZXh0Rmlyc3QgKyBuYXRvbSAtIDIgOlxuICAgICAgICAgICAgICAgIChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgfHwgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAxIDpcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZpcnN0ICsgbmF0b207XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBsZWZ0VGVybWluYWwgKyAnXFxuJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBjb25zdCBlbnRyaWVzID0gNDtcbiAgICAvLyBjb25zdCBjb2xsTnVtYmVyID0gTWF0aC5jZWlsKGNvbGxlY3Rpb24ubGVuZ3RoIC8gZW50cmllcyk7XG4gICAgLy8gY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsgJyAtXFxuJztcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxOdW1iZXI7IGkrKykge1xuICAgIC8vICAgY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgJztcbiAgICAvLyAgIGNvbnN0IGVudHJpZXNDdXJyZW50ID0gaSArIDEgPT0gY29sbE51bWJlciA/IGNvbGxlY3Rpb24ubGVuZ3RoIC0gKGNvbGxOdW1iZXIgLSAxKSplbnRyaWVzIDogZW50cmllcztcbiAgICAvLyAgIGZvciAobGV0IGogPSAwOyBqIDwgZW50cmllc0N1cnJlbnQ7IGorKykge1xuICAgIC8vICAgICBjb2xsZWN0aW9uQmxvY2sgKz0gKGogKyAxID09IGVudHJpZXNDdXJyZW50KSA/XG4gICAgLy8gICAgICAgKGkgPT0gY29sbE51bWJlciAtIDEgPyBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJylcXG4nIDogY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgLVxcbicpIDpcbiAgICAvLyAgICAgICBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJyAnO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvL2dlbmVyYXRlIGZpbGVcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQ09VTlRTICcgKyBuYXRvbSArICcgJyArIG5ib25kICsgJyAwIDAgMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYXRvbUJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQVRPTVxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYm9uZEJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQk9ORFxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ09MTEVDVElPTlxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9IGNvbGxlY3Rpb25CbG9jaztcbiAgICAvL21hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ09MTEVDVElPTlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBFTkRcXG4nO1xuICAgIHJldHVybiBtYWNyb01vbEJsb2NrO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spIHtcbiAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnJlcGxhY2VBbGwoJ1xccicsICcnKTsgLy9lcXVhbGl6ZSBvbGQgYW5kIG5ldyBzZGYgc3RhbmRhcmRzXG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignQ09VTlRTJykgKyA3OyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgYW5kIGJvbmRzIG51bWJlclxuICAgIGxldCBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgY29uc3QgYXRvbXNOdW1iZXIgPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGJvbmRzTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIHJldHVybiB7IG5hdG9tOiBhdG9tc051bWJlciwgbmJvbmQ6IGJvbmRzTnVtYmVyIH07XG59XG4iLCJpbXBvcnQgKiBhcyBDIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBBbWlub2FjaWRzUGFsZXR0ZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQgeyBOdWNsZW90aWRlc1BhbGV0dGVzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7IFVua25vd25TZXFQYWxldHRlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91bmtub3duJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0IHsgcHJpbnRMZWZ0T3JDZW50ZXJlZCwgRHJhd1N0eWxlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gV2ViTG9nby5tb25vbWVyVG9TaG9ydDtcbmNvbnN0IGdhcFJlbmRlcmVyID0gNTtcbmZ1bmN0aW9uIGdldFBhbGV0dGVCeVR5cGUocGFsZXR0ZVR5cGUpIHtcbiAgICBzd2l0Y2ggKHBhbGV0dGVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ1BUJzpcbiAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAvLyBvdGhlclxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdykge1xuICAgIHJldHVybiBncmlkID8gTWF0aC5taW4oZ3JpZC5jYW52YXMud2lkdGggLSB4LCB3KSA6IGcuY2FudmFzLndpZHRoIC0geDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMpIHtcbiAgICBjb25zdCBzaW1wbGlmaWVkID0gIXN1YlBhcnRzLnNvbWUoKGFtaW5vLCBpbmRleCkgPT4gYW1pbm8ubGVuZ3RoID4gMSAmJlxuICAgICAgICBpbmRleCAhPSAwICYmXG4gICAgICAgIGluZGV4ICE9IHN1YlBhcnRzLmxlbmd0aCAtIDEpO1xuICAgIGNvbnN0IHRleHQgPSBbXTtcbiAgICBjb25zdCBnYXAgPSBzaW1wbGlmaWVkID8gJycgOiAnICc7XG4gICAgc3ViUGFydHMuZm9yRWFjaCgoYW1pbm8sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA8IHN1YlBhcnRzLmxlbmd0aClcbiAgICAgICAgICAgIGFtaW5vICs9IGAke2FtaW5vID8gJycgOiAnLSd9JHtnYXB9YDtcbiAgICAgICAgdGV4dC5wdXNoKGFtaW5vKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW3RleHQsIHNpbXBsaWZpZWRdO1xufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ3NlcXVlbmNlJzsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuICdzZXF1ZW5jZSc7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIG9uTW91c2VNb3ZlKGdyaWRDZWxsLCBlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpICE9PSAnU0VRLk1TQScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGhXb3Jkc1N1bSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4SW5kZXgnXTtcbiAgICAgICAgY29uc3QgYXJnc1ggPSBlLm9mZnNldFggLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IG1heEluZGV4O1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbWF4TGVuZ3RoV29yZHNTdW1bbWF4SW5kZXggKyAxXSA9IGFyZ3NYICsgMTtcbiAgICAgICAgbGV0IG1pZCA9IDA7XG4gICAgICAgIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtWzBdKSB7XG4gICAgICAgICAgICB3aGlsZSAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWlkID0gTWF0aC5mbG9vcigocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdICYmIGFyZ3NYIDw9IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPCBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW2xlZnRdKSA/IGxlZnQgKyAxIDogbGVmdDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIoJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICAoKCgoX2MgPSAoX2IgPSBzdWJQYXJ0c1tsZWZ0XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPiAwKSkgPyB1aS50b29sdGlwLnNob3codWkuZGl2KHN1YlBhcnRzW2xlZnRdKSwgZS54ICsgMTYsIGUueSArIDE2KSA6IHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBjZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBjZWxsU3R5bGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBncmlkID0gZ3JpZENlbGwuZ3JpZFJvdyAhPT0gLTEgPyBncmlkQ2VsbC5ncmlkIDogbnVsbDtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdyaWRDZWxsLmNlbGw7XG4gICAgICAgIGNvbnN0IHBhbGV0dGVUeXBlID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCk7XG4gICAgICAgIGNvbnN0IG1pbkRpc3RhbmNlUmVuZGVyZXIgPSA1MDtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgZy5zYXZlKCk7XG4gICAgICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgICAgIGcucmVjdCh4LCB5LCB3LCBoKTtcbiAgICAgICAgZy5jbGlwKCk7XG4gICAgICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICAgICAgY29uc3QgdW5pdHMgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0TGltaXQgPSBncmlkQ2VsbC5ib3VuZHMud2lkdGggLyA1O1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IsIGdyaWRDZWxsLmJvdW5kcy53aWR0aCAvIDUpO1xuICAgICAgICBjb25zdCBtYXhMZW5ndGhPZk1vbm9tZXIgPSA4O1xuICAgICAgICBsZXQgbWF4TGVuZ3RoV29yZHMgPSB7fTtcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnLmNhbGN1bGF0ZWRDZWxsUmVuZGVyJykgIT09IHNwbGl0TGltaXQudG9TdHJpbmcoKSkge1xuICAgICAgICAgICAgbGV0IHNhbXBsZXMgPSAwO1xuICAgICAgICAgICAgd2hpbGUgKHNhbXBsZXMgPCBNYXRoLm1pbihncmlkQ2VsbC5jZWxsLmNvbHVtbi5sZW5ndGgsIDEwMCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0KHNhbXBsZXMpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhjb2x1bW4pO1xuICAgICAgICAgICAgICAgIHN1YlBhcnRzLmZvckVhY2goKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFNpemUgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpLmxlbmd0aCAqIDcgKyBnYXBSZW5kZXJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRTaXplID4gKChfYSA9IG1heExlbmd0aFdvcmRzW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2luZGV4XSA9IHRleHRTaXplO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+ICgoX2IgPSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10gPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNhbXBsZXMgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtaW5MZW5ndGggPSAzICogNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aFdvcmRzW2ldIDwgbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2ldID0gbWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtYXhMZW5ndGhXb3JkU3VtID0ge307XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkU3VtWzBdID0gbWF4TGVuZ3RoV29yZHNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J107IGkrKykge1xuICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1baV0gPSBtYXhMZW5ndGhXb3JkU3VtW2kgLSAxXSArIG1heExlbmd0aFdvcmRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcCA9IHtcbiAgICAgICAgICAgICAgICAnYmlvLXN1bS1tYXhMZW5ndGhXb3Jkcyc6IG1heExlbmd0aFdvcmRTdW0sXG4gICAgICAgICAgICAgICAgJ2Jpby1tYXhJbmRleCc6IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXSxcbiAgICAgICAgICAgICAgICAnYmlvLW1heExlbmd0aFdvcmRzJzogbWF4TGVuZ3RoV29yZHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi5zZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicsIHNwbGl0TGltaXQudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkcyA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1tYXhMZW5ndGhXb3JkcyddO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGNlbGwudmFsdWUpO1xuICAgICAgICBsZXQgeDEgPSB4O1xuICAgICAgICBsZXQgY29sb3IgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgbGV0IGRyYXdTdHlsZSA9IERyYXdTdHlsZS5jbGFzc2ljO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdhbGlnbmVkJykuaW5jbHVkZXMoJ01TQScpICYmIGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygndW5pdHMnKSA9PT0gJ3NlcGFyYXRvcicpIHtcbiAgICAgICAgICAgIGRyYXdTdHlsZSA9IERyYXdTdHlsZS5NU0E7XG4gICAgICAgIH1cbiAgICAgICAgc3ViUGFydHMuZXZlcnkoKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sb3IgPSBwYWxldHRlLmdldChhbWlubyk7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSBpbmRleCA9PT0gc3ViUGFydHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4MSwgeSwgdywgaCwgZywgbW9ub21lclRvU2hvcnRGdW5jdGlvbihhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSwgY29sb3IsIDAsIHRydWUsIDEuMCwgc2VwYXJhdG9yLCBsYXN0LCBkcmF3U3R5bGUsIG1heExlbmd0aFdvcmRzLCBpbmRleCwgZ3JpZENlbGwpO1xuICAgICAgICAgICAgcmV0dXJuIHgxIC0gbWluRGlzdGFuY2VSZW5kZXJlciAtIGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCArIChncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgLSBncmlkQ2VsbC5ib3VuZHMueCkgPD0gZ3JpZENlbGwuYm91bmRzLndpZHRoO1xuICAgICAgICB9KTtcbiAgICAgICAgZy5yZXN0b3JlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTW9ub21lckNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTU9OT01FUjsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1PTk9NRVI7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDE1OyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIGcuZm9udCA9IGAxMnB4IG1vbm9zcGFjZWA7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG4gICAgICAgIGcudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhDLlRBR1MuQUxQSEFCRVQpKTtcbiAgICAgICAgY29uc3QgcyA9IGdyaWRDZWxsLmNlbGwudmFsdWUgfHwgJy0nO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhbGV0dGUuZ2V0KHMpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICBnLmZpbGxUZXh0KHMsIHggKyAodyAvIDIpLCB5ICsgKGggLyAyKSwgdyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDUic7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NQUNST01PTEVDVUxFX0RJRkZFUkVOQ0U7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIC8qKlxuICAgICAqIENlbGwgcmVuZGVyZXIgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHcgd2lkdGggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGggaGVpZ2h0IG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGx9IGdyaWRDZWxsIEdyaWQgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsU3R5bGV9IGNlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWQ7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBncmlkQ2VsbC5jZWxsO1xuICAgICAgICBjb25zdCBzID0gKF9hID0gY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbQy5UQUdTLlNFUEFSQVRPUl07XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwudGFibGVDb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGcsIHgsIHksIHcsIGgsIHMsIHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMoZywgeCwgeSwgdywgaCwgcywgdW5pdHMsIHNlcGFyYXRvciwgZnVsbFN0cmluZ0xlbmd0aCkge1xuICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICBjb25zdCBbczEsIHMyXSA9IHMuc3BsaXQoJyMnKTtcbiAgICBjb25zdCBzcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgY29uc3Qgc3ViUGFydHMxID0gc3BsaXR0ZXIoczEpO1xuICAgIGNvbnN0IHN1YlBhcnRzMiA9IHNwbGl0dGVyKHMyKTtcbiAgICBjb25zdCB0ZXh0U2l6ZTEgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czEpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0U2l6ZTIgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czIpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0V2lkdGggPSBNYXRoLm1heCh0ZXh0U2l6ZTEud2lkdGgsIHRleHRTaXplMi53aWR0aCk7XG4gICAgaWYgKGZ1bGxTdHJpbmdMZW5ndGgpIHtcbiAgICAgICAgdyA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgICAgICBnLmNhbnZhcy53aWR0aCA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgIH1cbiAgICBsZXQgdXBkYXRlZFggPSBNYXRoLm1heCh4LCB4ICsgKHcgLSAodGV4dFdpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQpKSAvIDIpO1xuICAgIC8vIDI4IGlzIHRoZSBoZWlnaHQgb2YgdGhlIHR3byBzdWJzdGl0dXRpb25zIG9uIHRvcCBvZiBlYWNoIG90aGVyICsgc3BhY2VcbiAgICBjb25zdCB1cGRhdGVkWSA9IE1hdGgubWF4KHksIHkgKyAoaCAtIDI4KSAvIDIpO1xuICAgIGcuc2F2ZSgpO1xuICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgZy5yZWN0KHgsIHksIGZ1bGxTdHJpbmdMZW5ndGggPyB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNCA6IHcsIGgpO1xuICAgIGcuY2xpcCgpO1xuICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgZy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICBsZXQgcGFsZXR0ZSA9IFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICBpZiAodW5pdHMgIT0gJ0hFTE0nKVxuICAgICAgICBwYWxldHRlID0gZ2V0UGFsZXR0ZUJ5VHlwZSh1bml0cy5zdWJzdHJpbmcodW5pdHMubGVuZ3RoIC0gMikpO1xuICAgIGNvbnN0IHZTaGlmdCA9IDc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJQYXJ0czEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYW1pbm8xID0gc3ViUGFydHMxW2ldO1xuICAgICAgICBjb25zdCBhbWlubzIgPSBzdWJQYXJ0czJbaV07XG4gICAgICAgIGNvbnN0IGNvbG9yMSA9IHBhbGV0dGUuZ2V0KGFtaW5vMSk7XG4gICAgICAgIGlmIChhbWlubzEgIT0gYW1pbm8yKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvcjIgPSBwYWxldHRlLmdldChhbWlubzIpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDAgPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSAtIHZTaGlmdCwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDEgPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSArIHZTaGlmdCwgdywgaCwgZywgYW1pbm8yLCBjb2xvcjIsIDAsIHRydWUpO1xuICAgICAgICAgICAgdXBkYXRlZFggPSBNYXRoLm1heChzdWJYMSwgc3ViWDApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHVwZGF0ZWRYID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFksIHcsIGgsIGcsIGFtaW5vMSwgY29sb3IxLCAwLCB0cnVlLCAwLjUpO1xuICAgICAgICB1cGRhdGVkWCArPSA0O1xuICAgIH1cbiAgICBnLnJlc3RvcmUoKTtcbn1cbiIsImV4cG9ydCB2YXIgQ09MVU1OU19OQU1FUztcbihmdW5jdGlvbiAoQ09MVU1OU19OQU1FUykge1xuICAgIENPTFVNTlNfTkFNRVNbXCJTUExJVF9DT0xcIl0gPSBcIn5zcGxpdFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWVwiXSA9IFwifmFjdGl2aXR5XCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlfc2NhbGVkXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFMSUdORURfU0VRVUVOQ0VcIl0gPSBcIn5hbGlnbmVkX3NlcXVlbmNlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFNSU5PX0FDSURfUkVTSURVRVwiXSA9IFwiQUFSXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBPU0lUSU9OXCJdID0gXCJQb3NcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiUF9WQUxVRVwiXSA9IFwicFZhbHVlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIk1FQU5fRElGRkVSRU5DRVwiXSA9IFwiTWVhbiBkaWZmZXJlbmNlXCI7XG59KShDT0xVTU5TX05BTUVTIHx8IChDT0xVTU5TX05BTUVTID0ge30pKTtcbmV4cG9ydCB2YXIgVEFHUztcbihmdW5jdGlvbiAoVEFHUykge1xuICAgIFRBR1NbXCJBQVJcIl0gPSBcIkFBUlwiO1xuICAgIFRBR1NbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgVEFHU1tcIlNFUEFSQVRPUlwiXSA9IFwic2VwYXJhdG9yXCI7XG4gICAgVEFHU1tcIlNFTEVDVElPTlwiXSA9IFwic2VsZWN0aW9uXCI7XG4gICAgVEFHU1tcIkFMUEhBQkVUXCJdID0gXCJhbHBoYWJldFwiO1xuICAgIFRBR1NbXCJBTElHTkVEXCJdID0gXCJhbGlnbmVkXCI7XG59KShUQUdTIHx8IChUQUdTID0ge30pKTtcbmV4cG9ydCB2YXIgU0VNX1RZUEVTO1xuKGZ1bmN0aW9uIChTRU1fVFlQRVMpIHtcbiAgICBTRU1fVFlQRVNbXCJNT05PTUVSXCJdID0gXCJNb25vbWVyXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRV9ESUZGRVJFTkNFXCJdID0gXCJNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZXCJdID0gXCJhY3Rpdml0eVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlTY2FsZWRcIjtcbiAgICBTRU1fVFlQRVNbXCJNQUNST01PTEVDVUxFXCJdID0gXCJNYWNyb21vbGVjdWxlXCI7XG59KShTRU1fVFlQRVMgfHwgKFNFTV9UWVBFUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgTVNBID0gJ01TQSc7XG5leHBvcnQgY29uc3QgU1RBVFMgPSAnc3RhdHMnO1xuZXhwb3J0IGNvbnN0IEVNQkVERElOR19TVEFUVVMgPSAnZW1iZWRkaW5nU3RhdHVzJztcbmV4cG9ydCBjb25zdCBQRVBUSURFU19BTkFMWVNJUyA9ICdpc1BlcHRpZGVzQW5hbHlzaXMnO1xuZXhwb3J0IHZhciBGTEFHUztcbihmdW5jdGlvbiAoRkxBR1MpIHtcbiAgICBGTEFHU1tcIkNFTExfQ0hBTkdJTkdcIl0gPSBcImlzQ2VsbENoYW5naW5nXCI7XG59KShGTEFHUyB8fCAoRkxBR1MgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IGFhckdyb3VwcyA9IHtcbiAgICAnUic6ICdQQycsICdIJzogJ1BDJywgJ0snOiAnUEMnLFxuICAgICdEJzogJ05DJywgJ0UnOiAnTkMnLFxuICAgICdTJzogJ1UnLCAnVCc6ICdVJywgJ04nOiAnVScsICdRJzogJ1UnLFxuICAgICdDJzogJ1NDJywgJ1UnOiAnU0MnLCAnRyc6ICdTQycsICdQJzogJ1NDJyxcbiAgICAnQSc6ICdIJywgJ1YnOiAnSCcsICdJJzogJ0gnLCAnTCc6ICdIJywgJ00nOiAnSCcsICdGJzogJ0gnLCAnWSc6ICdIJywgJ1cnOiAnSCcsXG4gICAgJy0nOiAnLScsXG59O1xuZXhwb3J0IGNvbnN0IGdyb3VwRGVzY3JpcHRpb24gPSB7XG4gICAgJ1BDJzogeyAnZGVzY3JpcHRpb24nOiAnUG9zaXRpdmUgQW1pbm8gQWNpZHMsIHdpdGggRWxlY3RyaWNhbGx5IENoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUicsICdIJywgJ0snXSB9LFxuICAgICdOQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ05lZ2F0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ0QnLCAnRSddIH0sXG4gICAgJ1UnOiB7ICdkZXNjcmlwdGlvbic6ICdBbWlubyBBY2lkcyB3aXRoIFBvbGFyIFVuY2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydTJywgJ1QnLCAnTicsICdRJ10gfSxcbiAgICAnU0MnOiB7ICdkZXNjcmlwdGlvbic6ICdTcGVjaWFsIENhc2VzJywgJ2FtaW5vQWNpZHMnOiBbJ0MnLCAnVScsICdHJywgJ1AnXSB9LFxuICAgICdIJzoge1xuICAgICAgICAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBIeWRyb3Bob2JpYyBTaWRlIENoYWluJyxcbiAgICAgICAgJ2FtaW5vQWNpZHMnOiBbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLFxuICAgIH0sXG4gICAgJy0nOiB7ICdkZXNjcmlwdGlvbic6ICdVbmtub3duIEFtaW5vIEFjaWQnLCAnYW1pbm9BY2lkcyc6IFsnLSddIH0sXG59O1xuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgJCBmcm9tICdjYXNoLWRvbSc7XG5pbXBvcnQgeyBOb3RhdGlvbkNvbnZlcnRlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXInO1xubGV0IGNvbnZlcnREaWFsb2cgPSBudWxsO1xubGV0IGNvbnZlcnREaWFsb2dTdWJzID0gW107XG4vKipcbiAqIENvbnZlcnRzIG5vdGF0aW9ucyBvZiBhIE1hY3JvbW9sZWN1bGUgY29sdW1uXG4gKlxuICogQHBhcmFtIHtERy5jb2x1bW59IGNvbCBDb2x1bW4gd2l0aCAnTWFjcm9tb2xlY3VsZScgc2VtYW50aWMgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydChjb2wpIHtcbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgTm90YXRpb25Db252ZXJ0ZXIoY29sKTtcbiAgICBjb25zdCBjdXJyZW50Tm90YXRpb24gPSBjb252ZXJ0ZXIubm90YXRpb247XG4gICAgLy9UT0RPOiByZWFkIGFsbCBub3RhdGlvbnNcbiAgICBjb25zdCBub3RhdGlvbnMgPSBbXG4gICAgICAgIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyxcbiAgICAgICAgXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8sXG4gICAgICAgIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi9cbiAgICBdO1xuICAgIGNvbnN0IHNlcGFyYXRvckFycmF5ID0gWyctJywgJy4nLCAnLyddO1xuICAgIGNvbnN0IGZpbHRlcmVkTm90YXRpb25zID0gbm90YXRpb25zLmZpbHRlcigoZSkgPT4gZSAhPT0gY3VycmVudE5vdGF0aW9uKTtcbiAgICBjb25zdCB0YXJnZXROb3RhdGlvbklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ0NvbnZlcnQgdG8nLCBmaWx0ZXJlZE5vdGF0aW9uc1swXSwgZmlsdGVyZWROb3RhdGlvbnMpO1xuICAgIGNvbnN0IHNlcGFyYXRvcklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ1NlcGFyYXRvcicsIHNlcGFyYXRvckFycmF5WzBdLCBzZXBhcmF0b3JBcnJheSk7XG4gICAgLy8gaGlkZSB0aGUgc2VwYXJhdG9yIGlucHV0IGZvciBub24tU0VQQVJBVE9SIHRhcmdldCBub3RhdGlvbnNcbiAgICBjb25zdCB0b2dnbGVTZXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlICE9PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLylcbiAgICAgICAgICAgICQoc2VwYXJhdG9ySW5wdXQucm9vdCkuaGlkZSgpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICAkKHNlcGFyYXRvcklucHV0LnJvb3QpLnNob3coKTtcbiAgICB9O1xuICAgIC8vIHNldCBjb3JyZWN0IHZpc2liaWxpdHkgb24gaW5pdFxuICAgIHRvZ2dsZVNlcGFyYXRvcigpO1xuICAgIHRhcmdldE5vdGF0aW9uSW5wdXQub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgdG9nZ2xlU2VwYXJhdG9yKCk7XG4gICAgfSk7XG4gICAgaWYgKGNvbnZlcnREaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICBjb252ZXJ0RGlhbG9nID0gdWkuZGlhbG9nKCdDb252ZXJ0IHNlcXVlbmNlIG5vdGF0aW9uJylcbiAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0N1cnJlbnQgbm90YXRpb246ICcgKyBjdXJyZW50Tm90YXRpb24sIHtcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnOiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICdmb250LXNpemUnOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nJzogJzVweCcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXJnZXROb3RhdGlvbklucHV0LnJvb3QsXG4gICAgICAgICAgICBzZXBhcmF0b3JJbnB1dC5yb290XG4gICAgICAgIF0pKVxuICAgICAgICAgICAgLm9uT0soKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSB0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc2VwYXJhdG9ySW5wdXQudmFsdWU7XG4gICAgICAgICAgICB5aWVsZCBjb252ZXJ0RG8oY29sLCB0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgfSkpXG4gICAgICAgICAgICAuc2hvdyh7IHg6IDM1MCwgeTogMTAwIH0pO1xuICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5wdXNoKGNvbnZlcnREaWFsb2cub25DbG9zZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5mb3JFYWNoKChzKSA9PiB7IHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuICAgICAgICAgICAgY29udmVydERpYWxvZyA9IG51bGw7XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY29udmVydERvKHNyY0NvbCwgdGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlciA9IG5ldyBOb3RhdGlvbkNvbnZlcnRlcihzcmNDb2wpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSBjb252ZXJ0ZXIuY29udmVydCh0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgc3JjQ29sLmRhdGFGcmFtZS5jb2x1bW5zLmFkZChuZXdDb2x1bW4pO1xuICAgICAgICAvLyBjYWxsIHRvIGNhbGN1bGF0ZSAnY2VsbC5yZW5kZXJlcicgdGFnXG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKHNyY0NvbC5kYXRhRnJhbWUpO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgRmFzdGFGaWxlSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbi8vQHRzLWlnbm9yZVxuaW1wb3J0IEFpb2xpIGZyb20gJ0BiaW93YXNtL2Fpb2xpJztcbmltcG9ydCB7IEFsaWduZWRTZXF1ZW5jZUVuY29kZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvc2VxdWVuY2UtZW5jb2Rlcic7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG4vKipcbiAqIENvbnZlcnRzIGFycmF5IG9mIHNlcXVlbmNlcyBpbnRvIHNpbXBsZSBmYXN0YSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gc2VxdWVuY2VzIElucHV0IGxpc3Qgb2Ygc2VxdWVuY2VzLlxuICogQHJldHVybiB7c3RyaW5nfSBGYXN0YS1mb3JtYXR0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlcy5yZWR1Y2UoKGEsIHYsIGkpID0+IGEgKyBgPnNhbXBsZSR7aSArIDF9XFxuJHt2fVxcbmAsICcnKTtcbn1cbi8qKlxuICogUnVucyBBaW9saSBlbnZpcm9ubWVudCB3aXRoIGthbGlnbiB0b29sLlxuICpcbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBzcmNDb2wgQ29sdW1uIHdpdGggc2VxdWVuY2VzLlxuICogQHBhcmFtIHtib29sZWFufSBpc0FsaWduZWQgV2hldGhlciB0aGUgY29sdW1uIGlzIGFsaWduZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdW5Vc2VkTmFtZVxuICogQHJldHVybiB7UHJvbWlzZTxERy5Db2x1bW4+fSBBbGlnbmVkIHNlcXVlbmNlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkthbGlnbihzcmNDb2wsIGlzQWxpZ25lZCA9IGZhbHNlLCB1blVzZWROYW1lID0gJycpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgc2VxdWVuY2VzID0gc3JjQ29sLnRvTGlzdCgpO1xuICAgICAgICBpZiAoaXNBbGlnbmVkKVxuICAgICAgICAgICAgc2VxdWVuY2VzID0gc2VxdWVuY2VzLm1hcCgodiwgXykgPT4gQWxpZ25lZFNlcXVlbmNlRW5jb2Rlci5jbGVhbih2KS5yZXBsYWNlKC9cXC0vZywgJycpKTtcbiAgICAgICAgY29uc3QgZmFzdGEgPSBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKTtcbiAgICAgICAgY29uc3QgQ0xJID0geWllbGQgbmV3IEFpb2xpKHtcbiAgICAgICAgICAgIHRvb2w6ICdrYWxpZ24nLFxuICAgICAgICAgICAgdmVyc2lvbjogJzMuMy4xJyxcbiAgICAgICAgICAgIHJlaW5pdDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFsnZmFzdGEubGVuZ3RoID0nLCBmYXN0YS5sZW5ndGhdKTtcbiAgICAgICAgeWllbGQgQ0xJLmZzLndyaXRlRmlsZSgnaW5wdXQuZmEnLCBmYXN0YSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHlpZWxkIENMSS5leGVjKCdrYWxpZ24gaW5wdXQuZmEgLWYgZmFzdGEgLW8gcmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGNvbnNvbGUud2FybihvdXRwdXQpO1xuICAgICAgICBjb25zdCBidWYgPSB5aWVsZCBDTEkuY2F0KCdyZXN1bHQuZmFzdGEnKTtcbiAgICAgICAgaWYgKCFidWYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGthbGlnbiBvdXRwdXQgbm8gcmVzdWx0YCk7XG4gICAgICAgIGNvbnN0IGZmaCA9IG5ldyBGYXN0YUZpbGVIYW5kbGVyKGJ1Zik7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBmZmguc2VxdWVuY2VzQXJyYXk7IC8vIGFycmF5IG9mIHNlcXVlbmNlcyBleHRyYWN0ZWQgZnJvbSBGQVNUQVxuICAgICAgICBjb25zdCB0Z3RDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3ModW5Vc2VkTmFtZSwgYWxpZ25lZCk7XG4gICAgICAgIC8vIHVuaXRzXG4gICAgICAgIGNvbnN0IHNyY1VuaXRzID0gc3JjQ29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgLy9hbGlnbmVkXG4gICAgICAgIGNvbnN0IHNyY0FsaWduZWQgPSBzcmNDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBjb25zdCB0Z3RBbGlnbmVkID0gc3JjQWxpZ25lZCArICcuTVNBJztcbiAgICAgICAgLy9hbHBoYWJldFxuICAgICAgICBjb25zdCBzcmNBbHBoYWJldCA9IHNyY0NvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIHNyY1VuaXRzKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkLCB0Z3RBbGlnbmVkKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCwgc3JjQWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgcmV0dXJuIHRndENvbDtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0TVNBRW5vdWdoTWVtb3J5KGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlc0NvdW50ID0gY29sLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBzZXF1ZW5jZXNDb3VudCAvIDEwMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRlbHRhOyBpIDwgc2VxdWVuY2VzQ291bnQ7IGkgKz0gZGVsdGEpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgcnVuS2FsaWduKERHLkNvbHVtbi5mcm9tU3RyaW5ncyhjb2wubmFtZSwgY29sLnRvTGlzdCgpLnNsaWNlKDAsIE1hdGgucm91bmQoaSkpKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBzdWNjZWVkZWQgb24gJHtpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBmYWlsZWQgb24gJHtpfSB3aXRoICcke2Vycm9yfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgQXZhaWxhYmxlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0IHsgVEFHUyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXInO1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlcyhjb2wsIHNlcSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ0FycmF5ID0gY29sLnRvTGlzdCgpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc3RyaW5nQXJyYXkubGVuZ3RoKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHN0cmluZ0FycmF5W2ldID8gQXZhaWxhYmxlTWV0cmljc1snU3RyaW5nJ11bJ0xldmVuc2h0ZWluJ10oc3RyaW5nQXJyYXlbaV0sIHNlcSkgOiBudWxsO1xuICAgICAgICAgICAgZGlzdGFuY2VzW2ldID0gZGlzdGFuY2UgPyBkaXN0YW5jZSAvIE1hdGgubWF4KHN0cmluZ0FycmF5W2ldLmxlbmd0aCwgc2VxLmxlbmd0aCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXN0YW5jZXM7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmLCBjb2xOYW1lLCBzaW1BcnIpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc2ltQXJyLmxlbmd0aCkuZmlsbChudWxsKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGYucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBkaXN0YW5jZXNbaV0gPSAoeWllbGQgZ2V0RGlzdGFuY2VzKGRmLmNvbChjb2xOYW1lKSwgc2VxKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXN0YW5jZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGlzdGFuY2VzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VzW2ldW2pdID0gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2ltQXJyW2ldID0gREcuQ29sdW1uLmZyb21MaXN0KERHLkNPTFVNTl9UWVBFLkZMT0FULCAnZGlzdGFuY2VzJywgZGlzdGFuY2VzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2ltQXJyO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXBFbGVtZW50KHBhcmFtcykge1xuICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdWkuZGl2SChbXSk7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSB1aS5kaXZWKFtcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLm5hbWUpLFxuICAgICAgICB1aS5kaXZUZXh0KHBhcmFtcy5hY3Rpdml0eUNvbC5uYW1lKSxcbiAgICBdKTtcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgdG9vbHRpcEVsZW1lbnQuYXBwZW5kKGNvbHVtbk5hbWVzKTtcbiAgICBwYXJhbXMubGluZS5tb2xzLmZvckVhY2goKG1vbElkeCwgaWR4KSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2aXR5ID0gdWkuZGl2VGV4dChwYXJhbXMuYWN0aXZpdHlDb2wuZ2V0KG1vbElkeCkudG9GaXhlZCgyKSk7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2xlZnQnO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICczMHB4JztcbiAgICAgICAgdG9vbHRpcEVsZW1lbnQuYXBwZW5kKHVpLmRpdlYoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLmdldChtb2xJZHgpKSxcbiAgICAgICAgICAgIGFjdGl2aXR5LFxuICAgICAgICBdKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvb2x0aXBFbGVtZW50O1xufVxuZnVuY3Rpb24gbW9sZWN1bGVJbmZvKGRmLCBpZHgsIHNlcUNvbE5hbWUpIHtcbiAgICBsZXQgZGljdCA9IHt9O1xuICAgIGZvciAobGV0IGNvbCBvZiBkZi5jb2x1bW5zKSB7XG4gICAgICAgIGlmIChjb2wubmFtZSAhPT0gc2VxQ29sTmFtZSkge1xuICAgICAgICAgICAgZGljdFtjb2wubmFtZV0gPSBkZi5nZXQoY29sLm5hbWUsIGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVpLnRhYmxlRnJvbU1hcChkaWN0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wUGFuZWxFbGVtZW50KHBhcmFtcykge1xuICAgIGNvbnN0IHByb3BQYW5lbCA9IHVpLmRpdigpO1xuICAgIHByb3BQYW5lbC5hcHBlbmQodWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLm5hbWUsIHsgc3R5bGU6IHsgZm9udFdlaWdodDogJ2JvbGQnIH0gfSkpO1xuICAgIGNvbnN0IHNlcXVlbmNlc0FycmF5ID0gbmV3IEFycmF5KDIpO1xuICAgIGNvbnN0IGFjdGl2aXRpZXNBcnJheSA9IG5ldyBBcnJheSgyKTtcbiAgICBwYXJhbXMubGluZS5tb2xzLmZvckVhY2goKG1vbElkeCwgaWR4KSA9PiB7XG4gICAgICAgIHNlcXVlbmNlc0FycmF5W2lkeF0gPSBwYXJhbXMuc2VxQ29sLmdldChtb2xJZHgpO1xuICAgICAgICBhY3Rpdml0aWVzQXJyYXlbaWR4XSA9IHBhcmFtcy5hY3Rpdml0eUNvbC5nZXQobW9sSWR4KTtcbiAgICB9KTtcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgY2FudmFzLmhlaWdodCA9IDMwO1xuICAgIGNvbnN0IHVuaXRzID0gcGFyYW1zLnNlcUNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gcGFyYW1zLnNlcUNvbC5nZXRUYWcoVEFHUy5TRVBBUkFUT1IpO1xuICAgIGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyhjb250ZXh0LCAwLCAwLCAwLCAzMCwgc2VxdWVuY2VzQXJyYXkuam9pbignIycpLCB1bml0cywgc2VwYXJhdG9yLCB0cnVlKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdihjYW52YXMsIHsgc3R5bGU6IHsgd2lkdGg6ICczMDBweCcsIG92ZXJmbG93OiAnc2Nyb2xsJyB9IH0pKTtcbiAgICBmdW5jdGlvbiBhZGRGaWxlZFRvUHJvcFBhbmVsKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHByb3BQYW5lbC5hcHBlbmQodWkuZGl2SChbXG4gICAgICAgICAgICB1aS5kaXZUZXh0KGAke25hbWV9OiBgLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZ1JpZ2h0OiAnNXB4JyB9IH0pLFxuICAgICAgICAgICAgdWkuZGl2VGV4dCh2YWx1ZS50b0ZpeGVkKDIpKVxuICAgICAgICBdLCB7IHN0eWxlOiB7IHBhZGRpbmdUb3A6ICc1cHgnIH0gfSkpO1xuICAgIH1cbiAgICBhZGRGaWxlZFRvUHJvcFBhbmVsKCdBY3Rpdml0eSBkZWx0YScsIE1hdGguYWJzKGFjdGl2aXRpZXNBcnJheVswXSAtIGFjdGl2aXRpZXNBcnJheVsxXSkpO1xuICAgIGFkZEZpbGVkVG9Qcm9wUGFuZWwoJ0NsaWZmJywgcGFyYW1zLnNhbGkpO1xuICAgIHJldHVybiBwcm9wUGFuZWw7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZSc7XG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VTcGFjZShzcGFjZVBhcmFtcykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGNvZGUgZGVwcmVjYXRlZCBzaW5jZSBzZXFDb2wgaXMgZW5jb2RlZFxuICAgICAgICAvKiAgICBsZXQgcHJlcGFyZWREYXRhOiBhbnk7XG4gICAgICAgICAgaWYgKCEoc3BhY2VQYXJhbXMuc2VxQ29sIS50YWdzW0RHLlRBR1MuVU5JVFNdID09PSAnSEVMTScpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXAgPSBzcGFjZVBhcmFtcy5zZXFDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgICAgICBjb25zdCBzZXBGaW5hbCA9IHNlcCA/IHNlcCA9PT0gJy4nID8gJ1xcXFxcXC4nIDogc2VwIDogJy0nO1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHNlcEZpbmFsLCAnZycpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbJ1N0cmluZyddKS5pbmNsdWRlcyhzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljKSlcbiAgICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLm1hcCgodjogc3RyaW5nKSA9PiB2LnJlcGxhY2UocmVnZXgsICcnKSkgYXMgc3RyaW5nW107XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCk7XG4gICAgICAgICAgfSAgKi9cbiAgICAgICAgY29uc3Qgc2VxdWVuY2VTcGFjZVJlc3VsdCA9IHlpZWxkIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCksIHNwYWNlUGFyYW1zLm1ldGhvZE5hbWUsIHNwYWNlUGFyYW1zLnNpbWlsYXJpdHlNZXRyaWMsIHNwYWNlUGFyYW1zLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb2xzID0gc3BhY2VQYXJhbXMuZW1iZWRBeGVzTmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkobmFtZSwgc2VxdWVuY2VTcGFjZVJlc3VsdC5lbWJlZGRpbmdbaW5kZXhdKSk7XG4gICAgICAgIHJldHVybiB7IGRpc3RhbmNlOiBzZXF1ZW5jZVNwYWNlUmVzdWx0LmRpc3RhbmNlLCBjb29yZGluYXRlczogbmV3IERHLkNvbHVtbkxpc3QoY29scykgfTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbWJlZGRpbmdDb2xzTmFtZXMoZGYpIHtcbiAgICBjb25zdCBheGVzID0gWydFbWJlZF9YJywgJ0VtYmVkX1knXTtcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGF4ZXNbMF0pKS5sZW5ndGggKyAxO1xuICAgIHJldHVybiBheGVzLm1hcCgoaXQpID0+IGAke2l0fV8ke2NvbE5hbWVJbmR9YCk7XG59XG4iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0IHsgQ0FQX0dST1VQX05BTUUsIENBUF9HUk9VUF9TTUlMRVMsIGpzb25TZGZNb25vbWVyTGliRGljdCwgTU9OT01FUl9FTkNPREVfTUFYLCBNT05PTUVSX0VOQ09ERV9NSU4sIE1PTk9NRVJfU1lNQk9MLCBSR1JPVVBfQUxURVJfSUQsIFJHUk9VUF9GSUVMRCwgUkdST1VQX0xBQkVMLCBTREZfTU9OT01FUl9OQU1FIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgPSAnL3NhbXBsZXMvSEVMTUNvcmVMaWJyYXJ5Lmpzb24nO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX01PTEZJTEUgPSAnbW9sZmlsZSc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0ZJRUxEUyA9IFsnc3ltYm9sJywgJ21vbGZpbGUnLCAncmdyb3VwcycsICduYW1lJ107XG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTW9ub21lcnMoY29sKSB7XG4gICAgbGV0IGVuY29kZVN5bWJvbCA9IE1PTk9NRVJfRU5DT0RFX01JTjtcbiAgICBjb25zdCBtb25vbWVyU3ltYm9sRGljdCA9IHt9O1xuICAgIGNvbnN0IHVuaXRzID0gY29sLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgY29uc3Qgc2VwID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgZW5jb2RlZFN0cmluZ0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2wubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgbGV0IGVuY29kZWRNb25vbWVyU3RyID0gJyc7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKGNvbC5nZXQoaSkpO1xuICAgICAgICBtb25vbWVycy5mb3JFYWNoKChtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJTeW1ib2xEaWN0W21dKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVuY29kZVN5bWJvbCA+IE1PTk9NRVJfRU5DT0RFX01BWCkge1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLmVycm9yKGBOb3QgZW5vdWdoIHN5bWJvbHMgdG8gZW5jb2RlIG1vbm9tZXJzYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb25vbWVyU3ltYm9sRGljdFttXSA9IGVuY29kZVN5bWJvbDtcbiAgICAgICAgICAgICAgICBlbmNvZGVTeW1ib2wrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuY29kZWRNb25vbWVyU3RyICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KG1vbm9tZXJTeW1ib2xEaWN0W21dKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVuY29kZWRTdHJpbmdBcnJheS5wdXNoKGVuY29kZWRNb25vbWVyU3RyKTtcbiAgICB9XG4gICAgcmV0dXJuIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnZW5jb2RlZE1vbGVjdWxlcycsIGVuY29kZWRTdHJpbmdBcnJheSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXNGcm9tU2VxKGNvbCwgbW9ub21lcnNMaWJPYmplY3QpIHtcbiAgICBjb25zdCB1bml0cyA9IGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNvbC5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgbW9ub21lcnNEaWN0ID0gY3JlYXRlTW9tb21lcnNNb2xEaWN0KG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICBjb25zdCBtb2xGaWxlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IG1hY3JvTW9sZWN1bGUgPSBjb2wuZ2V0KGkpO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgY29uc3QgbW9sRmlsZXNGb3JTZXEgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVycy5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgTW9ub21lciAke21vbm9tZXJzW2pdfSBpcyBtaXNzaW5nIGluIEhFTE0gbGlicmFyeS4gU3RydWN0dXJlIGNhbm5vdCBiZSBjcmVhdGVkYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb2xGaWxlc0ZvclNlcS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtb2xGaWxlcy5wdXNoKG1vbEZpbGVzRm9yU2VxKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShjZWxsLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIGNvbnN0IHVuaXRzID0gY2VsbC5jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjZWxsLmNvbHVtbi5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgbW9ub21lcnNEaWN0ID0gY3JlYXRlTW9tb21lcnNNb2xEaWN0KG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICBjb25zdCBtb2xGaWxlcyA9IFtdO1xuICAgIGNvbnN0IG1hY3JvTW9sZWN1bGUgPSBjZWxsLnZhbHVlO1xuICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKG1hY3JvTW9sZWN1bGUpO1xuICAgIGNvbnN0IG1vbEZpbGVzRm9yU2VxID0gW107XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVycy5sZW5ndGg7ICsraikge1xuICAgICAgICBpZiAobW9ub21lcnNbal0pIHtcbiAgICAgICAgICAgIGlmICghbW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkge1xuICAgICAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgTW9ub21lciAke21vbm9tZXJzW2pdfSBpcyBtaXNzaW5nIGluIEhFTE0gbGlicmFyeS4gU3RydWN0dXJlIGNhbm5vdCBiZSBjcmVhdGVkYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2xGaWxlc0ZvclNlcS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtb2xGaWxlcy5wdXNoKG1vbEZpbGVzRm9yU2VxKTtcbiAgICByZXR1cm4gbW9sRmlsZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9tb21lcnNNb2xEaWN0KGxpYikge1xuICAgIGNvbnN0IGRpY3QgPSB7fTtcbiAgICBsaWIuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgaWYgKGl0Wydwb2x5bWVyVHlwZSddID09PSAnUEVQVElERScpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJPYmplY3QgPSB7fTtcbiAgICAgICAgICAgIEhFTE1fQ09SRV9GSUVMRFMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICBtb25vbWVyT2JqZWN0W2ZpZWxkXSA9IGl0W2ZpZWxkXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGljdFtpdFtIRUxNX0NPUkVfTElCX01PTk9NRVJfU1lNQk9MXV0gPSBtb25vbWVyT2JqZWN0O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRpY3Q7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKSB7XG4gICAgY29uc3QgcmVzdWx0TGliID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJsZS5yb3dDb3VudDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXIgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoanNvblNkZk1vbm9tZXJMaWJEaWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IE1PTk9NRVJfU1lNQk9MKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9ub21lclN5bWJvbCA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcltrZXldID0gbW9ub21lclN5bWJvbCA9PT0gJy4nID8gdGFibGUuZ2V0KFNERl9NT05PTUVSX05BTUUsIGkpIDogbW9ub21lclN5bWJvbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGtleSA9PT0gUkdST1VQX0ZJRUxEKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcmdyb3VwcyA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSkuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25SZ3JvdXBzID0gW107XG4gICAgICAgICAgICAgICAgcmdyb3Vwcy5mb3JFYWNoKChnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJncm91cCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbHRBdG9tID0gZy5zdWJzdHJpbmcoZy5sYXN0SW5kZXhPZignXScpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGljYWxOdW0gPSBnLm1hdGNoKC9cXFtSKFxcZCspXFxdLylbMV07XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtDQVBfR1JPVVBfU01JTEVTXSA9IGFsdEF0b20gPT09ICdIJyA/IGBbKjoke3JhZGljYWxOdW19XVtIXWAgOiBgT1sqOiR7cmFkaWNhbE51bX1dYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW1JHUk9VUF9BTFRFUl9JRF0gPSBhbHRBdG9tID09PSAnSCcgPyBgUiR7cmFkaWNhbE51bX0tSGAgOiBgUiR7cmFkaWNhbE51bX0tT0hgO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbQ0FQX0dST1VQX05BTUVdID0gYWx0QXRvbSA9PT0gJ0gnID8gYEhgIDogYE9IYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW1JHUk9VUF9MQUJFTF0gPSBgUiR7cmFkaWNhbE51bX1gO1xuICAgICAgICAgICAgICAgICAgICBqc29uUmdyb3Vwcy5wdXNoKHJncm91cCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcltrZXldID0ganNvblJncm91cHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0pXG4gICAgICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHRMaWIucHVzaChtb25vbWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdExpYjtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBWZFJlZ2lvblR5cGUgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmQtcmVnaW9ucyc7XG5jb25zdCB2cnQgPSBWZFJlZ2lvblR5cGU7XG4vLyBQb3NpdGlvbnMgb2YgcmVnaW9ucyBmb3IgbnVtYmVyaW5nIHNjaGVtZXNcbi8vIGh0dHA6Ly93d3cuYmlvaW5mLm9yZy51ay9hYnMvaW5mby5odG1sXG4vLyBjb25zdCBpbWd0UmVnaW9uczogVmRSZWdpb25bXSA9IFtcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMScsICdMaWdodCcsIDEsICcxJywgJzI2JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnSGVhdnknLCAxLCAnMScsICcyNicpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIxJywgJ0xpZ2h0JywgMiwgJzI3JywgJzM4JyksIC8vIDI3LTMyXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdIZWF2eScsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdMaWdodCcsIDMsICczOScsICc1NScpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIyJywgJ0hlYXZ5JywgMywgJzM5JywgJzU1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjInLCAnTGlnaHQnLCA0LCAnNTYnLCAnNjUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0hlYXZ5JywgNCwgJzU2JywgJzY1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0xpZ2h0JywgNSwgJzY2JywgJzEwNCcpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0hlYXZ5JywgNSwgJzY2JywgJzEwNCcpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0xpZ2h0JywgNiwgJzEwNScsICcxMTcnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0hlYXZ5JywgNiwgJzEwNScsICcxMTcnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjQnLCAnTGlnaHQnLCA3LCAnMTE4JywgbnVsbC8qMTI3Ki8pLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0hlYXZ5JywgNywgJzExOCcsIG51bGwvKjEyOCovKSxcbi8vIF07XG4vKiogVmlld2VyIHdpdGggdGFicyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBvZiBjaGFpbiByZWdpb25zLlxuICogIFVzZWQgdG8gZGVmaW5lIHJlZ2lvbnMgb2YgYW4gaW1tdW5vZ2xvYnVsaW4gTEMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZFJlZ2lvbnNWaWV3ZXIgZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc0RmOiBERy5EYXRhRnJhbWU7XG4gICAgICAgIHRoaXMucmVnaW9uc0ZnID0gbnVsbDtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWdpb25zVFY6IERHLlRhYmxlVmlldztcbiAgICAgICAgdGhpcy5yZWdpb25zUm9vdCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYW5lbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZ2lvbnMgPSBbXTtcbiAgICAgICAgLy8gI3JlZ2lvbiAtLSBIYW5kbGUgY29udHJvbHMnIGV2ZW50cyAtLVxuICAgICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgLy8jcmVnaW9uIC0tIFZpZXcgLS1cbiAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAvLyBUbyBwcmV2ZW50IGFtYmlndW91cyBudW1iZXJpbmcgc2NoZW1lIGluIE1MQlxuICAgICAgICB0aGlzLnJlZ2lvblR5cGVzID0gdGhpcy5zdHJpbmdMaXN0KCdyZWdpb25UeXBlcycsIFt2cnQuQ0RSXSwgeyBjaG9pY2VzOiBPYmplY3QudmFsdWVzKHZydCkuZmlsdGVyKCh0KSA9PiB0ICE9IHZydC5Vbmtub3duKSB9KTtcbiAgICAgICAgdGhpcy5jaGFpbnMgPSB0aGlzLnN0cmluZ0xpc3QoJ2NoYWlucycsIFsnSGVhdnknLCAnTGlnaHQnXSwgeyBjaG9pY2VzOiBbJ0hlYXZ5JywgJ0xpZ2h0J10gfSk7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWVQb3N0Zml4JywgJ2NoYWluIHNlcXVlbmNlJyk7XG4gICAgICAgIHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zID0gdGhpcy5ib29sKCdza2lwRW1wdHlQb3NpdGlvbnMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNik7XG4gICAgfVxuICAgIGdldCBkZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YUZyYW1lO1xuICAgIH1cbiAgICAvLyBUT0RPOiAub25UYWJsZUF0dGFjaGVkIGlzIG5vdCBjYWxsaW5nIG9uIGRhdGFGcmFtZSBzZXQsIG9uUHJvcGVydHlDaGFuZ2VkICBhbHNvIG5vdCBjYWxsaW5nXG4gICAgc2V0RGYodmFsdWUsIHJlZ2lvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5zZXREZigpJyk7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lvbnMgPSByZWdpb25zO1xuICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8jcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRGYgPSBERy5EYXRhRnJhbWUuZnJvbU9iamVjdHModGhpcy5yZWdpb25zKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvdy5uYW1lID09ICdDRFIxJyk7XG4gICAgICAgICAgICAvLyAvLyBUbyBhdmFpbGFibGUgb3B0aW9ucyAvXG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNGZyA9IChhd2FpdCB0aGlzLnJlZ2lvbnNEZi5wbG90LmZyb21UeXBlKERHLlZJRVdFUi5GSUxURVJTLCB7XG4gICAgICAgICAgICAvLyAgIC8vIGNvbHVtbk5hbWVzOiBbJ25hbWUnLF0sXG4gICAgICAgICAgICAvLyAgIHNob3dGaWx0ZXJDb3VudHNJbmRpY2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgc2hvd0hlYWRlcjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dTZWFyY2hCb3g6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICd0eXBlJywgbGFiZWw6ICdSZWdpb24gbmFtZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgICB7dHlwZTogREcuRklMVEVSX1RZUEUuQ0FURUdPUklDQUwsIGNvbHVtbjogJ25hbWUnLCBsYWJlbDogJ1JlZ2lvbiB0eXBlJywgc2hvd0hpc3RvZ3JhbTogZmFsc2V9LFxuICAgICAgICAgICAgLy8gICBdLFxuICAgICAgICAgICAgLy8gICB0aXRsZTogJ1JlZ2lvbnMgZmlsdGVyJyxcbiAgICAgICAgICAgIC8vICAgc2hvd1RpdGxlOiB0cnVlLFxuICAgICAgICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBmb3IgcmVnaW9ucyBvZiBtdWx0aXBsZSBhbGlnbm1lbnQgYnkgSU1HVCBub21lbmNsYXR1cmUnLFxuICAgICAgICAgICAgLy8gICBzb21lUHJvcGVydHk6ICdIZWxsbycsXG4gICAgICAgICAgICAvLyB9KSkgYXMgREcuRmlsdGVyR3JvdXA7XG4gICAgICAgICAgICAvLyNlbmRyZWdpb24gcmVnaW9uc0RGIHdpdGggZmlsdGVyXG4gICAgICAgICAgICAvLyB0aGlzLm1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJlZ2lvbnNGZy5yb290LCBERy5ET0NLX1RZUEUuTEVGVCwgcm9vdE5vZGUsICdGaWx0ZXIgcmVnaW9ucycsIDAuMik7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh1aS5vblNpemVDaGFuZ2VkKHRoaXMucm9vdCkuc3Vic2NyaWJlKHRoaXMucm9vdE9uU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSkpO1xuICAgICAgICAgICAgLy8gcnhqcy5mcm9tRXZlbnQodGhpcy5yb290LCAnbW91c2Vtb3ZlJykuc3Vic2NyaWJlKHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uVGFibGVBdHRhY2hlZCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgY29uc3QgX3N1cGVyID0gT2JqZWN0LmNyZWF0ZShudWxsLCB7XG4gICAgICAgICAgICBvblByb3BlcnR5Q2hhbmdlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBfc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQuY2FsbCh0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVnaW9uVHlwZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NoYWlucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IHRoaXMubG9nb3MubGVuZ3RoOyBvcmRlckkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgY29uc3QgY2hhaW46IHN0cmluZyA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5zZXRPcHRpb25zKHtza2lwRW1wdHlQb3NpdGlvbnM6IHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvcGVuKG1sYlZpZXcpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxOb2RlID0gbWxiVmlldy5kb2NrTWFuYWdlci5kb2NrKHRoaXMucm9vdCwgREcuRE9DS19UWVBFLlRPUCwgbnVsbCwgJ1JlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2hvdyhtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByb290T25TaXplQ2hhbmdlZChhcmdzKSB7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICB9XG4gICAgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBVbnN1YnNjcmliZSBmcm9tIGFuZCByZW1vdmUgYWxsIHZpZXcgZWxlbWVudHNcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFZkUmVnaW9uc1ZpZXdlci5kZXN0cm95VmlldyggbWFpbkxheW91dCA9ICR7IXRoaXMubWFpbkxheW91dCA/ICdub25lJyA6ICd2YWx1ZSd9IClgKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1haW5MYXlvdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucm9vdC5yZW1vdmVDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3QucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYnVpbGRWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIHN0YXJ0Jyk7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lcyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLnRoaXMuY2hhaW5zLm1hcCgoY2hhaW4pID0+ICh7IFtjaGFpbl06IGAke2NoYWlufSAke3RoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeH1gIH0pKSk7XG4gICAgICAgICAgICBjb25zdCByZWdpb25zRmlsdGVyZWQgPSB0aGlzLnJlZ2lvbnMuZmlsdGVyKChyKSA9PiB0aGlzLnJlZ2lvblR5cGVzLmluY2x1ZGVzKHIudHlwZSkpO1xuICAgICAgICAgICAgY29uc3Qgb3JkZXJMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0KHJlZ2lvbnNGaWx0ZXJlZC5tYXAoKHIpID0+IHIub3JkZXIpKSkuc29ydCgpO1xuICAgICAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgb3JkZXJMaXN0Lmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpb25DaGFpbnMgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYWluIG9mIHRoaXMuY2hhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbnNGaWx0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSBjaGFpbik7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lvbkNoYWluc1tjaGFpbl0gPSAoeWllbGQgdGhpcy5kYXRhRnJhbWUucGxvdC5mcm9tVHlwZSgnV2ViTG9nbycsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlQ29sdW1uTmFtZTogY29sTmFtZXNbY2hhaW5dLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvblN0YXJ0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uTmFtZTogcmVnaW9uLnBvc2l0aW9uRW5kTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpeFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uV2lkdGg6IHRoaXMucG9zaXRpb25XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZWJMb2dvIGNyZWF0aW9uIGZpcmVzIG9uUm9vdFNpemVDaGFuZ2VkIGV2ZW50IGV2ZW4gYmVmb3JlIGNvbnRyb2wgYmVpbmcgYWRkZWQgdG8gdGhpcy5sb2dvc1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXSA9IHJlZ2lvbkNoYWlucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHVpLnRhYmxlRnJvbU1hcCgpXG4gICAgICAgICAgICAvLyBERy5IdG1sVGFibGUuY3JlYXRlKClcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dCA9IHVpLnRhYmxlKHRoaXMuY2hhaW5zLCAoY2hhaW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjaGFpbiBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAuLi4ob3JkZXJMaXN0Lmxlbmd0aCA+IDAgPyBbdWkuZGl2KGNoYWluLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnMTJweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KV0gOiBbXSksXG4gICAgICAgICAgICAgICAgICAgIC8vIExpc3Qgd2l0aCBjb250cm9scyBmb3IgcmVnaW9uc1xuICAgICAgICAgICAgICAgICAgICAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2wgPSB0aGlzLmxvZ29zW29yZGVySV1bY2hhaW5dO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2wucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNEaXYgPSB1aS5kaXYoW3dsLnJvb3RdIC8qYCR7Y2hhaW59ICR7cmVnaW9uc0ZpbHRlcmVkW3JJXX1gKi8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNEaXY7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgICAgICAgICB9LCBbJycsIC4uLlsuLi5BcnJheShvcmRlckxpc3QubGVuZ3RoKS5rZXlzKCldLm1hcCgob3JkZXJJKSA9PiByZWdpb25zRmlsdGVyZWQuZmluZCgocikgPT4gci5vcmRlciA9PSBvcmRlckxpc3Rbb3JkZXJJXSAmJiByLmNoYWluID09IHRoaXMuY2hhaW5zWzBdKS5uYW1lIHx8ICdOYW1lJyldKTtcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5jbGFzc05hbWUgPSAnbWxiLXZkLXJlZ2lvbnMtdmlld2VyLXRhYmxlMic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYmFja2dyb3VuZCA9ICcjRUVFRUZGJztcbiAgICAgICAgICAgIC8vIHRoaXMubWFpbkxheW91dC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IGAjZmZiYiR7TWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAyNTUpLnRvU3RyaW5nKDE2KX1gO1xuICAgICAgICAgICAgdGhpcy5ob3N0ID0gdWkuYm94KHRoaXMubWFpbkxheW91dCwgeyAvKnN0eWxlOiB7YmFja2dyb3VuZENvbG9yOiBjb2xvcn0qL30pO1xuICAgICAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUub3ZlcmZsb3dYID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIGVuZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2FsY1NpemUoKSB7XG4gICAgICAgIGNvbnN0IGxvZ29IZWlnaHQgPSAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIDU0KSAvIHRoaXMuY2hhaW5zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5taW4obG9nb0hlaWdodCwgTWF0aC5tYXgoLi4udGhpcy5sb2dvcy5tYXAoKHdsRGljdCkgPT4gTWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyh3bERpY3QpLm1hcCgod2wpID0+IHdsLm1heEhlaWdodCkpKSkpO1xuICAgICAgICBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoYWluSSA9IDA7IGNoYWluSSA8IHRoaXMuY2hhaW5zLmxlbmd0aDsgY2hhaW5JKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFpbiA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5yb290LnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8jZW5kcmVnaW9uIC0tIFZpZXcgLS1cbiAgICBvbk1vdXNlTW92ZVJvb3QoZSkge1xuICAgICAgICAvLyB1aS50b29sdGlwLnNob3coJ3RleHQnLCBlLnggKyA4LCBlLnkgKyA4LCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBvbk1vdXNlTW92ZVJvb3QuKCB4OiAke2UueH0sIHk6ICR7ZS55fSApYCk7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgZ2V0TW9sZmlsZXNGcm9tU2luZ2xlU2VxIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TWFjcm9Nb2wgfSBmcm9tICcuLi91dGlscy9hdG9taWMtd29ya3MnO1xuLyoqXG4gKiAzRCByZXByZXNlbnRhdGlvbiB3aWRnZXQgb2YgbWFjcm9tb2xlY3VsZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge0RHLkNlbGx9IG1hY3JvTW9sZWN1bGUgbWFjcm9tb2xlY3VsZSBjZWxsLlxuICogQHBhcmFtIHthbnlbXX0gbW9ub21lcnNMaWJPYmplY3RcbiAqIEByZXR1cm4ge1Byb21pc2U8REcuV2lkZ2V0Pn0gV2lkZ2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwcmVzZW50YXRpb25zV2lkZ2V0KG1hY3JvTW9sZWN1bGUsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdDcmVhdGluZyAzRCB2aWV3Jyk7XG4gICAgICAgIGxldCB3aWRnZXRIb3N0O1xuICAgICAgICBsZXQgbW9sQmxvY2szRCA9ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZ2V0TWFjcm9Nb2woYXRvbWljQ29kZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbEJsb2NrMkQgPSByZXN1bHRbMF07XG4gICAgICAgICAgICAgICAgbW9sQmxvY2szRCA9ICh5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdCaW86RW1iZWQnLCB7IG1vbEJsb2NrMkQgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSBtb2xCbG9jazNELnJlcGxhY2VBbGwoJ1xcXFxuJywgJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0Jsb2IgPSBuZXcgQmxvYihbbW9sQmxvY2szRF0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5nbEhvc3QgPSB1aS5kaXYoW10sIHsgY2xhc3NlczogJ2Q0LW5nbC12aWV3ZXInLCBpZDogJ25nbC0zZC1ob3N0JyB9KTtcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFnZSA9IG5ldyBOR0wuU3RhZ2UobmdsSG9zdCwgeyBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgc3RhZ2UubG9hZEZpbGUoc3RyaW5nQmxvYiwgeyBleHQ6ICdzZGYnIH0pLnRoZW4oZnVuY3Rpb24gKGNvbXApIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2Uuc2V0U2l6ZSgzMDAsIDMwMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYWRkUmVwcmVzZW50YXRpb24oJ2JhbGwrc3RpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgY29tcC5hdXRvVmlldygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNrZXRjaCA9IGdyb2suY2hlbS5zdmdNb2wobW9sQmxvY2szRCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWwgPSB1aS5kaXZIKFtza2V0Y2hdKTtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2KFtwYW5lbCwgbmdsSG9zdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2VGV4dCgnQ291bGRuXFwndCBnZXQgcGVwdGlkZSBzdHJ1Y3R1cmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcGkuY2xvc2UoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBERy5XaWRnZXQod2lkZ2V0SG9zdCk7XG4gICAgfSk7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICQ7IiwibW9kdWxlLmV4cG9ydHMgPSBERzsiLCJtb2R1bGUuZXhwb3J0cyA9IGdyb2s7IiwibW9kdWxlLmV4cG9ydHMgPSByeGpzOyIsIm1vZHVsZS5leHBvcnRzID0gdWk7IiwibW9kdWxlLmV4cG9ydHMgPSB3dTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjXG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkgc2NyaXB0VXJsID0gc2NyaXB0c1tzY3JpcHRzLmxlbmd0aCAtIDFdLnNyY1xuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcInBhY2thZ2VcIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLyogRG8gbm90IGNoYW5nZSB0aGVzZSBpbXBvcnQgbGluZXMgdG8gbWF0Y2ggZXh0ZXJuYWwgbW9kdWxlcyBpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5leHBvcnQgY29uc3QgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIsIE1vbm9tZXJDZWxsUmVuZGVyZXIgfSBmcm9tICcuL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCB7IFZkUmVnaW9uc1ZpZXdlciB9IGZyb20gJy4vdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQgeyBydW5LYWxpZ24gfSBmcm9tICcuL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUFsaWdubWVudCB9IGZyb20gJy4vc2VxX2FsaWduJztcbmltcG9ydCB7IGdldEVtYmVkZGluZ0NvbHNOYW1lcywgc2VxdWVuY2VTcGFjZSB9IGZyb20gJy4vdXRpbHMvc2VxdWVuY2Utc3BhY2UnO1xuaW1wb3J0IHsgZ2V0QWN0aXZpdHlDbGlmZnMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9wUGFuZWxFbGVtZW50LCBjcmVhdGVUb29sdGlwRWxlbWVudCwgZ2V0U2ltaWxhcml0aWVzTWFyaXggfSBmcm9tICcuL3V0aWxzL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYsIGVuY29kZU1vbm9tZXJzLCBnZXRNb2xmaWxlc0Zyb21TZXEsIEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi91dGlscy9hdG9taWMtd29ya3MnO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuL3V0aWxzL2NvbnZlcnQnO1xuaW1wb3J0IHsgcmVwcmVzZW50YXRpb25zV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3JlcHJlc2VudGF0aW9ucyc7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBGYXN0YUZpbGVIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2Zhc3RhLWhhbmRsZXInO1xuaW1wb3J0IHsgcmVtb3ZlRW1wdHlTdHJpbmdSb3dzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzJztcbmltcG9ydCB7IHNwbGl0QWxpZ25lZFNlcXVlbmNlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9zcGxpdHRlcic7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEZpbmdlcnByaW50cyB9IGZyb20gJy4vY2FsY3VsYXRpb25zL2ZpbmdlcnByaW50cyc7XG4vL3RhZ3M6IGluaXRcbmV4cG9ydCBmdW5jdGlvbiBpbml0QmlvKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgfSk7XG59XG4vL25hbWU6IGZhc3RhU2VxdWVuY2VDZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IHNlcXVlbmNlXG4vL21ldGEuY29sdW1uVGFnczogcXVhbGl0eT1NYWNyb21vbGVjdWxlLCB1bml0cz1mYXN0YVxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBmYXN0YVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9c2VwYXJhdG9yXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG5mdW5jdGlvbiBjaGVja0lucHV0Q29sdW1uVWkoY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGNvbnN0IFtyZXMsIG1zZ10gPSBjaGVja0lucHV0Q29sdW1uKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucywgYWxsb3dlZEFscGhhYmV0cyk7XG4gICAgaWYgKCFyZXMpXG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhtc2cpO1xuICAgIHJldHVybiByZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMgPSBbXSwgYWxsb3dlZEFscGhhYmV0cyA9IFtdKSB7XG4gICAgbGV0IHJlcyA9IHRydWU7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGNvbnN0IHVoID0gbmV3IFVuaXRzSGFuZGxlcihjb2wpO1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhuYW1lICsgJyBhbmFseXNpcyBpcyBhbGxvd2VkIGZvciBNYWNyb21vbGVjdWxlcyBzZW1hbnRpYyB0eXBlJyk7XG4gICAgICAgIHJlcyA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm90YXRpb24gPSB1aC5ub3RhdGlvbjtcbiAgICAgICAgaWYgKGFsbG93ZWROb3RhdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgIWFsbG93ZWROb3RhdGlvbnMuc29tZSgobikgPT4gbm90YXRpb24udG9VcHBlckNhc2UoKSA9PSAobi50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGF0aW9uQWRkID0gYWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPT0gMCA/ICdhbnkgbm90YXRpb24nIDpcbiAgICAgICAgICAgICAgICAoYG5vdGF0aW9uJHthbGxvd2VkTm90YXRpb25zLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gJHthbGxvd2VkTm90YXRpb25zLm1hcCgobikgPT4gYFwiJHtufVwiYCkuam9pbignLCAnKX0gYCk7XG4gICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBub3RhdGlvbiAke25vdGF0aW9uQWRkfS5gO1xuICAgICAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXVoLmlzSGVsbSgpKSB7XG4gICAgICAgICAgICAvLyBhbHBoYWJldCBpcyBub3Qgc3BlY2lmaWVkIGZvciAnaGVsbScgbm90YXRpb25cbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdWguYWxwaGFiZXQ7XG4gICAgICAgICAgICBpZiAoYWxsb3dlZEFscGhhYmV0cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgIWFsbG93ZWRBbHBoYWJldHMuc29tZSgoYSkgPT4gYWxwaGFiZXQudG9VcHBlckNhc2UoKSA9PSAoYS50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHBoYWJldEFkZCA9IGFsbG93ZWRBbHBoYWJldHMubGVuZ3RoID09IDAgPyAnYW55IGFscGhhYmV0JyA6XG4gICAgICAgICAgICAgICAgICAgIChgYWxwaGFiZXQke2FsbG93ZWRBbHBoYWJldHMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSAke2FsbG93ZWRBbHBoYWJldHMubWFwKChhKSA9PiBgXCIke2F9XCJgKS5qb2luKCcsICcpfS5gKTtcbiAgICAgICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBhbHBoYWJldCAke2FscGhhYmV0QWRkfS5gO1xuICAgICAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbcmVzLCBtc2ddO1xufVxuLy9uYW1lOiBzZXF1ZW5jZUFsaWdubWVudFxuLy9pbnB1dDogc3RyaW5nIGFsaWduVHlwZSB7Y2hvaWNlczogWydMb2NhbCBhbGlnbm1lbnQnLCAnR2xvYmFsIGFsaWdubWVudCddfVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbi8vaW5wdXQ6IHN0cmluZyBhbGlnblRhYmxlIHtjaG9pY2VzOiBbJ0FVVE8nLCAnTlVDTEVPVElERVMnLCAnQkxPU1VNNDUnLCAnQkxPU1VNNTAnLCdCTE9TVU02MicsJ0JMT1NVTTgwJywnQkxPU1VNOTAnLCdQQU0zMCcsJ1BBTTcwJywnUEFNMjUwJywnU0NITkVJREVSJywnVFJBTlMnXX1cbi8vaW5wdXQ6IGRvdWJsZSBnYXBcbi8vaW5wdXQ6IHN0cmluZyBzZXExXG4vL2lucHV0OiBzdHJpbmcgc2VxMlxuLy9vdXRwdXQ6IG9iamVjdCByZXNcbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZUFsaWdubWVudChhbGlnblR5cGUsIGFsaWduVGFibGUsIGdhcCwgc2VxMSwgc2VxMikge1xuICAgIGNvbnN0IHRvQWxpZ24gPSBuZXcgU2VxdWVuY2VBbGlnbm1lbnQoc2VxMSwgc2VxMiwgZ2FwLCBhbGlnblRhYmxlKTtcbiAgICBjb25zdCByZXMgPSBhbGlnblR5cGUgPT0gJ0xvY2FsIGFsaWdubWVudCcgPyB0b0FsaWduLnNtaXRoV2F0ZXJtYW4oKSA6IHRvQWxpZ24ubmVlZGxlbWFuV3VuY2goKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy9uYW1lOiBXZWJMb2dvXG4vL2Rlc2NyaXB0aW9uOiBXZWJMb2dvIHZpZXdlclxuLy90YWdzOiB2aWV3ZXIsIHBhbmVsXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHdlYkxvZ29WaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBXZWJMb2dvKCk7XG59XG4vL25hbWU6IFZkUmVnaW9uc1xuLy9kZXNjcmlwdGlvbjogVi1Eb21haW4gcmVnaW9ucyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB2ZFJlZ2lvblZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IFZkUmVnaW9uc1ZpZXdlcigpO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2VxdWVuY2UgQWN0aXZpdHkgQ2xpZmZzLi4uXG4vL25hbWU6IFNlcXVlbmNlIEFjdGl2aXR5IENsaWZmc1xuLy9kZXNjcmlwdGlvbjogZGV0ZWN0IGFjdGl2aXR5IGNsaWZmc1xuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL2lucHV0OiBjb2x1bW4gYWN0aXZpdGllc1xuLy9pbnB1dDogZG91YmxlIHNpbWlsYXJpdHkgPSA4MCBbU2ltaWxhcml0eSBjdXRvZmZdXG4vL2lucHV0OiBzdHJpbmcgbWV0aG9kTmFtZSB7IGNob2ljZXM6W1wiVU1BUFwiLCBcInQtU05FXCIsIFwiU1BFXCJdIH1cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgbWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdBY3Rpdml0eSBDbGlmZnMnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW5jb2RlZENvbCA9IGVuY29kZU1vbm9tZXJzKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBpZiAoIWVuY29kZWRDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGF4ZXNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyhkZik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAnU1BFJzogeyBjeWNsZXM6IDIwMDAsIGxhbWJkYTogMS4wLCBkbGFtYmRhOiAwLjAwMDUgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGFncyA9IHtcbiAgICAgICAgICAgICd1bml0cyc6IG1hY3JvTW9sZWN1bGUudGFnc1sndW5pdHMnXSxcbiAgICAgICAgICAgICdhbGlnbmVkJzogbWFjcm9Nb2xlY3VsZS50YWdzWydhbGlnbmVkJ10sXG4gICAgICAgICAgICAnc2VwYXJhdG9yJzogbWFjcm9Nb2xlY3VsZS50YWdzWydzZXBhcmF0b3InXSxcbiAgICAgICAgICAgICdhbHBoYWJldCc6IG1hY3JvTW9sZWN1bGUudGFnc1snYWxwaGFiZXQnXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3AgPSB5aWVsZCBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCAnQWN0aXZpdHkgY2xpZmZzJywgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgJ0xldmVuc2h0ZWluJywgbWV0aG9kTmFtZSwgREcuU0VNVFlQRS5NQUNST01PTEVDVUxFLCB0YWdzLCBzZXF1ZW5jZVNwYWNlLCBnZXRTaW1pbGFyaXRpZXNNYXJpeCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGNyZWF0ZVByb3BQYW5lbEVsZW1lbnQsIG9wdGlvbnNbbWV0aG9kTmFtZV0pO1xuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZXF1ZW5jZSBTcGFjZS4uLlxuLy9uYW1lOiBTZXF1ZW5jZSBTcGFjZVxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUgfVxuLy9pbnB1dDogc3RyaW5nIG1ldGhvZE5hbWUgeyBjaG9pY2VzOltcIlVNQVBcIiwgXCJ0LVNORVwiLCBcIlNQRVwiXSB9XG4vL2lucHV0OiBzdHJpbmcgc2ltaWxhcml0eU1ldHJpYyB7IGNob2ljZXM6W1wiTGV2ZW5zaHRlaW5cIiwgXCJUYW5pbW90b1wiXSB9XG4vL2lucHV0OiBib29sIHBsb3RFbWJlZGRpbmdzID0gdHJ1ZVxuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2VUb3BNZW51KHRhYmxlLCBtYWNyb01vbGVjdWxlLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljID0gJ0xldmVuc2h0ZWluJywgcGxvdEVtYmVkZGluZ3MpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnQWN0aXZpdHkgQ2xpZmZzJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVuY29kZWRDb2wgPSBlbmNvZGVNb25vbWVycyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgaWYgKCFlbmNvZGVkQ29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbWJlZENvbHNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyh0YWJsZSk7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZW5jb2RlZENvbF0pLmNsb25lKCk7XG4gICAgICAgIGNvbnN0IGVtcHR5VmFsc0lkeHMgPSByZW1vdmVFbXB0eVN0cmluZ1Jvd3Mod2l0aG91dEVtcHR5VmFsdWVzLCBlbmNvZGVkQ29sKTtcbiAgICAgICAgY29uc3QgY2hlbVNwYWNlUGFyYW1zID0ge1xuICAgICAgICAgICAgc2VxQ29sOiB3aXRob3V0RW1wdHlWYWx1ZXMuY29sKGVuY29kZWRDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBlbWJlZENvbHNOYW1lc1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZVNwYWNlUmVzID0geWllbGQgc2VxdWVuY2VTcGFjZShjaGVtU3BhY2VQYXJhbXMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gc2VxdWVuY2VTcGFjZVJlcy5jb29yZGluYXRlcztcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZW1iZWRkaW5ncykge1xuICAgICAgICAgICAgY29uc3QgbGlzdFZhbHVlcyA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgICAgIGVtcHR5VmFsc0lkeHMuZm9yRWFjaCgoaW5kKSA9PiBsaXN0VmFsdWVzLnNwbGljZShpbmQsIDAsIG51bGwpKTtcbiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMuYWRkKERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgY29sLm5hbWUsIGxpc3RWYWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3A7XG4gICAgICAgIGlmIChwbG90RW1iZWRkaW5ncykge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIGdyb2suc2hlbGwudmlld3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodi5uYW1lID09PSB0YWJsZS5uYW1lKVxuICAgICAgICAgICAgICAgICAgICBzcCA9IHYuc2NhdHRlclBsb3QoeyB4OiBlbWJlZENvbHNOYW1lc1swXSwgeTogZW1iZWRDb2xzTmFtZXNbMV0sIHRpdGxlOiAnU2VxdWVuY2Ugc3BhY2UnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbjtcbi8vdG9wLW1lbnU6IEJpbyB8IFRvIEF0b21pYyBMZXZlbC4uLlxuLy9uYW1lOiBUbyBBdG9taWMgTGV2ZWxcbi8vZGVzY3JpcHRpb246IHJldHVybnMgbW9sZmlsZXMgZm9yIGVhY2ggbW9ub21lciBmcm9tIEhFTE0gbGlicmFyeVxuLy9pbnB1dDogZGF0YWZyYW1lIGRmIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gdG9BdG9taWNMZXZlbChkZiwgbWFjcm9Nb2xlY3VsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQ2hlbScsIG5hbWU6ICdnZXRSZEtpdE1vZHVsZScgfSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoJ1RyYW5zZm9ybWF0aW9uIHRvIGF0b21pYyBsZXZlbCByZXF1aXJlcyBwYWNrYWdlIFwiQ2hlbVwiIGluc3RhbGxlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnVG8gQXRvbWljIExldmVsJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliRmlsZSA9IHlpZWxkIF9wYWNrYWdlLmZpbGVzLnJlYWRBc1RleHQoSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliT2JqZWN0ID0gSlNPTi5wYXJzZShtb25vbWVyc0xpYkZpbGUpO1xuICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgY29uc3QgY29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdyZWdlbmVyYXRlZCcsIHJlc3VsdCk7XG4gICAgICAgIGNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NT0xFQ1VMRTtcbiAgICAgICAgY29sLnRhZ3NbREcuVEFHUy5VTklUU10gPSAnbW9sYmxvY2snO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChjb2wsIHRydWUpO1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhkZik7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBNU0EuLi5cbi8vbmFtZTogTVNBXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbi8vaW5wdXQ6IGNvbHVtbiBzZXF1ZW5jZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUsIHVuaXRzOiBbJ2Zhc3RhJ10sIGFscGhhYmV0OiBbJ0ROQScsICdSTkEnLCAnUFQnXSB9XG4vL291dHB1dDogY29sdW1uIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkodGFibGUsIGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGZ1bmMgPSBERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQmlvJywgbmFtZTogJ211bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnknIH0pWzBdO1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdNU0EnLCBbJ2Zhc3RhJ10sIFsnRE5BJywgJ1JOQScsICdQVCddKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCB1blVzZWROYW1lID0gdGFibGUuY29sdW1ucy5nZXRVbnVzZWROYW1lKGBtc2EoJHtjb2wubmFtZX0pYCk7XG4gICAgICAgIGNvbnN0IG1zYUNvbCA9IHlpZWxkIHJ1bkthbGlnbihjb2wsIGZhbHNlLCB1blVzZWROYW1lKTtcbiAgICAgICAgdGFibGUuY29sdW1ucy5hZGQobXNhQ29sKTtcbiAgICAgICAgLy8gVGhpcyBjYWxsIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBjZWxsIHJlbmRlcmVyIGFjdGl2YXRpb25cbiAgICAgICAgeWllbGQgZ3Jvay5kYXRhLmRldGVjdFNlbWFudGljVHlwZXModGFibGUpO1xuICAgICAgICAvLyBjb25zdCB0djogREcuVGFibGVWaWV3ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgLy8gdHYuZ3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBtc2FDb2w7XG4gICAgfSk7XG59XG4vL25hbWU6IEJpbyB8IE1TQVxuLy90YWdzOiBiaW8sIHBhbmVsXG4vL2lucHV0OiBjb2x1bW4gc2VxdWVuY2UgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbi8vb3V0cHV0OiBjb2x1bW4gcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gcGFuZWxNU0EoY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkoY29sLmRhdGFGcmFtZSwgY29sKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogQ29tcG9zaXRpb24gQW5hbHlzaXNcbi8vdG9wLW1lbnU6IEJpbyB8IENvbXBvc2l0aW9uIEFuYWx5c2lzXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2l0aW9uQW5hbHlzaXMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gSGlnaGVyIHByaW9yaXR5IGZvciBjb2x1bW5zIHdpdGggTVNBIGRhdGEgdG8gc2hvdyB3aXRoIFdlYkxvZ28uXG4gICAgICAgIGNvbnN0IHR2ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgY29uc3QgZGYgPSB0di5kYXRhRnJhbWU7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBjb2xMaXN0ID0gZGYuY29sdW1ucy50b0xpc3QoKS5maWx0ZXIoKGNvbCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb2xVSCA9IG5ldyBVbml0c0hhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIC8vIFRPRE86IHByZXZlbnQgZm9yIGN5Y2xpYywgYnJhbmNoZWQgb3IgbXVsdGlwbGUgY2hhaW5zIGluIEhlbG1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChjb2wpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgJ0NvbXBvc2l0aW9uJykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3Qgd2xWaWV3ZXIgPSB0di5hZGRWaWV3ZXIoJ1dlYkxvZ28nLCB7IHNlcXVlbmNlQ29sdW1uTmFtZTogY29sLm5hbWUgfSk7XG4gICAgICAgICAgICBncm9rLnNoZWxsLnR2LmRvY2tNYW5hZ2VyLmRvY2sod2xWaWV3ZXIsIERHLkRPQ0tfVFlQRS5ET1dOLCBudWxsLCAnQ29tcG9zaXRpb24gYW5hbHlzaXMnLCAwLjI1KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjb2wgPSBudWxsO1xuICAgICAgICBpZiAoY29sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignQ3VycmVudCB0YWJsZSBkb2VzIG5vdCBjb250YWluIHNlcXVlbmNlcycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbExpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgY29sTGlzdE5hbWVzID0gY29sTGlzdC5tYXAoKGNvbCkgPT4gY29sLm5hbWUpO1xuICAgICAgICAgICAgY29uc3QgY29sSW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnQ29sdW1uJywgY29sTGlzdE5hbWVzWzBdLCBjb2xMaXN0TmFtZXMpO1xuICAgICAgICAgICAgdWkuZGlhbG9nKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1ItR3JvdXBzIEFuYWx5c2lzJyxcbiAgICAgICAgICAgICAgICBoZWxwVXJsOiAnL2hlbHAvZG9tYWlucy9iaW8vbWFjcm9tb2xlY3VsZXMubWQjY29tcG9zaXRpb24tYW5hbHlzaXMnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgICAgICBjb2xJbnB1dCxcbiAgICAgICAgICAgIF0pKVxuICAgICAgICAgICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gKF9hID0gY29sTGlzdC5maW5kKChjb2wpID0+IGNvbC5uYW1lID09IGNvbElucHV0LnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoY29sKVxuICAgICAgICAgICAgICAgICAgICB5aWVsZCBoYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29sID0gY29sTGlzdFswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgaGFuZGxlcihjb2wpO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2RmIHRvIEpzb24gbGliLi4uXG4vL25hbWU6IHNkZlRvSnNvbkxpYlxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG5leHBvcnQgZnVuY3Rpb24gc2RmVG9Kc29uTGliKHRhYmxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QganNvbk1vbm9tZXJMaWJyYXJ5ID0gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogUmVwcmVzZW50YXRpb25zXG4vL3RhZ3M6IHBhbmVsLCB3aWRnZXRzXG4vL2lucHV0OiBjZWxsIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHBlcHRpZGVNb2xlY3VsZShtYWNyb01vbGVjdWxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJGaWxlID0geWllbGQgX3BhY2thZ2UuZmlsZXMucmVhZEFzVGV4dChIRUxNX0NPUkVfTElCX0ZJTEVOQU1FKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJPYmplY3QgPSBKU09OLnBhcnNlKG1vbm9tZXJzTGliRmlsZSk7XG4gICAgICAgIHJldHVybiByZXByZXNlbnRhdGlvbnNXaWRnZXQobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBpbXBvcnRGYXN0YVxuLy9kZXNjcmlwdGlvbjogT3BlbnMgRkFTVEEgZmlsZVxuLy90YWdzOiBmaWxlLWhhbmRsZXJcbi8vbWV0YS5leHQ6IGZhc3RhLCBmbmEsIGZmbiwgZmFhLCBmcm4sIGZhLCBmc3Rcbi8vaW5wdXQ6IHN0cmluZyBmaWxlQ29udGVudFxuLy9vdXRwdXQ6IGxpc3QgdGFibGVzXG5leHBvcnQgZnVuY3Rpb24gaW1wb3J0RmFzdGEoZmlsZUNvbnRlbnQpIHtcbiAgICBjb25zdCBmZmggPSBuZXcgRmFzdGFGaWxlSGFuZGxlcihmaWxlQ29udGVudCk7XG4gICAgcmV0dXJuIGZmaC5pbXBvcnRGYXN0YSgpO1xufVxuLy9uYW1lOiBCaW8gfCBDb252ZXJ0IC4uLlxuLy9mcmllbmRseS1uYW1lOiBCaW8gfCBDb252ZXJ0XG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhbmVsKGNvbCkge1xuICAgIGNvbnZlcnQoY29sKTtcbn1cbi8vbmFtZTogbW9ub21lckNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTW9ub21lclxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBtb25vbWVyQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTW9ub21lckNlbGxSZW5kZXJlcigpO1xufVxuLy9uYW1lOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogdGVzdERldGVjdE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IHN0cmluZyBwYXRoIHtjaG9pY2VzOiBbJ0RlbW86RmlsZXMvJywgJ1N5c3RlbTpBcHBEYXRhLyddfVxuLy9vdXRwdXQ6IGRhdGFmcmFtZSByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZShwYXRoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdUZXN0IGRldGVjdE1hY3JvbW9sZWN1bGUuLi4nKTtcbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB5aWVsZCBncm9rLmRhcGkuZmlsZXMubGlzdChwYXRoLCB0cnVlLCAnJyk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBmaWxlTGlzdFRvVGVzdCA9IGZpbGVMaXN0LmZpbHRlcigoZmkpID0+IGZpLmZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpO1xuICAgICAgICBsZXQgcmVhZHlDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVJbmZvIG9mIGZpbGVMaXN0VG9UZXN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzdiA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5yZWFkQXNUZXh0KHBhdGggKyBmaWxlSW5mby5mdWxsUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGYgPSBERy5EYXRhRnJhbWUuZnJvbUNzdihjc3YpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VtVHlwZSA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0JpbzpkZXRlY3RNYWNyb21vbGVjdWxlJywgeyBjb2w6IGNvbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLndhcm4oYGZpbGU6ICR7ZmlsZUluZm8ucGF0aH0sIGNvbHVtbjogJHtjb2wubmFtZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGBzZW1UeXBlOiAke3NlbVR5cGV9LCB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKCdmaWxlOiBcIicgKyBmaWxlSW5mby5wYXRoICsgJ1wiLCBzZW1UeXBlOiBcIicgKyBzZW1UeXBlICsgJ1wiLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3VuaXRzOiBcIicgKyBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpICsgJ1wiJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZGV0ZWN0ZWQnLCBjb2x1bW46IGNvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ2ZpbGU6ICcgKyBmaWxlSW5mby5wYXRoICsgJywgZXJyb3I6ICcgKyBleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVJbmZvLnBhdGgsIHJlc3VsdDogJ2Vycm9yJywgY29sdW1uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWFkeUNvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcGkudXBkYXRlKDEwMCAqIHJlYWR5Q291bnQgLyBmaWxlTGlzdFRvVGVzdC5sZW5ndGgsIGBUZXN0ICR7ZmlsZUluZm8uZmlsZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3Jvay5zaGVsbC5pbmZvKCdUZXN0IERlbW86RmlsZXMgZm9yIGRldGVjdE1hY3JvbW9sZWN1bGUgZmluaXNoZWQuJyk7XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHJlcyk7XG4gICAgICAgIHJlc0RmLm5hbWUgPSBgZGF0YXNldHNfZGV0ZWN0TWFjcm9tb2xlY3VsZV8ke3BhdGh9YDtcbiAgICAgICAgcmV0dXJuIHJlc0RmO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBTcGxpdCB0byBtb25vbWVyc1xuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VG9Nb25vbWVycyhjb2wpIHtcbiAgICBpZiAoIWNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCkuaW5jbHVkZXMoQy5NU0EpKVxuICAgICAgICByZXR1cm4gZ3Jvay5zaGVsbC5lcnJvcignU3BsaXR0aW5nIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYWxpZ25lZCBzZXF1ZW5jZXMnKTtcbiAgICBjb25zdCB0ZW1wRGYgPSBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoY29sKTtcbiAgICBjb25zdCBvcmlnaW5hbERmID0gY29sLmRhdGFGcmFtZTtcbiAgICBmb3IgKGNvbnN0IHRlbXBDb2wgb2YgdGVtcERmLmNvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sID0gb3JpZ2luYWxEZi5jb2x1bW5zLmFkZCh0ZW1wQ29sKTtcbiAgICAgICAgbmV3Q29sLnNlbVR5cGUgPSBDLlNFTV9UWVBFUy5NT05PTUVSO1xuICAgICAgICBuZXdDb2wuc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgQy5TRU1fVFlQRVMuTU9OT01FUik7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoQy5UQUdTLkFMUEhBQkVULCBjb2wuZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgIH1cbiAgICBncm9rLnNoZWxsLnR2LmdyaWQuaW52YWxpZGF0ZSgpO1xufVxuLy9uYW1lOiBCaW86IGdldEhlbG1Nb25vbWVyc1xuLy9pbnB1dDogY29sdW1uIGNvbCB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxtTW9ub21lcnMoc2VxQ29sKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKHNlcUNvbCwgMSwgV2ViTG9nby5zcGxpdHRlckFzSGVsbSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0YXRzLmZyZXEpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVzRmluZ2VycHJpbnRzKG1jb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBncm9rLmZ1bmN0aW9ucy5jYWxsKCdDaGVtOmdldFJkS2l0TW9kdWxlJyk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gZ2V0SGVsbU1vbm9tZXJzKG1jb2wpO1xuICAgICAgICBjb25zdCBtb2xzID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnSEVMTTpnZXRNb2xGaWxlcycsIHsgbWNvbDogbWNvbCB9KTtcbiAgICAgICAgcmV0dXJuIGdldEZpbmdlcnByaW50cyhtb2xzLnRvTGlzdCgpLCBtb25vbWVycyk7XG4gICAgfSk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
|
7338
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ2pPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQzhCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJOO0FBQzlCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrREFBUztBQUM3QjtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEwzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ087QUFDUDtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwQ0U7QUFDSztBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLFFBQVE7QUFDbkIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLGFBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELHNEQUFNO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDTztBQUNQO0FBQ0EsNEJBQTRCLHNEQUFNO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQU07QUFDNUIsb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixzREFBTTtBQUM1QixvQkFBb0IsY0FBYztBQUNsQztBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLHdCQUF3QixnQkFBZ0I7QUFDeEMsMkJBQTJCLG9EQUFXO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQixXQUFXLGdCQUFnQjtBQUMzQixZQUFZLFFBQVE7QUFDcEI7QUFDTztBQUNQO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQyw0QkFBNEIsWUFBWTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ2xEO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxPQUFPO0FBQ2xCLFdBQVcsU0FBUztBQUNwQixZQUFZLFVBQVU7QUFDdEI7QUFDTztBQUNQO0FBQ0Esb0NBQW9DO0FBQ3BDLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLG9DQUFvQztBQUMvQztBQUNBLGFBQWEsVUFBVTtBQUN2QjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtEQUFTO0FBQzdCO0FBQ0Esb0JBQW9CLFlBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsT0FBTztBQUNsQixXQUFXLE9BQU87QUFDbEIsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7QUN4TzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBMEI7QUFDbEM7QUFDQSxNQUFNLFNBQVMsSUFBMEM7QUFDekQsUUFBUSxtQ0FBTyxhQUFhLGdCQUFnQjtBQUFBLGtHQUFDO0FBQzdDLE1BQU0sS0FBSyxFQUVOO0FBQ0wsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsUUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixRQUFRO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4Qyx3Q0FBd0M7QUFDeEMsMkNBQTJDO0FBQzNDLCtCQUErQjtBQUMvQiw4QkFBOEI7QUFDOUIsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isd0JBQXdCO0FBQ2hEO0FBQ0E7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsbUJBQW1CO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLE9BQU87QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHVCQUF1QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHVCQUF1QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixnQkFBZ0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix3QkFBd0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JEO0FBQ0EsMkJBQTJCO0FBQzNCLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsU0FBUztBQUNqQztBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0EsNEJBQTRCLFNBQVM7QUFDckM7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsU0FBUztBQUM3QjtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7Ozs7Ozs7Ozs7O0FDMWFZO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLFdBQVc7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLGVBQWU7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsU0FBUztBQUNqQztBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsU0FBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixTQUFTO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixPQUFPO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsU0FBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7OztBQ2xKYTtBQUNiO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdELG1CQUFtQixHQUFHLFlBQVk7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFVBQVU7QUFDOUIsOENBQThDLHFDQUFxQztBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLFVBQVU7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEZaO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUDtBQUNPO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QixrRUFBd0I7QUFDOUMscURBQXFELEtBQUs7QUFDMUQ7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ2Q7QUFDUCxvQkFBb0IsdUdBQXlCLFdBQVcsa0RBQUs7QUFDN0QsZUFBZSwwREFBZ0I7QUFDL0IsbUJBQW1CLGtHQUFxQjtBQUN4QztBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsZ0VBQW1CO0FBQzVDLHNCQUFzQiwrREFBcUIsRUFBRSxnRUFBbUI7QUFDaEUsc0JBQXNCLDREQUFlLGFBQWEsNERBQWU7QUFDakU7QUFDQSxJQUFJLHVFQUE2QjtBQUNqQztBQUNBO0FBQ0EscUJBQXFCO0FBQ2Q7QUFDUCxrQkFBa0IsMEZBQWdCLFlBQVksZ0dBQXNCO0FBQ3BFO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGJpb3dhc20vYWlvbGkvZGlzdC9haW9saS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL2FtaW5vYWNpZHMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9udWNsZW90aWRlcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3NlcS1wYWxldHRlcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3NlcXVlbmNlLWVuY29kZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91bmtub3duLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvY2VsbC1yZW5kZXJlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2Zhc3RhLWhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9zcGxpdHRlci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92ZC1yZWdpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nby5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvc2VxdWVuY2Utc3BhY2UuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3R5cGVkLW1ldHJpY3MuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3ZpZXdlcnMvYWN0aXZpdHktY2xpZmZzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy93b3JrZXJzL2RpbWVuc2lvbmFsaXR5LXJlZHVjaW5nLXdvcmtlci1jcmVhdG9yLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9kYXRhZnJhbWUtdXRpbHMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3JhbmRvbS5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvc2ltaWxhcml0eS1tZXRyaWNzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy90eXBlLWRlY2xhcmF0aW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2Zhc3Qtc2hhMjU2L3NoYTI1Ni5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvZmFzdGVzdC1sZXZlbnNodGVpbi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvamFyby13aW5rbGVyLXR5cGVzY3JpcHQvbGliL2luZGV4LmpzIiwid2VicGFjazovL2Jpby8uL3NyYy9jb25zdC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvc2VxX2FsaWduLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9hdG9taWMtd29ya3MudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnN0YW50cy50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvY29udmVydC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvbXVsdGlwbGUtc2VxdWVuY2UtYWxpZ25tZW50LnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9zZXF1ZW5jZS1hY3Rpdml0eS1jbGlmZnMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL3NlcXVlbmNlLXNwYWNlLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy91dGlscy50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlci50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvd2lkZ2V0cy9yZXByZXNlbnRhdGlvbnMudHMiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcIiRcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwiREdcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwiZ3Jva1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJyeGpzXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcInVpXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcInd1XCIiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvanNvbnAgY2h1bmsgbG9hZGluZyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvcGFja2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6XG4gIHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShmYWN0b3J5KSA6XG4gIChnbG9iYWwgPSBnbG9iYWwgfHwgc2VsZiwgZ2xvYmFsLkFpb2xpID0gZmFjdG9yeSgpKTtcbn0odGhpcywgKGZ1bmN0aW9uICgpIHsgJ3VzZSBzdHJpY3QnO1xuXG4gIHZhciBuYW1lID0gXCJAYmlvd2FzbS9haW9saVwiO1xuICB2YXIgdmVyc2lvbiA9IFwiMi40LjAtcmMyXCI7XG4gIHZhciBkZXNjcmlwdGlvbiA9IFwiQSBmcmFtZXdvcmsgZm9yIGJ1aWxkaW5nIFdlYkFzc2VtYmx5LWJhc2VkIGdlbm9taWNzIHRvb2xzXCI7XG4gIHZhciBicm93c2VyID0gXCJkaXN0L2Fpb2xpLmpzXCI7XG4gIHZhciB3b3JrZXIgPSBcImRpc3QvYWlvbGkud29ya2VyLmpzXCI7XG4gIHZhciBtYWluID0gXCJhaW9saS5qc1wiO1xuICB2YXIgcmVwb3NpdG9yeSA9IHtcbiAgXHR0eXBlOiBcImdpdFwiLFxuICBcdHVybDogXCJnaXQraHR0cHM6Ly9naXRodWIuY29tL2Jpb3dhc20vYWlvbGkuZ2l0XCJcbiAgfTtcbiAgdmFyIGF1dGhvciA9IFwiUm9iZXJ0IEFib3VraGFsaWxcIjtcbiAgdmFyIGxpY2Vuc2UgPSBcIk1JVFwiO1xuICB2YXIgZGVwZW5kZW5jaWVzID0ge1xuICBcdGNvbWxpbms6IFwiXjQuMy4xXCIsXG4gIFx0XCJ3YXNtLWZlYXR1cmUtZGV0ZWN0XCI6IFwiXjEuMi4xMVwiXG4gIH07XG4gIHZhciBkZXZEZXBlbmRlbmNpZXMgPSB7XG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1jb21tb25qc1wiOiBcIl4xMS4wLjFcIixcbiAgXHRcIkByb2xsdXAvcGx1Z2luLWpzb25cIjogXCJeNC4xLjBcIixcbiAgXHRcIkByb2xsdXAvcGx1Z2luLW5vZGUtcmVzb2x2ZVwiOiBcIl43LjAuMFwiLFxuICBcdGN5cHJlc3M6IFwiXjguMC4wXCIsXG4gIFx0cm9sbHVwOiBcIl4xLjI5LjBcIixcbiAgXHRcInJvbGx1cC1wbHVnaW4tdGVyc2VyXCI6IFwiXjcuMC4yXCJcbiAgfTtcbiAgdmFyIHNjcmlwdHMgPSB7XG4gIFx0YnVpbGQ6IFwicm9sbHVwIC1jXCIsXG4gIFx0ZGV2OiBcInJvbGx1cCAtYyAtd1wiLFxuICBcdHRlc3Q6IFwiY3lwcmVzcyBydW5cIixcbiAgXHRcInRlc3Qtb3BlblwiOiBcImN5cHJlc3Mgb3BlblwiXG4gIH07XG4gIHZhciBmaWxlcyA9IFtcbiAgXHRcImRpc3RcIlxuICBdO1xuICB2YXIgcGtnID0ge1xuICBcdG5hbWU6IG5hbWUsXG4gIFx0dmVyc2lvbjogdmVyc2lvbixcbiAgXHRkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXG4gIFx0YnJvd3NlcjogYnJvd3NlcixcbiAgXHR3b3JrZXI6IHdvcmtlcixcbiAgXHRtYWluOiBtYWluLFxuICBcdHJlcG9zaXRvcnk6IHJlcG9zaXRvcnksXG4gIFx0YXV0aG9yOiBhdXRob3IsXG4gIFx0bGljZW5zZTogbGljZW5zZSxcbiAgXHRkZXBlbmRlbmNpZXM6IGRlcGVuZGVuY2llcyxcbiAgXHRkZXZEZXBlbmRlbmNpZXM6IGRldkRlcGVuZGVuY2llcyxcbiAgXHRzY3JpcHRzOiBzY3JpcHRzLFxuICBcdGZpbGVzOiBmaWxlc1xuICB9O1xuXG4gIC8qKlxyXG4gICAqIENvcHlyaWdodCAyMDE5IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAgICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICAgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAgICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAgICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gICAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICAgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAgICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAgICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gICAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gICAqL1xyXG4gIGNvbnN0IHByb3h5TWFya2VyID0gU3ltYm9sKFwiQ29tbGluay5wcm94eVwiKTtcclxuICBjb25zdCBjcmVhdGVFbmRwb2ludCA9IFN5bWJvbChcIkNvbWxpbmsuZW5kcG9pbnRcIik7XHJcbiAgY29uc3QgcmVsZWFzZVByb3h5ID0gU3ltYm9sKFwiQ29tbGluay5yZWxlYXNlUHJveHlcIik7XHJcbiAgY29uc3QgdGhyb3dNYXJrZXIgPSBTeW1ib2woXCJDb21saW5rLnRocm93blwiKTtcclxuICBjb25zdCBpc09iamVjdCA9ICh2YWwpID0+ICh0eXBlb2YgdmFsID09PSBcIm9iamVjdFwiICYmIHZhbCAhPT0gbnVsbCkgfHwgdHlwZW9mIHZhbCA9PT0gXCJmdW5jdGlvblwiO1xyXG4gIC8qKlxyXG4gICAqIEludGVybmFsIHRyYW5zZmVyIGhhbmRsZSB0byBoYW5kbGUgb2JqZWN0cyBtYXJrZWQgdG8gcHJveHkuXHJcbiAgICovXHJcbiAgY29uc3QgcHJveHlUcmFuc2ZlckhhbmRsZXIgPSB7XHJcbiAgICAgIGNhbkhhbmRsZTogKHZhbCkgPT4gaXNPYmplY3QodmFsKSAmJiB2YWxbcHJveHlNYXJrZXJdLFxyXG4gICAgICBzZXJpYWxpemUob2JqKSB7XHJcbiAgICAgICAgICBjb25zdCB7IHBvcnQxLCBwb3J0MiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XHJcbiAgICAgICAgICBleHBvc2Uob2JqLCBwb3J0MSk7XHJcbiAgICAgICAgICByZXR1cm4gW3BvcnQyLCBbcG9ydDJdXTtcclxuICAgICAgfSxcclxuICAgICAgZGVzZXJpYWxpemUocG9ydCkge1xyXG4gICAgICAgICAgcG9ydC5zdGFydCgpO1xyXG4gICAgICAgICAgcmV0dXJuIHdyYXAocG9ydCk7XHJcbiAgICAgIH0sXHJcbiAgfTtcclxuICAvKipcclxuICAgKiBJbnRlcm5hbCB0cmFuc2ZlciBoYW5kbGVyIHRvIGhhbmRsZSB0aHJvd24gZXhjZXB0aW9ucy5cclxuICAgKi9cclxuICBjb25zdCB0aHJvd1RyYW5zZmVySGFuZGxlciA9IHtcclxuICAgICAgY2FuSGFuZGxlOiAodmFsdWUpID0+IGlzT2JqZWN0KHZhbHVlKSAmJiB0aHJvd01hcmtlciBpbiB2YWx1ZSxcclxuICAgICAgc2VyaWFsaXplKHsgdmFsdWUgfSkge1xyXG4gICAgICAgICAgbGV0IHNlcmlhbGl6ZWQ7XHJcbiAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgICAgICAgIHNlcmlhbGl6ZWQgPSB7XHJcbiAgICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB2YWx1ZS5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHN0YWNrOiB2YWx1ZS5zdGFjayxcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgc2VyaWFsaXplZCA9IHsgaXNFcnJvcjogZmFsc2UsIHZhbHVlIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gW3NlcmlhbGl6ZWQsIFtdXTtcclxuICAgICAgfSxcclxuICAgICAgZGVzZXJpYWxpemUoc2VyaWFsaXplZCkge1xyXG4gICAgICAgICAgaWYgKHNlcmlhbGl6ZWQuaXNFcnJvcikge1xyXG4gICAgICAgICAgICAgIHRocm93IE9iamVjdC5hc3NpZ24obmV3IEVycm9yKHNlcmlhbGl6ZWQudmFsdWUubWVzc2FnZSksIHNlcmlhbGl6ZWQudmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhyb3cgc2VyaWFsaXplZC52YWx1ZTtcclxuICAgICAgfSxcclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIEFsbG93cyBjdXN0b21pemluZyB0aGUgc2VyaWFsaXphdGlvbiBvZiBjZXJ0YWluIHZhbHVlcy5cclxuICAgKi9cclxuICBjb25zdCB0cmFuc2ZlckhhbmRsZXJzID0gbmV3IE1hcChbXHJcbiAgICAgIFtcInByb3h5XCIsIHByb3h5VHJhbnNmZXJIYW5kbGVyXSxcclxuICAgICAgW1widGhyb3dcIiwgdGhyb3dUcmFuc2ZlckhhbmRsZXJdLFxyXG4gIF0pO1xyXG4gIGZ1bmN0aW9uIGV4cG9zZShvYmosIGVwID0gc2VsZikge1xyXG4gICAgICBlcC5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBmdW5jdGlvbiBjYWxsYmFjayhldikge1xyXG4gICAgICAgICAgaWYgKCFldiB8fCAhZXYuZGF0YSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IHsgaWQsIHR5cGUsIHBhdGggfSA9IE9iamVjdC5hc3NpZ24oeyBwYXRoOiBbXSB9LCBldi5kYXRhKTtcclxuICAgICAgICAgIGNvbnN0IGFyZ3VtZW50TGlzdCA9IChldi5kYXRhLmFyZ3VtZW50TGlzdCB8fCBbXSkubWFwKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgbGV0IHJldHVyblZhbHVlO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBwYXRoLnNsaWNlKDAsIC0xKS5yZWR1Y2UoKG9iaiwgcHJvcCkgPT4gb2JqW3Byb3BdLCBvYmopO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gcGF0aC5yZWR1Y2UoKG9iaiwgcHJvcCkgPT4gb2JqW3Byb3BdLCBvYmopO1xyXG4gICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICBjYXNlIFwiR0VUXCIgLyogR0VUICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIlNFVFwiIC8qIFNFVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRbcGF0aC5zbGljZSgtMSlbMF1dID0gZnJvbVdpcmVWYWx1ZShldi5kYXRhLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIkFQUExZXCIgLyogQVBQTFkgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSByYXdWYWx1ZS5hcHBseShwYXJlbnQsIGFyZ3VtZW50TGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIkNPTlNUUlVDVFwiIC8qIENPTlNUUlVDVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5ldyByYXdWYWx1ZSguLi5hcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcHJveHkodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJFTkRQT0lOVFwiIC8qIEVORFBPSU5UICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcG9ydDEsIHBvcnQyIH0gPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvc2Uob2JqLCBwb3J0Mik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB0cmFuc2Zlcihwb3J0MSwgW3BvcnQxXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIlJFTEVBU0VcIiAvKiBSRUxFQVNFICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2F0Y2ggKHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB7IHZhbHVlLCBbdGhyb3dNYXJrZXJdOiAwIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBQcm9taXNlLnJlc29sdmUocmV0dXJuVmFsdWUpXHJcbiAgICAgICAgICAgICAgLmNhdGNoKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlLCBbdGhyb3dNYXJrZXJdOiAwIH07XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXR1cm5WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IFt3aXJlVmFsdWUsIHRyYW5zZmVyYWJsZXNdID0gdG9XaXJlVmFsdWUocmV0dXJuVmFsdWUpO1xyXG4gICAgICAgICAgICAgIGVwLnBvc3RNZXNzYWdlKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgd2lyZVZhbHVlKSwgeyBpZCB9KSwgdHJhbnNmZXJhYmxlcyk7XHJcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiUkVMRUFTRVwiIC8qIFJFTEVBU0UgKi8pIHtcclxuICAgICAgICAgICAgICAgICAgLy8gZGV0YWNoIGFuZCBkZWFjdGl2ZSBhZnRlciBzZW5kaW5nIHJlbGVhc2UgcmVzcG9uc2UgYWJvdmUuXHJcbiAgICAgICAgICAgICAgICAgIGVwLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGNhbGxiYWNrKTtcclxuICAgICAgICAgICAgICAgICAgY2xvc2VFbmRQb2ludChlcCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoZXAuc3RhcnQpIHtcclxuICAgICAgICAgIGVwLnN0YXJ0KCk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgZnVuY3Rpb24gaXNNZXNzYWdlUG9ydChlbmRwb2ludCkge1xyXG4gICAgICByZXR1cm4gZW5kcG9pbnQuY29uc3RydWN0b3IubmFtZSA9PT0gXCJNZXNzYWdlUG9ydFwiO1xyXG4gIH1cclxuICBmdW5jdGlvbiBjbG9zZUVuZFBvaW50KGVuZHBvaW50KSB7XHJcbiAgICAgIGlmIChpc01lc3NhZ2VQb3J0KGVuZHBvaW50KSlcclxuICAgICAgICAgIGVuZHBvaW50LmNsb3NlKCk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHdyYXAoZXAsIHRhcmdldCkge1xyXG4gICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIFtdLCB0YXJnZXQpO1xyXG4gIH1cclxuICBmdW5jdGlvbiB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1JlbGVhc2VkKSB7XHJcbiAgICAgIGlmIChpc1JlbGVhc2VkKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQcm94eSBoYXMgYmVlbiByZWxlYXNlZCBhbmQgaXMgbm90IHVzZWFibGVcIik7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgZnVuY3Rpb24gY3JlYXRlUHJveHkoZXAsIHBhdGggPSBbXSwgdGFyZ2V0ID0gZnVuY3Rpb24gKCkgeyB9KSB7XHJcbiAgICAgIGxldCBpc1Byb3h5UmVsZWFzZWQgPSBmYWxzZTtcclxuICAgICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0LCB7XHJcbiAgICAgICAgICBnZXQoX3RhcmdldCwgcHJvcCkge1xyXG4gICAgICAgICAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XHJcbiAgICAgICAgICAgICAgaWYgKHByb3AgPT09IHJlbGVhc2VQcm94eSkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIlJFTEVBU0VcIiAvKiBSRUxFQVNFICovLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VFbmRQb2ludChlcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQcm94eVJlbGVhc2VkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAocHJvcCA9PT0gXCJ0aGVuXCIpIHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyB0aGVuOiAoKSA9PiBwcm94eSB9O1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkdFVFwiIC8qIEdFVCAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICB9KS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gci50aGVuLmJpbmQocik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBjcmVhdGVQcm94eShlcCwgWy4uLnBhdGgsIHByb3BdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzZXQoX3RhcmdldCwgcHJvcCwgcmF3VmFsdWUpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIC8vIEZJWE1FOiBFUzYgUHJveHkgSGFuZGxlciBgc2V0YCBtZXRob2RzIGFyZSBzdXBwb3NlZCB0byByZXR1cm4gYVxyXG4gICAgICAgICAgICAgIC8vIGJvb2xlYW4uIFRvIHNob3cgZ29vZCB3aWxsLCB3ZSByZXR1cm4gdHJ1ZSBhc3luY2hyb25vdXNseSDCr1xcXyjjg4QpXy/Cr1xyXG4gICAgICAgICAgICAgIGNvbnN0IFt2YWx1ZSwgdHJhbnNmZXJhYmxlc10gPSB0b1dpcmVWYWx1ZShyYXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJTRVRcIiAvKiBTRVQgKi8sXHJcbiAgICAgICAgICAgICAgICAgIHBhdGg6IFsuLi5wYXRoLCBwcm9wXS5tYXAoKHApID0+IHAudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYXBwbHkoX3RhcmdldCwgX3RoaXNBcmcsIHJhd0FyZ3VtZW50TGlzdCkge1xyXG4gICAgICAgICAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHBhdGhbcGF0aC5sZW5ndGggLSAxXTtcclxuICAgICAgICAgICAgICBpZiAobGFzdCA9PT0gY3JlYXRlRW5kcG9pbnQpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiRU5EUE9JTlRcIiAvKiBFTkRQT0lOVCAqLyxcclxuICAgICAgICAgICAgICAgICAgfSkudGhlbihmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gV2UganVzdCBwcmV0ZW5kIHRoYXQgYGJpbmQoKWAgZGlkbuKAmXQgaGFwcGVuLlxyXG4gICAgICAgICAgICAgIGlmIChsYXN0ID09PSBcImJpbmRcIikge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIHBhdGguc2xpY2UoMCwgLTEpKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgY29uc3QgW2FyZ3VtZW50TGlzdCwgdHJhbnNmZXJhYmxlc10gPSBwcm9jZXNzQXJndW1lbnRzKHJhd0FyZ3VtZW50TGlzdCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJBUFBMWVwiIC8qIEFQUExZICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgYXJndW1lbnRMaXN0LFxyXG4gICAgICAgICAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY29uc3RydWN0KF90YXJnZXQsIHJhd0FyZ3VtZW50TGlzdCkge1xyXG4gICAgICAgICAgICAgIHRocm93SWZQcm94eVJlbGVhc2VkKGlzUHJveHlSZWxlYXNlZCk7XHJcbiAgICAgICAgICAgICAgY29uc3QgW2FyZ3VtZW50TGlzdCwgdHJhbnNmZXJhYmxlc10gPSBwcm9jZXNzQXJndW1lbnRzKHJhd0FyZ3VtZW50TGlzdCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIHtcclxuICAgICAgICAgICAgICAgICAgdHlwZTogXCJDT05TVFJVQ1RcIiAvKiBDT05TVFJVQ1QgKi8sXHJcbiAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICBhcmd1bWVudExpc3QsXHJcbiAgICAgICAgICAgICAgfSwgdHJhbnNmZXJhYmxlcykudGhlbihmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcHJveHk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIG15RmxhdChhcnIpIHtcclxuICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGFycik7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHByb2Nlc3NBcmd1bWVudHMoYXJndW1lbnRMaXN0KSB7XHJcbiAgICAgIGNvbnN0IHByb2Nlc3NlZCA9IGFyZ3VtZW50TGlzdC5tYXAodG9XaXJlVmFsdWUpO1xyXG4gICAgICByZXR1cm4gW3Byb2Nlc3NlZC5tYXAoKHYpID0+IHZbMF0pLCBteUZsYXQocHJvY2Vzc2VkLm1hcCgodikgPT4gdlsxXSkpXTtcclxuICB9XHJcbiAgY29uc3QgdHJhbnNmZXJDYWNoZSA9IG5ldyBXZWFrTWFwKCk7XHJcbiAgZnVuY3Rpb24gdHJhbnNmZXIob2JqLCB0cmFuc2ZlcnMpIHtcclxuICAgICAgdHJhbnNmZXJDYWNoZS5zZXQob2JqLCB0cmFuc2ZlcnMpO1xyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBmdW5jdGlvbiBwcm94eShvYmopIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24ob2JqLCB7IFtwcm94eU1hcmtlcl06IHRydWUgfSk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHRvV2lyZVZhbHVlKHZhbHVlKSB7XHJcbiAgICAgIGZvciAoY29uc3QgW25hbWUsIGhhbmRsZXJdIG9mIHRyYW5zZmVySGFuZGxlcnMpIHtcclxuICAgICAgICAgIGlmIChoYW5kbGVyLmNhbkhhbmRsZSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICBjb25zdCBbc2VyaWFsaXplZFZhbHVlLCB0cmFuc2ZlcmFibGVzXSA9IGhhbmRsZXIuc2VyaWFsaXplKHZhbHVlKTtcclxuICAgICAgICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkhBTkRMRVJcIiAvKiBIQU5ETEVSICovLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZXJpYWxpemVkVmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHRyYW5zZmVyYWJsZXMsXHJcbiAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IFwiUkFXXCIgLyogUkFXICovLFxyXG4gICAgICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRyYW5zZmVyQ2FjaGUuZ2V0KHZhbHVlKSB8fCBbXSxcclxuICAgICAgXTtcclxuICB9XHJcbiAgZnVuY3Rpb24gZnJvbVdpcmVWYWx1ZSh2YWx1ZSkge1xyXG4gICAgICBzd2l0Y2ggKHZhbHVlLnR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgXCJIQU5ETEVSXCIgLyogSEFORExFUiAqLzpcclxuICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmZXJIYW5kbGVycy5nZXQodmFsdWUubmFtZSkuZGVzZXJpYWxpemUodmFsdWUudmFsdWUpO1xyXG4gICAgICAgICAgY2FzZSBcIlJBV1wiIC8qIFJBVyAqLzpcclxuICAgICAgICAgICAgICByZXR1cm4gdmFsdWUudmFsdWU7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgZnVuY3Rpb24gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwgbXNnLCB0cmFuc2ZlcnMpIHtcclxuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpZCA9IGdlbmVyYXRlVVVJRCgpO1xyXG4gICAgICAgICAgZXAuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gbChldikge1xyXG4gICAgICAgICAgICAgIGlmICghZXYuZGF0YSB8fCAhZXYuZGF0YS5pZCB8fCBldi5kYXRhLmlkICE9PSBpZCkge1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVwLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGwpO1xyXG4gICAgICAgICAgICAgIHJlc29sdmUoZXYuZGF0YSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChlcC5zdGFydCkge1xyXG4gICAgICAgICAgICAgIGVwLnN0YXJ0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlcC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKHsgaWQgfSwgbXNnKSwgdHJhbnNmZXJzKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGdlbmVyYXRlVVVJRCgpIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheSg0KVxyXG4gICAgICAgICAgLmZpbGwoMClcclxuICAgICAgICAgIC5tYXAoKCkgPT4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpLnRvU3RyaW5nKDE2KSlcclxuICAgICAgICAgIC5qb2luKFwiLVwiKTtcclxuICB9XG4gIC8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbWxpbmsubWpzLm1hcFxuXG4gIC8vIENvbnN0YW50c1xuICBjb25zdCBVUkxfQ0ROX1JPT1QgPSBcImh0dHBzOi8vY2RuLmJpb3dhc20uY29tL3YyXCI7XG4gIGNvbnN0IENPTkZJR19ERUZBVUxUUyA9IHtcbiAgXHQvLyBCaW93YXNtIENETiBVUkxzXG4gIFx0dXJsQ0ROOiBVUkxfQ0ROX1JPT1QsXG4gIFx0Ly8gR2V0IHRoZSBXb3JrZXIgY29kZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IEFpb2xpIHZlcnNpb25cbiAgXHR1cmxBaW9saTogYCR7VVJMX0NETl9ST09UfS9haW9saS8ke3BrZy52ZXJzaW9ufS9haW9saS53b3JrZXIuanNgLFxuICBcdC8vIFdoZXJlIHdlIGNhbiBmaW5kIHRoZSBiYXNlIGJpb3dhc20gbW9kdWxlIChvbmx5IG1vZGlmeSB0aGlzIGZvciBsb2NhbCBkZXZlbG9wbWVudClcbiAgXHR1cmxCYXNlTW9kdWxlOiBudWxsLFxuXG4gIFx0Ly8gRm9sZGVyIHRvIHVzZSBmb3IgbW91bnRpbmcgdGhlIHNoYXJlZCBmaWxlc3lzdGVtXG4gIFx0ZGlyU2hhcmVkOiBcIi9zaGFyZWRcIixcbiAgXHQvLyBGb2xkZXIgdG8gdXNlIGZvciBtb3VudGluZyBGaWxlL0Jsb2Igb2JqZWN0cyB0byB0aGUgdmlydHVhbCBmaWxlIHN5c3RlbVxuICBcdGRpck1vdW50ZWQ6IFwiL21udFwiLFxuICBcdC8vIEZvbGRlciB0byB1c2UgZm9yIHN5bWxpbmtzIChiYXNpY2FsbHksIHdlIG1ha2UgYSBzeW1saW5rIHRvIGVhY2ggZmlsZSBtb3VudGVkIG9uIFdPUktFUkZTXG4gIFx0Ly8gc28gdGhhdCBvcGVyYXRpb25zIGxpa2UgXCJzYW10b29scyBpbmRleFwiIGRvbid0IGNyYXNoIGR1ZSB0byB0aGUgcmVhZC1vbmx5IG5hdHVyZSBvZiBXT1JLRVJTKS5cbiAgXHQvLyBBbHNvIG1vdW50IFVSTHMgbGF6aWx5IGluIHRoYXQgZm9sZGVyLlxuICBcdGRpckRhdGE6IFwiL2RhdGFcIixcbiAgXHQvLyBJbnRlcmxlYXZlIHN0ZG91dC9zdGRlcnIuIElmIHNldCB0byBmYWxzZSwgYC5leGVjKClgIHJldHVybnMgYW4gb2JqZWN0IHsgXCJzdGRvdXRcIjogPHRleHQ+LCBcInN0ZGVyclwiOiA8dGV4dD4gfVxuICBcdHByaW50SW50ZXJsZWF2ZWQ6IHRydWUsXG5cbiAgXHQvLyBDYWxsYmFjayBmdW5jdGlvbiB0byBydW4gd2hlbmV2ZXIgd2UgcmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0aGUgV2ViV29ya2VyIHdpdGggcGF5bG9hZCB7IHR5cGU6IFwiYmlvd2FzbVwiLCB2YWx1ZTogLi4uIH0uXG4gIFx0Ly8gU2VlIDxodHRwczovL2dpdGh1Yi5jb20vYmlvd2FzbS9iaW93YXNtL3RyZWUvbWFpbi90b29scy9iaHRzbmU+IGZvciBhbiBleGFtcGxlIG9mIGhvdyB0aGlzIGNhbiBiZSB1c2VkIHRvIHNlbmQgcmVndWxhciB1cGRhdGVzXG4gIFx0Ly8gYmFjayB0byB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGNhbGxNYWluKCkgaXMgZG9uZSBydW5uaW5nLlxuICBcdGNhbGxiYWNrOiBudWxsLFxuXG4gIFx0Ly8gRGVidWdnaW5nXG4gIFx0ZGVidWc6IGZhbHNlLFxuICBcdGVudjogXCJwcmRcIlxuICB9O1xuXG4gIC8vIENsYXNzOiAxIG9iamVjdCA9IDEgd29ya2VyOyB1c2VyIGNhbiBkZWNpZGUgaWYgdGhleSB3YW50IHRvb2xzIHJ1bm5pbmcgaW4gc2VwYXJhdGUgdGhyZWFkcyBvciBhbGwgb2YgdGhlbSBpbiBvbmVcbiAgY2xhc3MgQWlvbGlcbiAge1xuICBcdGNvbnN0cnVjdG9yKHRvb2xzLCBjb25maWc9e30pXG4gIFx0e1xuICBcdFx0aWYodG9vbHMgPT0gbnVsbClcbiAgXHRcdFx0dGhyb3cgXCJFeHBlY3RpbmcgYXJyYXkgb2YgdG9vbHMgYXMgaW5wdXQgdG8gQWlvbGkgY29uc3RydWN0b3IuXCI7XG5cbiAgXHRcdC8vIFBhcnNlIHVzZXIgaW5wdXRcbiAgXHRcdGlmKCFBcnJheS5pc0FycmF5KHRvb2xzKSlcbiAgXHRcdFx0dG9vbHMgPSBbIHRvb2xzIF07XG4gIFx0XHQvLyBPdmVyd3JpdGUgZGVmYXVsdCBjb25maWcgaWYgc3BlY2lmaWVkXG4gIFx0XHRjb25maWcgPSBPYmplY3QuYXNzaWduKHt9LCBDT05GSUdfREVGQVVMVFMsIGNvbmZpZyk7XG4gIFx0XHQvLyBGb3IgY29udmVuaWVuY2UsIHN1cHBvcnQgXCI8dG9vbD4vPHZlcnNpb24+XCIgb3IgXCI8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPlwiIGluc3RlYWQgb2Ygb2JqZWN0IGNvbmZpZ1xuICBcdFx0dG9vbHMgPSB0b29scy5tYXAodGhpcy5fcGFyc2VUb29sKTtcbiAgXHRcdC8vIElmIHRlc3Rpbmcgd2l0aCBkaWZmZXJlbnQgZW52aXJvbm1lbnQgZS5nLiBjZG4tc3RnLmJpb3dhc20uY29tXG4gIFx0XHRpZihjb25maWcuZW52ICE9IFwicHJkXCIpIHtcbiAgXHRcdFx0Y29uZmlnLnVybENETiA9IGNvbmZpZy51cmxDRE4ucmVwbGFjZShcImNkblwiLCBgY2RuLSR7Y29uZmlnLmVudn1gKTtcbiAgXHRcdFx0Y29uZmlnLnVybEFpb2xpID0gY29uZmlnLnVybEFpb2xpLnJlcGxhY2UoXCJjZG5cIiwgYGNkbi0ke2NvbmZpZy5lbnZ9YCk7XG4gIFx0XHR9XG5cbiAgXHRcdC8vIEFkZCBiaW93YXNtIGJhc2UgbW9kdWxlIHRvIGxpc3Qgb2YgdG9vbHMgdG8gaW5pdGlhbGl6ZSAobmVlZCB0aGlzIGZvciB0aGUgc2hhcmVkIHZpcnR1YWwgZmlsZXN5c3RlbSlcbiAgXHRcdHRvb2xzID0gW3tcbiAgXHRcdFx0dG9vbDogXCJiYXNlXCIsXG4gIFx0XHRcdHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICBcdFx0XHR1cmxQcmVmaXg6IGNvbmZpZy51cmxCYXNlTW9kdWxlXG4gIFx0XHR9LCAuLi50b29sc107XG5cbiAgXHRcdC8vIFNldCBzdGF0ZVxuICBcdFx0dGhpcy50b29scyA9IHRvb2xzO1xuICBcdFx0dGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgXHRcdC8vIEhhbmRsZSBjYWxsYmFjayAoZGVsZXRlIGl0IGJlY2F1c2Ugd2UgY2FuJ3Qgc2VuZCBhIGZ1bmN0aW9uIHRvIHRoZSBXZWJXb3JrZXIpXG4gIFx0XHRpZih0aGlzLmNvbmZpZy5jYWxsYmFjayAhPSBudWxsKVxuICBcdFx0XHR0aGlzLmNhbGxiYWNrID0gdGhpcy5jb25maWcuY2FsbGJhY2s7XG4gIFx0XHRkZWxldGUgdGhpcy5jb25maWcuY2FsbGJhY2s7XG5cbiAgXHRcdHJldHVybiB0aGlzLmluaXQoKTtcbiAgXHR9XG5cbiAgXHQvLyBJbml0aWFsaXplIHRoZSBXZWJXb3JrZXIgYW5kIHRoZSBXZWJBc3NlbWJseSBtb2R1bGVzIHdpdGhpbiBpdFxuICBcdGFzeW5jIGluaXQoKSB7XG4gIFx0XHQvLyBOb3RlOiBXZSBjYW4gb25seSBjcmVhdGUgYSBXZWJXb3JrZXIgdXNpbmcgYSBVUkwgdGhhdCBoYXMgdGhlIHNhbWUgb3JpZ2luIGFzIHRoZSBhcHAgcnVubmluZyBpdCwgaS5lLiB3ZVxuICBcdFx0Ly8gY2FuJ3QgZG8gYG5ldyBXb3JrZXIoXCJodHRwczovL2Nkbi5iaW93YXNtLmNvbS92Mi8uLi5cIilgLCBzbyBpbnN0ZWFkIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGNvbnRlbnRzIG9mIHRoYXRcbiAgXHRcdC8vIFVSTCBmaXJzdCwgYW5kIHRoZW4gY3JlYXRlIHRoZSBXZWJXb3JrZXIuIFNlZSA8aHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzYwMDE1ODk4Pi5cbiAgXHRcdGNvbnN0IG1vZHVsZUpTID0gYXdhaXQgKGF3YWl0IGZldGNoKHRoaXMuY29uZmlnLnVybEFpb2xpKSkudGV4dCgpO1xuICBcdFx0Y29uc3QgbW9kdWxlQmxvYiA9IG5ldyBCbG9iKFttb2R1bGVKU10sIHsgdHlwZTogXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0XCIgfSk7XG5cbiAgXHRcdC8vIENyZWF0ZSB0aGUgV2ViV29ya2VyXG4gIFx0XHRjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKFVSTC5jcmVhdGVPYmplY3RVUkwobW9kdWxlQmxvYikpO1xuICBcdFx0Ly8gTGlzdGVuIGZvciBcImJpb3dhc21cIiBtZXNzYWdlcyBmcm9tIHRoZSBXZWJXb3JrZXJcbiAgXHRcdGlmKHRoaXMuY2FsbGJhY2spXG4gIFx0XHRcdHdvcmtlci5vbm1lc3NhZ2UgPSBlID0+IHtcbiAgXHRcdFx0XHRpZihlLmRhdGEudHlwZSA9PSBcImJpb3dhc21cIilcbiAgXHRcdFx0XHRcdHRoaXMuY2FsbGJhY2soZS5kYXRhLnZhbHVlKTtcbiAgXHRcdFx0fTtcblxuICBcdFx0Y29uc3QgYWlvbGkgPSB3cmFwKHdvcmtlcik7XG4gIFx0XHRhaW9saS50b29scyA9IHRoaXMudG9vbHM7XG4gIFx0XHRhaW9saS5jb25maWcgPSB0aGlzLmNvbmZpZztcblxuICBcdFx0Ly8gSW5pdGlhbGl6ZSB0aGUgdG9vbHMgaW5zaWRlIHRoZSBXZWJXb3JrZXJcbiAgXHRcdGF3YWl0IGFpb2xpLmluaXQoKTtcblxuICBcdFx0cmV0dXJuIGFpb2xpO1xuICBcdH1cblxuICBcdC8vIFBhcnNlIFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIGFuZCBcIjx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+XCIgaW50byB7IFwidG9vbFwiOiA8dG9vbD4sIFwicHJvZ3JhbVwiOiA8cHJvZ3JhbT4sIFwidmVyc2lvblwiOiA8dmVyc2lvbj4gfVxuICBcdF9wYXJzZVRvb2wodG9vbClcbiAgXHR7XG4gIFx0XHQvLyBJZiBub3QgYSBzdHJpbmcsIGxlYXZlIGl0IGFzIGlzXG4gIFx0XHRpZih0eXBlb2YgdG9vbCAhPT0gXCJzdHJpbmdcIilcbiAgXHRcdFx0cmV0dXJuIHRvb2w7XG5cbiAgXHRcdC8vIFN1cHBvcnQgXCI8dG9vbD4vPHZlcnNpb24+XCIgYW5kIFwiPHRvb2w+Lzxwcm9ncmFtPi88dmVyc2lvbj5cIlxuICBcdFx0Y29uc3QgdG9vbFNwbGl0ID0gdG9vbC5zcGxpdChcIi9cIik7XG4gIFx0XHRpZih0b29sU3BsaXQubGVuZ3RoICE9IDIgJiYgdG9vbFNwbGl0Lmxlbmd0aCAhPSAzKVxuICBcdFx0XHR0aHJvdyBcIkV4cGVjdGluZyAnPHRvb2w+Lzx2ZXJzaW9uPicgb3IgJzx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+J1wiO1xuXG4gIFx0XHRyZXR1cm4ge1xuICBcdFx0XHR0b29sOiB0b29sU3BsaXRbMF0sXG4gIFx0XHRcdHByb2dyYW06IHRvb2xTcGxpdC5sZW5ndGggPT0gMyA/IHRvb2xTcGxpdFsxXSA6IHRvb2xTcGxpdFswXSxcbiAgXHRcdFx0dmVyc2lvbjogdG9vbFNwbGl0W3Rvb2xTcGxpdC5sZW5ndGggLSAxXVxuICBcdFx0fTtcbiAgXHR9XG4gIH1cblxuICByZXR1cm4gQWlvbGk7XG5cbn0pKSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1haW9saS5qcy5tYXBcbiIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHNQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IExlc2soKSB7XG4gICAgICAgIGlmICh0aGlzLmxlc2sgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5sZXNrID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snRycsICdBJywgJ1MnLCAnVCddLCAnb3JhbmdlJ10sXG4gICAgICAgICAgICAgICAgW1snQycsICdWJywgJ0knLCAnTCcsICdQJywgJ0YnLCAnWScsICdNJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ04nLCAnUScsICdIJ10sICdtYWdlbnRhJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydLJywgJ1InXSwgJ2FsbF9ibHVlJ10sXG4gICAgICAgICAgICBdLCBmYWxzZSwgQW1pbm9hY2lkc1BhbGV0dGVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sZXNrO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEdyb2tHcm91cHMoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyb2tHcm91cHMgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5ncm9rR3JvdXBzID0gdGhpcy5tYWtlUGFsZXR0ZShbXG4gICAgICAgICAgICAgICAgW1snQycsICdVJ10sICd5ZWxsb3cnXSxcbiAgICAgICAgICAgICAgICBbWydHJywgJ1AnXSwgJ3JlZCddLFxuICAgICAgICAgICAgICAgIFtbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLCAnYWxsX2dyZWVuJ10sXG4gICAgICAgICAgICAgICAgW1snUicsICdIJywgJ0snXSwgJ2xpZ2h0X2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydEJywgJ0UnXSwgJ2RhcmtfYmx1ZSddLFxuICAgICAgICAgICAgICAgIFtbJ1MnLCAnVCcsICdOJywgJ1EnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Jva0dyb3VwcztcbiAgICB9XG4gICAgc3RhdGljIGdldCBSYXNNb2woKSB7XG4gICAgICAgIGlmICh0aGlzLnJhc01vbCA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLnJhc01vbCA9IG5ldyBBbWlub2FjaWRzUGFsZXR0ZXMoe1xuICAgICAgICAgICAgICAgIC8vIGh0dHA6Ly9hY2Nlcy5lbnMtbHlvbi5mci9iaW90aWMvcmFzdG9wL2hlbHAvY29sb3VyLmh0bVxuICAgICAgICAgICAgICAgICdEJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdFJzogJyNFNjBBMEEnLFxuICAgICAgICAgICAgICAgICdDJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdNJzogJyNFNkU2MDAnLFxuICAgICAgICAgICAgICAgICdLJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdSJzogJyMxNDVBRkYnLFxuICAgICAgICAgICAgICAgICdTJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdUJzogJyNGQTk2MDAnLFxuICAgICAgICAgICAgICAgICdGJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdZJzogJyMzMjMyQUEnLFxuICAgICAgICAgICAgICAgICdOJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdRJzogJyMwMERDREMnLFxuICAgICAgICAgICAgICAgICdHJzogJyNFQkVCRUInLFxuICAgICAgICAgICAgICAgICdMJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdWJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdJJzogJyMwRjgyMEYnLFxuICAgICAgICAgICAgICAgICdBJzogJyNDOEM4QzgnLFxuICAgICAgICAgICAgICAgICdXJzogJyNCNDVBQjQnLFxuICAgICAgICAgICAgICAgICdIJzogJyM4MjgyRDInLFxuICAgICAgICAgICAgICAgICdQJzogJyNEQzk2ODInLFxuICAgICAgICAgICAgICAgICdvdGhlcnMnOiAnI0JFQTA2RScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yYXNNb2w7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEFtaW5vYWNpZHMge1xuICAgIHN0YXRpYyBnZXRQYWxldHRlKHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICBzd2l0Y2ggKHNjaGVtZSkge1xuICAgICAgICAgICAgY2FzZSAnZ3Jvayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgICAgICAgICAgY2FzZSAnbGVzayc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFtaW5vYWNpZHNQYWxldHRlcy5MZXNrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENoZW1QYWxldHRlOiBzY2hlbWUgXFxgJHtzY2hlbWV9XFxgIGRvZXMgbm90IGV4aXN0YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBkaXZpZGVkIGFtaW5vIGFjaWQgd2l0aCBpdHMgY29udGVudCBpbiB0aGUgYnJhY2tldCwgaWYgdGhlIGNvbnRlbnQgaXMgbnVtYmVyLCB0aGVuIGl0cyBvbWl0dGVkXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYyByYXcgYW1pbm9cbiAgICAgKiBAcmV0dXJuIHtbc3RyaW5nLCBzdHJpbmddfSBvdXRlciBhbmQgaW5uZXIgY29udGVudFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRJbm5lck91dGVyKGMpIHtcbiAgICAgICAgbGV0IGlzSW5uZXIgPSAwO1xuICAgICAgICBsZXQgaW5uZXIgPSAnJztcbiAgICAgICAgbGV0IG91dGVyID0gJyc7XG4gICAgICAgIGZvciAoY29uc3QgY2hhciBvZiBjKSB7XG4gICAgICAgICAgICBpZiAoY2hhciA9PSAnKCcpXG4gICAgICAgICAgICAgICAgaXNJbm5lcisrO1xuICAgICAgICAgICAgZWxzZSBpZiAoY2hhciA9PSAnKScpXG4gICAgICAgICAgICAgICAgaXNJbm5lci0tO1xuICAgICAgICAgICAgZWxzZSBpZiAoaXNJbm5lcilcbiAgICAgICAgICAgICAgICBpbm5lciArPSBjaGFyO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIG91dGVyICs9IGNoYXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZUludChpbm5lcikpID8gW291dGVyLCAnJ10gOiBbb3V0ZXIsIGlubmVyXTtcbiAgICB9XG4gICAgc3RhdGljIGdldENvbG9yQUFQaXZvdChtb25vbWVyID0gJycsIHNjaGVtZSA9ICdncm9rJykge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgLy9jb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gQUFQYWxldHRlcy5Hcm9rR3JvdXBzKCk7XG4gICAgICAgIGNvbnN0IGNoZW1QYWxldHRlSW5zdGFuY2UgPSB0aGlzLmdldFBhbGV0dGUoc2NoZW1lKTtcbiAgICAgICAgbGV0IFtvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lcl0gPSB0aGlzLmdldElubmVyT3V0ZXIobW9ub21lcik7XG4gICAgICAgIG91dGVyTW9ub21lciA9IChvdXRlck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke291dGVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogb3V0ZXJNb25vbWVyKTtcbiAgICAgICAgaW5uZXJNb25vbWVyID0gKGlubmVyTW9ub21lci5sZW5ndGggPiA2ID8gYCR7aW5uZXJNb25vbWVyLnNsaWNlKDAsIDMpfS4uLmAgOiBpbm5lck1vbm9tZXIpO1xuICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMSB8fCBtb25vbWVyWzFdID09ICcoJykge1xuICAgICAgICAgICAgY29uc3QgYW1pbm8gPSAoX2EgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9VcHBlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAxXSA6XG4gICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAxXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobW9ub21lclswXSA9PSAnZCcgJiYgbW9ub21lclsxXSBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMiB8fCBtb25vbWVyWzJdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9iID0gbW9ub21lclsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAyXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDAsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSAzIHx8IG1vbm9tZXJbM10gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYW1pbm8gPSB0aGlzLkFBRnVsbE5hbWVzW21vbm9tZXIuc3Vic3RyaW5nKDAsIDMpXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDNdIDpcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAzXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKChfYyA9IG1vbm9tZXJbMF0pID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy50b0xvd2VyQ2FzZSgpKSA9PSBtb25vbWVyWzBdKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5zdWJzdHJpbmcoMSwgMykgaW4gdGhpcy5BQUZ1bGxOYW1lcykge1xuICAgICAgICAgICAgICAgIGlmIChtb25vbWVyLmxlbmd0aCA9PSA0IHx8IG1vbm9tZXJbNF0gPT0gJygnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygxLCAzKV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVtUGFsZXR0ZUluc3RhbmNlLmdldChhbWlubyksIGFtaW5vLCBpbm5lck1vbm9tZXIsIDRdIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgNF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDBdO1xuICAgIH1cbn1cbkFtaW5vYWNpZHMuU2VtVHlwZSA9ICdBbWlub2FjaWRzJztcbkFtaW5vYWNpZHMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50ID0gJ0FtaW5vYWNpZHNNdWx0aXBsZUFsaWdubWVudCc7XG5BbWlub2FjaWRzLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuQW1pbm9hY2lkcy5OYW1lcyA9IHtcbiAgICAnRyc6ICdHbHljaW5lJyxcbiAgICAnTCc6ICdMZXVjaW5lJyxcbiAgICAnWSc6ICdUeXJvc2luZScsXG4gICAgJ1MnOiAnU2VyaW5lJyxcbiAgICAnRSc6ICdHbHV0YW1pYyBhY2lkJyxcbiAgICAnUSc6ICdHbHV0YW1pbmUnLFxuICAgICdEJzogJ0FzcGFydGljIGFjaWQnLFxuICAgICdOJzogJ0FzcGFyYWdpbmUnLFxuICAgICdGJzogJ1BoZW55bGFsYW5pbmUnLFxuICAgICdBJzogJ0FsYW5pbmUnLFxuICAgICdLJzogJ0x5c2luZScsXG4gICAgJ1InOiAnQXJnaW5pbmUnLFxuICAgICdIJzogJ0hpc3RpZGluZScsXG4gICAgJ0MnOiAnQ3lzdGVpbmUnLFxuICAgICdWJzogJ1ZhbGluZScsXG4gICAgJ1AnOiAnUHJvbGluZScsXG4gICAgJ1cnOiAnVHJ5cHRvcGhhbicsXG4gICAgJ0knOiAnSXNvbGV1Y2luZScsXG4gICAgJ00nOiAnTWV0aGlvbmluZScsXG4gICAgJ1QnOiAnVGhyZW9uaW5lJyxcbn07XG5BbWlub2FjaWRzLkFBU21pbGVzID0ge1xuICAgICdHJzogJ05DQyg9TylPJyxcbiAgICAnTCc6ICdOW0NASF0oQ0MoQylDKUMoPU8pTycsXG4gICAgJ1knOiAnTkMoQ0MxPUNDPUMoTylDPUMxKUMoPU8pTycsXG4gICAgJ1MnOiAnTkMoQ08pQyg9TylPJyxcbiAgICAnRSc6ICdOW0NAQEhdKENDQyhPKT1PKUMoPU8pTycsXG4gICAgJ1EnOiAnTltDQEBIXShDQ0MoTik9TylDKD1PKU8nLFxuICAgICdEJzogJ05bQ0BASF0oQ0MoTyk9TylDKD1PKU8nLFxuICAgICdOJzogJ05bQ0BASF0oQ0MoTik9TylDKD1PKU8nLFxuICAgICdGJzogJ05DKENDMT1DQz1DQz1DMSlDKD1PKU8nLFxuICAgICdBJzogJ05bQ0BIXShDKUMoPU8pTycsXG4gICAgJ0snOiAnTkMoQ0NDQ04pQyg9TylPJyxcbiAgICAnUic6ICdOW0NASF0oQ0NDTkMoPU4pQylDKD1PKU8nLFxuICAgICdIJzogJ05DKENDMT1DTj1DW05dMSlDKD1PKU8nLFxuICAgICdDJzogJ05bQ0BASF0oQ1MpQyg9TylPJyxcbiAgICAnVic6ICdOQyhDKEMpQylDKD1PKU8nLFxuICAgICdQJzogJ04oQ0NDMSlDMUMoPU8pTycsXG4gICAgJ1cnOiAnTltDQEBIXShDYzFjMmNjY2NjMm4oW0hdKWMxKUMoPU8pTycsXG4gICAgJ0knOiAnTltDQEhdKFtDQEhdKEMpQ0MpQyg9TylPJyxcbiAgICAnTSc6ICdOQyhDQ1NDKUMoPU8pTycsXG4gICAgJ1QnOiAnTkMoQyhPKUMpQyg9TylPJyxcbn07XG5BbWlub2FjaWRzLkFBU21pbGVzVHJ1bmNhdGVkID0ge1xuICAgICdHJzogJypDKicsXG4gICAgJ0wnOiAnQ0MoQylDW0NASF0oKikqJyxcbiAgICAnWSc6ICdDMT1DQyg9Q0M9QzFDQygqKSopTycsXG4gICAgJ1MnOiAnT0NDKCopQyonLFxuICAgICdFJzogJypbQ0BASF0oQ0NDKE8pPU8pKicsXG4gICAgJ1EnOiAnKk5bQ0BASF0oQ0NDKE4pPU8pKicsXG4gICAgJ0QnOiAnKltDQEBIXShDQyhPKT1PKSonLFxuICAgICdOJzogJypbQ0BASF0oQ0MoTik9TykqJyxcbiAgICAnRic6ICdDMT1DQz1DKEM9QzEpQ0MoKikqJyxcbiAgICAnQSc6ICdDW0NASF0oKikqJyxcbiAgICAnSyc6ICdDKENDTilDQygqKSonLFxuICAgICdSJzogJypbQ0BIXShDQ0NOQyg9TilDKSonLFxuICAgICdIJzogJ0MxPUMoTkM9TjEpQ0MoKikqJyxcbiAgICAnQyc6ICdDKFtDQEBIXSgqKSopUycsXG4gICAgJ1YnOiAnQ0MoQylDKCopKicsXG4gICAgJ1AnOiAnQzFDQ04oKilDMSonLFxuICAgICdXJzogJypbQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSkqJyxcbiAgICAnSSc6ICdDQ1tDQEhdKEMpW0NASF0oKikqJyxcbiAgICAnTSc6ICdDU0NDQygqKSonLFxuICAgICdUJzogJ0NDKE8pQygqKSonLFxufTtcbi8qKiBUT0RPOiBGdWxsP1xuICovXG5BbWlub2FjaWRzLkFBRnVsbE5hbWVzID0ge1xuICAgICdBbGEnOiAnQScsXG4gICAgJ0FyZyc6ICdSJyxcbiAgICAnQXNuJzogJ04nLFxuICAgICdBc3AnOiAnRCcsXG4gICAgJ0N5cyc6ICdDJyxcbiAgICAnR2xuJzogJ1EnLFxuICAgICdHbHUnOiAnRScsXG4gICAgJ0dseSc6ICdHJyxcbiAgICAnSGlzJzogJ0gnLFxuICAgICdJbGUnOiAnSScsXG4gICAgJ0xldSc6ICdMJyxcbiAgICAnTHlzJzogJ0snLFxuICAgICdNZXQnOiAnTScsXG4gICAgJ1BoZSc6ICdGJyxcbiAgICAnUHJvJzogJ1AnLFxuICAgICdTZXInOiAnUycsXG4gICAgJ1Rocic6ICdUJyxcbiAgICAnVHJwJzogJ1cnLFxuICAgICdUeXInOiAnWScsXG4gICAgJ1ZhbCc6ICdWJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZVzFwYm05aFkybGtjeTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltRnRhVzV2WVdOcFpITXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUzBFc1QwRkJUeXhGUVVGaExHTkJRV01zUlVGQlF5eE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSVEZFTEUxQlFVMHNUMEZCVHl4clFrRkJiVUlzVTBGQlVTeGpRVUZqTzBsQlJ6ZERMRTFCUVUwc1MwRkJTeXhKUVVGSk8xRkJRM0JDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdFpRVU40UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTTdaMEpCUXpOQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTJoRExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXp0blFrRkROVVFzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzVTBGQlV5eERRVUZETzJkQ1FVTTFRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJRenRuUWtGRGJrSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFZRVUZWTEVOQlFVTTdZVUZEZWtJc1JVRkJSU3hMUVVGTExFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRUUVVNdlFqdFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlNVMHNUVUZCVFN4TFFVRkxMRlZCUVZVN1VVRkRNVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRemxDTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF6dG5Ra0ZEYWtNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4UlFVRlJMRU5CUVVNN1owSkJRM1JDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZGtRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1dVRkJXU3hEUVVGRE8yZENRVU12UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXp0blFrRkRla0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXp0aFFVTnFReXhGUVVGRkxFdEJRVXNzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xTkJReTlDTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRE8wbEJRM3BDTEVOQlFVTTdTVUZKVFN4TlFVRk5MRXRCUVVzc1RVRkJUVHRSUVVOMFFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRXRCUVVzc1MwRkJTeXhEUVVGRExFVkJRVVU3V1VGRE1VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxHdENRVUZyUWl4RFFVRkRPMmRDUVVOdVF5eDVSRUZCZVVRN1owSkJRM3BFTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRkZCUVZFc1JVRkJSU3hUUVVGVE8yRkJRM0JDTEVOQlFVTXNRMEZCUXp0VFFVTktPMUZCUTBRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlEzSkNMRU5CUVVNN1EwRkRSanRCUVVWRUxFMUJRVTBzVDBGQlR5eFZRVUZWTzBsQmNVZGtMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQmFVSXNUVUZCVFR0UlFVTTVReXhSUVVGUkxFMUJRVTBzUlVGQlJUdFpRVU5vUWl4TFFVRkxMRTFCUVUwN1owSkJRMVFzVDBGQlR5eHJRa0ZCYTBJc1EwRkJReXhWUVVGVkxFTkJRVU03V1VGRGRrTXNTMEZCU3l4TlFVRk5PMmRDUVVOVUxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRMnBETzJkQ1FVTkZMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZVVKQlFYbENMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0VFFVTnlSVHRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJVenRSUVVOdVF5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRhRUlzU1VGQlNTeExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTJZc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlJXWXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFVkJRVVU3V1VGRGNFSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1IwRkJSenRuUWtGRFlpeFBRVUZQTEVWQlFVVXNRMEZCUXp0cFFrRkRVQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeEhRVUZITzJkQ1FVTnNRaXhQUVVGUExFVkJRVVVzUTBGQlF6dHBRa0ZEVUN4SlFVRkpMRTlCUVU4N1owSkJRMlFzUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXpzN1owSkJSV1FzUzBGQlN5eEpRVUZKTEVsQlFVa3NRMEZCUXp0VFFVTnFRanRSUVVWRUxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVOb1JTeERRVUZETzBsQlJVMHNUVUZCVFN4RFFVRkRMR1ZCUVdVc1EwRkJReXhWUVVGclFpeEZRVUZGTEVWQlFVVXNVMEZCYVVJc1RVRkJUVHM3VVVGRGVrVXNjMFJCUVhORU8xRkJRM1JFTEUxQlFVMHNiVUpCUVcxQ0xFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRmxCUVZrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMMFFzV1VGQldTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE0wWXNXVUZCV1N4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdVVUZGTTBZc1NVRkJTU3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTzFsQlF6VkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFMUJRVUVzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl3d1EwRkJSU3hYUVVGWExFVkJRVWNzUTBGQlF6dFpRVU42UXl4UFFVRlBMRXRCUVVzc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPMmRDUVVOdVF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpGRUxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzaEVPMUZCUlVRc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSMEZCUnl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVVVzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSVHRaUVVNelJDeEpRVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRVZCUVVVN1owSkJRelZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5d3dRMEZCUlN4WFFVRlhMRVZCUVVjc1EwRkJRenRuUWtGRGVrTXNUMEZCVHl4TFFVRkxMRWxCUVVrc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0dlFrRkRia01zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNTMEZCU3l4RlFVRkZMRmxCUVZrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTXhSQ3hEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVWQlFVVXNXVUZCV1N4RlFVRkZMRmxCUVZrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU40UkR0VFFVTkdPMUZCUlVRc1NVRkJTU3hQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTzFsQlF5OURMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJUdG5Ra0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVONFJDeFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzI5Q1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hFTzFOQlEwWTdVVUZGUkN4SlFVRkpMRU5CUVVFc1RVRkJRU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETERCRFFVRkZMRmRCUVZjc1JVRkJSU3hMUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlR0WlFVTXpReXhKUVVGSkxFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVTdaMEpCUXk5RExFbEJRVWtzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NSVUZCUlR0dlFrRkROVU1zVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU40UkN4UFFVRlBMRXRCUVVzc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXl4RFFVRkRPM2RDUVVOdVF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdkMEpCUXpGRUxFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTjRSRHRoUVVOR08xTkJRMFk3VVVGRlJDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUXpsRUxFTkJRVU03TzBGQmNFeGxMR3RDUVVGUExFZEJRVmNzV1VGQldTeERRVUZETzBGQlJTOUNMRzFEUVVGM1FpeEhRVUZYTERaQ1FVRTJRaXhEUVVGRE8wRkJSVEZGTEhsQ1FVRmpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdRVUZGTjBJc1owSkJRVXNzUjBGQmNVSTdTVUZEZEVNc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNVMEZCVXp0SlFVTmtMRWRCUVVjc1JVRkJSU3hWUVVGVk8wbEJRMllzUjBGQlJ5eEZRVUZGTEZGQlFWRTdTVUZEWWl4SFFVRkhMRVZCUVVVc1pVRkJaVHRKUVVOd1FpeEhRVUZITEVWQlFVVXNWMEZCVnp0SlFVTm9RaXhIUVVGSExFVkJRVVVzWlVGQlpUdEpRVU53UWl4SFFVRkhMRVZCUVVVc1dVRkJXVHRKUVVOcVFpeEhRVUZITEVWQlFVVXNaVUZCWlR0SlFVTndRaXhIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4UlFVRlJPMGxCUTJJc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNWMEZCVnp0SlFVTm9RaXhIUVVGSExFVkJRVVVzVlVGQlZUdEpRVU5tTEVkQlFVY3NSVUZCUlN4UlFVRlJPMGxCUTJJc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzV1VGQldUdEpRVU5xUWl4SFFVRkhMRVZCUVVVc1dVRkJXVHRKUVVOcVFpeEhRVUZITEVWQlFVVXNWMEZCVnp0RFFVTnFRaXhEUVVGRE8wRkJSVmtzYlVKQlFWRXNSMEZCY1VJN1NVRkRla01zUjBGQlJ5eEZRVUZGTEZWQlFWVTdTVUZEWml4SFFVRkhMRVZCUVVVc2MwSkJRWE5DTzBsQlF6TkNMRWRCUVVjc1JVRkJSU3d5UWtGQk1rSTdTVUZEYUVNc1IwRkJSeXhGUVVGRkxHTkJRV003U1VGRGJrSXNSMEZCUnl4RlFVRkZMSGxDUVVGNVFqdEpRVU01UWl4SFFVRkhMRVZCUVVVc2VVSkJRWGxDTzBsQlF6bENMRWRCUVVjc1JVRkJSU3gzUWtGQmQwSTdTVUZETjBJc1IwRkJSeXhGUVVGRkxIZENRVUYzUWp0SlFVTTNRaXhIUVVGSExFVkJRVVVzZDBKQlFYZENPMGxCUXpkQ0xFZEJRVWNzUlVGQlJTeHBRa0ZCYVVJN1NVRkRkRUlzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNNRUpCUVRCQ08wbEJReTlDTEVkQlFVY3NSVUZCUlN4M1FrRkJkMEk3U1VGRE4wSXNSMEZCUnl4RlFVRkZMRzFDUVVGdFFqdEpRVU40UWl4SFFVRkhMRVZCUVVVc2FVSkJRV2xDTzBsQlEzUkNMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHOURRVUZ2UXp0SlFVTjZReXhIUVVGSExFVkJRVVVzTUVKQlFUQkNPMGxCUXk5Q0xFZEJRVWNzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRja0lzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanREUVVOMlFpeERRVUZETzBGQlJWa3NORUpCUVdsQ0xFZEJRWEZDTzBsQlEyeEVMRWRCUVVjc1JVRkJSU3hMUVVGTE8wbEJRMVlzUjBGQlJ5eEZRVUZGTEdsQ1FVRnBRanRKUVVOMFFpeEhRVUZITEVWQlFVVXNjMEpCUVhOQ08wbEJRek5DTEVkQlFVY3NSVUZCUlN4VlFVRlZPMGxCUTJZc1IwRkJSeXhGUVVGRkxHOUNRVUZ2UWp0SlFVTjZRaXhIUVVGSExFVkJRVVVzY1VKQlFYRkNPMGxCUXpGQ0xFZEJRVWNzUlVGQlJTeHRRa0ZCYlVJN1NVRkRlRUlzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNjVUpCUVhGQ08wbEJRekZDTEVkQlFVY3NSVUZCUlN4WlFVRlpPMGxCUTJwQ0xFZEJRVWNzUlVGQlJTeGpRVUZqTzBsQlEyNUNMRWRCUVVjc1JVRkJSU3h4UWtGQmNVSTdTVUZETVVJc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWp0SlFVTjRRaXhIUVVGSExFVkJRVVVzWjBKQlFXZENPMGxCUTNKQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hoUVVGaE8wbEJRMnhDTEVkQlFVY3NSVUZCUlN3clFrRkJLMEk3U1VGRGNFTXNSMEZCUnl4RlFVRkZMSEZDUVVGeFFqdEpRVU14UWl4SFFVRkhMRVZCUVVVc1YwRkJWenRKUVVOb1FpeEhRVUZITEVWQlFVVXNXVUZCV1R0RFFVTnNRaXhEUVVGRE8wRkJSVVk3UjBGRFJ6dEJRVU5YTEhOQ1FVRlhMRWRCUVhGQ08wbEJRelZETEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3UTBGRFdDeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdaM0p2YXlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlozSnZheWM3WEc1cGJYQnZjblFnS2lCaGN5QjFhU0JtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2ZFdrbk8xeHVhVzF3YjNKMElDb2dZWE1nUkVjZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyUm5KenRjYmx4dWFXMXdiM0owSUh0VGRISnBibWRFYVdOMGFXOXVZWEo1ZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3ljN1hHNXBiWEJ2Y25RZ2UxTmxjVkJoYkdWMGRHVXNJRk5sY1ZCaGJHVjBkR1ZDWVhObGZTQm1jbTl0SUNjdUwzTmxjUzF3WVd4bGRIUmxjeWM3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE1nWlhoMFpXNWtjeUJUWlhGUVlXeGxkSFJsUW1GelpTQjdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR3hsYzJzNklGTmxjVkJoYkdWMGRHVTdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhRZ1RHVnpheWdwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCcFppQW9kR2hwY3k1c1pYTnJJRDA5UFNCMmIybGtJREFwSUh0Y2JpQWdJQ0FnSUhSb2FYTXViR1Z6YXlBOUlIUm9hWE11YldGclpWQmhiR1YwZEdVb1cxeHVJQ0FnSUNBZ0lDQmJXeWRISnl3Z0owRW5MQ0FuVXljc0lDZFVKMTBzSUNkdmNtRnVaMlVuWFN4Y2JpQWdJQ0FnSUNBZ1cxc25ReWNzSUNkV0p5d2dKMGtuTENBblRDY3NJQ2RRSnl3Z0owWW5MQ0FuV1Njc0lDZE5KeXdnSjFjblhTd2dKMkZzYkY5bmNtVmxiaWRkTEZ4dUlDQWdJQ0FnSUNCYld5ZE9KeXdnSjFFbkxDQW5TQ2RkTENBbmJXRm5aVzUwWVNkZExGeHVJQ0FnSUNBZ0lDQmJXeWRFSnl3Z0owVW5YU3dnSjNKbFpDZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkTEp5d2dKMUluWFN3Z0oyRnNiRjlpYkhWbEoxMHNYRzRnSUNBZ0lDQmRMQ0JtWVd4elpTd2dRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXViR1Z6YXp0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdkeWIydEhjbTkxY0hNNklGTmxjVkJoYkdWMGRHVTdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhRZ1IzSnZhMGR5YjNWd2N5Z3BPaUJUWlhGUVlXeGxkSFJsSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVuY205clIzSnZkWEJ6SUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11WjNKdmEwZHliM1Z3Y3lBOUlIUm9hWE11YldGclpWQmhiR1YwZEdVb1cxeHVJQ0FnSUNBZ0lDQmJXeWRESnl3Z0oxVW5YU3dnSjNsbGJHeHZkeWRkTEZ4dUlDQWdJQ0FnSUNCYld5ZEhKeXdnSjFBblhTd2dKM0psWkNkZExGeHVJQ0FnSUNBZ0lDQmJXeWRCSnl3Z0oxWW5MQ0FuU1Njc0lDZE1KeXdnSjAwbkxDQW5SaWNzSUNkWkp5d2dKMWNuWFN3Z0oyRnNiRjluY21WbGJpZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkU0p5d2dKMGduTENBblN5ZGRMQ0FuYkdsbmFIUmZZbXgxWlNkZExGeHVJQ0FnSUNBZ0lDQmJXeWRFSnl3Z0owVW5YU3dnSjJSaGNtdGZZbXgxWlNkZExGeHVJQ0FnSUNBZ0lDQmJXeWRUSnl3Z0oxUW5MQ0FuVGljc0lDZFJKMTBzSUNkdmNtRnVaMlVuWFN4Y2JpQWdJQ0FnSUYwc0lHWmhiSE5sTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1bmNtOXJSM0p2ZFhCek8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2NtRnpUVzlzT2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUZKaGMwMXZiQ2dwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCcFppQW9kR2hwY3k1eVlYTk5iMndnUFQwOUlIWnZhV1FnTUNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WVhOTmIyd2dQU0J1WlhjZ1FXMXBibTloWTJsa2MxQmhiR1YwZEdWektIdGNiaUFnSUNBZ0lDQWdMeThnYUhSMGNEb3ZMMkZqWTJWekxtVnVjeTFzZVc5dUxtWnlMMkpwYjNScFl5OXlZWE4wYjNBdmFHVnNjQzlqYjJ4dmRYSXVhSFJ0WEc0Z0lDQWdJQ0FnSUNkRUp6b2dKeU5GTmpCQk1FRW5MQ0F2THlCaGMzQXNJR0Z6Y0dGeWRHbGpJR0ZqYVdRc0lHRnpjRnh1SUNBZ0lDQWdJQ0FuUlNjNklDY2pSVFl3UVRCQkp5d2dMeThnWjJ4MUxDQm5iSFYwWVcxcFl5QmhZMmxrWEc0Z0lDQWdJQ0FnSUNkREp6b2dKeU5GTmtVMk1EQW5MQ0F2THlCamVYTXNJR041YzNSbGFXNWxYRzRnSUNBZ0lDQWdJQ2ROSnpvZ0p5TkZOa1UyTURBbkxDQXZMeUJ0WlhRc0lHMWxkR2hwYjI1cGJtVmNiaUFnSUNBZ0lDQWdKMHNuT2lBbkl6RTBOVUZHUmljc0lDOHZJR3g1Y3l3Z2JIbHphVzVsWEc0Z0lDQWdJQ0FnSUNkU0p6b2dKeU14TkRWQlJrWW5MQ0F2THlCaGNtY3NJR0Z5WjJsdWFXNWxYRzRnSUNBZ0lDQWdJQ2RUSnpvZ0p5TkdRVGsyTURBbkxDQXZMeUJ6WlhJc0lITmxjbWx1WlZ4dUlDQWdJQ0FnSUNBblZDYzZJQ2NqUmtFNU5qQXdKeXdnTHk4Z2RHaHlMQ0IwYUhKbGIyNXBibVZjYmlBZ0lDQWdJQ0FnSjBZbk9pQW5Jek15TXpKQlFTY3NJQzh2SUhCb1pTd2djR2hsYm5sc1lXeGhibWx1WlZ4dUlDQWdJQ0FnSUNBbldTYzZJQ2NqTXpJek1rRkJKeXdnTHk4Z2RIbHlMQ0IwZVhKdmMybHVaVnh1SUNBZ0lDQWdJQ0FuVGljNklDY2pNREJFUTBSREp5d2dMeThnWVhOdUxDQmhjM0JoY21GbmFXNWxYRzRnSUNBZ0lDQWdJQ2RSSnpvZ0p5TXdNRVJEUkVNbkxDQXZMeUJuYkc0c0lHZHNkWFJoYldsdVpWeHVJQ0FnSUNBZ0lDQW5SeWM2SUNjalJVSkZRa1ZDSnl3Z0x5OGdaMng1TENCbmJIbGphVzVsWEc0Z0lDQWdJQ0FnSUNkTUp6b2dKeU13UmpneU1FWW5MQ0F2THlCc1pYVXNJR3hsZFdOcGJtVmNiaUFnSUNBZ0lDQWdKMVluT2lBbkl6QkdPREl3Umljc0lDOHZJSFpoYkN3Z2RtRnNhVzVsWEc0Z0lDQWdJQ0FnSUNkSkp6b2dKeU13UmpneU1FWW5MQ0F2THlCcGJHVXNJR2x6YjJ4bGRXTnBibVZjYmlBZ0lDQWdJQ0FnSjBFbk9pQW5JME00UXpoRE9DY3NJQzh2SUdGc1lTd2dZV3hoYm1sdVpWeHVJQ0FnSUNBZ0lDQW5WeWM2SUNjalFqUTFRVUkwSnl3Z0x5OGdkSEp3TENCMGNubHdkRzl3YUdGdVhHNGdJQ0FnSUNBZ0lDZElKem9nSnlNNE1qZ3lSREluTENBdkx5Qm9hWE1zSUdocGMzUnBaR2x1WlZ4dUlDQWdJQ0FnSUNBblVDYzZJQ2NqUkVNNU5qZ3lKeXdnTHk4Z2NISnZMQ0J3Y205c2FXNWxYRzRnSUNBZ0lDQWdJQ2R2ZEdobGNuTW5PaUFuSTBKRlFUQTJSU2NzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11Y21GelRXOXNPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkJiV2x1YjJGamFXUnpJSHRjYmlBZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUZObGJWUjVjR1U2SUhOMGNtbHVaeUE5SUNkQmJXbHViMkZqYVdSekp6dGNibHh1SUNCemRHRjBhV01nY21WaFpHOXViSGtnVTJWdFZIbHdaVTExYkhScGNHeGxRV3hwWjI1dFpXNTBPaUJ6ZEhKcGJtY2dQU0FuUVcxcGJtOWhZMmxrYzAxMWJIUnBjR3hsUVd4cFoyNXRaVzUwSnp0Y2JseHVJQ0J6ZEdGMGFXTWdkVzVrWldacGJtVmtRMjlzYjNJZ1BTQW5jbWRpS0RFd01Dd3hNREFzTVRBd0tTYzdYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJPWVcxbGN6b2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5SeWM2SUNkSGJIbGphVzVsSnl4Y2JpQWdJQ0FuVENjNklDZE1aWFZqYVc1bEp5eGNiaUFnSUNBbldTYzZJQ2RVZVhKdmMybHVaU2NzWEc0Z0lDQWdKMU1uT2lBblUyVnlhVzVsSnl4Y2JpQWdJQ0FuUlNjNklDZEhiSFYwWVcxcFl5QmhZMmxrSnl4Y2JpQWdJQ0FuVVNjNklDZEhiSFYwWVcxcGJtVW5MRnh1SUNBZ0lDZEVKem9nSjBGemNHRnlkR2xqSUdGamFXUW5MRnh1SUNBZ0lDZE9Kem9nSjBGemNHRnlZV2RwYm1VbkxGeHVJQ0FnSUNkR0p6b2dKMUJvWlc1NWJHRnNZVzVwYm1VbkxGeHVJQ0FnSUNkQkp6b2dKMEZzWVc1cGJtVW5MRnh1SUNBZ0lDZExKem9nSjB4NWMybHVaU2NzWEc0Z0lDQWdKMUluT2lBblFYSm5hVzVwYm1VbkxGeHVJQ0FnSUNkSUp6b2dKMGhwYzNScFpHbHVaU2NzWEc0Z0lDQWdKME1uT2lBblEzbHpkR1ZwYm1VbkxGeHVJQ0FnSUNkV0p6b2dKMVpoYkdsdVpTY3NYRzRnSUNBZ0oxQW5PaUFuVUhKdmJHbHVaU2NzWEc0Z0lDQWdKMWNuT2lBblZISjVjSFJ2Y0doaGJpY3NYRzRnSUNBZ0owa25PaUFuU1hOdmJHVjFZMmx1WlNjc1hHNGdJQ0FnSjAwbk9pQW5UV1YwYUdsdmJtbHVaU2NzWEc0Z0lDQWdKMVFuT2lBblZHaHlaVzl1YVc1bEp5eGNiaUFnZlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklFRkJVMjFwYkdWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEhKem9nSjA1RFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVENjNklDZE9XME5BU0Ywb1EwTW9ReWxES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMWtuT2lBblRrTW9RME14UFVORFBVTW9UeWxEUFVNeEtVTW9QVThwVHljc1hHNGdJQ0FnSjFNbk9pQW5Ua01vUTA4cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuUlNjNklDZE9XME5BUUVoZEtFTkRReWhQS1QxUEtVTW9QVThwVHljc1hHNGdJQ0FnSjFFbk9pQW5UbHREUUVCSVhTaERRME1vVGlrOVR5bERLRDFQS1U4bkxGeHVJQ0FnSUNkRUp6b2dKMDViUTBCQVNGMG9RME1vVHlrOVR5bERLRDFQS1U4bkxGeHVJQ0FnSUNkT0p6b2dKMDViUTBCQVNGMG9RME1vVGlrOVR5bERLRDFQS1U4bkxGeHVJQ0FnSUNkR0p6b2dKMDVES0VORE1UMURRejFEUXoxRE1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkQkp6b2dKMDViUTBCSVhTaERLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owc25PaUFuVGtNb1EwTkRRMDRwUXlnOVR5bFBKeXhjYmlBZ0lDQW5VaWM2SUNkT1cwTkFTRjBvUTBORFRrTW9QVTRwUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RJSnpvZ0owNURLRU5ETVQxRFRqMURXMDVkTVNsREtEMVBLVThuTEZ4dUlDQWdJQ2RESnpvZ0owNWJRMEJBU0Ywb1ExTXBReWc5VHlsUEp5eGNiaUFnSUNBblZpYzZJQ2RPUXloREtFTXBReWxES0QxUEtVOG5MRnh1SUNBZ0lDZFFKem9nSjA0b1EwTkRNU2xETVVNb1BVOHBUeWNzWEc0Z0lDQWdKMWNuT2lBblRsdERRRUJJWFNoRFl6RmpNbU5qWTJOak1tNG9XMGhkS1dNeEtVTW9QVThwVHljc1hHNGdJQ0FnSjBrbk9pQW5UbHREUUVoZEtGdERRRWhkS0VNcFEwTXBReWc5VHlsUEp5eGNiaUFnSUNBblRTYzZJQ2RPUXloRFExTkRLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxUW5PaUFuVGtNb1F5aFBLVU1wUXlnOVR5bFBKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRUZCVTIxcGJHVnpWSEoxYm1OaGRHVmtPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RISnpvZ0p5cERLaWNzWEc0Z0lDQWdKMHduT2lBblEwTW9ReWxEVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuV1NjNklDZERNVDFEUXlnOVEwTTlRekZEUXlncUtTb3BUeWNzWEc0Z0lDQWdKMU1uT2lBblQwTkRLQ29wUXlvbkxGeHVJQ0FnSUNkRkp6b2dKeXBiUTBCQVNGMG9RME5ES0U4cFBVOHBLaWNzWEc0Z0lDQWdKMUVuT2lBbktrNWJRMEJBU0Ywb1EwTkRLRTRwUFU4cEtpY3NYRzRnSUNBZ0owUW5PaUFuS2x0RFFFQklYU2hEUXloUEtUMVBLU29uTEZ4dUlDQWdJQ2RPSnpvZ0p5cGJRMEJBU0Ywb1EwTW9UaWs5VHlrcUp5eGNiaUFnSUNBblJpYzZJQ2RETVQxRFF6MURLRU05UXpFcFEwTW9LaWtxSnl4Y2JpQWdJQ0FuUVNjNklDZERXME5BU0Ywb0tpa3FKeXhjYmlBZ0lDQW5TeWM2SUNkREtFTkRUaWxEUXlncUtTb25MRnh1SUNBZ0lDZFNKem9nSnlwYlEwQklYU2hEUTBOT1F5ZzlUaWxES1NvbkxGeHVJQ0FnSUNkSUp6b2dKME14UFVNb1RrTTlUakVwUTBNb0tpa3FKeXhjYmlBZ0lDQW5ReWM2SUNkREtGdERRRUJJWFNncUtTb3BVeWNzWEc0Z0lDQWdKMVluT2lBblEwTW9ReWxES0NvcEtpY3NYRzRnSUNBZ0oxQW5PaUFuUXpGRFEwNG9LaWxETVNvbkxGeHVJQ0FnSUNkWEp6b2dKeXBiUTBCQVNGMG9RMk14WXpKalkyTmpZekp1S0Z0SVhTbGpNU2txSnl4Y2JpQWdJQ0FuU1NjNklDZERRMXREUUVoZEtFTXBXME5BU0Ywb0tpa3FKeXhjYmlBZ0lDQW5UU2M2SUNkRFUwTkRReWdxS1NvbkxGeHVJQ0FnSUNkVUp6b2dKME5ES0U4cFF5Z3FLU29uTEZ4dUlDQjlPMXh1WEc0Z0lDOHFLaUJVVDBSUE9pQkdkV3hzUDF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJCUVVaMWJHeE9ZVzFsY3pvZ1UzUnlhVzVuUkdsamRHbHZibUZ5ZVNBOUlIdGNiaUFnSUNBblFXeGhKem9nSjBFbkxGeHVJQ0FnSUNkQmNtY25PaUFuVWljc1hHNGdJQ0FnSjBGemJpYzZJQ2RPSnl4Y2JpQWdJQ0FuUVhOd0p6b2dKMFFuTEZ4dUlDQWdJQ2REZVhNbk9pQW5ReWNzWEc0Z0lDQWdKMGRzYmljNklDZFJKeXhjYmlBZ0lDQW5SMngxSnpvZ0owVW5MRnh1SUNBZ0lDZEhiSGtuT2lBblJ5Y3NYRzRnSUNBZ0owaHBjeWM2SUNkSUp5eGNiaUFnSUNBblNXeGxKem9nSjBrbkxGeHVJQ0FnSUNkTVpYVW5PaUFuVENjc1hHNGdJQ0FnSjB4NWN5YzZJQ2RMSnl4Y2JpQWdJQ0FuVFdWMEp6b2dKMDBuTEZ4dUlDQWdJQ2RRYUdVbk9pQW5SaWNzWEc0Z0lDQWdKMUJ5YnljNklDZFFKeXhjYmlBZ0lDQW5VMlZ5SnpvZ0oxTW5MRnh1SUNBZ0lDZFVhSEluT2lBblZDY3NYRzRnSUNBZ0oxUnljQ2M2SUNkWEp5eGNiaUFnSUNBblZIbHlKem9nSjFrbkxGeHVJQ0FnSUNkV1lXd25PaUFuVmljc1hHNGdJSDA3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlFZV3hsZEhSbEtITmphR1Z0WlRvZ2MzUnlhVzVuSUQwZ0oyZHliMnNuS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2MzZHBkR05vSUNoelkyaGxiV1VwSUh0Y2JpQWdJQ0JqWVhObElDZG5jbTlySnpwY2JpQWdJQ0FnSUhKbGRIVnliaUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE11UjNKdmEwZHliM1Z3Y3p0Y2JpQWdJQ0JqWVhObElDZHNaWE5ySnpwY2JpQWdJQ0FnSUhKbGRIVnliaUJCYldsdWIyRmphV1J6VUdGc1pYUjBaWE11VEdWemF6dGNiaUFnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JEYUdWdFVHRnNaWFIwWlRvZ2MyTm9aVzFsSUZ4Y1lDUjdjMk5vWlcxbGZWeGNZQ0JrYjJWeklHNXZkQ0JsZUdsemRHQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJTWlhSMWNtNXpJR1JwZG1sa1pXUWdZVzFwYm04Z1lXTnBaQ0IzYVhSb0lHbDBjeUJqYjI1MFpXNTBJR2x1SUhSb1pTQmljbUZqYTJWMExDQnBaaUIwYUdVZ1kyOXVkR1Z1ZENCcGN5QnVkVzFpWlhJc0lIUm9aVzRnYVhSeklHOXRhWFIwWldSY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlHTWdjbUYzSUdGdGFXNXZYRzRnSUNBcUlFQnlaWFIxY200Z2UxdHpkSEpwYm1jc0lITjBjbWx1WjExOUlHOTFkR1Z5SUdGdVpDQnBibTVsY2lCamIyNTBaVzUwWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZEVsdWJtVnlUM1YwWlhJb1l6b2djM1J5YVc1bktUb2dXM04wY21sdVp5d2djM1J5YVc1blhTQjdYRzRnSUNBZ2JHVjBJR2x6U1c1dVpYSWdQU0F3TzF4dUlDQWdJR3hsZENCcGJtNWxjaUE5SUNjbk8xeHVJQ0FnSUd4bGRDQnZkWFJsY2lBOUlDY25PMXh1WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqYUdGeUlHOW1JR01wSUh0Y2JpQWdJQ0FnSUdsbUlDaGphR0Z5SUQwOUlDY29KeWxjYmlBZ0lDQWdJQ0FnYVhOSmJtNWxjaXNyTzF4dUlDQWdJQ0FnWld4elpTQnBaaUFvWTJoaGNpQTlQU0FuS1NjcFhHNGdJQ0FnSUNBZ0lHbHpTVzV1WlhJdExUdGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tHbHpTVzV1WlhJcFhHNGdJQ0FnSUNBZ0lHbHVibVZ5SUNzOUlHTm9ZWEk3WEc0Z0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lHOTFkR1Z5SUNzOUlHTm9ZWEk3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlDRnBjMDVoVGlod1lYSnpaVWx1ZENocGJtNWxjaWtwSUQ4Z1cyOTFkR1Z5TENBbkoxMGdPaUJiYjNWMFpYSXNJR2x1Ym1WeVhUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBRMjlzYjNKQlFWQnBkbTkwS0cxdmJtOXRaWEk2SUhOMGNtbHVaeUE5SUNjbkxDQnpZMmhsYldVNklDZG5jbTlySnlBOUlDZG5jbTlySnlrNklGdHpkSEpwYm1jc0lITjBjbWx1Wnl3Z2MzUnlhVzVuTENCdWRXMWlaWEpkSUh0Y2JpQWdJQ0F2TDJOdmJuTjBJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVnUFNCQlFWQmhiR1YwZEdWekxrZHliMnRIY205MWNITW9LVHRjYmlBZ0lDQmpiMjV6ZENCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEMGdkR2hwY3k1blpYUlFZV3hsZEhSbEtITmphR1Z0WlNrN1hHNGdJQ0FnYkdWMElGdHZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNsMGdQU0IwYUdsekxtZGxkRWx1Ym1WeVQzVjBaWElvYlc5dWIyMWxjaWs3WEc0Z0lDQWdiM1YwWlhKTmIyNXZiV1Z5SUQwZ0tHOTFkR1Z5VFc5dWIyMWxjaTVzWlc1bmRHZ2dQaUEySUQ4Z1lDUjdiM1YwWlhKTmIyNXZiV1Z5TG5Oc2FXTmxLREFzSURNcGZTNHVMbUFnT2lCdmRYUmxjazF2Ym05dFpYSXBPMXh1SUNBZ0lHbHVibVZ5VFc5dWIyMWxjaUE5SUNocGJtNWxjazF2Ym05dFpYSXViR1Z1WjNSb0lENGdOaUEvSUdBa2UybHVibVZ5VFc5dWIyMWxjaTV6YkdsalpTZ3dMQ0F6S1gwdUxpNWdJRG9nYVc1dVpYSk5iMjV2YldWeUtUdGNibHh1SUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0F4SUh4OElHMXZibTl0WlhKYk1WMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCaGJXbHVieUE5SUcxdmJtOXRaWEpiTUYwL0xuUnZWWEJ3WlhKRFlYTmxLQ2toTzF4dUlDQWdJQ0FnY21WMGRYSnVJR0Z0YVc1dklHbHVJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVnUDF4dUlDQWdJQ0FnSUNCYlkyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTNW5aWFFvWVcxcGJtOHBMQ0JoYldsdWJ5d2dhVzV1WlhKTmIyNXZiV1Z5TENBeFhTQTZYRzRnSUNBZ0lDQWdJRnQwYUdsekxuVnVaR1ZtYVc1bFpFTnZiRzl5TENCdmRYUmxjazF2Ym05dFpYSXNJR2x1Ym1WeVRXOXViMjFsY2l3Z01WMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzF2Ym05dFpYSmJNRjBnUFQwZ0oyUW5JQ1ltSUcxdmJtOXRaWEpiTVYwaElHbHVJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVwSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxteGxibWQwYUNBOVBTQXlJSHg4SUcxdmJtOXRaWEpiTWwwZ1BUMGdKeWduS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdGdGFXNXZJRDBnYlc5dWIyMWxjbHN4WFQ4dWRHOVZjSEJsY2tOaGMyVW9LU0U3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoYldsdWJ5QnBiaUJqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sSUQ5Y2JpQWdJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXlYU0E2WEc0Z0lDQWdJQ0FnSUNBZ1czUm9hWE11ZFc1a1pXWnBibVZrUTI5c2IzSXNJRzkxZEdWeVRXOXViMjFsY2l3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F5WFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JXOXViMjFsY2k1emRXSnpkSEpwYm1jb01Dd2dNeWtnYVc0Z2RHaHBjeTVCUVVaMWJHeE9ZVzFsY3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLRzF2Ym05dFpYSXViR1Z1WjNSb0lEMDlJRE1nZkh3Z2JXOXViMjFsY2xzelhTQTlQU0FuS0NjcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1lXMXBibThnUFNCMGFHbHpMa0ZCUm5Wc2JFNWhiV1Z6VzIxdmJtOXRaWEl1YzNWaWMzUnlhVzVuS0RBc0lETXBYVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0Z0YVc1dklHbHVJR05vWlcxUVlXeGxkSFJsU1c1emRHRnVZMlVnUDF4dUlDQWdJQ0FnSUNBZ0lGdGphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxMbWRsZENoaGJXbHVieWtzSUdGdGFXNXZMQ0JwYm01bGNrMXZibTl0WlhJc0lETmRJRHBjYmlBZ0lDQWdJQ0FnSUNCYmRHaHBjeTUxYm1SbFptbHVaV1JEYjJ4dmNpd2diM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSXNJRE5kTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5V3pCZFB5NTBiMHh2ZDJWeVEyRnpaU2dwSUQwOUlHMXZibTl0WlhKYk1GMHBJSHRjYmlBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5TG5OMVluTjBjbWx1WnlneExDQXpLU0JwYmlCMGFHbHpMa0ZCUm5Wc2JFNWhiV1Z6S1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0EwSUh4OElHMXZibTl0WlhKYk5GMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZVzFwYm04Z1BTQjBhR2x6TGtGQlJuVnNiRTVoYldWelcyMXZibTl0WlhJdWMzVmljM1J5YVc1bktERXNJRE1wWFR0Y2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1lXMXBibThnYVc0Z1kyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTQS9YRzRnSUNBZ0lDQWdJQ0FnSUNCYlkyaGxiVkJoYkdWMGRHVkpibk4wWVc1alpTNW5aWFFvWVcxcGJtOHBMQ0JoYldsdWJ5d2dhVzV1WlhKTmIyNXZiV1Z5TENBMFhTQTZYRzRnSUNBZ0lDQWdJQ0FnSUNCYmRHaHBjeTUxYm1SbFptbHVaV1JEYjJ4dmNpd2diM1YwWlhKTmIyNXZiV1Z5TENCcGJtNWxjazF2Ym05dFpYSXNJRFJkTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRnQwYUdsekxuVnVaR1ZtYVc1bFpFTnZiRzl5TENCdmRYUmxjazF2Ym05dFpYSXNJR2x1Ym1WeVRXOXViMjFsY2l3Z01GMDdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIE51Y2xlb3RpZGVzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBDaHJvbWF0b2dyYW0oKSB7XG4gICAgICAgIGlmICh0aGlzLmNocm9tYXRvZ3JhbSA9PT0gdm9pZCAwKSB7XG4gICAgICAgICAgICB0aGlzLmNocm9tYXRvZ3JhbSA9IG5ldyBOdWNsZW90aWRlc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAnQSc6ICdncmVlbicsXG4gICAgICAgICAgICAgICAgJ0MnOiAnYmx1ZScsXG4gICAgICAgICAgICAgICAgJ0cnOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgICdUJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ1UnOiAncmVkJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJ2dyYXknLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2hyb21hdG9ncmFtO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlcyB7XG59XG5OdWNsZW90aWRlcy5TZW1UeXBlID0gJ051Y2xlb3RpZGVzJztcbk51Y2xlb3RpZGVzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdOdWNsZW90aWRlc011bHRpcGxlQWxpZ25tZW50Jztcbk51Y2xlb3RpZGVzLk5hbWVzID0ge1xuICAgICdBJzogJ0FkZW5pbmUnLFxuICAgICdDJzogJ0N5dG9zaW5lJyxcbiAgICAnRyc6ICdHdWFuaW5lJyxcbiAgICAnVCc6ICdUaHltaW5lJyxcbiAgICAnVSc6ICdVcmFjaWwnLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJuVmpiR1Z2ZEdsa1pYTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKdWRXTnNaVzkwYVdSbGN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZMUVN4UFFVRlBMRVZCUVdFc1kwRkJZeXhGUVVGRExFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkZNVVFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHTkJRV003U1VGSE9VTXNUVUZCVFN4TFFVRkxMRmxCUVZrN1VVRkROVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4TFFVRkxMRXRCUVVzc1EwRkJReXhGUVVGRk8xbEJRMmhETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNRMEZCUXp0blFrRkRNVU1zUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFMUJRVTA3WjBKQlExZ3NSMEZCUnl4RlFVRkZMRTlCUVU4N1owSkJRMW9zUjBGQlJ5eEZRVUZGTEV0QlFVczdaMEpCUTFZc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNVVUZCVVN4RlFVRkZMRTFCUVUwN1lVRkRha0lzUTBGQlF5eERRVUZETzFOQlEwbzdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU03U1VGRE0wSXNRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExGZEJRVmM3TzBGQlEwNHNiVUpCUVU4c1IwRkJWeXhoUVVGaExFTkJRVU03UVVGRmFFTXNiME5CUVhkQ0xFZEJRVmNzT0VKQlFUaENMRU5CUVVNN1FVRkZjRVVzYVVKQlFVc3NSMEZCY1VJN1NVRkRkRU1zUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFRRVUZUTzBsQlEyUXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVVVGQlVUdERRVU5rTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMU4wY21sdVowUnBZM1JwYjI1aGNubDlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3VTJWeFVHRnNaWFIwWlN3Z1UyVnhVR0ZzWlhSMFpVSmhjMlY5SUdaeWIyMGdKeTR2YzJWeExYQmhiR1YwZEdWekp6dGNibHh1Wlhod2IzSjBJR05zWVhOeklFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTWdaWGgwWlc1a2N5QlRaWEZRWVd4bGRIUmxRbUZ6WlNCN1hHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHTm9jbTl0WVhSdlozSmhiVG9nVTJWeFVHRnNaWFIwWlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkQ0JEYUhKdmJXRjBiMmR5WVcwb0tUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdhV1lnS0hSb2FYTXVZMmh5YjIxaGRHOW5jbUZ0SUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMGdibVYzSUU1MVkyeGxiM1JwWkdWelVHRnNaWFIwWlhNb2UxeHVJQ0FnSUNBZ0lDQW5RU2M2SUNkbmNtVmxiaWNzWEc0Z0lDQWdJQ0FnSUNkREp6b2dKMkpzZFdVbkxGeHVJQ0FnSUNBZ0lDQW5SeWM2SUNkaWJHRmpheWNzSUM4dklHOXlZVzVuWlNBL1hHNGdJQ0FnSUNBZ0lDZFVKem9nSjNKbFpDY3NYRzRnSUNBZ0lDQWdJQ2RWSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkdmRHaGxjbk1uT2lBblozSmhlU2NzWEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTJoeWIyMWhkRzluY21GdE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCT2RXTnNaVzkwYVdSbGN5QjdYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxPaUJ6ZEhKcGJtY2dQU0FuVG5WamJHVnZkR2xrWlhNbk8xeHVYRzRnSUhOMFlYUnBZeUJ5WldGa2IyNXNlU0JUWlcxVWVYQmxUWFZzZEdsd2JHVkJiR2xuYm0xbGJuUTZJSE4wY21sdVp5QTlJQ2RPZFdOc1pXOTBhV1JsYzAxMWJIUnBjR3hsUVd4cFoyNXRaVzUwSnp0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklFNWhiV1Z6T2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkQkp6b2dKMEZrWlc1cGJtVW5MRnh1SUNBZ0lDZERKem9nSjBONWRHOXphVzVsSnl4Y2JpQWdJQ0FuUnljNklDZEhkV0Z1YVc1bEp5eGNiaUFnSUNBblZDYzZJQ2RVYUhsdGFXNWxKeXhjYmlBZ0lDQW5WU2M2SUNkVmNtRmphV3duTEZ4dUlDQjlPMXh1ZlZ4dUlsMTkiLCJleHBvcnQgY2xhc3MgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIGNvbnN0cnVjdG9yKHBhbGV0dGUpIHtcbiAgICAgICAgdGhpcy5fcGFsZXR0ZSA9IHBhbGV0dGU7XG4gICAgfVxuICAgIHN0YXRpYyBtYWtlUGFsZXR0ZShkdCwgc2ltcGxpZmllZCA9IGZhbHNlLCBQYWxldHRlVHlwZSA9IFNlcVBhbGV0dGVCYXNlKSB7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSB7fTtcbiAgICAgICAgZHQuZm9yRWFjaCgoY3ApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9iakxpc3QgPSBjcFswXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbG91ciA9IGNwWzFdO1xuICAgICAgICAgICAgb2JqTGlzdC5mb3JFYWNoKChvYmosIGluZCkgPT4ge1xuICAgICAgICAgICAgICAgIHBhbGV0dGVbb2JqXSA9IHRoaXMuY29sb3VyUGFsZXR0ZVtjb2xvdXJdW3NpbXBsaWZpZWQgPyAwIDogaW5kXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWxldHRlVHlwZShwYWxldHRlKTtcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhbGV0dGVbbV07XG4gICAgfVxufVxuU2VxUGFsZXR0ZUJhc2UudW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG4vKiogUGFsZXR0ZSB3aXRoIHNoYWRlcyBvZiBwcmltYXJ5IGNvbG9ycyAqL1xuU2VxUGFsZXR0ZUJhc2UuY29sb3VyUGFsZXR0ZSA9IHtcbiAgICAnb3JhbmdlJzogWydyZ2IoMjU1LDE4NywxMjApJywgJ3JnYigyNDUsMTY3LDEwMCknLCAncmdiKDIzNSwxMzcsNzApJywgJ3JnYigyMDUsIDExMSwgNzEpJ10sXG4gICAgJ2FsbF9ncmVlbic6IFsncmdiKDQ0LDE2MCw0NCknLCAncmdiKDc0LDE2MCw3NCknLCAncmdiKDIzLDEwMyw1NyknLCAncmdiKDMwLDExMCw5NiknLCAncmdiKDYwLDEzMSw5NSknLFxuICAgICAgICAncmdiKDI0LDExMCw3OSknLCAncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ2FsbF9ibHVlJzogWydyZ2IoMzEsMTE5LDE4MCknLCAncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxMjIsIDEwMiwgMTg5KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigxNDEsIDEyNCwgMjE3KScsXG4gICAgICAgICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdtYWdlbnRhJzogWydyZ2IoMTYyLDEwNiwxOTIpJywgJ3JnYigxOTcsMTY1LDIyNCknLCAncmdiKDIwOCwxMTMsMjE4KSddLFxuICAgICdyZWQnOiBbJ3JnYigyMTQsMzksNDApJywgJ3JnYigyNTUsMTUyLDE1MCknXSxcbiAgICAnc3RfYmx1ZSc6IFsncmdiKDIzLDE5MCwyMDcpJywgJ3JnYigxNTgsMjE4LDIyOSknLCAncmdiKDMxLDExOSwxODApJ10sXG4gICAgJ2RhcmtfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigzMSwgMTIwLCAxNTApJ10sXG4gICAgJ2xpZ2h0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigxMDgsIDIxOCwgMjI5KScsICdyZ2IoMjMsMTkwLDIyNyknXSxcbiAgICAnbGlsYWNfYmx1ZSc6IFsncmdiKDEyNCwxMDIsMjExKScsICdyZ2IoMTQ5LDEzNCwyMTcpJywgJ3JnYig5NywgODEsIDE1MCknXSxcbiAgICAnZGFya19ncmVlbic6IFsncmdiKDIzLDEwMyw1NyknLCAncmdiKDMwLDExMCw5NiknLCAncmdiKDYwLDEzMSw5NSknLCAncmdiKDI0LDExMCw3OSknXSxcbiAgICAnZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJ10sXG4gICAgJ2xpZ2h0X2dyZWVuJzogWydyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigxODIsIDIyMywgMTM4KScsICdyZ2IoMTUyLCAxOTMsIDEzOCknXSxcbiAgICAnc3RfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDM5LCAxNzQsIDk2KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdwaW5rJzogWydyZ2IoMjQ3LDE4MiwyMTApJ10sXG4gICAgJ2Jyb3duJzogWydyZ2IoMTQwLDg2LDc1KScsICdyZ2IoMTAyLCA2MiwgNTQpJ10sXG4gICAgJ2dyYXknOiBbJ3JnYigxMjcsMTI3LDEyNyknLCAncmdiKDE5OSwxOTksMTk5KScsICdyZ2IoMTk2LDE1NiwxNDgpJywgJ3JnYigyMjIsIDIyMiwgMTgwKSddLFxuICAgICd5ZWxsb3cnOiBbJ3JnYigxODgsMTg5LDM0KSddLFxuICAgICd3aGl0ZSc6IFsncmdiKDIzMCwyMzAsMjMwKSddLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnhMWEJoYkdWMGRHVnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWMyVnhMWEJoYkdWMGRHVnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVdsQ1FTeE5RVUZOTEU5QlFVOHNZMEZCWXp0SlFUSkRla0lzV1VGQldTeFBRVUZuUXp0UlFVTXhReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTXhRaXhEUVVGRE8wbEJiRUpUTEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJkMElzUlVGRGJrUXNWVUZCVlN4SFFVRkhMRXRCUVVzc1JVRkJSU3hqUVVGeFF5eGpRVUZqTzFGQlJYWkZMRTFCUVUwc1QwRkJUeXhIUVVFNFFpeEZRVUZGTEVOQlFVTTdVVUZET1VNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZPMWxCUTJoQ0xFMUJRVTBzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOMFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0blFrRkRNMElzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwd3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hQUVVGUExFbEJRVWtzVjBGQlZ5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTJ4RExFTkJRVU03U1VGUlRTeEhRVUZITEVOQlFVTXNRMEZCVXp0UlFVTnNRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRNVUlzUTBGQlF6czdRVUZvUkdFc05rSkJRV01zUjBGQlJ5eHJRa0ZCYTBJc1EwRkJRenRCUVVWc1JDdzBRMEZCTkVNN1FVRkRPVUlzTkVKQlFXRXNSMEZCWjBNN1NVRkRla1FzVVVGQlVTeEZRVUZGTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzYTBKQlFXdENMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNiVUpCUVcxQ0xFTkJRVU03U1VGRE1VWXNWMEZCVnl4RlFVRkZMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ08xRkJRM0JITEdkQ1FVRm5RaXhGUVVGRkxHdENRVUZyUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEc5Q1FVRnZRaXhEUVVGRE8wbEJRMjVHTEZWQlFWVXNSVUZCUlN4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEdsQ1FVRnBRaXhGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEc5Q1FVRnZRanRSUVVNdlJ5eHRRa0ZCYlVJc1EwRkJRenRKUVVOMFFpeFRRVUZUTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTjJSU3hMUVVGTExFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTTNReXhUUVVGVExFVkJRVVVzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF6dEpRVU55UlN4WFFVRlhMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4dFFrRkJiVUlzUTBGQlF6dEpRVU55UkN4WlFVRlpMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXp0SlFVTTVSaXhaUVVGWkxFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU14UlN4WlFVRlpMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNRMEZCUXp0SlFVTjBSaXhQUVVGUExFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNRMEZCUXp0SlFVTTNReXhoUVVGaExFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4dlFrRkJiMElzUTBGQlF6dEpRVU12UlN4VlFVRlZMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3huUWtGQlowSXNRMEZCUXp0SlFVTjRSaXhOUVVGTkxFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1EwRkJRenRKUVVNMVFpeFBRVUZQTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNdlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUTBGQlF6dEpRVU14Uml4UlFVRlJMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0SlFVTTNRaXhQUVVGUExFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1EwRkJRenREUVVNNVFpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdaM0p2YXlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlozSnZheWM3WEc1cGJYQnZjblFnS2lCaGN5QjFhU0JtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2ZFdrbk8xeHVhVzF3YjNKMElDb2dZWE1nUkVjZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyUm5KenRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCVFpYRlFZV3hsZEhSbElIdGNiaUFnTHk4Z1ZHaGxjbVVnWVhKbElIUnZieUJ0ZFdOb0lIQnliMkpzWlcwZ2QybDBhQ0JwYm1SbGVHVnlJSEJ5YjNCbGNuUjVJR2x1SUhSNWNHVnpZM0pwY0hRdVhHNGdJQzh2SUM4cUtseHVJQ0F2THlBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2JTQk5iMjV2YldWeUlHTm9ZWEpoWTNSbGNseHVJQ0F2THlBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlFTnZiRzl5WEc0Z0lDOHZJQ0FxTDF4dUlDQXZMeUJiYlRvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuTzF4dUlDQXZLaW9nVFc5dWIyMWxjaUJqYjJ4dmNseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnYlNCTmIyNXZiV1Z5WEc0Z0lDQXFMMXh1SUNCblpYUW9iVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTJWeFVHRnNaWFIwWlVKaGMyVWdhVzF3YkdWdFpXNTBjeUJUWlhGUVlXeGxkSFJsSUh0Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCMWJtUmxabWx1WldSRGIyeHZjaUE5SUNkeVoySW9NVEF3TERFd01Dd3hNREFwSnp0Y2JseHVJQ0F2S2lvZ1VHRnNaWFIwWlNCM2FYUm9JSE5vWVdSbGN5QnZaaUJ3Y21sdFlYSjVJR052Ykc5eWN5QXFMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR052Ykc5MWNsQmhiR1YwZEdVNklIc2dXMnRsZVRvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuVzEwZ2ZTQTlJSHRjYmlBZ0lDQW5iM0poYm1kbEp6b2dXeWR5WjJJb01qVTFMREU0Tnl3eE1qQXBKeXdnSjNKbllpZ3lORFVzTVRZM0xERXdNQ2tuTENBbmNtZGlLREl6TlN3eE16Y3NOekFwSnl3Z0ozSm5ZaWd5TURVc0lERXhNU3dnTnpFcEoxMHNYRzRnSUNBZ0oyRnNiRjluY21WbGJpYzZJRnNuY21kaUtEUTBMREUyTUN3ME5Da25MQ0FuY21kaUtEYzBMREUyTUN3M05Da25MQ0FuY21kaUtESXpMREV3TXl3MU55a25MQ0FuY21kaUtETXdMREV4TUN3NU5pa25MQ0FuY21kaUtEWXdMREV6TVN3NU5Ta25MRnh1SUNBZ0lDQWdKM0puWWlneU5Dd3hNVEFzTnprcEp5d2dKM0puWWlneE5USXNNakl6TERFek9Da25MQ0FuY21kaUtERTRNaXdnTWpJekxDQXhNemdwSnl3Z0ozSm5ZaWd4TlRJc0lERTVNeXdnTVRNNEtTZGRMRnh1SUNBZ0lDZGhiR3hmWW14MVpTYzZJRnNuY21kaUtETXhMREV4T1N3eE9EQXBKeXdnSjNKbllpZ3lNeXd4T1RBc01qQTNLU2NzSUNkeVoySW9NVEl5TENBeE1ESXNJREU0T1NrbkxDQW5jbWRpS0RFMU9Dd3lNVGdzTWpJNUtTY3NJQ2R5WjJJb01UUXhMQ0F4TWpRc0lESXhOeWtuTEZ4dUlDQWdJQ0FnSjNKbllpZ3pNU3dnTVRJd0xDQXhOVEFwSjEwc1hHNGdJQ0FnSjIxaFoyVnVkR0VuT2lCYkozSm5ZaWd4TmpJc01UQTJMREU1TWlrbkxDQW5jbWRpS0RFNU55d3hOalVzTWpJMEtTY3NJQ2R5WjJJb01qQTRMREV4TXl3eU1UZ3BKMTBzWEc0Z0lDQWdKM0psWkNjNklGc25jbWRpS0RJeE5Dd3pPU3cwTUNrbkxDQW5jbWRpS0RJMU5Td3hOVElzTVRVd0tTZGRMRnh1SUNBZ0lDZHpkRjlpYkhWbEp6b2dXeWR5WjJJb01qTXNNVGt3TERJd055a25MQ0FuY21kaUtERTFPQ3d5TVRnc01qSTVLU2NzSUNkeVoySW9NekVzTVRFNUxERTRNQ2tuWFN4Y2JpQWdJQ0FuWkdGeWExOWliSFZsSnpvZ1d5ZHlaMklvTXpFc01URTVMREU0TUNrbkxDQW5jbWRpS0RNeExDQXhNakFzSURFMU1Da25YU3hjYmlBZ0lDQW5iR2xuYUhSZllteDFaU2M2SUZzbmNtZGlLREl6TERFNU1Dd3lNRGNwSnl3Z0ozSm5ZaWd4TlRnc01qRTRMREl5T1NrbkxDQW5jbWRpS0RFd09Dd2dNakU0TENBeU1qa3BKeXdnSjNKbllpZ3lNeXd4T1RBc01qSTNLU2RkTEZ4dUlDQWdJQ2RzYVd4aFkxOWliSFZsSnpvZ1d5ZHlaMklvTVRJMExERXdNaXd5TVRFcEp5d2dKM0puWWlneE5Ea3NNVE0wTERJeE55a25MQ0FuY21kaUtEazNMQ0E0TVN3Z01UVXdLU2RkTEZ4dUlDQWdJQ2RrWVhKclgyZHlaV1Z1SnpvZ1d5ZHlaMklvTWpNc01UQXpMRFUzS1Njc0lDZHlaMklvTXpBc01URXdMRGsyS1Njc0lDZHlaMklvTmpBc01UTXhMRGsxS1Njc0lDZHlaMklvTWpRc01URXdMRGM1S1NkZExGeHVJQ0FnSUNkbmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLRGMwTERFMk1DdzNOQ2tuWFN4Y2JpQWdJQ0FuYkdsbmFIUmZaM0psWlc0bk9pQmJKM0puWWlneE5USXNNakl6TERFek9Da25MQ0FuY21kaUtERTRNaXdnTWpJekxDQXhNemdwSnl3Z0ozSm5ZaWd4TlRJc0lERTVNeXdnTVRNNEtTZGRMRnh1SUNBZ0lDZHpkRjluY21WbGJpYzZJRnNuY21kaUtEUTBMREUyTUN3ME5Da25MQ0FuY21kaUtERTFNaXd5TWpNc01UTTRLU2NzSUNkeVoySW9NemtzSURFM05Dd2dPVFlwSnl3Z0ozSm5ZaWczTkN3eE5qQXNOelFwSjEwc1hHNGdJQ0FnSjNCcGJtc25PaUJiSjNKbllpZ3lORGNzTVRneUxESXhNQ2tuWFN4Y2JpQWdJQ0FuWW5KdmQyNG5PaUJiSjNKbllpZ3hOREFzT0RZc056VXBKeXdnSjNKbllpZ3hNRElzSURZeUxDQTFOQ2tuWFN4Y2JpQWdJQ0FuWjNKaGVTYzZJRnNuY21kaUtERXlOeXd4TWpjc01USTNLU2NzSUNkeVoySW9NVGs1TERFNU9Td3hPVGtwSnl3Z0ozSm5ZaWd4T1RZc01UVTJMREUwT0NrbkxDQW5jbWRpS0RJeU1pd2dNakl5TENBeE9EQXBKMTBzWEc0Z0lDQWdKM2xsYkd4dmR5YzZJRnNuY21kaUtERTRPQ3d4T0Rrc016UXBKMTBzWEc0Z0lDQWdKM2RvYVhSbEp6b2dXeWR5WjJJb01qTXdMREl6TUN3eU16QXBKMTBzWEc0Z0lIMDdYRzVjYmlBZ2NISnZkR1ZqZEdWa0lITjBZWFJwWXlCdFlXdGxVR0ZzWlhSMFpTaGtkRG9nVzNOMGNtbHVaMXRkTENCemRISnBibWRkVzEwc1hHNGdJQ0FnYzJsdGNHeHBabWxsWkNBOUlHWmhiSE5sTENCUVlXeGxkSFJsVkhsd1pUb2dkSGx3Wlc5bUlGTmxjVkJoYkdWMGRHVkNZWE5sSUQwZ1UyVnhVR0ZzWlhSMFpVSmhjMlZjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnY0dGc1pYUjBaVG9nZXlCYmEyVjVPaUJ6ZEhKcGJtZGRPaUJ6ZEhKcGJtY2dmU0E5SUh0OU8xeHVJQ0FnSUdSMExtWnZja1ZoWTJnb0tHTndLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0J2WW1wTWFYTjBJRDBnWTNCYk1GMDdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyeHZkWElnUFNCamNGc3hYVHRjYmlBZ0lDQWdJRzlpYWt4cGMzUXVabTl5UldGamFDZ29iMkpxTENCcGJtUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2NHRnNaWFIwWlZ0dlltcGRJRDBnZEdocGN5NWpiMnh2ZFhKUVlXeGxkSFJsVzJOdmJHOTFjbDFiYzJsdGNHeHBabWxsWkNBL0lEQWdPaUJwYm1SZE8xeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlFZV3hsZEhSbFZIbHdaU2h3WVd4bGRIUmxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWDNCaGJHVjBkR1U2SUhzZ1cyMDZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLSEJoYkdWMGRHVTZJSHNnVzIwNklITjBjbWx1WjEwNklITjBjbWx1WnlCOUtTQjdYRzRnSUNBZ2RHaHBjeTVmY0dGc1pYUjBaU0E5SUhCaGJHVjBkR1U3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0JoYkdWMGRHVmJiVjA3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy92ZWN0b3Itb3BlcmF0aW9ucyc7XG5jbGFzcyBTaWRlQ2hhaW5TY2FsZXMge1xuICAgIHN0YXRpYyBnZXRBdmFpbGFibGVTY2FsZXMoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyh0aGlzLnNjYWxlcykubWFwKChbaywgX10pID0+IGspO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0U2NhbGUobmFtZSkge1xuICAgICAgICBhc3NlcnQoISh0aGlzLnNjYWxlc1tuYW1lXSA9PT0gdW5kZWZpbmVkKSwgYFNjYWxlICcke25hbWV9JyB3YXMgbm90IGZvdW5kLmApO1xuICAgICAgICByZXR1cm4gdGhpcy5zY2FsZXNbbmFtZV07XG4gICAgfVxufVxuU2lkZUNoYWluU2NhbGVzLnNjYWxlcyA9IHtcbiAgICAvLyBXaW1sZXktV2hpdGUgaW50ZXJmYWNpYWwgaHlkcm9waG9iaWNpdHkgc2NhbGVcbiAgICAnV2ltbGV5V2hpdGUnOiB7XG4gICAgICAgICctJzogMCxcbiAgICAgICAgJ0EnOiAwLjE3LFxuICAgICAgICAnQyc6IC0wLjI0LFxuICAgICAgICAnRCc6IC0wLjA3LFxuICAgICAgICAnRSc6IC0wLjAxLFxuICAgICAgICAnRic6IC0xLjEzLFxuICAgICAgICAnRyc6IDAuMDEsXG4gICAgICAgICdIJzogMC4xNyxcbiAgICAgICAgJ0knOiAtMC4zMSxcbiAgICAgICAgJ0snOiAwLjk5LFxuICAgICAgICAnTCc6IC0wLjU2LFxuICAgICAgICAnTSc6IC0wLjIzLFxuICAgICAgICAnTic6IDAuNDIsXG4gICAgICAgICdQJzogMC40NSxcbiAgICAgICAgJ1EnOiAwLjU4LFxuICAgICAgICAnUic6IDAuODEsXG4gICAgICAgICdTJzogMC4xMyxcbiAgICAgICAgJ1QnOiAwLjE0LFxuICAgICAgICAnVic6IDAuMDcsXG4gICAgICAgICdXJzogLTEuODUsXG4gICAgICAgICdZJzogLTAuOTQsXG4gICAgfSxcbiAgICAnY2F0ZWdvcmlhbCc6IHtcbiAgICAgICAgJy0nOiAwLFxuICAgICAgICAnQSc6IDEsXG4gICAgICAgICdDJzogMixcbiAgICAgICAgJ0QnOiAzLFxuICAgICAgICAnRSc6IDQsXG4gICAgICAgICdGJzogNSxcbiAgICAgICAgJ0cnOiA2LFxuICAgICAgICAnSCc6IDcsXG4gICAgICAgICdJJzogOCxcbiAgICAgICAgJ0snOiA5LFxuICAgICAgICAnTCc6IDEwLFxuICAgICAgICAnTSc6IDExLFxuICAgICAgICAnTic6IDEyLFxuICAgICAgICAnUCc6IDEzLFxuICAgICAgICAnUSc6IDE0LFxuICAgICAgICAnUic6IDE1LFxuICAgICAgICAnUyc6IDE2LFxuICAgICAgICAnVCc6IDE3LFxuICAgICAgICAnVic6IDE4LFxuICAgICAgICAnVyc6IDE5LFxuICAgICAgICAnWSc6IDIwLFxuICAgIH0sXG59O1xuLyoqXG4gKiBDbGFzcyB0byBjYXRlZ29yaWFsIGVuY29kZS9kZWNvZGUgYWxpZ25lZCBhbWlubyBhY2lkIHJlc2lkdWVzIHNlcXVlbmNlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyIHtcbiAgICBjb25zdHJ1Y3RvcihzY2FsZSA9ICdjYXRlZ29yaWFsJykge1xuICAgICAgICB0aGlzLmFhMm51bSA9IFNpZGVDaGFpblNjYWxlcy5nZXRTY2FsZShzY2FsZSk7XG4gICAgICAgIHRoaXMubnVtMmFhID0ge307XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuYWEybnVtKS5mb3JFYWNoKChbaywgdl0pID0+ICh0aGlzLm51bTJhYVt2XSA9IGspKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBUcnVuY2F0ZSBOSDIgYW5kIC1DT09IIHRlcm1pbmFscyBvZiB0aGUgZ2l2ZW4gc2VxdWVuY2UuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBUaGUgc2VxdWVuY2UgcHJvdmlkZWQuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRydW5jYXRlZCBzZXF1ZW5jZS5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBzdGF0aWMgX3RydW5jYXRlU2VxdWVuY2Uoc2VxKSB7XG4gICAgICAgIGxldCBzdGFydCA9IDA7XG4gICAgICAgIGxldCBlbmQgPSBzZXEubGVuZ3RoO1xuICAgICAgICBjb25zdCB0ZXJtaW5hID0gWydOSDInLCAnQ09PSCddO1xuICAgICAgICBpZiAoc2VxLnN0YXJ0c1dpdGgodGVybWluYVswXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGwgPSB0ZXJtaW5hWzBdLmxlbmd0aDsgLy8gQ3V0IG9ubHkgJ05IMicgd2l0aG91dCBmb2xsb3dpbmcgJy0nLlxuICAgICAgICAgICAgYXNzZXJ0KHNlcVtsXSA9PSAnLScsIGBXcm9uZyBzZXF1ZW5jZSBmb3JtYXQ6ICR7dGVybWluYVswXX0gd2l0aG91dCBmb2xsb3dpbmcgJy0nIGluICcke3NlcX0nLmApO1xuICAgICAgICAgICAgc3RhcnQgPSBsO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXEuZW5kc1dpdGgodGVybWluYVsxXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGwgPSB0ZXJtaW5hWzFdLmxlbmd0aCArIDE7IC8vIEN1dCBib3RoICdDT09IJyBhbmQgcHJlY2VuZGluZyAnLScuXG4gICAgICAgICAgICBhc3NlcnQoc2VxW2VuZCAtIGxdID09ICctJywgYFdyb25nIHNlcXVlbmNlIGZvcm1hdDogJHt0ZXJtaW5hWzFdfSB3aXRob3V0ICctJyBwcmVjZW5kaW5nIGluICcke3NlcX0nLmApO1xuICAgICAgICAgICAgZW5kIC09IGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcS5zdWJzdHJpbmcoc3RhcnQsIGVuZCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogQ3V0cyBhdXhpbGlhcnkgZGVmaXNlcyBiZWZvcmUgYSByZXNpZHVlLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXEgVGhlIHNlcXVlbmNlIHRvIHByb2Nlc3MuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFByb2Nlc3NlZCBzZXF1ZW5jZS5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBzdGF0aWMgX2Ryb3BEZWZpc2VzKHNlcSkge1xuICAgICAgICByZXR1cm4gc2VxLnJlcGxhY2UoLygtKShbXi1dKykvZywgJyQyJyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogUGVyZm9ybXMgdHJ1bmNhdGlvbiBhbmQgY3V0dGluZyBhdXhpbGlhcnkgZGVmaXNlcy5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxdWVuY2UgVGhlIHNlcXVlbmNlIHdvcmsgdW5kZXIgcHJvY2Vzcy5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gUmVzdWx0IG9mIGNsZWFuaW5nLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIHN0YXRpYyBjbGVhbihzZXF1ZW5jZSkge1xuICAgICAgICByZXR1cm4gQWxpZ25lZFNlcXVlbmNlRW5jb2Rlci5fZHJvcERlZmlzZXMoQWxpZ25lZFNlcXVlbmNlRW5jb2Rlci5fdHJ1bmNhdGVTZXF1ZW5jZShzZXF1ZW5jZSkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIENhdGVnb3JpYWwgZW5jb2RlIG9mIHRoZSBzZXF1ZW5jZSBwcm92aWRlZC5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxdWVuY2UgVGhlIHNlcXVlbmNlLlxuICAgICAgICogQHJldHVybiB7bnVtYmVyW119IEVuY29kZWQgdmVjdG9yLlxuICAgICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUVuY29kZXJcbiAgICAgICAqL1xuICAgIGVuY29kZShzZXF1ZW5jZSkge1xuICAgICAgICBjb25zdCBuSXRlbXMgPSBzZXF1ZW5jZS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBBcnJheShuSXRlbXMpLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbkl0ZW1zOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoYXIgPSBzZXF1ZW5jZVtpXTtcbiAgICAgICAgICAgIGFzc2VydChjaGFyIGluIHRoaXMuYWEybnVtLCBgVW5rbm93biBjaGFyICcke2NoYXJ9JyBmb3VuZCBpbiBzZXF1ZW5jZSAnJHtzZXF1ZW5jZX0nYCk7XG4gICAgICAgICAgICB2YWx1ZXNbaV0gPSB0aGlzLmVuY29kZUxldHR0ZXIoY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG4gICAgZW5jb2RlTGV0dHRlcihsZXR0ZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWEybnVtW2xldHRlcl07XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogRGVjb2RlIHRoZSBlbmNvZGVkIHZlY3RvciBpbnRvIHRoZSBzZXF1ZW5jZSBiYWNrLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB7bnVtYmVyW119IHZhbHVlIFRoZSB2ZWN0b3IgZW5jb2RlZC5cbiAgICAgICAqIEByZXR1cm4ge3N0cmluZ30gRGVjb2RlZCBzZXF1ZW5jZS5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBkZWNvZGUodmFsdWUpIHtcbiAgICAgICAgbGV0IHMgPSAnJztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgY29kZSA9IHZhbHVlW2ldO1xuICAgICAgICAgICAgYXNzZXJ0KGNvZGUgaW4gdGhpcy5udW0yYWEsIGBVbmtub3duIGNvZGUgJyR7Y29kZX0nIGZvdW5kIGluIHZlY3RvciAnJHt2YWx1ZX0nYCk7XG4gICAgICAgICAgICBzICs9IHRoaXMubnVtMmFhW2NvZGVdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMyVnhkV1Z1WTJVdFpXNWpiMlJsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbk5sY1hWbGJtTmxMV1Z1WTI5a1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhGUVVGRExFMUJRVTBzUlVGQlF5eE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJTM1pGTEUxQlFVMHNaVUZCWlR0SlFXMUVia0lzVFVGQlRTeERRVUZETEd0Q1FVRnJRanRSUVVOMlFpeFBRVUZQTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVONFJDeERRVUZETzBsQlJVUXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhKUVVGWk8xRkJRekZDTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4VFFVRlRMRU5CUVVNc1JVRkJSU3hWUVVGVkxFbEJRVWtzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRSUVVNM1JTeFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXpzN1FVRjZSRTBzYzBKQlFVMHNSMEZCTmtJN1NVRkRlRU1zWjBSQlFXZEVPMGxCUTJoRUxHRkJRV0VzUlVGQlJUdFJRVU5pTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdFJRVU5XTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1VVRkRWaXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1VVRkRWaXhIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1VVRkRWaXhIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4SlFVRkpPMUZCUTFRc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNTVUZCU1R0UlFVTlVMRWRCUVVjc1JVRkJSU3hKUVVGSk8xRkJRMVFzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVOQlFVTXNTVUZCU1R0TFFVTllPMGxCUTBRc1dVRkJXU3hGUVVGRk8xRkJRMW9zUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzB0QlExSTdRMEZEUml4RFFVRkRPMEZCV1VvN096czdPMGRCUzBjN1FVRkRTQ3hOUVVGTkxFOUJRVThzYzBKQlFYTkNPMGxCU1dwRExGbEJRVmtzVVVGQlowSXNXVUZCV1R0UlFVTjBReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEdWQlFXVXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE9VTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRGFrSXNUVUZCVFN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM2hGTEVOQlFVTTdTVUZGUkRzN096czdPenRUUVU5TE8wbEJRMHdzVFVGQlRTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFZEJRVmM3VVVGRGJFTXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMlFzU1VGQlNTeEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVOeVFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVVZvUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVN1dVRkRPVUlzVFVGQlRTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEhkRFFVRjNRenRaUVVOeVJTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJTd3dRa0ZCTUVJc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5dzRRa0ZCT0VJc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU5xUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRMWc3VVVGRFJDeEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdXVUZETlVJc1RVRkJUU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1IwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHpRMEZCYzBNN1dVRkRja1VzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRWRCUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTERCQ1FVRXdRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEN0Q1FVRXJRaXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlEzUkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VTBGRFZqdFJRVU5FTEU5QlFVOHNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYmtNc1EwRkJRenRKUVVWRU96czdPenM3TzFOQlQwczdTVUZEVEN4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFZEJRVmM3VVVGRE4wSXNUMEZCVHl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXhReXhEUVVGRE8wbEJSVVE3T3pzN096czdVMEZQU3p0SlFVTk1MRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlowSTdVVUZETTBJc1QwRkJUeXh6UWtGQmMwSXNRMEZCUXl4WlFVRlpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnFSeXhEUVVGRE8wbEJSVVE3T3pzN096dFRRVTFMTzBsQlEwVXNUVUZCVFN4RFFVRkRMRkZCUVdkQ08xRkJRelZDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGREwwSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSWHBETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRMMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSWHBDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeHBRa0ZCYVVJc1NVRkJTU3gzUWtGQmQwSXNVVUZCVVN4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVWMFJpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0VFFVTjBRenRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkZUU3hoUVVGaExFTkJRVU1zVFVGQll6dFJRVU5xUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZETjBJc1EwRkJRenRKUVVWRU96czdPenM3VTBGTlN6dEpRVU5GTEUxQlFVMHNRMEZCUXl4TFFVRmxPMUZCUXpOQ0xFbEJRVWtzUTBGQlF5eEhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVnVRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0WlFVTnlReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZkRUlzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxHbENRVUZwUWl4SlFVRkpMSE5DUVVGelFpeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUldwR0xFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xTkJRM2hDTzFGQlEwUXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRXQ3hEUVVGRE8wTkJRMFlpTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTJGemMyVnlkSDBnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12ZG1WamRHOXlMVzl3WlhKaGRHbHZibk1uTzF4dVhHNTBlWEJsSUZOcFpHVkRhR0ZwYmxOallXeGxJRDBnZTF0dVlXMWxPaUJ6ZEhKcGJtZGRPaUJ1ZFcxaVpYSjlPMXh1ZEhsd1pTQlRhV1JsUTJoaGFXNVRZMkZzWlVOdmJHeGxZM1JwYjI0Z1BTQjdXMjVoYldVNklITjBjbWx1WjEwNklGTnBaR1ZEYUdGcGJsTmpZV3hsZlR0Y2JseHVZMnhoYzNNZ1UybGtaVU5vWVdsdVUyTmhiR1Z6SUh0Y2JpQWdjM1JoZEdsaklITmpZV3hsY3pvZ1UybGtaVU5vWVdsdVUyTmhiR1ZEYjJ4c1pXTjBhVzl1SUQwZ2UxeHVJQ0FnSUM4dklGZHBiV3hsZVMxWGFHbDBaU0JwYm5SbGNtWmhZMmxoYkNCb2VXUnliM0JvYjJKcFkybDBlU0J6WTJGc1pWeHVJQ0FnSUNkWGFXMXNaWGxYYUdsMFpTYzZJSHRjYmlBZ0lDQWdJQ2N0SnpvZ01DeGNiaUFnSUNBZ0lDZEJKem9nTUM0eE55eGNiaUFnSUNBZ0lDZERKem9nTFRBdU1qUXNYRzRnSUNBZ0lDQW5SQ2M2SUMwd0xqQTNMQ0F2THlCQmMzQXRPaUF4TGpJelhHNGdJQ0FnSUNBblJTYzZJQzB3TGpBeExDQXZMeUJIYkhVdE9pQXlMakF5WEc0Z0lDQWdJQ0FuUmljNklDMHhMakV6TENBdkwxeHVJQ0FnSUNBZ0owY25PaUF3TGpBeExGeHVJQ0FnSUNBZ0owZ25PaUF3TGpFM0xDQXZMeUJJYVhNck9pQXdMamsyWEc0Z0lDQWdJQ0FuU1NjNklDMHdMak14TEZ4dUlDQWdJQ0FnSjBzbk9pQXdMams1TENBdkx5Qk1lWE1yWEc0Z0lDQWdJQ0FuVENjNklDMHdMalUyTEZ4dUlDQWdJQ0FnSjAwbk9pQXRNQzR5TXl4Y2JpQWdJQ0FnSUNkT0p6b2dNQzQwTWl4Y2JpQWdJQ0FnSUNkUUp6b2dNQzQwTlN4Y2JpQWdJQ0FnSUNkUkp6b2dNQzQxT0N4Y2JpQWdJQ0FnSUNkU0p6b2dNQzQ0TVN3Z0x5OGdRWEpuSzF4dUlDQWdJQ0FnSjFNbk9pQXdMakV6TEZ4dUlDQWdJQ0FnSjFRbk9pQXdMakUwTEZ4dUlDQWdJQ0FnSjFZbk9pQXdMakEzTEZ4dUlDQWdJQ0FnSjFjbk9pQXRNUzQ0TlN4Y2JpQWdJQ0FnSUNkWkp6b2dMVEF1T1RRc1hHNGdJQ0FnZlN4Y2JpQWdJQ0FuWTJGMFpXZHZjbWxoYkNjNklIdGNiaUFnSUNBZ0lDY3RKem9nTUN4Y2JpQWdJQ0FnSUNkQkp6b2dNU3hjYmlBZ0lDQWdJQ2RESnpvZ01peGNiaUFnSUNBZ0lDZEVKem9nTXl4Y2JpQWdJQ0FnSUNkRkp6b2dOQ3hjYmlBZ0lDQWdJQ2RHSnpvZ05TeGNiaUFnSUNBZ0lDZEhKem9nTml4Y2JpQWdJQ0FnSUNkSUp6b2dOeXhjYmlBZ0lDQWdJQ2RKSnpvZ09DeGNiaUFnSUNBZ0lDZExKem9nT1N4Y2JpQWdJQ0FnSUNkTUp6b2dNVEFzWEc0Z0lDQWdJQ0FuVFNjNklERXhMRnh1SUNBZ0lDQWdKMDRuT2lBeE1peGNiaUFnSUNBZ0lDZFFKem9nTVRNc1hHNGdJQ0FnSUNBblVTYzZJREUwTEZ4dUlDQWdJQ0FnSjFJbk9pQXhOU3hjYmlBZ0lDQWdJQ2RUSnpvZ01UWXNYRzRnSUNBZ0lDQW5WQ2M2SURFM0xGeHVJQ0FnSUNBZ0oxWW5PaUF4T0N4Y2JpQWdJQ0FnSUNkWEp6b2dNVGtzWEc0Z0lDQWdJQ0FuV1NjNklESXdMRnh1SUNBZ0lIMHNYRzRnSUgwN1hHNWNiaUFnYzNSaGRHbGpJR2RsZEVGMllXbHNZV0pzWlZOallXeGxjeWdwT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11YzJOaGJHVnpLUzV0WVhBb0tGdHJMQ0JmWFNrZ1BUNGdheWs3WEc0Z0lIMWNibHh1SUNCemRHRjBhV01nWjJWMFUyTmhiR1VvYm1GdFpUb2djM1J5YVc1bktUb2dVMmxrWlVOb1lXbHVVMk5oYkdVZ2UxeHVJQ0FnSUdGemMyVnlkQ2doS0hSb2FYTXVjMk5oYkdWelcyNWhiV1ZkSUQwOVBTQjFibVJsWm1sdVpXUXBMQ0JnVTJOaGJHVWdKeVI3Ym1GdFpYMG5JSGRoY3lCdWIzUWdabTkxYm1RdVlDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjMk5oYkdWelcyNWhiV1ZkTzF4dUlDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1EyeGhjM01nZEc4Z1kyRjBaV2R2Y21saGJDQmxibU52WkdVdlpHVmpiMlJsSUdGc2FXZHVaV1FnWVcxcGJtOGdZV05wWkNCeVpYTnBaSFZsY3lCelpYRjFaVzVqWlM1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFZMnhoYzNNZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjbHh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpQjdYRzRnSUhCeWIzUmxZM1JsWkNCaFlUSnVkVzA2SUZOcFpHVkRhR0ZwYmxOallXeGxPMXh1SUNCd2NtOTBaV04wWldRZ2JuVnRNbUZoT2lCN1cyTnZaR1U2SUc1MWJXSmxjbDA2SUhOMGNtbHVaMzA3WEc1Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYzJOaGJHVTZJSE4wY21sdVp5QTlJQ2RqWVhSbFoyOXlhV0ZzSnlrZ2UxeHVJQ0FnSUhSb2FYTXVZV0V5Ym5WdElEMGdVMmxrWlVOb1lXbHVVMk5oYkdWekxtZGxkRk5qWVd4bEtITmpZV3hsS1R0Y2JpQWdJQ0IwYUdsekxtNTFiVEpoWVNBOUlIdDlPMXh1SUNBZ0lFOWlhbVZqZEM1bGJuUnlhV1Z6S0hSb2FYTXVZV0V5Ym5WdEtTNW1iM0pGWVdOb0tDaGJheXdnZGwwcElEMCtJQ2gwYUdsekxtNTFiVEpoWVZ0MlhTQTlJR3NwS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0lDQXFJRlJ5ZFc1allYUmxJRTVJTWlCaGJtUWdMVU5QVDBnZ2RHVnliV2x1WVd4eklHOW1JSFJvWlNCbmFYWmxiaUJ6WlhGMVpXNWpaUzVjYmlBZ0lDQWdLbHh1SUNBZ0lDQXFJRUJ6ZEdGMGFXTmNiaUFnSUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2MyVnhJRlJvWlNCelpYRjFaVzVqWlNCd2NtOTJhV1JsWkM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZSeWRXNWpZWFJsWkNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjbHh1SUNBZ0lDQXFMMXh1SUNCemRHRjBhV01nWDNSeWRXNWpZWFJsVTJWeGRXVnVZMlVvYzJWeE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUd4bGRDQnpkR0Z5ZENBOUlEQTdYRzRnSUNBZ2JHVjBJR1Z1WkNBOUlITmxjUzVzWlc1bmRHZzdYRzRnSUNBZ1kyOXVjM1FnZEdWeWJXbHVZU0E5SUZzblRrZ3lKeXdnSjBOUFQwZ25YVHRjYmx4dUlDQWdJR2xtSUNoelpYRXVjM1JoY25SelYybDBhQ2gwWlhKdGFXNWhXekJkS1NrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYkNBOUlIUmxjbTFwYm1GYk1GMHViR1Z1WjNSb095QXZMeUJEZFhRZ2IyNXNlU0FuVGtneUp5QjNhWFJvYjNWMElHWnZiR3h2ZDJsdVp5QW5MU2N1WEc0Z0lDQWdJQ0JoYzNObGNuUW9jMlZ4VzJ4ZElEMDlJQ2N0Snl3Z1lGZHliMjVuSUhObGNYVmxibU5sSUdadmNtMWhkRG9nSkh0MFpYSnRhVzVoV3pCZGZTQjNhWFJvYjNWMElHWnZiR3h2ZDJsdVp5QW5MU2NnYVc0Z0p5UjdjMlZ4ZlNjdVlDazdYRzRnSUNBZ0lDQnpkR0Z5ZENBOUlHdzdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaHpaWEV1Wlc1a2MxZHBkR2dvZEdWeWJXbHVZVnN4WFNrcElIdGNiaUFnSUNBZ0lHTnZibk4wSUd3Z1BTQjBaWEp0YVc1aFd6RmRMbXhsYm1kMGFDc3hPeUF2THlCRGRYUWdZbTkwYUNBblEwOVBTQ2NnWVc1a0lIQnlaV05sYm1ScGJtY2dKeTBuTGx4dUlDQWdJQ0FnWVhOelpYSjBLSE5sY1Z0bGJtUXRiRjBnUFQwZ0p5MG5MQ0JnVjNKdmJtY2djMlZ4ZFdWdVkyVWdabTl5YldGME9pQWtlM1JsY20xcGJtRmJNVjE5SUhkcGRHaHZkWFFnSnkwbklIQnlaV05sYm1ScGJtY2dhVzRnSnlSN2MyVnhmU2N1WUNrN1hHNGdJQ0FnSUNCbGJtUWdMVDBnYkR0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlITmxjUzV6ZFdKemRISnBibWNvYzNSaGNuUXNJR1Z1WkNrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJEZFhSeklHRjFlR2xzYVdGeWVTQmtaV1pwYzJWeklHSmxabTl5WlNCaElISmxjMmxrZFdVdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWMzUmhkR2xqWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY1NCVWFHVWdjMlZ4ZFdWdVkyVWdkRzhnY0hKdlkyVnpjeTVjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRkJ5YjJObGMzTmxaQ0J6WlhGMVpXNWpaUzVjYmlBZ0lDQWdLaUJBYldWdFltVnliMllnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNseHVJQ0FnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdYMlJ5YjNCRVpXWnBjMlZ6S0hObGNUb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnYzJWeExuSmxjR3hoWTJVb0x5Z3RLU2hiWGkxZEt5a3ZaeXdnSnlReUp5azdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCUVpYSm1iM0p0Y3lCMGNuVnVZMkYwYVc5dUlHRnVaQ0JqZFhSMGFXNW5JR0YxZUdsc2FXRnllU0JrWldacGMyVnpMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSE4wWVhScFkxeHVJQ0FnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCelpYRjFaVzVqWlNCVWFHVWdjMlZ4ZFdWdVkyVWdkMjl5YXlCMWJtUmxjaUJ3Y205alpYTnpMbHh1SUNBZ0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVozMGdVbVZ6ZFd4MElHOW1JR05zWldGdWFXNW5MbHh1SUNBZ0lDQXFJRUJ0WlcxaVpYSnZaaUJCYkdsbmJtVmtVMlZ4ZFdWdVkyVkZibU52WkdWeVhHNGdJQ0FnSUNvdlhHNGdJSE4wWVhScFl5QmpiR1ZoYmloelpYRjFaVzVqWlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2k1ZlpISnZjRVJsWm1selpYTW9RV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2k1ZmRISjFibU5oZEdWVFpYRjFaVzVqWlNoelpYRjFaVzVqWlNrcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQWdJQ29nUTJGMFpXZHZjbWxoYkNCbGJtTnZaR1VnYjJZZ2RHaGxJSE5sY1hWbGJtTmxJSEJ5YjNacFpHVmtMbHh1SUNBZ0lDQXFYRzRnSUNBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlITmxjWFZsYm1ObElGUm9aU0J6WlhGMVpXNWpaUzVjYmlBZ0lDQWdLaUJBY21WMGRYSnVJSHR1ZFcxaVpYSmJYWDBnUlc1amIyUmxaQ0IyWldOMGIzSXVYRzRnSUNBZ0lDb2dRRzFsYldKbGNtOW1JRUZzYVdkdVpXUlRaWEYxWlc1alpVVnVZMjlrWlhKY2JpQWdJQ0FnS2k5Y2JpQWdjSFZpYkdsaklHVnVZMjlrWlNoelpYRjFaVzVqWlRvZ2MzUnlhVzVuS1RvZ2JuVnRZbVZ5VzEwZ2UxeHVJQ0FnSUdOdmJuTjBJRzVKZEdWdGN5QTlJSE5sY1hWbGJtTmxMbXhsYm1kMGFEdGNiaUFnSUNCamIyNXpkQ0IyWVd4MVpYTWdQU0J1WlhjZ1FYSnlZWGtvYmtsMFpXMXpLUzVtYVd4c0tEQXBPMXh1WEc0Z0lDQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0J1U1hSbGJYTTdJQ3NyYVNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWTJoaGNpQTlJSE5sY1hWbGJtTmxXMmxkTzF4dVhHNGdJQ0FnSUNCaGMzTmxjblFvWTJoaGNpQnBiaUIwYUdsekxtRmhNbTUxYlN3Z1lGVnVhMjV2ZDI0Z1kyaGhjaUFuSkh0amFHRnlmU2NnWm05MWJtUWdhVzRnYzJWeGRXVnVZMlVnSnlSN2MyVnhkV1Z1WTJWOUoyQXBPMXh1WEc0Z0lDQWdJQ0IyWVd4MVpYTmJhVjBnUFNCMGFHbHpMbVZ1WTI5a1pVeGxkSFIwWlhJb1kyaGhjaWs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMllXeDFaWE03WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWlc1amIyUmxUR1YwZEhSbGNpaHNaWFIwWlhJNklITjBjbWx1WnlrNklHNTFiV0psY2lCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXRXliblZ0VzJ4bGRIUmxjbDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQkVaV052WkdVZ2RHaGxJR1Z1WTI5a1pXUWdkbVZqZEc5eUlHbHVkRzhnZEdobElITmxjWFZsYm1ObElHSmhZMnN1WEc0Z0lDQWdJQ3BjYmlBZ0lDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNsdGRmU0IyWVd4MVpTQlVhR1VnZG1WamRHOXlJR1Z1WTI5a1pXUXVYRzRnSUNBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1bmZTQkVaV052WkdWa0lITmxjWFZsYm1ObExseHVJQ0FnSUNBcUlFQnRaVzFpWlhKdlppQkJiR2xuYm1Wa1UyVnhkV1Z1WTJWRmJtTnZaR1Z5WEc0Z0lDQWdJQ292WEc0Z0lIQjFZbXhwWXlCa1pXTnZaR1VvZG1Gc2RXVTZJRzUxYldKbGNsdGRLVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnNaWFFnY3pvZ2MzUnlhVzVuSUQwZ0p5YzdYRzVjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJSFpoYkhWbExteGxibWQwYURzZ0t5dHBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMlJsSUQwZ2RtRnNkV1ZiYVYwN1hHNWNiaUFnSUNBZ0lHRnpjMlZ5ZENoamIyUmxJR2x1SUhSb2FYTXViblZ0TW1GaExDQmdWVzVyYm05M2JpQmpiMlJsSUNja2UyTnZaR1Y5SnlCbWIzVnVaQ0JwYmlCMlpXTjBiM0lnSnlSN2RtRnNkV1Y5SjJBcE8xeHVYRzRnSUNBZ0lDQnpJQ3M5SUhSb2FYTXViblZ0TW1GaFcyTnZaR1ZkTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2N6dGNiaUFnZlZ4dWZWeHVJbDE5IiwiZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcbiAgICBzdGF0aWMgaGFzaENvZGUocykge1xuICAgICAgICBsZXQgaGFzaCA9IDA7XG4gICAgICAgIGlmIChzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBoYXNoO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNociA9IHMuY2hhckNvZGVBdChpKTtcbiAgICAgICAgICAgIGhhc2ggPSAoKGhhc2ggPDwgNSkgLSBoYXNoKSArIGNocjtcbiAgICAgICAgICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGhhc2g7XG4gICAgfVxufVxuaW1wb3J0IHsgU2VxUGFsZXR0ZUJhc2UgfSBmcm9tICcuL3NlcS1wYWxldHRlcyc7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGUge1xufVxuZXhwb3J0IGNsYXNzIEdyYXlBbGxQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiAnIzY2NjY2Nic7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFVua25vd25Db2xvclBhbGV0dGUgZXh0ZW5kcyBVbmtub3duU2VxUGFsZXR0ZSB7XG4gICAgc3RhdGljIGJ1aWxkUGFsZXR0ZSgpIHtcbiAgICAgICAgY29uc3QgcmVzID0gW10uY29uY2F0KC4uLk9iamVjdC52YWx1ZXMoU2VxUGFsZXR0ZUJhc2UuY29sb3VyUGFsZXR0ZSkpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBnZXQobSkge1xuICAgICAgICBjb25zdCBoYXNoID0gU3RyaW5nVXRpbHMuaGFzaENvZGUobSk7XG4gICAgICAgIGNvbnN0IHBJID0gaGFzaCAlIFVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGVbcEldO1xuICAgIH1cbn1cblVua25vd25Db2xvclBhbGV0dGUucGFsZXR0ZSA9IFVua25vd25Db2xvclBhbGV0dGUuYnVpbGRQYWxldHRlKCk7XG5leHBvcnQgY2xhc3MgVW5rbm93blNlcVBhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgR3JheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JheSA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5ncmF5ID0gbmV3IEdyYXlBbGxQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyYXk7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQ29sb3IoKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbG9yID09PSB2b2lkIDApXG4gICAgICAgICAgICB0aGlzLmNvbG9yID0gbmV3IFVua25vd25Db2xvclBhbGV0dGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3I7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cmJtOTNiaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkluVnVhMjV2ZDI0dWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJTVUVzVFVGQlRTeFBRVUZQTEZkQlFWYzdTVUZEWml4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVk03VVVGRE9VSXNTVUZCU1N4SlFVRkpMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJRM0pDTEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRE8xbEJRMmhDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMUZCUTJRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlZ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdXVUZEZWtNc1RVRkJUU3hIUVVGSExFZEJRVmNzUTBGQlF5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1dVRkRiRU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMREpDUVVFeVFqdFRRVU4yUXp0UlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRE8wbEJRMlFzUTBGQlF6dERRVU5HTzBGQlJVUXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlowSXNhVUpCUVdsQ08wTkJSWFJETzBGQlJVUXNUVUZCVFN4UFFVRlBMR05CUVdVc1UwRkJVU3hwUWtGQmFVSTdTVUZETlVNc1IwRkJSeXhEUVVGRExFTkJRVk03VVVGRGJFSXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dERRVU5HTzBGQlIwUXNUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEdsQ1FVRnBRanRKUVVkb1JDeE5RVUZOTEVOQlFVTXNXVUZCV1R0UlFVTjZRaXhOUVVGTkxFZEJRVWNzUjBGQlNTeEZRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGpRVUZqTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOd1JpeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNN1NVRkZUU3hIUVVGSExFTkJRVU1zUTBGQlV6dFJRVU5zUWl4TlFVRk5MRWxCUVVrc1IwRkJWeXhYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpkRExFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNKRUxFOUJRVThzYlVKQlFXMUNMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEzcERMRU5CUVVNN08wRkJXR0VzTWtKQlFVOHNSMEZCWVN4dFFrRkJiVUlzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0QlFXTjJSU3hOUVVGTkxFOUJRVThzYTBKQlFXMUNMRk5CUVZFc1kwRkJZenRKUVVjM1F5eE5RVUZOTEV0QlFVc3NTVUZCU1R0UlFVTndRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eEpRVUZKTEV0QlFVc3NTMEZCU3l4RFFVRkRPMWxCUTNSQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVOdVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVWxOTEUxQlFVMHNTMEZCU3l4TFFVRkxPMUZCUTNKQ0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NTMEZCU3l4TFFVRkxMRU5CUVVNN1dVRkRka0lzU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRzFDUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZEZWtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlEzQkNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklHZHliMnNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJkeWIyc25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENBcUlHRnpJRVJISUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5a1p5YzdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QlRkSEpwYm1kVmRHbHNjeUI3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nYUdGemFFTnZaR1VvY3pvZ2MzUnlhVzVuS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0JzWlhRZ2FHRnphRG9nYm5WdFltVnlJRDBnTUR0Y2JpQWdJQ0JwWmlBb2N5NXNaVzVuZEdnZ1BUMDlJREFwWEc0Z0lDQWdJQ0J5WlhSMWNtNGdhR0Z6YUR0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwT2lCdWRXMWlaWElnUFNBd095QnBJRHdnY3k1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaHlPaUJ1ZFcxaVpYSWdQU0J6TG1Ob1lYSkRiMlJsUVhRb2FTazdYRzRnSUNBZ0lDQm9ZWE5vSUQwZ0tDaG9ZWE5vSUR3OElEVXBJQzBnYUdGemFDa2dLeUJqYUhJN1hHNGdJQ0FnSUNCb1lYTm9JSHc5SURBN0lDOHZJRU52Ym5abGNuUWdkRzhnTXpKaWFYUWdhVzUwWldkbGNseHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdhR0Z6YUR0Y2JpQWdmVnh1ZlZ4dVhHNXBiWEJ2Y25RZ2UxTmxjVkJoYkdWMGRHVXNJRk5sY1ZCaGJHVjBkR1ZDWVhObGZTQm1jbTl0SUNjdUwzTmxjUzF3WVd4bGRIUmxjeWM3WEc1Y2JtVjRjRzl5ZENCaFluTjBjbUZqZENCamJHRnpjeUJWYm10dWIzZHVVMlZ4VUdGc1pYUjBaU0JwYlhCc1pXMWxiblJ6SUZObGNWQmhiR1YwZEdVZ2UxeHVJQ0J3ZFdKc2FXTWdZV0p6ZEhKaFkzUWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1Wnp0Y2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFZHlZWGxCYkd4UVlXeGxkSFJsSUdWNGRHVnVaSE1nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VnZTF4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlDY2pOalkyTmpZMkp6dGNiaUFnZlZ4dWZWeHVYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QlZibXR1YjNkdVEyOXNiM0pRWVd4bGRIUmxJR1Y0ZEdWdVpITWdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVWdlMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEJoYkdWMGRHVTZJSE4wY21sdVoxdGRJRDBnVlc1cmJtOTNia052Ykc5eVVHRnNaWFIwWlM1aWRXbHNaRkJoYkdWMGRHVW9LVHRjYmx4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCaWRXbHNaRkJoYkdWMGRHVW9LVG9nYzNSeWFXNW5XMTBnZTF4dUlDQWdJR052Ym5OMElISmxjeUE5SUNoYlhTQmhjeUJ6ZEhKcGJtZGJYU2t1WTI5dVkyRjBLQzR1TGs5aWFtVmpkQzUyWVd4MVpYTW9VMlZ4VUdGc1pYUjBaVUpoYzJVdVkyOXNiM1Z5VUdGc1pYUjBaU2twTzF4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYUdGemFEb2diblZ0WW1WeUlEMGdVM1J5YVc1blZYUnBiSE11YUdGemFFTnZaR1VvYlNrN1hHNGdJQ0FnWTI5dWMzUWdjRWtnUFNCb1lYTm9JQ1VnVlc1cmJtOTNia052Ykc5eVVHRnNaWFIwWlM1d1lXeGxkSFJsTG14bGJtZDBhRHRjYmlBZ0lDQnlaWFIxY200Z1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNXdZV3hsZEhSbFczQkpYVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdWVzVyYm05M2JsTmxjVkJoYkdWMGRHVnpJR1Y0ZEdWdVpITWdVMlZ4VUdGc1pYUjBaVUpoYzJVZ2UxeHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5Qm5jbUY1T2lCVFpYRlFZV3hsZEhSbE8xeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwSUVkeVlYa29LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WjNKaGVTQTlQVDBnZG05cFpDQXdLVnh1SUNBZ0lDQWdkR2hwY3k1bmNtRjVJRDBnYm1WM0lFZHlZWGxCYkd4UVlXeGxkSFJsS0NrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVozSmhlVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR052Ykc5eU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFTnZiRzl5S0NrNklGTmxjVkJoYkdWMGRHVWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZiRzl5SUQwOVBTQjJiMmxrSURBcFhHNGdJQ0FnSUNCMGFHbHpMbU52Ykc5eUlEMGdibVYzSUZWdWEyNXZkMjVEYjJ4dmNsQmhiR1YwZEdVb0tUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWpiMnh2Y2p0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJjb25zdCB1bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbmNvbnN0IGdyYXlDb2xvciA9ICcjODA4MDgwJztcbmV4cG9ydCB2YXIgRHJhd1N0eWxlO1xuKGZ1bmN0aW9uIChEcmF3U3R5bGUpIHtcbiAgICBEcmF3U3R5bGVbXCJNU0FcIl0gPSBcIk1TQVwiO1xuICAgIERyYXdTdHlsZVtcImNsYXNzaWNcIl0gPSBcImNsYXNzaWNcIjtcbn0pKERyYXdTdHlsZSB8fCAoRHJhd1N0eWxlID0ge30pKTtcbi8qKlxuICogQSBmdW5jdGlvbiB0aGF0IHByaW50cyBhIHN0cmluZyBhbGlnbmVkIHRvIGxlZnQgb3IgY2VudGVyZWQuXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlLlxuICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlLlxuICogQHBhcmFtIHtudW1iZXJ9IHcgV2lkdGguXG4gKiBAcGFyYW0ge251bWJlcn0gaCBIZWlnaHQuXG4gKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gKiBAcGFyYW0ge3N0cmluZ30gcyBTdHJpbmcgdG8gcHJpbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW2NvbG9yPXVuZGVmaW5lZENvbG9yXSBTdHJpbmcgY29sb3IuXG4gKiBAcGFyYW0ge251bWJlcn0gW3Bpdm90PTBdIFBpcnZvdC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2xlZnQ9ZmFsc2VdIElzIGxlZnQgYWxpZ25lZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbdHJhbnNwYXJlbmN5UmF0ZT0wLjBdIFRyYW5zcGFyZW5jeSByYXRlIHdoZXJlIDEuMCBpcyBmdWxseSB0cmFuc3BhcmVudFxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9JyddIElzIHNlcGFyYXRvciBmb3Igc2VxdWVuY2UuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsYXN0PWZhbHNlXSBJcyBjaGVja2VyIGlmIGVsZW1lbnQgbGFzdCBvciBub3QuXG4gKiBAcGFyYW0gZHJhd1N0eWxlIElzIGRyYXcgc3R5bGUuIE1TQSAtIGZvciBtdWx0aWNoYXJTZXEsIGNsYXNzaWMgLSBmb3Igb3RoZXIgc2VxLlxuICogQHBhcmFtIG1heFdvcmQgSXMgYXJyYXkgb2YgbWF4IHdvcmRzIGZvciBlYWNoIGxpbmUuXG4gKiBAcGFyYW0gbWF4V29yZElkeCBJcyBpbmRleCBvZiB3b3JkIHdlIGN1cnJlbnRseSBkcmF3LlxuICogQHBhcmFtIGdyaWRDZWxsIElzIGdyaWQgY2VsbCwgbmV3IGZvciB1cGRhdGluZyBkYXRhIGluIG1heFdvcmQgd2hpbGUgcmVuZGVyaW5nLlxuICogQHJldHVybiB7bnVtYmVyfSB4IGNvb3JkaW5hdGUgdG8gc3RhcnQgcHJpbnRpbmcgYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludExlZnRPckNlbnRlcmVkKHgsIHksIHcsIGgsIGcsIHMsIGNvbG9yID0gdW5kZWZpbmVkQ29sb3IsIHBpdm90ID0gMCwgbGVmdCA9IGZhbHNlLCB0cmFuc3BhcmVuY3lSYXRlID0gMS4wLCBzZXBhcmF0b3IgPSAnJywgbGFzdCA9IGZhbHNlLCBkcmF3U3R5bGUgPSBEcmF3U3R5bGUuY2xhc3NpYywgbWF4V29yZCA9IHt9LCBtYXhXb3JkSWR4ID0gMCwgZ3JpZENlbGwgPSB7fSkge1xuICAgIHZhciBfYTtcbiAgICBnLnRleHRBbGlnbiA9ICdzdGFydCc7XG4gICAgY29uc3QgY29sb3JQYXJ0ID0gcy5zdWJzdHJpbmcoMCk7XG4gICAgbGV0IGdyYXlQYXJ0ID0gbGFzdCA/ICcnIDogc2VwYXJhdG9yO1xuICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5NU0EpIHtcbiAgICAgICAgZ3JheVBhcnQgPSAnJztcbiAgICB9XG4gICAgbGV0IHRleHRTaXplID0gZy5tZWFzdXJlVGV4dChjb2xvclBhcnQgKyBncmF5UGFydCk7XG4gICAgY29uc3QgaW5kZW50ID0gNTtcbiAgICBsZXQgbWF4Q29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBsZXQgY29sb3JUZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0KS53aWR0aDtcbiAgICBjb25zdCBkeSA9ICh0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hBc2NlbnQgKyB0ZXh0U2l6ZS5mb250Qm91bmRpbmdCb3hEZXNjZW50KSAvIDI7XG4gICAgdGV4dFNpemUgPSB0ZXh0U2l6ZS53aWR0aDtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIG1heENvbG9yVGV4dFNpemUgPSBtYXhXb3JkW21heFdvcmRJZHhdO1xuICAgICAgICB0ZXh0U2l6ZSA9IG1heFdvcmRbbWF4V29yZElkeF07XG4gICAgICAgIGlmIChtYXhXb3JkSWR4ID4gKChfYSA9IG1heFdvcmRbJ2Jpby1tYXhJbmRleCddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSkge1xuICAgICAgICAgICAgbWF4V29yZFsnYmlvLW1heEluZGV4J10gPSBtYXhXb3JkSWR4O1xuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcCA9IG1heFdvcmQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZHJhdyhkeDEsIGR4Mikge1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICBnLmdsb2JhbEFscGhhID0gdHJhbnNwYXJlbmN5UmF0ZTtcbiAgICAgICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLmNsYXNzaWMpIHtcbiAgICAgICAgICAgIGcuZmlsbFRleHQoY29sb3JQYXJ0LCB4ICsgZHgxLCB5ICsgZHkpO1xuICAgICAgICAgICAgZy5maWxsU3R5bGUgPSBncmF5Q29sb3I7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGdyYXlQYXJ0LCB4ICsgZHgyLCB5ICsgZHkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5NU0EpIHtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSArICgobWF4V29yZFttYXhXb3JkSWR4XSAtIGNvbG9yVGV4dFNpemUpIC8gMiksIHkgKyBkeSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGxlZnQgfHwgdGV4dFNpemUgPiB3KSB7XG4gICAgICAgIGRyYXcoaW5kZW50LCBpbmRlbnQgKyBtYXhDb2xvclRleHRTaXplKTtcbiAgICAgICAgcmV0dXJuIHggKyBtYXhDb2xvclRleHRTaXplICsgZy5tZWFzdXJlVGV4dChncmF5UGFydCkud2lkdGg7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBkeCA9ICh3IC0gdGV4dFNpemUpIC8gMjtcbiAgICAgICAgZHJhdyhkeCwgZHggKyBtYXhDb2xvclRleHRTaXplKTtcbiAgICAgICAgcmV0dXJuIHggKyBkeCArIG1heENvbG9yVGV4dFNpemU7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWTJWc2JDMXlaVzVrWlhKbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW1ObGJHd3RjbVZ1WkdWeVpYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1RVRkJUU3hqUVVGakxFZEJRVWNzYTBKQlFXdENMRU5CUVVNN1FVRkRNVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NVMEZCVXl4RFFVRkRPMEZCUlRWQ0xFMUJRVTBzUTBGQlRpeEpRVUZaTEZOQlIxZzdRVUZJUkN4WFFVRlpMRk5CUVZNN1NVRkRia0lzZDBKQlFWY3NRMEZCUVR0SlFVTllMR2REUVVGdFFpeERRVUZCTzBGQlEzSkNMRU5CUVVNc1JVRklWeXhUUVVGVExFdEJRVlFzVTBGQlV5eFJRVWR3UWp0QlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPenRIUVc5Q1J6dEJRVU5JTEUxQlFVMHNWVUZCVlN4dFFrRkJiVUlzUTBGRGFrTXNRMEZCVXl4RlFVRkZMRU5CUVZNc1JVRkJSU3hEUVVGVExFVkJRVVVzUTBGQlV5eEZRVU14UXl4RFFVRXlRaXhGUVVGRkxFTkJRVk1zUlVGQlJTeExRVUZMTEVkQlFVY3NZMEZCWXl4RlFVTTVSQ3hSUVVGblFpeERRVUZETEVWQlFVVXNTVUZCU1N4SFFVRkhMRXRCUVVzc1JVRkJSU3h0UWtGQk1rSXNSMEZCUnl4RlFVTXZSQ3haUVVGdlFpeEZRVUZGTEVWQlFVVXNUMEZCWjBJc1MwRkJTeXhGUVVGRkxGbEJRWFZDTEZOQlFWTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1ZVRkJkVU1zUlVGQlJTeEZRVUZGTEdGQlFYRkNMRU5CUVVNc1JVRkJSU3hYUVVGblFpeEZRVUZGT3p0SlFVTTVTeXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXp0SlFVTjBRaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBETEVsQlFVa3NVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNN1NVRkRja01zU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVNdlFpeFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRPMHRCUTJZN1NVRkZSQ3hKUVVGSkxGRkJRVkVzUjBGQlVTeERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1IwRkJSeXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU40UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRmFrSXNTVUZCU1N4blFrRkJaMElzUjBGQlJ5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF6dEpRVU4wUkN4SlFVRkpMR0ZCUVdFc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOdVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4UlFVRlJMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkRiRVlzVVVGQlVTeEhRVUZITEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNN1NVRkRNVUlzU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRSUVVNdlFpeG5Ra0ZCWjBJc1IwRkJSeXhQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEZGtNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhKUVVGSkxGVkJRVlVzUjBGQlJ5eERRVUZETEUxQlFVRXNUMEZCVHl4RFFVRkRMR05CUVdNc1EwRkJReXh0UTBGQlNTeERRVUZETEVOQlFVTXNSVUZCUlR0WlFVTXZReXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRPMWxCUTNKRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU03VTBGRGNrTTdTMEZEUmp0SlFVVkVMRk5CUVZNc1NVRkJTU3hEUVVGRExFZEJRVmNzUlVGQlJTeEhRVUZYTzFGQlEzQkRMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETzFGQlEzQkNMRU5CUVVNc1EwRkJReXhYUVVGWExFZEJRVWNzWjBKQlFXZENMRU5CUVVNN1VVRkRha01zU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOdVF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOMlF5eERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJRenRaUVVONFFpeERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRUUVVOMlF6dFJRVU5FTEVsQlFVa3NVMEZCVXl4TFFVRkxMRk5CUVZNc1EwRkJReXhIUVVGSExFVkJRVVU3V1VGREwwSXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGNFSXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjBSanRKUVVOSUxFTkJRVU03U1VGRlJDeEpRVUZKTEVsQlFVa3NTVUZCU1N4UlFVRlJMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRM2hDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hIUVVGSExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zVDBGQlR5eERRVUZETEVkQlFVY3NaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU03UzBGRk4wUTdVMEZCVFR0UlFVTk1MRTFCUVUwc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVNNVFpeEpRVUZKTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1IwRkJSeXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMUZCUTJoRExFOUJRVThzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF6dExRVU5zUXp0QlFVTklMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SmpiMjV6ZENCMWJtUmxabWx1WldSRGIyeHZjaUE5SUNkeVoySW9NVEF3TERFd01Dd3hNREFwSnp0Y2JtTnZibk4wSUdkeVlYbERiMnh2Y2lBOUlDY2pPREE0TURnd0p6dGNibHh1Wlhod2IzSjBJR1Z1ZFcwZ1JISmhkMU4wZVd4bElIdGNiaUFnVFZOQklEMGdKMDFUUVNjc1hHNGdJR05zWVhOemFXTWdQU0FuWTJ4aGMzTnBZeWNzWEc1OVhHNWNiaThxS2x4dUlDb2dRU0JtZFc1amRHbHZiaUIwYUdGMElIQnlhVzUwY3lCaElITjBjbWx1WnlCaGJHbG5ibVZrSUhSdklHeGxablFnYjNJZ1kyVnVkR1Z5WldRdVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhnZ2VDQmpiMjl5WkdsdVlYUmxMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhrZ2VTQmpiMjl5WkdsdVlYUmxMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUhjZ1YybGtkR2d1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2FDQklaV2xuYUhRdVhHNGdLaUJBY0dGeVlXMGdlME5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJIMGdaeUJEWVc1MllYTWdjbVZ1WkdWeWFXNW5JR052Ym5SbGVIUXVYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnY3lCVGRISnBibWNnZEc4Z2NISnBiblF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyTnZiRzl5UFhWdVpHVm1hVzVsWkVOdmJHOXlYU0JUZEhKcGJtY2dZMjlzYjNJdVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdXM0JwZG05MFBUQmRJRkJwY25admRDNWNiaUFxSUVCd1lYSmhiU0I3WW05dmJHVmhibjBnVzJ4bFpuUTlabUZzYzJWZElFbHpJR3hsWm5RZ1lXeHBaMjVsWkM1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJkSEpoYm5Od1lYSmxibU41VW1GMFpUMHdMakJkSUZSeVlXNXpjR0Z5Wlc1amVTQnlZWFJsSUhkb1pYSmxJREV1TUNCcGN5Qm1kV3hzZVNCMGNtRnVjM0JoY21WdWRGeHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJRnR6WlhCaGNtRjBiM0k5SnlkZElFbHpJSE5sY0dGeVlYUnZjaUJtYjNJZ2MyVnhkV1Z1WTJVdVhHNGdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRzWVhOMFBXWmhiSE5sWFNCSmN5QmphR1ZqYTJWeUlHbG1JR1ZzWlcxbGJuUWdiR0Z6ZENCdmNpQnViM1F1WEc0Z0tpQkFjR0Z5WVcwZ1pISmhkMU4wZVd4bElFbHpJR1J5WVhjZ2MzUjViR1V1SUUxVFFTQXRJR1p2Y2lCdGRXeDBhV05vWVhKVFpYRXNJR05zWVhOemFXTWdMU0JtYjNJZ2IzUm9aWElnYzJWeExseHVJQ29nUUhCaGNtRnRJRzFoZUZkdmNtUWdTWE1nWVhKeVlYa2diMllnYldGNElIZHZjbVJ6SUdadmNpQmxZV05vSUd4cGJtVXVYRzRnS2lCQWNHRnlZVzBnYldGNFYyOXlaRWxrZUNCSmN5QnBibVJsZUNCdlppQjNiM0prSUhkbElHTjFjbkpsYm5Sc2VTQmtjbUYzTGx4dUlDb2dRSEJoY21GdElHZHlhV1JEWld4c0lFbHpJR2R5YVdRZ1kyVnNiQ3dnYm1WM0lHWnZjaUIxY0dSaGRHbHVaeUJrWVhSaElHbHVJRzFoZUZkdmNtUWdkMmhwYkdVZ2NtVnVaR1Z5YVc1bkxseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0I0SUdOdmIzSmthVzVoZEdVZ2RHOGdjM1JoY25RZ2NISnBiblJwYm1jZ1lYUXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCd2NtbHVkRXhsWm5SUGNrTmxiblJsY21Wa0tGeHVJQ0I0T2lCdWRXMWlaWElzSUhrNklHNTFiV0psY2l3Z2R6b2diblZ0WW1WeUxDQm9PaUJ1ZFcxaVpYSXNYRzRnSUdjNklFTmhiblpoYzFKbGJtUmxjbWx1WjBOdmJuUmxlSFF5UkN3Z2N6b2djM1J5YVc1bkxDQmpiMnh2Y2lBOUlIVnVaR1ZtYVc1bFpFTnZiRzl5TEZ4dUlDQndhWFp2ZERvZ2JuVnRZbVZ5SUQwZ01Dd2diR1ZtZENBOUlHWmhiSE5sTENCMGNtRnVjM0JoY21WdVkzbFNZWFJsT2lCdWRXMWlaWElnUFNBeExqQXNYRzRnSUhObGNHRnlZWFJ2Y2pvZ2MzUnlhVzVuSUQwZ0p5Y3NJR3hoYzNRNklHSnZiMnhsWVc0Z1BTQm1ZV3h6WlN3Z1pISmhkMU4wZVd4bE9pQkVjbUYzVTNSNWJHVWdQU0JFY21GM1UzUjViR1V1WTJ4aGMzTnBZeXdnYldGNFYyOXlaRG9nZXlCYmFXNWtaWGc2SUhOMGNtbHVaMTA2SUc1MWJXSmxjaUI5SUQwZ2UzMHNJRzFoZUZkdmNtUkpaSGc2SUc1MWJXSmxjaUE5SURBc0lHZHlhV1JEWld4c09pQmhibmtnUFNCN2ZTazZJRzUxYldKbGNpQjdYRzRnSUdjdWRHVjRkRUZzYVdkdUlEMGdKM04wWVhKMEp6dGNiaUFnWTI5dWMzUWdZMjlzYjNKUVlYSjBJRDBnY3k1emRXSnpkSEpwYm1jb01DazdYRzRnSUd4bGRDQm5jbUY1VUdGeWRDQTlJR3hoYzNRZ1B5QW5KeUE2SUhObGNHRnlZWFJ2Y2p0Y2JpQWdhV1lnS0dSeVlYZFRkSGxzWlNBOVBUMGdSSEpoZDFOMGVXeGxMazFUUVNrZ2UxeHVJQ0FnSUdkeVlYbFFZWEowSUQwZ0p5YzdYRzRnSUgxY2JseHVJQ0JzWlhRZ2RHVjRkRk5wZW1VNklHRnVlU0E5SUdjdWJXVmhjM1Z5WlZSbGVIUW9ZMjlzYjNKUVlYSjBJQ3NnWjNKaGVWQmhjblFwTzF4dUlDQmpiMjV6ZENCcGJtUmxiblFnUFNBMU8xeHVYRzRnSUd4bGRDQnRZWGhEYjJ4dmNsUmxlSFJUYVhwbElEMGdaeTV0WldGemRYSmxWR1Y0ZENoamIyeHZjbEJoY25RcExuZHBaSFJvTzF4dUlDQnNaWFFnWTI5c2IzSlVaWGgwVTJsNlpTQTlJR2N1YldWaGMzVnlaVlJsZUhRb1kyOXNiM0pRWVhKMEtTNTNhV1IwYUR0Y2JpQWdZMjl1YzNRZ1pIa2dQU0FvZEdWNGRGTnBlbVV1Wm05dWRFSnZkVzVrYVc1blFtOTRRWE5qWlc1MElDc2dkR1Y0ZEZOcGVtVXVabTl1ZEVKdmRXNWthVzVuUW05NFJHVnpZMlZ1ZENrZ0x5QXlPMXh1SUNCMFpYaDBVMmw2WlNBOUlIUmxlSFJUYVhwbExuZHBaSFJvTzF4dUlDQnBaaUFvWkhKaGQxTjBlV3hsSUQwOVBTQkVjbUYzVTNSNWJHVXVUVk5CS1NCN1hHNGdJQ0FnYldGNFEyOXNiM0pVWlhoMFUybDZaU0E5SUcxaGVGZHZjbVJiYldGNFYyOXlaRWxrZUYwN1hHNGdJQ0FnZEdWNGRGTnBlbVVnUFNCdFlYaFhiM0prVzIxaGVGZHZjbVJKWkhoZE8xeHVJQ0FnSUdsbUlDaHRZWGhYYjNKa1NXUjRJRDRnS0cxaGVGZHZjbVJiSjJKcGJ5MXRZWGhKYm1SbGVDZGRJRDgvSURBcEtTQjdYRzRnSUNBZ0lDQnRZWGhYYjNKa1d5ZGlhVzh0YldGNFNXNWtaWGduWFNBOUlHMWhlRmR2Y21SSlpIZzdYRzRnSUNBZ0lDQm5jbWxrUTJWc2JDNWpaV3hzTG1OdmJIVnRiaTUwWlcxd0lEMGdiV0Y0VjI5eVpEdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQm1kVzVqZEdsdmJpQmtjbUYzS0dSNE1Ub2diblZ0WW1WeUxDQmtlREk2SUc1MWJXSmxjaWs2SUhadmFXUWdlMXh1SUNBZ0lHY3VabWxzYkZOMGVXeGxJRDBnWTI5c2IzSTdYRzRnSUNBZ1p5NW5iRzlpWVd4QmJIQm9ZU0E5SUhSeVlXNXpjR0Z5Wlc1amVWSmhkR1U3WEc0Z0lDQWdhV1lnS0dSeVlYZFRkSGxzWlNBOVBUMGdSSEpoZDFOMGVXeGxMbU5zWVhOemFXTXBJSHRjYmlBZ0lDQWdJR2N1Wm1sc2JGUmxlSFFvWTI5c2IzSlFZWEowTENCNElDc2daSGd4TENCNUlDc2daSGtwTzF4dUlDQWdJQ0FnWnk1bWFXeHNVM1I1YkdVZ1BTQm5jbUY1UTI5c2IzSTdYRzRnSUNBZ0lDQm5MbVpwYkd4VVpYaDBLR2R5WVhsUVlYSjBMQ0I0SUNzZ1pIZ3lMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9aSEpoZDFOMGVXeGxJRDA5UFNCRWNtRjNVM1I1YkdVdVRWTkJLU0I3WEc0Z0lDQWdJQ0JuTG1acGJHeFRkSGxzWlNBOUlHTnZiRzl5TzF4dUlDQWdJQ0FnWnk1bWFXeHNWR1Y0ZENoamIyeHZjbEJoY25Rc0lIZ2dLeUJrZURFZ0t5QW9LRzFoZUZkdmNtUmJiV0Y0VjI5eVpFbGtlRjBnTFNCamIyeHZjbFJsZUhSVGFYcGxLU0F2SURJcExDQjVJQ3NnWkhrcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lHbG1JQ2hzWldaMElIeDhJSFJsZUhSVGFYcGxJRDRnZHlrZ2UxeHVJQ0FnSUdSeVlYY29hVzVrWlc1MExDQnBibVJsYm5RZ0t5QnRZWGhEYjJ4dmNsUmxlSFJUYVhwbEtUdGNiaUFnSUNCeVpYUjFjbTRnZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VZ0t5Qm5MbTFsWVhOMWNtVlVaWGgwS0dkeVlYbFFZWEowS1M1M2FXUjBhRHRjYmx4dUlDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUdOdmJuTjBJR1I0SUQwZ0tIY2dMU0IwWlhoMFUybDZaU2tnTHlBeU8xeHVJQ0FnSUdSeVlYY29aSGdzSUdSNElDc2diV0Y0UTI5c2IzSlVaWGgwVTJsNlpTazdYRzRnSUNBZ2NtVjBkWEp1SUhnZ0t5QmtlQ0FySUcxaGVFTnZiRzl5VkdWNGRGTnBlbVU3WEc0Z0lIMWNibjFjYmx4dUlsMTkiLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi91bml0cy1oYW5kbGVyJztcbi8qKiBDbGFzcyBmb3IgcGFyc2luZyBGQVNUQSBmaWxlcyAqL1xuZXhwb3J0IGNsYXNzIEZhc3RhRmlsZUhhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKGZpbGVDb250ZW50KSB7XG4gICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBkZXNjcmlwdGlvbnNcbiAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkgPSBbXTsgLy8gcGFyc2VkIEZBU1RBIHNlcXVlY2VzXG4gICAgICAgIHRoaXMuX2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7XG4gICAgICAgIHRoaXMucGFyc2VDb2x1bW5zKCk7XG4gICAgfVxuICAgIC8vIHByaXZhdGUgX2NvbHVtbnNQYXJzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBnZXQgZGVzY3JpcHRpb25zQXJyYXkoKSB7IHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheTsgfVxuICAgIGdldCBzZXF1ZW5jZXNBcnJheSgpIHsgcmV0dXJuIHRoaXMuX3NlcXVlbmNlc0FycmF5OyB9XG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB0byBwYXJzZSBhIG1hY3JvbW9sZWN1bGUgZnJvbSBhIEZBU1RBIGZpbGUgKHN0cmluZylcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGFydE9mU2VxdWVuY2UgIGluZGV4IG9mIG1hY3JvbW9sZWN1bGUgc3Vic3RyaW5nIGJlZ2lubmluZ1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBlbmRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBlbmRcbiAgXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBwYXJzZWQgbWFjcm9tb2xlY3VsZVxuICAgICAqL1xuICAgIHBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIGVuZE9mU2VxdWVuY2UpIHtcbiAgICAgICAgY29uc3Qgc2VxID0gdGhpcy5fZmlsZUNvbnRlbnQuc2xpY2Uoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKTtcbiAgICAgICAgY29uc3Qgc2VxQXJyYXkgPSBzZXEuc3BsaXQoL1xccy8pO1xuICAgICAgICByZXR1cm4gc2VxQXJyYXkuam9pbignJyk7XG4gICAgfVxuICAgIC8qKiBQYXJzZSBkZXNjcmlwdGlvbnMgYW5kIHNlcXVlbmNlcyBmcm9tIGEgRkFTVEEgc3RyaW5nICovXG4gICAgcGFyc2VDb2x1bW5zKCkge1xuICAgICAgICBjb25zdCByZWdleCA9IC9ePiguKikkL2dtOyAvLyBtYXRjaCAnZGVzY3JpcHRpb24nIGxpbmVzIHN0YXJ0aW5nIHdpdGggPlxuICAgICAgICBsZXQgc3RhcnRPZlNlcXVlbmNlID0gMDtcbiAgICAgICAgbGV0IG1hdGNoOyAvLyBtYXRjaC5pbmRleCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtYXRjaGVkIGxpbmVcbiAgICAgICAgd2hpbGUgKG1hdGNoID0gcmVnZXguZXhlYyh0aGlzLl9maWxlQ29udGVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5fZmlsZUNvbnRlbnQuc3Vic3RyaW5nKG1hdGNoLmluZGV4ICsgMSwgcmVnZXgubGFzdEluZGV4KTtcbiAgICAgICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uc0FycmF5LnB1c2goZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgaWYgKHN0YXJ0T2ZTZXF1ZW5jZSAhPT0gMClcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXF1ZW5jZXNBcnJheS5wdXNoKHRoaXMucGFyc2VNYWNyb21vbGVjdWxlKHN0YXJ0T2ZTZXF1ZW5jZSwgbWF0Y2guaW5kZXgpKTtcbiAgICAgICAgICAgIHN0YXJ0T2ZTZXF1ZW5jZSA9IHJlZ2V4Lmxhc3RJbmRleCArIDE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIC0xKSk7XG4gICAgICAgIC8vIHRoaXMuX2NvbHVtbnNQYXJzZWQgPSB0cnVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBGaWxlLWhhbmRsZXIgbWV0aG9kIGZvciBpbXBvcnQgYXMgRkFTVEFcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0RHLkRhdGFGcmFtZVtdfSBkYXRhZnJhbWUgd2l0aCBwYXJzZWQgRkFTVEEgY29udGVudFxuICAgICAqL1xuICAgIGltcG9ydEZhc3RhKCkge1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbnNBcnJheUNvbCA9IERHLkNvbHVtbi5mcm9tU3RyaW5ncygnZGVzY3JpcHRpb24nLCB0aGlzLmRlc2NyaXB0aW9uc0FycmF5KTtcbiAgICAgICAgY29uc3Qgc2VxdWVuY2VDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ3NlcXVlbmNlJywgdGhpcy5zZXF1ZW5jZXNBcnJheSk7XG4gICAgICAgIHNlcXVlbmNlQ29sLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEU7XG4gICAgICAgIC8vIGhlcmUgc2hvdWxkIGdvIHRoZSBjb2RlIGZyb20gdW5pdHMgaGFuZGxlclxuICAgICAgICBVbml0c0hhbmRsZXIuc2V0VW5pdHNUb0Zhc3RhQ29sdW1uKHNlcXVlbmNlQ29sKTtcbiAgICAgICAgcmV0dXJuIFtERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uc0FycmF5Q29sLFxuICAgICAgICAgICAgICAgIHNlcXVlbmNlQ29sLFxuICAgICAgICAgICAgXSldO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVptRnpkR0V0YUdGdVpHeGxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltWmhjM1JoTFdoaGJtUnNaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlIwRXNUMEZCVHl4TFFVRkxMRVZCUVVVc1RVRkJUU3hwUWtGQmFVSXNRMEZCUXp0QlFVVjBReXhQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZETEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRk4wTXNiME5CUVc5RE8wRkJRM0JETEUxQlFVMHNUMEZCVHl4blFrRkJaMEk3U1VGblJUTkNMRmxCUVZrc1YwRkJiVUk3VVVFNVJIWkNMSFZDUVVGclFpeEhRVUZoTEVWQlFVVXNRMEZCUXl4RFFVRkRMRFJDUVVFMFFqdFJRVU12UkN4dlFrRkJaU3hIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETEhkQ1FVRjNRanRSUVRoRU9VUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhYUVVGWExFTkJRVU03VVVGRGFFTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8wbEJRM1JDTEVOQlFVTTdTVUV2UkVRc01rTkJRVEpETzBsQlJUTkRMRWxCUVZjc2FVSkJRV2xDTEV0QlFXVXNUMEZCVHl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRWRkxFbEJRVmNzWTBGQll5eExRVUZsTEU5QlFVOHNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmRFVTdPenM3T3pzN1QwRlBSenRKUVVOTExHdENRVUZyUWl4RFFVTjRRaXhsUVVGMVFpeEZRVU4yUWl4aFFVRnhRanRSUVVWeVFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVWQlFVVXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRjRVVzVFVGQlRTeFJRVUZSTEVkQlFVY3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5xUXl4UFFVRlBMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZETTBJc1EwRkJRenRKUVVWRUxESkVRVUV5UkR0SlFVTnVSQ3haUVVGWk8xRkJRMnhDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRmRCUVZjc1EwRkJReXhEUVVGRExEUkRRVUUwUXp0UlFVVjJSU3hKUVVGSkxHVkJRV1VzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZUVJc1NVRkJTU3hMUVVGTExFTkJRVU1zUTBGQlF5eHRSRUZCYlVRN1VVRkRPVVFzVDBGQlR5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZETlVNc1RVRkJUU3hYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eERRVUZETEVWQlFVVXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xbEJRMnhHTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1dVRkRNVU1zU1VGQlNTeGxRVUZsTEV0QlFVc3NRMEZCUXp0blFrRkRka0lzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMR1ZCUVdVc1JVRkJSU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnVSaXhsUVVGbExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRka003VVVGRFJDeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjRSU3c0UWtGQk9FSTdTVUZEYUVNc1EwRkJRenRKUVVWRU96czdPMDlCU1VjN1NVRkRTU3hYUVVGWE8xRkJRMmhDTEUxQlFVMHNiMEpCUVc5Q0xFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4WFFVRlhMRU5CUVVNc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xRkJRekZHTEUxQlFVMHNWMEZCVnl4SFFVRkhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGRE0wVXNWMEZCVnl4RFFVRkRMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXp0UlFVVXZReXcyUTBGQk5rTTdVVUZETjBNc1dVRkJXU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJSV2hFTEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF6dG5Ra0ZETDBJc2IwSkJRVzlDTzJkQ1FVTndRaXhYUVVGWE8yRkJRMW9zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEVGl4RFFVRkRPME5CVFVZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaUJFYnlCdWIzUWdZMmhoYm1kbElIUm9aWE5sSUdsdGNHOXlkQ0JzYVc1bGN5QjBieUJ0WVhSamFDQmxlSFJsY201aGJDQnRiMlIxYkdWeklHbHVJSGRsWW5CaFkyc2dZMjl1Wm1sbmRYSmhkR2x2YmlBcUwxeHVhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWEo5SUdaeWIyMGdKeTR2ZFc1cGRITXRhR0Z1Wkd4bGNpYzdYRzVjYmk4cUtpQkRiR0Z6Y3lCbWIzSWdjR0Z5YzJsdVp5QkdRVk5VUVNCbWFXeGxjeUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoYzNSaFJtbHNaVWhoYm1Sc1pYSWdlMXh1SUNCd2NtbDJZWFJsSUY5bWFXeGxRMjl1ZEdWdWREb2djM1J5YVc1bk8xeHVJQ0J3Y21sMllYUmxJRjlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVG9nYzNSeWFXNW5XMTBnUFNCYlhUc2dMeThnY0dGeWMyVmtJRVpCVTFSQklHUmxjMk55YVhCMGFXOXVjMXh1SUNCd2NtbDJZWFJsSUY5elpYRjFaVzVqWlhOQmNuSmhlVG9nYzNSeWFXNW5XMTBnUFNCYlhUc2dMeThnY0dGeWMyVmtJRVpCVTFSQklITmxjWFZsWTJWelhHNGdJQzh2SUhCeWFYWmhkR1VnWDJOdmJIVnRibk5RWVhKelpXUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpUdGNibHh1SUNCd2RXSnNhV01nWjJWMElHUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtDazZJSE4wY21sdVoxdGRJSHNnY21WMGRYSnVJSFJvYVhNdVgyUmxjMk55YVhCMGFXOXVjMEZ5Y21GNU95QjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnpaWEYxWlc1alpYTkJjbkpoZVNncE9pQnpkSEpwYm1kYlhTQjdJSEpsZEhWeWJpQjBhR2x6TGw5elpYRjFaVzVqWlhOQmNuSmhlVHNnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJJWld4d1pYSWdiV1YwYUc5a0lIUnZJSEJoY25ObElHRWdiV0ZqY205dGIyeGxZM1ZzWlNCbWNtOXRJR0VnUmtGVFZFRWdabWxzWlNBb2MzUnlhVzVuS1Z4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2MzUmhjblJQWmxObGNYVmxibU5sSUNCcGJtUmxlQ0J2WmlCdFlXTnliMjF2YkdWamRXeGxJSE4xWW5OMGNtbHVaeUJpWldkcGJtNXBibWRjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlHVnVaRTltVTJWeGRXVnVZMlVnSUdsdVpHVjRJRzltSUcxaFkzSnZiVzlzWldOMWJHVWdjM1ZpYzNSeWFXNW5JR1Z1WkZ4dVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzBnY0dGeWMyVmtJRzFoWTNKdmJXOXNaV04xYkdWY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2NHRnljMlZOWVdOeWIyMXZiR1ZqZFd4bEtGeHVJQ0FnSUhOMFlYSjBUMlpUWlhGMVpXNWpaVG9nYm5WdFltVnlMRnh1SUNBZ0lHVnVaRTltVTJWeGRXVnVZMlU2SUc1MWJXSmxjbHh1SUNBcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJSE5sY1NBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTnNhV05sS0hOMFlYSjBUMlpUWlhGMVpXNWpaU3dnWlc1a1QyWlRaWEYxWlc1alpTazdYRzRnSUNBZ1kyOXVjM1FnYzJWeFFYSnlZWGtnUFNCelpYRXVjM0JzYVhRb0wxeGNjeThwTzF4dUlDQWdJSEpsZEhWeWJpQnpaWEZCY25KaGVTNXFiMmx1S0NjbktUdGNiaUFnZlZ4dVhHNGdJQzhxS2lCUVlYSnpaU0JrWlhOamNtbHdkR2x2Ym5NZ1lXNWtJSE5sY1hWbGJtTmxjeUJtY205dElHRWdSa0ZUVkVFZ2MzUnlhVzVuSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWRGIyeDFiVzV6S0NrZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsWjJWNElEMGdMMTQrS0M0cUtTUXZaMjA3SUM4dklHMWhkR05vSUNka1pYTmpjbWx3ZEdsdmJpY2diR2x1WlhNZ2MzUmhjblJwYm1jZ2QybDBhQ0ErWEc1Y2JpQWdJQ0JzWlhRZ2MzUmhjblJQWmxObGNYVmxibU5sSUQwZ01EdGNiaUFnSUNCc1pYUWdiV0YwWTJnN0lDOHZJRzFoZEdOb0xtbHVaR1Y0SUdseklIUm9aU0JpWldkcGJtNXBibWNnYjJZZ2RHaGxJRzFoZEdOb1pXUWdiR2x1WlZ4dUlDQWdJSGRvYVd4bElDaHRZWFJqYUNBOUlISmxaMlY0TG1WNFpXTW9kR2hwY3k1ZlptbHNaVU52Ym5SbGJuUXBLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmtaWE5qY21sd2RHbHZiaUE5SUhSb2FYTXVYMlpwYkdWRGIyNTBaVzUwTG5OMVluTjBjbWx1WnlodFlYUmphQzVwYm1SbGVDQXJJREVzSUhKbFoyVjRMbXhoYzNSSmJtUmxlQ2s3WEc0Z0lDQWdJQ0IwYUdsekxsOWtaWE5qY21sd2RHbHZibk5CY25KaGVTNXdkWE5vS0dSbGMyTnlhWEIwYVc5dUtUdGNiaUFnSUNBZ0lHbG1JQ2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVWdJVDA5SURBcFhHNGdJQ0FnSUNBZ0lIUm9hWE11WDNObGNYVmxibU5sYzBGeWNtRjVMbkIxYzJnb2RHaHBjeTV3WVhKelpVMWhZM0p2Ylc5c1pXTjFiR1VvYzNSaGNuUlBabE5sY1hWbGJtTmxMQ0J0WVhSamFDNXBibVJsZUNrcE8xeHVJQ0FnSUNBZ2MzUmhjblJQWmxObGNYVmxibU5sSUQwZ2NtVm5aWGd1YkdGemRFbHVaR1Y0SUNzZ01UdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NWZjMlZ4ZFdWdVkyVnpRWEp5WVhrdWNIVnphQ2gwYUdsekxuQmhjbk5sVFdGamNtOXRiMnhsWTNWc1pTaHpkR0Z5ZEU5bVUyVnhkV1Z1WTJVc0lDMHhLU2s3WEc1Y2JpQWdJQ0F2THlCMGFHbHpMbDlqYjJ4MWJXNXpVR0Z5YzJWa0lEMGdkSEoxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkdhV3hsTFdoaGJtUnNaWElnYldWMGFHOWtJR1p2Y2lCcGJYQnZjblFnWVhNZ1JrRlRWRUZjYmlBZ0lDcGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VSR0YwWVVaeVlXMWxXMTE5SUdSaGRHRm1jbUZ0WlNCM2FYUm9JSEJoY25ObFpDQkdRVk5VUVNCamIyNTBaVzUwWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nYVcxd2IzSjBSbUZ6ZEdFb0tUb2dSRWN1UkdGMFlVWnlZVzFsSUZ0ZElIdGNiaUFnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduWkdWelkzSnBjSFJwYjI0bkxDQjBhR2x6TG1SbGMyTnlhWEIwYVc5dWMwRnljbUY1S1R0Y2JpQWdJQ0JqYjI1emRDQnpaWEYxWlc1alpVTnZiQ0E5SUVSSExrTnZiSFZ0Ymk1bWNtOXRVM1J5YVc1bmN5Z25jMlZ4ZFdWdVkyVW5MQ0IwYUdsekxuTmxjWFZsYm1ObGMwRnljbUY1S1R0Y2JpQWdJQ0J6WlhGMVpXNWpaVU52YkM1elpXMVVlWEJsSUQwZ1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGTzF4dVhHNGdJQ0FnTHk4Z2FHVnlaU0J6YUc5MWJHUWdaMjhnZEdobElHTnZaR1VnWm5KdmJTQjFibWwwY3lCb1lXNWtiR1Z5WEc0Z0lDQWdWVzVwZEhOSVlXNWtiR1Z5TG5ObGRGVnVhWFJ6Vkc5R1lYTjBZVU52YkhWdGJpaHpaWEYxWlc1alpVTnZiQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdXMFJITGtSaGRHRkdjbUZ0WlM1bWNtOXRRMjlzZFcxdWN5aGJYRzRnSUNBZ0lDQmtaWE5qY21sd2RHbHZibk5CY25KaGVVTnZiQ3hjYmlBZ0lDQWdJSE5sY1hWbGJtTmxRMjlzTEZ4dUlDQWdJRjBwWFR0Y2JpQWdmVnh1WEc0Z0lHTnZibk4wY25WamRHOXlLR1pwYkdWRGIyNTBaVzUwT2lCemRISnBibWNwSUh0Y2JpQWdJQ0IwYUdsekxsOW1hV3hsUTI5dWRHVnVkQ0E5SUdacGJHVkRiMjUwWlc1ME8xeHVJQ0FnSUhSb2FYTXVjR0Z5YzJWRGIyeDFiVzV6S0NrN1hHNGdJSDFjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJy4uL3ZpZXdlcnMvd2ViLWxvZ28nO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi91bml0cy1oYW5kbGVyJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgY29udmVyc2lvbiBvZiBub3RhdGlvbiBzeXN0ZW1zIGluIE1hY3JvbW9sZWN1bGUgY29sdW1ucyAqL1xuZXhwb3J0IGNsYXNzIE5vdGF0aW9uQ29udmVydGVyIGV4dGVuZHMgVW5pdHNIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb2wpIHtcbiAgICAgICAgc3VwZXIoY29sKTtcbiAgICAgICAgdGhpcy5fc3BsaXR0ZXIgPSBudWxsO1xuICAgIH1cbiAgICBnZXQgc3BsaXR0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLl9zcGxpdHRlciA9PT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX3NwbGl0dGVyID0gV2ViTG9nby5nZXRTcGxpdHRlckZvckNvbHVtbih0aGlzLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGxpdHRlcjtcbiAgICB9XG4gICAgO1xuICAgIHRvRmFzdGEodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICB0b1NlcGFyYXRvcih0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgdG9IZWxtKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBNYWNyb21vbGVjdWxlIGNvbHVtbiBmcm9tIEZBU1RBIHRvIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvciAgQSBzcGVjaWZpYyBzZXBhcmF0b3IgdG8gYmUgdXNlZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmYXN0YUdhcFN5bWJvbCAgR2FwIHN5bWJvbCBpbiBGQVNUQSwgJy0nIGJ5IGRlZmF1bHRcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICBBIG5ldyBjb2x1bW4gaW4gU0VQQVJBVE9SIG5vdGF0aW9uXG4gICAgICovXG4gICAgY29udmVydEZhc3RhVG9TZXBhcmF0b3Ioc2VwYXJhdG9yLCBmYXN0YUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKGZhc3RhR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgZmFzdGFHYXBTeW1ib2wgPSB0aGlzLmRlZmF1bHRHYXBTeW1ib2w7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgY29uc3QgZmFzdGFNb25vbWVyc0FycmF5ID0gdGhpcy5zcGxpdHRlcihmYXN0YVBvbHltZXIpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmYXN0YU1vbm9tZXJzQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZmFzdGFNb25vbWVyc0FycmF5W2ldID09PSBmYXN0YUdhcFN5bWJvbClcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5W2ldID0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvciwgc2VwYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSB3cmFwcGVyIHN0cmluZ3MgZm9yIEhFTE0sIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiB0aGVcbiAgICAgKiBtYWNyb21vbGVjdWxlIChwZXB0aWRlLCBETkEsIFJOQSlcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBcnJheSBvZiB3cmFwcGVyc1xuICAgICAqL1xuICAgIGdldEhlbG1XcmFwcGVycygpIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gKHRoaXMuaXNEbmEoKSkgPyAnRE5BMXsnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1JOQTF7JyA6XG4gICAgICAgICAgICAgICAgKHRoaXMuaXNQZXB0aWRlKCkpID8gJ1BFUFRJREUxeycgOlxuICAgICAgICAgICAgICAgICAgICAnVW5rbm93bic7IC8vIHRoaXMgY2FzZSBzaG91bGQgYmUgaGFuZGxlZCBhcyBleGNlcHRpb25hbFxuICAgICAgICBpZiAocHJlZml4ID09PSAnVW5rbm93bicpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05laXRoZXIgcGVwdGlkZSwgbm9yIG51Y2xlb3RpZGUnKTtcbiAgICAgICAgY29uc3QgcG9zdGZpeCA9ICd9JCQkJztcbiAgICAgICAgY29uc3QgbGVmdFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpKSA/ICdEKCcgOlxuICAgICAgICAgICAgKHRoaXMuaXNSbmEoKSkgPyAnUignIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIGNvbnN0IHJpZ2h0V3JhcHBlciA9ICh0aGlzLmlzRG5hKCkgfHwgdGhpcy5pc1JuYSgpKSA/ICcpUCcgOiAnJzsgLy8gbm8gd3JhcHBlciBmb3IgcGVwdGlkZXNcbiAgICAgICAgcmV0dXJuIFtwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXhdO1xuICAgIH1cbiAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiBmb3IgY29udmVydGluZyBzdHJpbmdzIHRvIEhFTE1cbiAgICBjb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc291cmNlUG9seW1lcik7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJIZWxtQXJyYXkgPSBtb25vbWVyQXJyYXkubWFwKChtbSkgPT4ge1xuICAgICAgICAgICAgaWYgKG1tID09PSBzb3VyY2VHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE07XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke2xlZnRXcmFwcGVyfSR7bW19JHtyaWdodFdyYXBwZXJ9YDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtwcmVmaXh9JHttb25vbWVySGVsbUFycmF5LmpvaW4oJy4nKX0ke3Bvc3RmaXh9YDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIHN0cmluZyB3aXRoIFNFUEFSQVRPUi9GQVNUQSBub3RhdGlvbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlUG9seW1lciAgQSBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBzb3VyY2VHYXBTeW1ib2wgIEFuIG9wdGlvbmFsIGdhcCBzeW1ib2wsIHNldCB0b1xuICAgICAqIGRlZmF1bHQgdmFsdWVzICgnLScgZm9yIEZBU1RBIGFuZCAnJyBmb3IgU0VQQVJBVE9SKSB1bmxlc3Mgc3BlY2lmaWVkXG4gICAgICogQHJldHVybiB7c3RyaW5nfSAgVGhlIHRhcmdldCBIRUxNIHN0cmluZ1xuICAgICAqL1xuICAgIGNvbnZlcnRTdHJpbmdUb0hlbG0oc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgY29sdW1uIHRvIEhFTE1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIGNvbnZlcnRUb0hlbG0oc291cmNlR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoc291cmNlR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgc291cmNlR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XSA9IHRoaXMuZ2V0SGVsbVdyYXBwZXJzKCk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG1IZWxwZXIoc291cmNlUG9seW1lciwgc291cmNlR2FwU3ltYm9sLCBwcmVmaXgsIGxlZnRXcmFwcGVyLCByaWdodFdyYXBwZXIsIHBvc3RmaXgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBTRVBBUkFUT1IgY29sdW1uIHRvIEZBU1RBIG5vdGF0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IGZhc3RhR2FwU3ltYm9sIE9wdGlvbmFsIGdhcCBzeW1ib2wgZm9yIEZBU1RBXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnRTZXBhcmF0b3JUb0Zhc3RhKGZhc3RhR2FwU3ltYm9sID0gbnVsbCkge1xuICAgICAgICBpZiAoZmFzdGFHYXBTeW1ib2wgPT09IG51bGwpXG4gICAgICAgICAgICBmYXN0YUdhcFN5bWJvbCA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICAvLyBhc3NpZ24gdGhlIHZhbHVlcyB0byB0aGUgZW1wdHkgY29sdW1uXG4gICAgICAgIG5ld0NvbHVtbi5pbml0KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvclBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBzZXBhcmF0b3JzXG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JJdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihzZXBhcmF0b3JQb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzZXBhcmF0b3JJdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHNlcGFyYXRvckl0ZW1zQXJyYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGZhc3RhR2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmFzdGFNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhc3RhTW9ub21lcnNBcnJheS5qb2luKCcnKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqICBDb252ZXJ0IEhFTE0gY29sdW1uIHRvIEZBU1RBL1NFUEFSQVRPUlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndE5vdGF0aW9uICAgIFRhcmdldCBub3RhdGlvbjogRkFTVEEgb3IgU0VQQVJBVE9SXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRndFNlcGFyYXRvciAgIE9wdGlvbmFsIHRhcmdldCBzZXBhcmF0b3IgKGZvciBIRUxNIC0+XG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RHYXBTeW1ib2wgICBPcHRpb25hbCB0YXJnZXQgZ2FwIHN5bWJvbFxuICAgICAqIFNFUEFSQVRPUilcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59IENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yID0gJycsIHRndEdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBjb250YWluIGNhbGxzIG9mIGlzRG5hKCkgYW5kIGlzUm5hKCksIGZvclxuICAgICAgICAvLyBzb3VyY2UgaGVsbSBjb2x1bW5zIG1heSBjb250YWluIFJOQSwgRE5BIGFuZCBQVCBhY3Jvc3MgZGlmZmVyZW50IHJvd3NcbiAgICAgICAgaWYgKHRndEdhcFN5bWJvbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGd0R2FwU3ltYm9sID0gKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpID9cbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuU0VQQVJBVE9SO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgPT09ICcnKVxuICAgICAgICAgICAgdGd0U2VwYXJhdG9yID0gdGhpcy5zZXBhcmF0b3I7XG4gICAgICAgIGNvbnN0IGhlbG1XcmFwcGVyc1JlID0gLyhSXFwofERcXCh8XFwpfFApL2c7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IHRoaXMuZ2V0TmV3Q29sdW1uKHRndE5vdGF0aW9uKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBoZWxtUG9seW1lciA9IHRoaXMuY29sdW1uLmdldChpZHgpO1xuICAgICAgICAgICAgLy8gd2UgY2Fubm90IHVzZSBpc0RuYSgpIG9yIGlzUm5hKCkgYmVjYXVzZSBzb3VyY2UgaGVsbSBjb2x1bW5zIGNhblxuICAgICAgICAgICAgLy8gY29udGFpbiBETkEsIFJOQSBhbmQgUFQgaW4gZGlmZmVyZW50IGNlbGxzLCBzbyB0aGUgY29ycmVzcG9uZGluZ1xuICAgICAgICAgICAgLy8gdGFncyBjYW5ub3QgYmUgc2V0IGZvciB0aGUgd2hvbGUgY29sdW1uXG4gICAgICAgICAgICBjb25zdCBpc051Y2xlb3RpZGUgPSBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdETkEnKSB8fCBoZWxtUG9seW1lci5zdGFydHNXaXRoKCdSTkEnKTtcbiAgICAgICAgICAgIC8vIGl0ZW1zIGNhbiBiZSBtb25vbWVycyBvciBoZWxtc1xuICAgICAgICAgICAgY29uc3QgaGVsbUl0ZW1zQXJyYXkgPSB0aGlzLnNwbGl0dGVyKGhlbG1Qb2x5bWVyKTtcbiAgICAgICAgICAgIGNvbnN0IHRndE1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVsbUl0ZW1zQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IGhlbG1JdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpc051Y2xlb3RpZGUpXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnJlcGxhY2UoaGVsbVdyYXBwZXJzUmUsICcnKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSA9PT0gVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuSEVMTSkge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2godGd0R2FwU3ltYm9sKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSAmJiBpdGVtLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNhc2Ugb2YgYSBtdWx0aS1jaGFyYWN0ZXIgbW9ub21lciBjb252ZXJ0ZWQgdG8gRkFTVEFcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9ICdbJyArIGl0ZW0gKyAnXSc7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRndE1vbm9tZXJzQXJyYXkucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGd0TW9ub21lcnNBcnJheS5qb2luKHRndFNlcGFyYXRvcik7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICBjb252ZXJ0SGVsbVRvU2VwYXJhdG9yKCkge1xuICAgICAgICAvLyBUT0RPOiBpbXBsZW1lbnRhdGlvcmV0dXJuIHRoaXMuZ2V0TmV3Q29sdW1uKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE5ld0NvbHVtbihcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgfVxuICAgIC8qKiBEaXNwYXRjaGVyIG1ldGhvZCBmb3Igbm90YXRpb24gY29udmVyc2lvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGd0Tm90YXRpb24gICBOb3RhdGlvbiB3ZSB3YW50IHRvIGNvbnZlcnQgdG9cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHRndFNlcGFyYXRvciAgIFBvc3NpYmxlIHNlcGFyYXRvclxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gICAgICAgICAgICAgICAgQ29udmVydGVkIGNvbHVtblxuICAgICAqL1xuICAgIGNvbnZlcnQodGd0Tm90YXRpb24sIHRndFNlcGFyYXRvciA9IG51bGwpIHtcbiAgICAgICAgLy8gcG9zc2libGUgZXhjZXB0aW9uc1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PT0gdGd0Tm90YXRpb24pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RndCBub3RhdGlvbiBpcyBpbnZhbGlkJyk7XG4gICAgICAgIGlmICh0aGlzLnRvU2VwYXJhdG9yKHRndE5vdGF0aW9uKSAmJiB0Z3RTZXBhcmF0b3IgPT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RndCBzZXBhcmF0b3IgaXMgbm90IHNwZWNpZmllZCcpO1xuICAgICAgICBpZiAodGhpcy5pc0Zhc3RhKCkgJiYgdGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yICE9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEZhc3RhVG9TZXBhcmF0b3IodGd0U2VwYXJhdG9yKTtcbiAgICAgICAgZWxzZSBpZiAoKHRoaXMuaXNGYXN0YSgpIHx8IHRoaXMuaXNTZXBhcmF0b3IoKSkgJiYgdGhpcy50b0hlbG0odGd0Tm90YXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydFRvSGVsbSgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLmlzU2VwYXJhdG9yKCkgJiYgdGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRTZXBhcmF0b3JUb0Zhc3RhKCk7XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaXNIZWxtKCkgJiYgdGhpcy50b0Zhc3RhKHRndE5vdGF0aW9uKSkgLy8gdGhlIGNhc2Ugb2YgSEVMTVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEhlbG0odGd0Tm90YXRpb24pO1xuICAgICAgICBlbHNlIC8vIHRoaXMuaXNIZWxtKCkgJiYgdGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbilcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IpO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYm05MFlYUnBiMjR0WTI5dWRtVnlkR1Z5TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVbEJMRTlCUVU4c1JVRkJaU3hQUVVGUExFVkJRVU1zVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVNeFJDeFBRVUZQTEVWQlFVTXNXVUZCV1N4RlFVRlhMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZGZGtRc2FVWkJRV2xHTzBGQlEycEdMRTFCUVUwc1QwRkJUeXhwUWtGQmEwSXNVMEZCVVN4WlFVRlpPMGxCYTFCcVJDeFpRVUZ0UWl4SFFVRmpPMUZCUXk5Q0xFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFXeFFUQ3hqUVVGVExFZEJRWGRDTEVsQlFVa3NRMEZCUXp0SlFXMVFPVU1zUTBGQlF6dEpRV3hRUkN4SlFVRmpMRkZCUVZFN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4TFFVRkxMRWxCUVVrN1dVRkRla0lzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4UFFVRlBMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRemRFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlFVRXNRMEZCUXp0SlFVVkxMRTlCUVU4c1EwRkJReXhqUVVGM1FpeEpRVUZoTEU5QlFVOHNZMEZCWXl4cFEwRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGZUVZc1YwRkJWeXhEUVVGRExHTkJRWGRDTEVsQlFXRXNUMEZCVHl4alFVRmpMSGxEUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVm9SeXhOUVVGTkxFTkJRVU1zWTBGQmQwSXNTVUZCWVN4UFFVRlBMR05CUVdNc0swSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRkR096czdPenM3VDBGTlJ6dEpRVU5MTEhWQ1FVRjFRaXhEUVVGRExGTkJRV2xDTEVWQlFVVXNhVUpCUVdkRExFbEJRVWs3VVVGRGNrWXNTVUZCU1N4alFVRmpMRXRCUVVzc1NVRkJTVHRaUVVONlFpeGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlJYcERMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEhORFFVRnZRaXhEUVVGRE8xRkJRM2hFTEhORVFVRnpSRHRSUVVOMFJDeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkRNVU1zVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMWxCUTNaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlEyeEVMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1kwRkJZenR2UWtGRE1VTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEZOQlFWTXNRMEZCUXp0aFFVTjZSVHRaUVVORUxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6VkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRN096czdPMDlCUzBjN1NVRkRTeXhsUVVGbE8xRkJRM0pDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xbEJRM1pETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVONFFpeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0dlFrRkRhRU1zVTBGQlV5eERRVUZETEVOQlFVTXNOa05CUVRaRE8xRkJSVGxFTEVsQlFVa3NUVUZCVFN4TFFVRkxMRk5CUVZNN1dVRkRkRUlzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4cFEwRkJhVU1zUTBGQlF5eERRVUZETzFGQlJYSkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4yUWl4TlFVRk5MRmRCUVZjc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU42UXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETERCQ1FVRXdRanRSUVVONFJDeE5RVUZOTEZsQlFWa3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXd3UWtGQk1FSTdVVUZETTBZc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNXVUZCV1N4RlFVRkZMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM1JFTEVOQlFVTTdTVUZGUkN4dFJFRkJiVVE3U1VGRE0wTXNiVUpCUVcxQ0xFTkJRM3BDTEdGQlFYRkNMRVZCUTNKQ0xHVkJRWFZDTEVWQlEzWkNMRTFCUVdNc1JVRkRaQ3hYUVVGdFFpeEZRVU51UWl4WlFVRnZRaXhGUVVOd1FpeFBRVUZsTzFGQlJXWXNUVUZCVFN4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxHZENRVUZuUWl4SFFVRmhMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZWTEVWQlFVVXNSVUZCUlR0WlFVTnFSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eGxRVUZsTzJkQ1FVTjRRaXhQUVVGUExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU03TzJkQ1FVVm9SQ3hQUVVGUExFZEJRVWNzVjBGQlZ5eEhRVUZITEVWQlFVVXNSMEZCUnl4WlFVRlpMRVZCUVVVc1EwRkJRenRSUVVOb1JDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1IwRkJSeXhOUVVGTkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEU5QlFVOHNSVUZCUlN4RFFVRkRPMGxCUXpWRUxFTkJRVU03U1VGRlJEczdPenM3T3p0UFFVOUhPMGxCUTBrc2JVSkJRVzFDTEVOQlEzaENMR0ZCUVhGQ0xFVkJRM0pDTEd0Q1FVRnBReXhKUVVGSk8xRkJSWEpETEVsQlFVa3NaVUZCWlN4TFFVRkxMRWxCUVVrN1dVRkRNVUlzWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF6dFJRVU14UXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzFGQlF6VkZMRTlCUVU4c1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hsUVVGbExFVkJRVVVzVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE9VY3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBzc1lVRkJZU3hEUVVGRExHdENRVUZwUXl4SlFVRkpPMUZCUTNwRUxFbEJRVWtzWlVGQlpTeExRVUZMTEVsQlFVazdXVUZETVVJc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVVeFF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJSVFZGTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxEUkNRVUZsTEVOQlFVTTdVVUZEYmtRc2QwTkJRWGRETzFGQlEzaERMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZYTEVWQlFVVXNSVUZCUlR0WlFVTTNRaXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFpRVU16UXl4UFFVRlBMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaMElzUlVGQlJTeE5RVUZOTEVWQlFVVXNWMEZCVnl4RlFVRkZMRmxCUVZrc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU12Unl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOTExIVkNRVUYxUWl4RFFVRkRMR2xDUVVGblF5eEpRVUZKTzFGQlEyeEZMRWxCUVVrc1kwRkJZeXhMUVVGTExFbEJRVWs3V1VGRGVrSXNZMEZCWXl4SFFVRkhMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkZOMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmxCUVZrc09FSkJRV2RDTEVOQlFVTTdVVUZEY0VRc2QwTkJRWGRETzFGQlEzaERMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZYTEVWQlFVVXNSVUZCUlR0WlFVTTNRaXhOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsRExITkRRVUZ6UXp0WlFVTjBReXhOUVVGTkxHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRaUVVNMVJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF6dFpRVU40UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOdVJDeE5RVUZOTEVsQlFVa3NSMEZCUnl4dFFrRkJiVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRjRU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNc1JVRkJSVHR2UWtGRGNrSXNhMEpCUVd0Q0xFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXVXNRMEZCUXl4RFFVRkRPMmxDUVVNeFF6dHhRa0ZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEZRVUZGTzI5Q1FVTXhRaXgzUTBGQmQwTTdiMEpCUTNoRExFMUJRVTBzVDBGQlR5eEhRVUZITEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRE8yOUNRVU5xUXl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN2FVSkJRMnhETzNGQ1FVRk5PMjlDUVVOTUxHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dHBRa0ZETDBJN1lVRkRSanRaUVVORUxFOUJRVThzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzSkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWRU96czdPenM3T3p0UFFWRkhPMGxCUTBzc1YwRkJWeXhEUVVOcVFpeFhRVUZ0UWl4RlFVTnVRaXhsUVVGMVFpeEZRVUZGTEVWQlEzcENMR1ZCUVRoQ0xFbEJRVWs3VVVGRmJFTXNiVVZCUVcxRk8xRkJRMjVGTEhkRlFVRjNSVHRSUVVONFJTeEpRVUZKTEZsQlFWa3NTMEZCU3l4SlFVRkpMRVZCUVVVN1dVRkRla0lzV1VGQldTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGMVFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVOMFJDeFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdaMEpCUXpORExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhUUVVGVExFTkJRVU03VTBGRGFrUTdVVUZGUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQmRVSXNRMEZCUXl4SlFVRkpMRmxCUVZrc1MwRkJTeXhGUVVGRk8xbEJRMnhGTEZsQlFWa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRE8xRkJSV2hETEUxQlFVMHNZMEZCWXl4SFFVRkhMR2xDUVVGcFFpeERRVUZETzFGQlEzcERMRTFCUVUwc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCZFVJc1EwRkJReXhEUVVGRE8xRkJRemRFTEhkRFFVRjNRenRSUVVONFF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVU3V1VGRE4wSXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZla01zYlVWQlFXMUZPMWxCUTI1RkxHMUZRVUZ0UlR0WlFVTnVSU3d3UTBGQk1FTTdXVUZETVVNc1RVRkJUU3haUVVGWkxFZEJRVWNzVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUlhCR0xHbERRVUZwUXp0WlFVTnFReXhOUVVGTkxHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJRMnhFTEUxQlFVMHNaMEpCUVdkQ0xFZEJRV0VzUlVGQlJTeERRVUZETzFsQlEzUkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4alFVRmpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTTVReXhKUVVGSkxFbEJRVWtzUjBGQlJ5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRemRDTEVsQlFVa3NXVUZCV1R0dlFrRkRaQ3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4alFVRmpMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlF6RkRMRWxCUVVrc1NVRkJTU3hMUVVGTExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFVkJRVVU3YjBKQlEzSkVMR2RDUVVGblFpeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRmhMRU5CUVVNc1EwRkJRenRwUWtGRGRFTTdjVUpCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEZkQlFYVkNMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNSVUZCUlR0dlFrRkRia1VzTWtSQlFUSkVPMjlDUVVNelJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SFFVRkhMRWRCUVVjc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF6dHZRa0ZEYWtNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8ybENRVU5vUXp0eFFrRkJUVHR2UWtGRFRDeG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdhVUpCUXpkQ08yRkJRMFk3V1VGRFJDeFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEU5QlFVOHNVMEZCVXl4RFFVRkRPMGxCUTI1Q0xFTkJRVU03U1VGRlR5eHpRa0ZCYzBJN1VVRkROVUlzYVVSQlFXbEVPMUZCUTJwRUxFOUJRVThzU1VGQlNTeERRVUZETEZsQlFWa3NjME5CUVc5Q0xFTkJRVU03U1VGREwwTXNRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1QwRkJUeXhEUVVGRExGZEJRWEZDTEVWQlFVVXNaVUZCT0VJc1NVRkJTVHRSUVVOMFJTeHpRa0ZCYzBJN1VVRkRkRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRmRCUVZjN1dVRkRMMElzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eERRVUZETzFGQlF6ZERMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4WlFVRlpMRXRCUVVzc1NVRkJTVHRaUVVONFJDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdVVUZGY0VRc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NTVUZCU1R0WlFVTXhSU3hQUVVGUExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dGhRVU12UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRPMWxCUTNwRkxFOUJRVThzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRPMkZCUTNwQ0xFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEzUkVMRTlCUVU4c1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RlFVRkZMRU5CUVVNN1lVRkRia01zU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCUlN4dFFrRkJiVUk3V1VGRGRFVXNUMEZCVHl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzJGQlEyeERMR2xFUVVGcFJEdFpRVU53UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVjBGQlZ5eEZRVUZGTEZsQlFXRXNRMEZCUXl4RFFVRkRPMGxCUTNoRUxFTkJRVU03UTBGTFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxSUVSdklHNXZkQ0JqYUdGdVoyVWdkR2hsYzJVZ2FXMXdiM0owSUd4cGJtVnpJSFJ2SUcxaGRHTm9JR1Y0ZEdWeWJtRnNJRzF2WkhWc1pYTWdhVzRnZDJWaWNHRmpheUJqYjI1bWFXZDFjbUYwYVc5dUlDb3ZYRzVwYlhCdmNuUWdLaUJoY3lCbmNtOXJJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzluY205ckp6dGNibWx0Y0c5eWRDQXFJR0Z6SUhWcElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOTFhU2M3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVhVzF3YjNKMElIdFRjR3hwZEhSbGNrWjFibU1zSUZkbFlreHZaMjk5SUdaeWIyMGdKeTR1TDNacFpYZGxjbk12ZDJWaUxXeHZaMjhuTzF4dWFXMXdiM0owSUh0VmJtbDBjMGhoYm1Sc1pYSXNJRTVQVkVGVVNVOU9mU0JtY205dElDY3VMM1Z1YVhSekxXaGhibVJzWlhJbk8xeHVYRzR2S2lvZ1EyeGhjM01nWm05eUlHaGhibVJzYVc1bklHTnZiblpsY25OcGIyNGdiMllnYm05MFlYUnBiMjRnYzNsemRHVnRjeUJwYmlCTllXTnliMjF2YkdWamRXeGxJR052YkhWdGJuTWdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk9iM1JoZEdsdmJrTnZiblpsY25SbGNpQmxlSFJsYm1SeklGVnVhWFJ6U0dGdVpHeGxjaUI3WEc0Z0lIQnlhWFpoZEdVZ1gzTndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1nZkNCdWRXeHNJRDBnYm5Wc2JEdGNiaUFnY0hKdmRHVmpkR1ZrSUdkbGRDQnpjR3hwZEhSbGNpZ3BPaUJUY0d4cGRIUmxja1oxYm1NZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TGw5emNHeHBkSFJsY2lBOVBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2FYTXVYM053YkdsMGRHVnlJRDBnVjJWaVRHOW5ieTVuWlhSVGNHeHBkSFJsY2tadmNrTnZiSFZ0YmloMGFHbHpMbU52YkhWdGJpazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM053YkdsMGRHVnlPMXh1SUNCOU8xeHVYRzRnSUhCMVlteHBZeUIwYjBaaGMzUmhLSFJoY21kbGRFNXZkR0YwYVc5dU9pQk9UMVJCVkVsUFRpazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9Ma1pCVTFSQk95QjlYRzVjYmlBZ2NIVmliR2xqSUhSdlUyVndZWEpoZEc5eUtIUmhjbWRsZEU1dmRHRjBhVzl1T2lCT1QxUkJWRWxQVGlrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHRnlaMlYwVG05MFlYUnBiMjRnUFQwOUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqc2dmVnh1WEc0Z0lIQjFZbXhwWXlCMGIwaGxiRzBvZEdGeVoyVjBUbTkwWVhScGIyNDZJRTVQVkVGVVNVOU9LVG9nWW05dmJHVmhiaUI3SUhKbGRIVnliaUIwWVhKblpYUk9iM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1U0VWTVRUc2dmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkRiMjUyWlhKMElHRWdUV0ZqY205dGIyeGxZM1ZzWlNCamIyeDFiVzRnWm5KdmJTQkdRVk5VUVNCMGJ5QlRSVkJCVWtGVVQxSWdibTkwWVhScGIyNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY0dGeVlYUnZjaUFnUVNCemNHVmphV1pwWXlCelpYQmhjbUYwYjNJZ2RHOGdZbVVnZFhObFpGeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWm1GemRHRkhZWEJUZVcxaWIyd2dJRWRoY0NCemVXMWliMndnYVc0Z1JrRlRWRUVzSUNjdEp5QmllU0JrWldaaGRXeDBYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJQ0FnSUNBZ0lFRWdibVYzSUdOdmJIVnRiaUJwYmlCVFJWQkJVa0ZVVDFJZ2JtOTBZWFJwYjI1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEVaaGMzUmhWRzlUWlhCaGNtRjBiM0lvYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUdaaGMzUmhSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLR1poYzNSaFIyRndVM2x0WW05c0lEMDlQU0J1ZFd4c0tWeHVJQ0FnSUNBZ1ptRnpkR0ZIWVhCVGVXMWliMndnUFNCMGFHbHpMbVJsWm1GMWJIUkhZWEJUZVcxaWIydzdYRzVjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMngxYlc0Z1BTQjBhR2x6TG1kbGRFNWxkME52YkhWdGJpaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQnVaWGRzZVNCamNtVmhkR1ZrSUdWdGNIUjVJR052YkhWdGJseHVJQ0FnSUc1bGQwTnZiSFZ0Ymk1cGJtbDBLQ2hwWkhnNklHNTFiV0psY2lrZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ1ptRnpkR0ZRYjJ4NWJXVnlJRDBnZEdocGN5NWpiMngxYlc0dVoyVjBLR2xrZUNrN1hHNGdJQ0FnSUNCamIyNXpkQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGtnUFNCMGFHbHpMbk53YkdsMGRHVnlLR1poYzNSaFVHOXNlVzFsY2lrN1hHNGdJQ0FnSUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCcFppQW9abUZ6ZEdGTmIyNXZiV1Z5YzBGeWNtRjVXMmxkSUQwOVBTQm1ZWE4wWVVkaGNGTjViV0p2YkNsY2JpQWdJQ0FnSUNBZ0lDQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYbGJhVjBnUFNCVmJtbDBjMGhoYm1Sc1pYSXVYMlJsWm1GMWJIUkhZWEJUZVcxaWIyeHpSR2xqZEM1VFJWQkJVa0ZVVDFJN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG1wdmFXNG9jMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExuTmxjR0Z5WVhSdmNpd2djMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRWRsZENCMGFHVWdkM0poY0hCbGNpQnpkSEpwYm1keklHWnZjaUJJUlV4TkxDQmtaWEJsYm1ScGJtY2diMjRnZEdobElIUjVjR1VnYjJZZ2RHaGxYRzRnSUNBcUlHMWhZM0p2Ylc5c1pXTjFiR1VnS0hCbGNIUnBaR1VzSUVST1FTd2dVazVCS1Z4dUlDQWdLbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kYlhYMGdRWEp5WVhrZ2IyWWdkM0poY0hCbGNuTmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdaMlYwU0dWc2JWZHlZWEJ3WlhKektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQmpiMjV6ZENCd2NtVm1hWGdnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRVRrRXhleWNnT2x4dUlDQWdJQ0FnS0hSb2FYTXVhWE5TYm1Fb0tTa2dQeUFuVWs1Qk1Yc25JRHBjYmlBZ0lDQWdJQ0FnS0hSb2FYTXVhWE5RWlhCMGFXUmxLQ2twSUQ4Z0oxQkZVRlJKUkVVeGV5Y2dPbHh1SUNBZ0lDQWdJQ0FnSUNkVmJtdHViM2R1SnpzZ0x5OGdkR2hwY3lCallYTmxJSE5vYjNWc1pDQmlaU0JvWVc1a2JHVmtJR0Z6SUdWNFkyVndkR2x2Ym1Gc1hHNWNiaUFnSUNCcFppQW9jSEpsWm1sNElEMDlQU0FuVlc1cmJtOTNiaWNwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMDVsYVhSb1pYSWdjR1Z3ZEdsa1pTd2dibTl5SUc1MVkyeGxiM1JwWkdVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhCdmMzUm1hWGdnUFNBbmZTUWtKQ2M3WEc0Z0lDQWdZMjl1YzNRZ2JHVm1kRmR5WVhCd1pYSWdQU0FvZEdocGN5NXBjMFJ1WVNncEtTQS9JQ2RFS0NjZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVpZ25JRG9nSnljN0lDOHZJRzV2SUhkeVlYQndaWElnWm05eUlIQmxjSFJwWkdWelhHNGdJQ0FnWTI5dWMzUWdjbWxuYUhSWGNtRndjR1Z5SUQwZ0tIUm9hWE11YVhORWJtRW9LU0I4ZkNCMGFHbHpMbWx6VW01aEtDa3BJRDhnSnlsUUp5QTZJQ2NuT3lBdkx5QnVieUIzY21Gd2NHVnlJR1p2Y2lCd1pYQjBhV1JsYzF4dUlDQWdJSEpsZEhWeWJpQmJjSEpsWm1sNExDQnNaV1owVjNKaGNIQmxjaXdnY21sbmFIUlhjbUZ3Y0dWeUxDQndiM04wWm1sNFhUdGNiaUFnZlZ4dVhHNGdJQzh2SUVFZ2FHVnNjR1Z5SUdaMWJtTjBhVzl1SUdadmNpQmpiMjUyWlhKMGFXNW5JSE4wY21sdVozTWdkRzhnU0VWTVRWeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcxSVpXeHdaWElvWEc0Z0lDQWdjMjkxY21ObFVHOXNlVzFsY2pvZ2MzUnlhVzVuTEZ4dUlDQWdJSE52ZFhKalpVZGhjRk41YldKdmJEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeVpXWnBlRG9nYzNSeWFXNW5MRnh1SUNBZ0lHeGxablJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtbG5hSFJYY21Gd2NHVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHOXpkR1pwZURvZ2MzUnlhVzVuWEc0Z0lDazZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYlc5dWIyMWxja0Z5Y21GNUlEMGdkR2hwY3k1emNHeHBkSFJsY2loemIzVnlZMlZRYjJ4NWJXVnlLVHRjYmlBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5U0dWc2JVRnljbUY1T2lCemRISnBibWRiWFNBOUlHMXZibTl0WlhKQmNuSmhlUzV0WVhBb0tHMXRPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiU0E5UFQwZ2MyOTFjbU5sUjJGd1UzbHRZbTlzS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVlc1cGRITklZVzVrYkdWeUxsOWtaV1poZFd4MFIyRndVM2x0WW05c2MwUnBZM1F1U0VWTVRUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR0FrZTJ4bFpuUlhjbUZ3Y0dWeWZTUjdiVzE5Skh0eWFXZG9kRmR5WVhCd1pYSjlZRHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z1lDUjdjSEpsWm1sNGZTUjdiVzl1YjIxbGNraGxiRzFCY25KaGVTNXFiMmx1S0NjdUp5bDlKSHR3YjNOMFptbDRmV0E3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EyOXVkbVZ5ZENCaElITjBjbWx1WnlCM2FYUm9JRk5GVUVGU1FWUlBVaTlHUVZOVVFTQnViM1JoZEdsdmJpQjBieUJJUlV4TlhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpiM1Z5WTJWUWIyeDViV1Z5SUNCQklITjBjbWx1WnlCMGJ5QmlaU0JqYjI1MlpYSjBaV1JjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkV3hzZlNCemIzVnlZMlZIWVhCVGVXMWliMndnSUVGdUlHOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd3NJSE5sZENCMGIxeHVJQ0FnS2lCa1pXWmhkV3gwSUhaaGJIVmxjeUFvSnkwbklHWnZjaUJHUVZOVVFTQmhibVFnSnljZ1ptOXlJRk5GVUVGU1FWUlBVaWtnZFc1c1pYTnpJSE53WldOcFptbGxaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlDQlVhR1VnZEdGeVoyVjBJRWhGVEUwZ2MzUnlhVzVuWEc0Z0lDQXFMMXh1SUNCd2RXSnNhV01nWTI5dWRtVnlkRk4wY21sdVoxUnZTR1ZzYlNoY2JpQWdJQ0J6YjNWeVkyVlFiMng1YldWeU9pQnpkSEpwYm1jc1hHNGdJQ0FnYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkZ4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2h6YjNWeVkyVkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc0Z0lDQWdZMjl1YzNRZ1czQnlaV1pwZUN3Z2JHVm1kRmR5WVhCd1pYSXNJSEpwWjJoMFYzSmhjSEJsY2l3Z2NHOXpkR1pwZUYwZ1BTQjBhR2x6TG1kbGRFaGxiRzFYY21Gd2NHVnljeWdwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNMQ0J3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYZ3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnWVNCamIyeDFiVzRnZEc4Z1NFVk1UVnh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJSE52ZFhKalpVZGhjRk41YldKdmJGeHVJQ0FnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SVWIwaGxiRzBvYzI5MWNtTmxSMkZ3VTNsdFltOXNPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c0lEMGdiblZzYkNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ2FXWWdLSE52ZFhKalpVZGhjRk41YldKdmJDQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lITnZkWEpqWlVkaGNGTjViV0p2YkNBOUlIUm9hWE11WkdWbVlYVnNkRWRoY0ZONWJXSnZiRHRjYmx4dUlDQWdJR052Ym5OMElGdHdjbVZtYVhnc0lHeGxablJYY21Gd2NHVnlMQ0J5YVdkb2RGZHlZWEJ3WlhJc0lIQnZjM1JtYVhoZElEMGdkR2hwY3k1blpYUklaV3h0VjNKaGNIQmxjbk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJRzVsZDBOdmJIVnRiaUE5SUhSb2FYTXVaMlYwVG1WM1EyOXNkVzF1S0U1UFZFRlVTVTlPTGtoRlRFMHBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE52ZFhKalpWQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb2MyOTFjbU5sVUc5c2VXMWxjaXdnYzI5MWNtTmxSMkZ3VTNsdFltOXNJU3dnY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRLVHRjYmlBZ0lDQjlLVHRjYmlBZ0lDQnlaWFIxY200Z2JtVjNRMjlzZFcxdU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUWdVMFZRUVZKQlZFOVNJR052YkhWdGJpQjBieUJHUVZOVVFTQnViM1JoZEdsdmJseHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlHWmhjM1JoUjJGd1UzbHRZbTlzSUU5d2RHbHZibUZzSUdkaGNDQnplVzFpYjJ3Z1ptOXlJRVpCVTFSQlhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4wZ0lFTnZiblpsY25SbFpDQmpiMngxYlc1Y2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ1kyOXVkbVZ5ZEZObGNHRnlZWFJ2Y2xSdlJtRnpkR0VvWm1GemRHRkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzS1RvZ1JFY3VRMjlzZFcxdUlIdGNiaUFnSUNCcFppQW9abUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCbVlYTjBZVWRoY0ZONWJXSnZiQ0E5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdkR2hwY3k1blpYUk9aWGREYjJ4MWJXNG9UazlVUVZSSlQwNHVSa0ZUVkVFcE8xeHVJQ0FnSUM4dklHRnpjMmxuYmlCMGFHVWdkbUZzZFdWeklIUnZJSFJvWlNCbGJYQjBlU0JqYjJ4MWJXNWNiaUFnSUNCdVpYZERiMngxYlc0dWFXNXBkQ2dvYVdSNE9pQnVkVzFpWlhJcElEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElITmxjR0Z5WVhSdmNsQnZiSGx0WlhJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhRb2FXUjRLVHRjYmlBZ0lDQWdJQzh2SUdsMFpXMXpJR05oYmlCaVpTQnRiMjV2YldWeWN5QnZjaUJ6WlhCaGNtRjBiM0p6WEc0Z0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSkpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpaWEJoY21GMGIzSlFiMng1YldWeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUdaaGMzUmhUVzl1YjIxbGNuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQWdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYzJWd1lYSmhkRzl5U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnBkR1Z0SUQwZ2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVWdHBYVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzB1YkdWdVozUm9JRDA5UFNBd0tTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29abUZ6ZEdGSFlYQlRlVzFpYjJ3aEtUdGNiaUFnSUNBZ0lDQWdmU0JsYkhObElHbG1JQ2hwZEdWdExteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnSUNBdkx5QjBhR1VnWTJGelpTQnZaaUJoSUcxMWJIUnBMV05vWVhKaFkzUmxjaUJ0YjI1dmJXVnlYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiVzl1YjIxbGNpQTlJQ2RiSnlBcklHbDBaVzBnS3lBblhTYzdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29iVzl1YjIxbGNpazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJQ0FnWm1GemRHRk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrdWFtOXBiaWduSnlrN1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZDBOdmJIVnRianRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lBZ1EyOXVkbVZ5ZENCSVJVeE5JR052YkhWdGJpQjBieUJHUVZOVVFTOVRSVkJCVWtGVVQxSmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSFJuZEU1dmRHRjBhVzl1SUNBZ0lGUmhjbWRsZENCdWIzUmhkR2x2YmpvZ1JrRlRWRUVnYjNJZ1UwVlFRVkpCVkU5U1hHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWjNSVFpYQmhjbUYwYjNJZ0lDQlBjSFJwYjI1aGJDQjBZWEpuWlhRZ2MyVndZWEpoZEc5eUlDaG1iM0lnU0VWTVRTQXRQbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhSbmRFZGhjRk41YldKdmJDQWdJRTl3ZEdsdmJtRnNJSFJoY21kbGRDQm5ZWEFnYzNsdFltOXNYRzRnSUNBcUlGTkZVRUZTUVZSUFVpbGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZTQkRiMjUyWlhKMFpXUWdZMjlzZFcxdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHTnZiblpsY25SSVpXeHRLRnh1SUNBZ0lIUm5kRTV2ZEdGMGFXOXVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RHZDBVMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY2dQU0FuSnl4Y2JpQWdJQ0IwWjNSSFlYQlRlVzFpYjJ3NklITjBjbWx1WnlCOElHNTFiR3dnUFNCdWRXeHNYRzRnSUNrNklFUkhMa052YkhWdGJpQjdYRzRnSUNBZ0x5OGdWR2hwY3lCbWRXNWpkR2x2YmlCdGRYTjBJRzV2ZENCamIyNTBZV2x1SUdOaGJHeHpJRzltSUdselJHNWhLQ2tnWVc1a0lHbHpVbTVoS0Nrc0lHWnZjbHh1SUNBZ0lDOHZJSE52ZFhKalpTQm9aV3h0SUdOdmJIVnRibk1nYldGNUlHTnZiblJoYVc0Z1VrNUJMQ0JFVGtFZ1lXNWtJRkJVSUdGamNtOXpjeUJrYVdabVpYSmxiblFnY205M2MxeHVJQ0FnSUdsbUlDaDBaM1JIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUhSbmRFZGhjRk41YldKdmJDQTlJQ2gwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNGdZWE1nVGs5VVFWUkpUMDRwS1NBL1hHNGdJQ0FnSUNBZ0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNBZ1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVUwVlFRVkpCVkU5U08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaDBhR2x6TG5SdlUyVndZWEpoZEc5eUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQjBaM1JUWlhCaGNtRjBiM0lnUFQwOUlDY25LVnh1SUNBZ0lDQWdkR2QwVTJWd1lYSmhkRzl5SUQwZ2RHaHBjeTV6WlhCaGNtRjBiM0k3WEc1Y2JpQWdJQ0JqYjI1emRDQm9aV3h0VjNKaGNIQmxjbk5TWlNBOUlDOG9VbHhjS0h4RVhGd29mRnhjS1h4UUtTOW5PMXh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1R0Y2JpQWdJQ0F2THlCaGMzTnBaMjRnZEdobElIWmhiSFZsY3lCMGJ5QjBhR1VnWlcxd2RIa2dZMjlzZFcxdVhHNGdJQ0FnYm1WM1EyOXNkVzF1TG1sdWFYUW9LR2xrZURvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCb1pXeHRVRzlzZVcxbGNpQTlJSFJvYVhNdVkyOXNkVzF1TG1kbGRDaHBaSGdwTzF4dVhHNGdJQ0FnSUNBdkx5QjNaU0JqWVc1dWIzUWdkWE5sSUdselJHNWhLQ2tnYjNJZ2FYTlNibUVvS1NCaVpXTmhkWE5sSUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ1kyRnVYRzRnSUNBZ0lDQXZMeUJqYjI1MFlXbHVJRVJPUVN3Z1VrNUJJR0Z1WkNCUVZDQnBiaUJrYVdabVpYSmxiblFnWTJWc2JITXNJSE52SUhSb1pTQmpiM0p5WlhOd2IyNWthVzVuWEc0Z0lDQWdJQ0F2THlCMFlXZHpJR05oYm01dmRDQmlaU0J6WlhRZ1ptOXlJSFJvWlNCM2FHOXNaU0JqYjJ4MWJXNWNiaUFnSUNBZ0lHTnZibk4wSUdselRuVmpiR1Z2ZEdsa1pTQTlJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0owUk9RU2NwSUh4OElHaGxiRzFRYjJ4NWJXVnlMbk4wWVhKMGMxZHBkR2dvSjFKT1FTY3BPMXh1WEc0Z0lDQWdJQ0F2THlCcGRHVnRjeUJqWVc0Z1ltVWdiVzl1YjIxbGNuTWdiM0lnYUdWc2JYTmNiaUFnSUNBZ0lHTnZibk4wSUdobGJHMUpkR1Z0YzBGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaG9aV3h0VUc5c2VXMWxjaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQWdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCb1pXeHRTWFJsYlhOQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnNaWFFnYVhSbGJTQTlJR2hsYkcxSmRHVnRjMEZ5Y21GNVcybGRPMXh1SUNBZ0lDQWdJQ0JwWmlBb2FYTk9kV05zWlc5MGFXUmxLVnh1SUNBZ0lDQWdJQ0FnSUdsMFpXMGdQU0JwZEdWdExuSmxjR3hoWTJVb2FHVnNiVmR5WVhCd1pYSnpVbVVzSUNjbktUdGNiaUFnSUNBZ0lDQWdhV1lnS0dsMFpXMGdQVDA5SUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29kR2QwUjJGd1UzbHRZbTlzSVNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1MGIwWmhjM1JoS0hSbmRFNXZkR0YwYVc5dUlHRnpJRTVQVkVGVVNVOU9LU0FtSmlCcGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5SUdOdmJuWmxjblJsWkNCMGJ5QkdRVk5VUVZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUcxdmJtOXRaWElnUFNBbld5Y2dLeUJwZEdWdElDc2dKMTBuTzF4dUlDQWdJQ0FnSUNBZ0lIUm5kRTF2Ym05dFpYSnpRWEp5WVhrdWNIVnphQ2h0YjI1dmJXVnlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCMFozUk5iMjV2YldWeWMwRnljbUY1TG5CMWMyZ29hWFJsYlNrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMFozUk5iMjV2YldWeWMwRnljbUY1TG1wdmFXNG9kR2QwVTJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqYjI1MlpYSjBTR1ZzYlZSdlUyVndZWEpoZEc5eUtDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVkU5RVR6b2dhVzF3YkdWdFpXNTBZWFJwYjNKbGRIVnliaUIwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWdwTzF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1kbGRFNWxkME52YkhWdGJpaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBPMXh1SUNCOVhHNWNiaUFnTHlvcUlFUnBjM0JoZEdOb1pYSWdiV1YwYUc5a0lHWnZjaUJ1YjNSaGRHbHZiaUJqYjI1MlpYSnphVzl1WEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1RrOVVRVlJKVDA1OUlIUm5kRTV2ZEdGMGFXOXVJQ0FnVG05MFlYUnBiMjRnZDJVZ2QyRnVkQ0IwYnlCamIyNTJaWEowSUhSdlhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYm5Wc2JIMGdkR2QwVTJWd1lYSmhkRzl5SUNBZ1VHOXpjMmxpYkdVZ2MyVndZWEpoZEc5eVhHNGdJQ0FxSUVCeVpYUjFjbTRnZTBSSExrTnZiSFZ0Ym4wZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUTI5dWRtVnlkR1ZrSUdOdmJIVnRibHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR052Ym5abGNuUW9kR2QwVG05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPTENCMFozUlRaWEJoY21GMGIzSTZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzS1RvZ1JFY3VRMjlzZFcxdUlIdGNiaUFnSUNBdkx5QndiM056YVdKc1pTQmxlR05sY0hScGIyNXpYRzRnSUNBZ2FXWWdLSFJvYVhNdWJtOTBZWFJwYjI0Z1BUMDlJSFJuZEU1dmRHRjBhVzl1S1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2QwWjNRZ2JtOTBZWFJwYjI0Z2FYTWdhVzUyWVd4cFpDY3BPMXh1SUNBZ0lHbG1JQ2gwYUdsekxuUnZVMlZ3WVhKaGRHOXlLSFJuZEU1dmRHRjBhVzl1S1NBbUppQjBaM1JUWlhCaGNtRjBiM0lnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KM1JuZENCelpYQmhjbUYwYjNJZ2FYTWdibTkwSUhOd1pXTnBabWxsWkNjcE8xeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWFYTkdZWE4wWVNncElDWW1JSFJvYVhNdWRHOVRaWEJoY21GMGIzSW9kR2QwVG05MFlYUnBiMjRwSUNZbUlIUm5kRk5sY0dGeVlYUnZjaUFoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJHWVhOMFlWUnZVMlZ3WVhKaGRHOXlLSFJuZEZObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnWld4elpTQnBaaUFvS0hSb2FYTXVhWE5HWVhOMFlTZ3BJSHg4SUhSb2FYTXVhWE5UWlhCaGNtRjBiM0lvS1NrZ0ppWWdkR2hwY3k1MGIwaGxiRzBvZEdkMFRtOTBZWFJwYjI0cEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMjl1ZG1WeWRGUnZTR1ZzYlNncE8xeHVJQ0FnSUdWc2MyVWdhV1lnS0hSb2FYTXVhWE5UWlhCaGNtRjBiM0lvS1NBbUppQjBhR2x6TG5SdlJtRnpkR0VvZEdkMFRtOTBZWFJwYjI0cEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMjl1ZG1WeWRGTmxjR0Z5WVhSdmNsUnZSbUZ6ZEdFb0tUdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMbWx6U0dWc2JTZ3BJQ1ltSUhSb2FYTXVkRzlHWVhOMFlTaDBaM1JPYjNSaGRHbHZiaWtwSUM4dklIUm9aU0JqWVhObElHOW1JRWhGVEUxY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SSVpXeHRLSFJuZEU1dmRHRjBhVzl1S1R0Y2JpQWdJQ0JsYkhObElDOHZJSFJvYVhNdWFYTklaV3h0S0NrZ0ppWWdkR2hwY3k1MGIxTmxjR0Z5WVhSdmNpaDBaM1JPYjNSaGRHbHZiaWxjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG1OdmJuWmxjblJJWld4dEtIUm5kRTV2ZEdGMGFXOXVMQ0IwWjNSVFpYQmhjbUYwYjNJaEtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lITjFjR1Z5S0dOdmJDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBXZWJMb2dvIH0gZnJvbSAnLi4vdmlld2Vycy93ZWItbG9nbyc7XG5leHBvcnQgZnVuY3Rpb24gc3BsaXRBbGlnbmVkU2VxdWVuY2VzKHBlcHRpZGVDb2x1bW4pIHtcbiAgICBjb25zdCBzcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXJGb3JDb2x1bW4ocGVwdGlkZUNvbHVtbik7XG4gICAgY29uc3QgY29sTGVuID0gcGVwdGlkZUNvbHVtbi5sZW5ndGg7XG4gICAgY29uc3QgcmVzdWx0RGYgPSBERy5EYXRhRnJhbWUuY3JlYXRlKGNvbExlbik7XG4gICAgbGV0IG1vbm9tZXJMaXN0ID0gc3BsaXR0ZXIocGVwdGlkZUNvbHVtbi5nZXQoMCkpO1xuICAgIGNvbnN0IGNvbHVtbkxpc3QgPSBbXTtcbiAgICAvLyBjcmVhdGUgY29sdW1ucyBhbmQgZmlsbCB0aGUgZmlyc3Qgcm93IGZvciBmYXN0ZXIgdmFsdWVzIGZpbGxpbmcgaW4gdGhlIG5leHQgbG9vcFxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9ub21lckxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sID0gcmVzdWx0RGYuY29sdW1ucy5hZGROZXdTdHJpbmcoKGkgKyAxKS50b1N0cmluZygpKTtcbiAgICAgICAgY29sLnNldCgwLCBtb25vbWVyTGlzdFtpXSB8fCAnLScsIGZhbHNlKTtcbiAgICAgICAgY29sdW1uTGlzdC5wdXNoKGNvbCk7XG4gICAgfVxuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMTsgcm93SW5kZXggPCBjb2xMZW47IHJvd0luZGV4KyspIHtcbiAgICAgICAgbW9ub21lckxpc3QgPSBzcGxpdHRlcihwZXB0aWRlQ29sdW1uLmdldChyb3dJbmRleCkpO1xuICAgICAgICBtb25vbWVyTGlzdC5mb3JFYWNoKChtb25vbWVyLCBjb2xJbmRleCkgPT4gY29sdW1uTGlzdFtjb2xJbmRleF0uc2V0KHJvd0luZGV4LCBtb25vbWVyIHx8ICctJywgZmFsc2UpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdERmO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzNCc2FYUjBaWEl1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnpjR3hwZEhSbGNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhSRExFOUJRVThzUlVGQlF5eFBRVUZQTEVWQlFVTXNUVUZCVFN4eFFrRkJjVUlzUTBGQlF6dEJRVVUxUXl4TlFVRk5MRlZCUVZVc2NVSkJRWEZDTEVOQlFVTXNZVUZCWjBNN1NVRkRjRVVzVFVGQlRTeFJRVUZSTEVkQlFVY3NUMEZCVHl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMGxCUXpkRUxFMUJRVTBzVFVGQlRTeEhRVUZITEdGQlFXRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRjRU1zVFVGQlRTeFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZETjBNc1NVRkJTU3hYUVVGWExFZEJRVWNzVVVGQlVTeERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRkxFTkJRVU1zUTBGQlF6dEpRVU5zUkN4TlFVRk5MRlZCUVZVc1IwRkJkMElzUlVGQlJTeERRVUZETzBsQlJUTkRMRzFHUVVGdFJqdEpRVU51Uml4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWMEZCVnl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU16UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpsRUxFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRla01zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRMUVVOMFFqdEpRVVZFTEV0QlFVc3NTVUZCU1N4UlFVRlJMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRVZCUVVVN1VVRkRjRVFzVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlJTeERRVUZETEVOQlFVTTdVVUZEY2tRc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFOUJRVThzU1VGQlNTeEhRVUZITEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOMlJ6dEpRVVZFTEU5QlFVOHNVVUZCVVN4RFFVRkRPMEZCUTJ4Q0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVYRzVwYlhCdmNuUWdlMWRsWWt4dloyOTlJR1p5YjIwZ0p5NHVMM1pwWlhkbGNuTXZkMlZpTFd4dloyOG5PMXh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzNCc2FYUkJiR2xuYm1Wa1UyVnhkV1Z1WTJWektIQmxjSFJwWkdWRGIyeDFiVzQ2SUVSSExrTnZiSFZ0Ymp4emRISnBibWMrS1RvZ1JFY3VSR0YwWVVaeVlXMWxJSHRjYmlBZ1kyOXVjM1FnYzNCc2FYUjBaWElnUFNCWFpXSk1iMmR2TG1kbGRGTndiR2wwZEdWeVJtOXlRMjlzZFcxdUtIQmxjSFJwWkdWRGIyeDFiVzRwTzF4dUlDQmpiMjV6ZENCamIyeE1aVzRnUFNCd1pYQjBhV1JsUTI5c2RXMXVMbXhsYm1kMGFEdGNiaUFnWTI5dWMzUWdjbVZ6ZFd4MFJHWWdQU0JFUnk1RVlYUmhSbkpoYldVdVkzSmxZWFJsS0dOdmJFeGxiaWs3WEc0Z0lHeGxkQ0J0YjI1dmJXVnlUR2x6ZENBOUlITndiR2wwZEdWeUtIQmxjSFJwWkdWRGIyeDFiVzR1WjJWMEtEQXBJU2s3WEc0Z0lHTnZibk4wSUdOdmJIVnRia3hwYzNRNklFUkhMa052YkhWdGJqeHpkSEpwYm1jK1cxMGdQU0JiWFR0Y2JseHVJQ0F2THlCamNtVmhkR1VnWTI5c2RXMXVjeUJoYm1RZ1ptbHNiQ0IwYUdVZ1ptbHljM1FnY205M0lHWnZjaUJtWVhOMFpYSWdkbUZzZFdWeklHWnBiR3hwYm1jZ2FXNGdkR2hsSUc1bGVIUWdiRzl2Y0Z4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzF2Ym05dFpYSk1hWE4wTG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ1kyOXVjM1FnWTI5c0lEMGdjbVZ6ZFd4MFJHWXVZMjlzZFcxdWN5NWhaR1JPWlhkVGRISnBibWNvS0drZ0t5QXhLUzUwYjFOMGNtbHVaeWdwS1R0Y2JpQWdJQ0JqYjJ3dWMyVjBLREFzSUcxdmJtOXRaWEpNYVhOMFcybGRJSHg4SUNjdEp5d2dabUZzYzJVcE8xeHVJQ0FnSUdOdmJIVnRia3hwYzNRdWNIVnphQ2hqYjJ3cE8xeHVJQ0I5WEc1Y2JpQWdabTl5SUNoc1pYUWdjbTkzU1c1a1pYZ2dQU0F4T3lCeWIzZEpibVJsZUNBOElHTnZiRXhsYmpzZ2NtOTNTVzVrWlhnckt5a2dlMXh1SUNBZ0lHMXZibTl0WlhKTWFYTjBJRDBnYzNCc2FYUjBaWElvY0dWd2RHbGtaVU52YkhWdGJpNW5aWFFvY205M1NXNWtaWGdwSVNrN1hHNGdJQ0FnYlc5dWIyMWxja3hwYzNRdVptOXlSV0ZqYUNnb2JXOXViMjFsY2l3Z1kyOXNTVzVrWlhncElEMCtJR052YkhWdGJreHBjM1JiWTI5c1NXNWtaWGhkTG5ObGRDaHliM2RKYm1SbGVDd2diVzl1YjIxbGNpQjhmQ0FuTFNjc0lHWmhiSE5sS1NrN1hHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2NtVnpkV3gwUkdZN1hHNTlYRzRnSUNKZGZRPT0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJy4uL3ZpZXdlcnMvd2ViLWxvZ28nO1xuLyoqIENsYXNzIGZvciBoYW5kbGluZyBub3RhdGlvbiB1bml0cyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBVbml0c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKGNvbCkge1xuICAgICAgICB0aGlzLl9jb2x1bW4gPSBjb2w7XG4gICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5fY29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIGlmICh1bml0cyAhPT0gbnVsbClcbiAgICAgICAgICAgIHRoaXMuX3VuaXRzID0gdW5pdHM7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5pdHMgYXJlIG5vdCBzcGVjaWZpZWQgaW4gY29sdW1uJyk7XG4gICAgICAgIHRoaXMuX25vdGF0aW9uID0gdGhpcy5nZXROb3RhdGlvbigpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sID0gKHRoaXMuaXNGYXN0YSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkZBU1RBIDpcbiAgICAgICAgICAgICh0aGlzLmlzSGVsbSgpKSA/IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0gOlxuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbi50YWdzLmhhcyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemV9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgICAgICBlbHNlIGlmIChbJ1VOJ10uaW5jbHVkZXModGhpcy5hbHBoYWJldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhcikpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzSGVsbSgpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2Ygbm90YXRpb24gJyR7dGhpcy5ub3RhdGlvbn0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXJ9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgICAgICBlbHNlIGlmIChbJ1VOJ10uaW5jbHVkZXModGhpcy5hbHBoYWJldCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBhbHBoYWJldCAnJHt0aGlzLmFscGhhYmV0fScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhcn0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzdGF0aWMgc2V0VW5pdHNUb0Zhc3RhQ29sdW1uKGNvbCkge1xuICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmFzdGEgY29sdW1uIG11c3QgYmUgTUFDUk9NT0xFQ1VMRScpO1xuICAgICAgICBjb25zdCBzdGF0cyA9IFdlYkxvZ28uZ2V0U3RhdHMoY29sLCA1LCBXZWJMb2dvLnNwbGl0dGVyQXNGYXN0YSk7XG4gICAgICAgIGNvbnN0IHNlcVR5cGUgPSBzdGF0cy5zYW1lTGVuZ3RoID8gJ1NFUS5NU0EnIDogJ1NFUSc7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlcyA9IFtcbiAgICAgICAgICAgIFtcIlBUXCIgLyogQUxQSEFCRVQuUFQgKi8sIFVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldF0sXG4gICAgICAgICAgICBbXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi8sIFVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgICAgIFtcIlJOQVwiIC8qIEFMUEhBQkVULlJOQSAqLywgVW5pdHNIYW5kbGVyLlJuYUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICBdO1xuICAgICAgICAvLyBDYWxjdWxhdGUgbGlrZWxpaG9vZHMgZm9yIGFscGhhYmV0X2NhbmRpZGF0ZXNcbiAgICAgICAgY29uc3QgYWxwaGFiZXRDYW5kaWRhdGVzU2ltID0gYWxwaGFiZXRDYW5kaWRhdGVzLm1hcCgoYykgPT4gV2ViTG9nby5nZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1sxXSkpO1xuICAgICAgICBjb25zdCBtYXhDb3MgPSBNYXRoLm1heCguLi5hbHBoYWJldENhbmRpZGF0ZXNTaW0pO1xuICAgICAgICBjb25zdCBhbHBoYWJldCA9IG1heENvcyA+IDAuNjUgPyBhbHBoYWJldENhbmRpZGF0ZXNbYWxwaGFiZXRDYW5kaWRhdGVzU2ltLmluZGV4T2YobWF4Q29zKV1bMF0gOiAnVU4nO1xuICAgICAgICBjb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyk7XG4gICAgICAgIGNvbC5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCwgc2VxVHlwZSk7XG4gICAgICAgIGNvbC5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIGFscGhhYmV0KTtcbiAgICB9XG4gICAgZ2V0IHVuaXRzKCkgeyByZXR1cm4gdGhpcy5fdW5pdHM7IH1cbiAgICBnZXQgY29sdW1uKCkgeyByZXR1cm4gdGhpcy5fY29sdW1uOyB9XG4gICAgZ2V0IG5vdGF0aW9uKCkgeyByZXR1cm4gdGhpcy5fbm90YXRpb247IH1cbiAgICBnZXQgZGVmYXVsdEdhcFN5bWJvbCgpIHsgcmV0dXJuIHRoaXMuX2RlZmF1bHRHYXBTeW1ib2w7IH1cbiAgICBnZXQgc2VwYXJhdG9yKCkge1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1Muc2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKHNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBzZXBhcmF0b3I7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignU2VwYXJhdG9yIG5vdCBzZXQnKTtcbiAgICB9XG4gICAgZ2V0IGFsaWduZWQoKSB7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCk7XG4gICAgICAgIGlmIChhbGlnbmVkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxpZ25lZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFsaWduZWQgbm90IHNldCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBBbHBoYWJldCBuYW1lICh1cHBlciBjYXNlKSAqL1xuICAgIGdldCBhbHBoYWJldCgpIHtcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSB0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgICAgICBpZiAoYWxwaGFiZXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhbHBoYWJldC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUYWcgYWxwaGFiZXQgbm90IHNldCcpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldEFscGhhYmV0U2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLyB8fCB0aGlzLmFscGhhYmV0ID09IFwiVU5cIiAvKiBBTFBIQUJFVC5VTiAqLykge1xuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRTaXplID0gcGFyc2VJbnQodGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZSkpO1xuICAgICAgICAgICAgcmV0dXJuIGFscGhhYmV0U2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5hbHBoYWJldCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJQVFwiIC8qIEFMUEhBQkVULlBUICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjA7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkROQVwiIC8qIEFMUEhBQkVULkROQSAqLzpcbiAgICAgICAgICAgICAgICBjYXNlIFwiUk5BXCIgLyogQUxQSEFCRVQuUk5BICovOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBjYXNlICdOVCc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCBhbHBoYWJldCAnTlQnLmApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhcikgPT0gJ3RydWUnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlzRmFzdGEoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87IH1cbiAgICBpc1NlcGFyYXRvcigpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovOyB9XG4gICAgaXNIZWxtKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLzsgfVxuICAgIGlzUm5hKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1JOQSc7IH1cbiAgICBpc0RuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdETkEnOyB9XG4gICAgaXNQZXB0aWRlKCkgeyByZXR1cm4gdGhpcy5hbHBoYWJldCA9PT0gJ1BUJzsgfVxuICAgIC8qKiBBc3NvY2lhdGUgbm90YXRpb24gdHlwZXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB1bml0cyAqL1xuICAgIC8qKlxuICAgICAqIEByZXR1cm4ge05PVEFUSU9OfSAgICAgTm90YXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSB1bml0cyB0eXBlXG4gICAgICovXG4gICAgZ2V0Tm90YXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovO1xuICAgICAgICBlbHNlIGlmICh0aGlzLnVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgaGFzIHVuZXhwZWN0ZWQgbm90YXRpb24gJyR7dGhpcy51bml0c30nLmApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgZW1wdHkgY29sdW1uIG9mIHRoZSBzcGVjaWZpZWQgbm90YXRpb24gdHlwZSBhbmQgdGhlIHNhbWVcbiAgICAgKiBsZW5ndGggYXMgY29sdW1uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05PVEFUSU9OfSB0YXJnZXROb3RhdGlvblxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICAgKi9cbiAgICBnZXROZXdDb2x1bW4odGFyZ2V0Tm90YXRpb24pIHtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW47XG4gICAgICAgIGNvbnN0IGxlbiA9IGNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB0YXJnZXROb3RhdGlvbi50b0xvd2VyQ2FzZSgpICsgJygnICsgY29sLm5hbWUgKyAnKSc7XG4gICAgICAgIGNvbnN0IG5ld0NvbE5hbWUgPSBjb2wuZGF0YUZyYW1lLmNvbHVtbnMuZ2V0VW51c2VkTmFtZShuYW1lKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuZXdDb2xOYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHRoaXMubm90YXRpb24pO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgJ01hY3JvbW9sZWN1bGUnKTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0KTtcbiAgICAgICAgaWYgKHNyY0FscGhhYmV0KVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCwgc3JjQWxwaGFiZXQpO1xuICAgICAgICBjb25zdCBzcmNBbHBoYWJldFNpemUgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZSk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldFNpemUpXG4gICAgICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZSwgc3JjQWxwaGFiZXRTaXplKTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXRJc011bHRpY2hhciA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldElzTXVsdGljaGFyKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyLCBzcmNBbHBoYWJldElzTXVsdGljaGFyKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiB1c2luZyB0ZW1wbGF0ZUNvbCBhcyBhIHRlbXBsYXRlXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gdGVtcGxhdGVDb2wgIHRoZSBwcm9wZXJ0aWVzIGFuZCB1bml0cyBvZiB0aGlzIGNvbHVtbiBhcmUgdXNlZCBhcyBhXG4gICAgICogdGVtcGxhdGUgdG8gYnVpbGQgdGhlIG5ldyBvbmVcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgc3RhdGljIGdldE5ld0NvbHVtbih0ZW1wbGF0ZUNvbCkge1xuICAgICAgICBjb25zdCBjb2wgPSBuZXcgVW5pdHNIYW5kbGVyKHRlbXBsYXRlQ29sKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSBjb2wubm90YXRpb247XG4gICAgICAgIHJldHVybiBjb2wuZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQSBoZWxwZXIgZnVuY3Rpb24gY2hlY2tpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSAndW5pdHMnIHN0cmluZ1xuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzICB0aGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZFxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59XG4gICAgICovXG4gICAgc3RhdGljIHVuaXRzU3RyaW5nSXNWYWxpZCh1bml0cykge1xuICAgICAgICB1bml0cyA9IHVuaXRzLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IHByZWZpeGVzID0gW1wiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLywgXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8sIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi9dO1xuICAgICAgICBjb25zdCBwb3N0Zml4ZXMgPSBbJ3JuYScsICdkbmEnLCAncHQnXTtcbiAgICAgICAgY29uc3QgcHJlZml4Q3JpdGVyaW9uID0gcHJlZml4ZXMuc29tZSgocCkgPT4gdW5pdHMuc3RhcnRzV2l0aChwLnRvTG93ZXJDYXNlKCkpKTtcbiAgICAgICAgcmV0dXJuIHByZWZpeENyaXRlcmlvbjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0IGEgbmV3IGNvbHVtbiBvZiBzZW1hbnRpYyB0eXBlIE1BQ1JPTU9MRUNVTEUgZnJvbSB0aGUgbGlzdCBvZlxuICAgICAqIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gICAgbGVuICB0aGUgbGVuZ3RoIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9ICAgIG5hbWUgIHRoZSBuYW1lIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9ICAgIHVuaXRzICB0aGUgdW5pdHMgb2YgdGhlIG5ldyBjb2x1bW5cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgc3RhdGljIGdldE5ld0NvbHVtbkZyb21QYXJhbXMobGVuLCBuYW1lLCB1bml0cykge1xuICAgICAgICAvLyBXQVJOSU5HOiBpbiB0aGlzIGltcGxlbWVudGF0aW9uIGlzIGlzIGltcG9zc2libGUgdG8gdmVyaWZ5IHRoZSB1bmlxdWVuZXNzXG4gICAgICAgIC8vIG9mIHRoZSBuZXcgY29sdW1uJ3MgbmFtZVxuICAgICAgICAvLyBUT0RPOiB2ZXJpZnkgdGhlIHZhbGlkaXR5IG9mIHVuaXRzIHBhcmFtZXRlclxuICAgICAgICBpZiAoIVVuaXRzSGFuZGxlci51bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZvcm1hdCBvZiBcXCd1bml0c1xcJyBwYXJhbWV0ZXInKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCBuYW1lLCBuZXcgQXJyYXkobGVuKS5maWxsKCcnKSk7XG4gICAgICAgIG5ld0NvbHVtbi5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICBuZXdDb2x1bW4uc2V0VGFnKERHLlRBR1MuVU5JVFMsIHVuaXRzKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG59XG5Vbml0c0hhbmRsZXIuVEFHUyA9IHtcbiAgICBhbGlnbmVkOiAnYWxpZ25lZCcsXG4gICAgYWxwaGFiZXQ6ICdhbHBoYWJldCcsXG4gICAgYWxwaGFiZXRTaXplOiAnLmFscGhhYmV0U2l6ZScsXG4gICAgYWxwaGFiZXRJc011bHRpY2hhcjogJy5hbHBoYWJldElzTXVsdGljaGFyJyxcbiAgICBzZXBhcmF0b3I6ICdzZXBhcmF0b3InLFxufTtcblVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0ID0ge1xuICAgIEhFTE06ICcqJyxcbiAgICBTRVBBUkFUT1I6ICcnLFxuICAgIEZBU1RBOiAnLScsXG59O1xuVW5pdHNIYW5kbGVyLlBlcHRpZGVGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbXG4gICAgJ0cnLCAnTCcsICdZJywgJ1MnLCAnRScsICdRJywgJ0QnLCAnTicsICdGJywgJ0EnLFxuICAgICdLJywgJ1InLCAnSCcsICdDJywgJ1YnLCAnUCcsICdXJywgJ0knLCAnTScsICdUJyxcbl0pO1xuVW5pdHNIYW5kbGVyLkRuYUZhc3RhQWxwaGFiZXQgPSBuZXcgU2V0KFsnQScsICdDJywgJ0cnLCAnVCddKTtcblVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1UnXSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkVzVwZEhNdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblZ1YVhSekxXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVWwwUXl4UFFVRlBMRVZCUVVNc1QwRkJUeXhGUVVGakxFMUJRVTBzY1VKQlFYRkNMRU5CUVVNN1FVRm5RbnBFTEdsRlFVRnBSVHRCUVVOcVJTeE5RVUZOTEU5QlFVOHNXVUZCV1R0SlFXbFBka0lzV1VGQmJVSXNSMEZCWXp0UlFVTXZRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEVkQlFVY3NRMEZCUXp0UlFVTnVRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUXk5RExFbEJRVWtzUzBGQlN5eExRVUZMTEVsQlFVazdXVUZEYUVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdPMWxCUlhCQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiVU5CUVcxRExFTkJRVU1zUTBGQlF6dFJRVU4yUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhIUVVGSExFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVTndReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM0pHTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRNVVFzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUTBGQlF6dFJRVVZzUkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVTdXVUZEZWtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTzJkQ1FVTm1MRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zWlVGQlpTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwSkJRV3RDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWxCUVVrN2IwSkJRMmhHTEZGQlFWRXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNN2FVSkJRM2hFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRja01zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNUdHZRa0ZEYUVZc1VVRkJVU3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dFRRVU01UkR0UlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhGUVVGRk8xbEJRMmhGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSVHRuUWtGRFppeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMR1ZCUVdVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0Q1FVRnJRaXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTzI5Q1FVTm9SaXhSUVVGUkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xHbENRVUZwUWl4RFFVRkRMRU5CUVVNN2FVSkJReTlFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0blFrRkRja01zVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeHJRa0ZCYTBJc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNUdHZRa0ZEYUVZc1VVRkJVU3haUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMU5CUTNKRk8wbEJRMGdzUTBGQlF6dEpRWEJQVFN4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNSMEZCWXp0UlFVTm9SQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaE8xbEJRekZETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwTkJRVzlETEVOQlFVTXNRMEZCUXp0UlFVVjRSQ3hOUVVGTkxFdEJRVXNzUjBGQlowSXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEZRVUZGTEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVNM1JTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVWeVJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVFMFFqdFpRVU5zUkN4NVFrRkJZeXhaUVVGWkxFTkJRVU1zYjBKQlFXOUNMRU5CUVVNN1dVRkRhRVFzTWtKQlFXVXNXVUZCV1N4RFFVRkRMR2RDUVVGblFpeERRVUZETzFsQlF6ZERMREpDUVVGbExGbEJRVmtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRUUVVNNVF5eERRVUZETzFGQlJVWXNaMFJCUVdkRU8xRkJRMmhFTEUxQlFVMHNjVUpCUVhGQ0xFZEJRV0VzYTBKQlFXdENMRU5CUVVNc1IwRkJSeXhEUVVNMVJDeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNeFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRSUVVOc1JDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJSWEpITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEN0Q1FVRnBRaXhEUVVGRE8xRkJRekZETEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRMME1zUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXp0SlFVTnVSQ3hEUVVGRE8wbEJSVVFzU1VGQll5eExRVUZMTEV0QlFXRXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ5UkN4SlFVRmpMRTFCUVUwc1MwRkJaMElzVDBGQlR5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVeFJDeEpRVUZYTEZGQlFWRXNTMEZCWlN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJURkVMRWxCUVZjc1owSkJRV2RDTEV0QlFXRXNUMEZCVHl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhoRkxFbEJRVmNzVTBGQlV6dFJRVU5zUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEyeEZMRWxCUVVrc1UwRkJVeXhMUVVGTExFbEJRVWs3V1VGRGNFSXNUMEZCVHl4VFFVRlRMRU5CUVVNN08xbEJSV3BDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0SlFVTjZReXhEUVVGRE8wbEJSVVFzU1VGQlZ5eFBRVUZQTzFGQlEyaENMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZET1VRc1NVRkJTU3hQUVVGUExFdEJRVXNzU1VGQlNTeEZRVUZGTzFsQlEzQkNMRTlCUVU4c1QwRkJUeXhEUVVGRE8xTkJRMmhDTzJGQlFVMDdXVUZEVEN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1UwRkRlRU03U1VGRFNDeERRVUZETzBsQlJVUXNhVU5CUVdsRE8wbEJRMnBETEVsQlFWY3NVVUZCVVR0UlFVTnFRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTJoRkxFbEJRVWtzVVVGQlVTeExRVUZMTEVsQlFVa3NSVUZCUlR0WlFVTnlRaXhQUVVGUExGRkJRVkVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0VFFVTXZRanRoUVVGTk8xbEJRMHdzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eERRVUZETzFOQlEzcERPMGxCUTBnc1EwRkJRenRKUVVWTkxHVkJRV1U3VVVGRGNFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3c0UWtGQmFVSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3d3UWtGQlpTeEZRVUZGTzFsQlEyeEZMRTFCUVUwc1dVRkJXU3hIUVVGSExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRiRVlzVDBGQlR5eFpRVUZaTEVOQlFVTTdVMEZEY2tJN1lVRkJUVHRaUVVOTUxGRkJRVkVzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0blFrRkRka0k3YjBKQlEwVXNUMEZCVHl4RlFVRkZMRU5CUVVNN1owSkJRMW9zT0VKQlFXdENPMmRDUVVOc1FqdHZRa0ZEUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRFdDeExRVUZMTEVsQlFVazdiMEpCUTFBc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGRE8yOUNRVU14UXl4UFFVRlBMRU5CUVVNc1EwRkJRenRuUWtGRFdEdHZRa0ZEUlN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIZENRVUYzUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFTkJRVU1zUTBGQlF6dGhRVU0xUkR0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWTkxITkNRVUZ6UWp0UlFVTXpRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERoQ1FVRnBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFJRVUZSTERCQ1FVRmxMRVZCUVVVN1dVRkRiRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFbEJRVWtzVFVGQlRTeERRVUZETzFOQlF6VkZPMkZCUVUwN1dVRkRUQ3hQUVVGUExFdEJRVXNzUTBGQlF6dFRRVU5rTzBsQlEwZ3NRMEZCUXp0SlFVVk5MRTlCUVU4c1MwRkJZeXhQUVVGUExFbEJRVWtzUTBGQlF5eFJRVUZSTEdsRFFVRnRRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVV2UkN4WFFVRlhMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeDVRMEZCZFVJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmRrVXNUVUZCVFN4TFFVRmpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzSzBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVGRFTEV0QlFVc3NTMEZCWXl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFdEJRVXNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVndSQ3hMUVVGTExFdEJRV01zVDBGQlR5eEpRVUZKTEVOQlFVTXNVVUZCVVN4TFFVRkxMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmNFUXNVMEZCVXl4TFFVRmpMRTlCUVU4c1NVRkJTU3hEUVVGRExGRkJRVkVzUzBGQlN5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRsRUxEUkVRVUUwUkR0SlFVTTFSRHM3VDBGRlJ6dEpRVU5QTEZkQlFWYzdVVUZEYmtJc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRlZCUVZVc09FSkJRV2RDTzFsQlEzSkVMRzlEUVVGelFqdGhRVU51UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN4elEwRkJiMEk3V1VGRE9VUXNORU5CUVRCQ08yRkJRM1pDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eFZRVUZWTERSQ1FVRmxPMWxCUTNwRUxHdERRVUZ4UWpzN1dVRkZja0lzVFVGQlRTeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTdzRRa0ZCT0VJc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETjBZc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEZsQlFWa3NRMEZCUXl4alFVRjNRanRSUVVNM1F5eE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRM2hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRGRrSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1kwRkJZeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1NVRkJTU3hIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU5xUlN4TlFVRk5MRlZCUVZVc1IwRkJSeXhIUVVGSExFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE4wUXNUVUZCVFN4VFFVRlRMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RlFVRkZMRlZCUVZVc1JVRkJSU3hKUVVGSkxFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU53Uml4VFFVRlRMRU5CUVVNc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRPMUZCUXpkRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUXk5RExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFVkJRVVVzWlVGQlpTeERRVUZETEVOQlFVTTdVVUZGZWtRc1RVRkJUU3hYUVVGWExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF6TkVMRWxCUVVrc1YwRkJWenRaUVVOaUxGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdVVUZGTlVRc1RVRkJUU3hsUVVGbExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEyNUZMRWxCUVVrc1pVRkJaVHRaUVVOcVFpeFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUlhCRkxFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVOQlFVTTdVVUZEYWtZc1NVRkJTU3h6UWtGQmMwSTdXVUZEZUVJc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEhOQ1FVRnpRaXhEUVVGRExFTkJRVU03VVVGRmJFWXNUMEZCVHl4VFFVRlRMRU5CUVVNN1NVRkRia0lzUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQmMwSTdVVUZETDBNc1RVRkJUU3hIUVVGSExFZEJRV2xDTEVsQlFVa3NXVUZCV1N4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8xRkJRM2hFTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU03VVVGRGNFTXNUMEZCVHl4SFFVRkhMRU5CUVVNc1dVRkJXU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBsQlF6RkRMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhMUVVGaE8xRkJRelZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03VVVGRE5VSXNUVUZCVFN4UlFVRlJMRWRCUVVjc1owZEJRVzFFTEVOQlFVTTdVVUZEY2tVc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSWFpETEUxQlFVMHNaVUZCWlN4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOb1JpeFBRVUZQTEdWQlFXVXNRMEZCUXp0SlFVTjZRaXhEUVVGRE8wbEJSVVE3T3pzN096czdPMDlCVVVjN1NVRkRTU3hOUVVGTkxFTkJRVU1zYzBKQlFYTkNMRU5CUTJ4RExFZEJRVmNzUlVGRFdDeEpRVUZaTEVWQlExb3NTMEZCWVR0UlFVVmlMRFJGUVVFMFJUdFJRVU0xUlN3eVFrRkJNa0k3VVVGRE0wSXNLME5CUVN0RE8xRkJReTlETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRPMWxCUTNwRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNkVU5CUVhWRExFTkJRVU1zUTBGQlF6dFJRVU16UkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6bEZMRk5CUVZNc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhMRU5CUVVNN1VVRkROME1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTjJReXhQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPenRCUVRsT2MwSXNhVUpCUVVrc1IwRkJSenRKUVVNMVFpeFBRVUZQTEVWQlFVVXNVMEZCVXp0SlFVTnNRaXhSUVVGUkxFVkJRVVVzVlVGQlZUdEpRVU53UWl4WlFVRlpMRVZCUVVVc1pVRkJaVHRKUVVNM1FpeHRRa0ZCYlVJc1JVRkJSU3h6UWtGQmMwSTdTVUZETTBNc1UwRkJVeXhGUVVGRkxGZEJRVmM3UTBGRGRrSXNRMEZCUXp0QlFVMTNRaXh0UTBGQmMwSXNSMEZCUnp0SlFVTnFSQ3hKUVVGSkxFVkJRVVVzUjBGQlJ6dEpRVU5VTEZOQlFWTXNSVUZCUlN4RlFVRkZPMGxCUTJJc1MwRkJTeXhGUVVGRkxFZEJRVWM3UTBGRFdDeERRVUZETzBGQlJYRkNMR2xEUVVGdlFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRPMGxCUTNCRUxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWM3U1VGRGFFUXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnp0RFFVTnFSQ3hEUVVGRExFTkJRVU03UVVGRGIwSXNOa0pCUVdkQ0xFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRUxEWkNRVUZuUWl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1cGJYQnZjblFnS2lCaGN5QjFhU0JtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2ZFdrbk8xeHVhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNWNibWx0Y0c5eWRDQjdWMlZpVEc5bmJ5d2dVMlZ4UTI5c1UzUmhkSE45SUdaeWIyMGdKeTR1TDNacFpYZGxjbk12ZDJWaUxXeHZaMjhuTzF4dVhHNHZLaW9nWlc1MWJTQjBlWEJsSUhSdklITnBiWEJzYVdaNUlITmxkSFJwYm1jZ1hDSjFjMlZ5TFdaeWFXVnVaR3g1WENJZ2JtOTBZWFJwYjI0Z2FXWWdibVZqWlhOellYSjVJQ292WEc1bGVIQnZjblFnWTI5dWMzUWdaVzUxYlNCT1QxUkJWRWxQVGlCN1hHNGdJRVpCVTFSQklEMGdKMlpoYzNSaEp5eGNiaUFnVTBWUVFWSkJWRTlTSUQwZ0ozTmxjR0Z5WVhSdmNpY3NYRzRnSUVoRlRFMGdQU0FuYUdWc2JTY3NYRzU5WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JsYm5WdElFRk1VRWhCUWtWVUlIdGNiaUFnUkU1QklEMGdKMFJPUVNjc1hHNGdJRkpPUVNBOUlDZFNUa0VuTEZ4dUlDQlFWQ0E5SUNkUVZDY3NYRzRnSUZWT0lEMGdKMVZPSnl4Y2JuMWNibHh1THlvcUlFTnNZWE56SUdadmNpQm9ZVzVrYkdsdVp5QnViM1JoZEdsdmJpQjFibWwwY3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm1sMGMwaGhibVJzWlhJZ2UxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxZV1J2Ym14NUlGUkJSMU1nUFNCN1hHNGdJQ0FnWVd4cFoyNWxaRG9nSjJGc2FXZHVaV1FuTEZ4dUlDQWdJR0ZzY0doaFltVjBPaUFuWVd4d2FHRmlaWFFuTEZ4dUlDQWdJR0ZzY0doaFltVjBVMmw2WlRvZ0p5NWhiSEJvWVdKbGRGTnBlbVVuTEZ4dUlDQWdJR0ZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWEk2SUNjdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpY3NYRzRnSUNBZ2MyVndZWEpoZEc5eU9pQW5jMlZ3WVhKaGRHOXlKeXhjYmlBZ2ZUdGNibHh1SUNCd2NtOTBaV04wWldRZ2NtVmhaRzl1YkhrZ1gyTnZiSFZ0YmpvZ1JFY3VRMjlzZFcxdU95QXZMeUIwYUdVZ1kyOXNkVzF1SUhSdklHSmxJR052Ym5abGNuUmxaRnh1SUNCd2NtOTBaV04wWldRZ1gzVnVhWFJ6T2lCemRISnBibWM3SUM4dklIVnVhWFJ6TENCdlppQjBhR1VnWm05eWJTQm1ZWE4wWVN3Z2MyVndZWEpoZEc5eVhHNGdJSEJ5YjNSbFkzUmxaQ0JmYm05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPT3lBdkx5QmpkWEp5Wlc1MElHNXZkR0YwYVc5dUlDaDNhWFJvYjNWMElEcFRSVkU2VGxRc0lHVjBZeTRwWEc0Z0lIQnliM1JsWTNSbFpDQmZaR1ZtWVhWc2RFZGhjRk41YldKdmJEb2djM1J5YVc1bk8xeHVJQ0J3Y205MFpXTjBaV1FnYzNSaGRHbGpJSEpsWVdSdmJteDVJRjlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRZ1BTQjdYRzRnSUNBZ1NFVk1UVG9nSnlvbkxGeHVJQ0FnSUZORlVFRlNRVlJQVWpvZ0p5Y3NYRzRnSUNBZ1JrRlRWRUU2SUNjdEp5eGNiaUFnZlR0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxZV1J2Ym14NUlGQmxjSFJwWkdWR1lYTjBZVUZzY0doaFltVjBJRDBnYm1WM0lGTmxkQ2hiWEc0Z0lDQWdKMGNuTENBblRDY3NJQ2RaSnl3Z0oxTW5MQ0FuUlNjc0lDZFJKeXdnSjBRbkxDQW5UaWNzSUNkR0p5d2dKMEVuTEZ4dUlDQWdJQ2RMSnl3Z0oxSW5MQ0FuU0Njc0lDZERKeXdnSjFZbkxDQW5VQ2NzSUNkWEp5d2dKMGtuTENBblRTY3NJQ2RVSnl4Y2JpQWdYU2s3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WaFpHOXViSGtnUkc1aFJtRnpkR0ZCYkhCb1lXSmxkQ0E5SUc1bGR5QlRaWFFvV3lkQkp5d2dKME1uTENBblJ5Y3NJQ2RVSjEwcE8xeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklISmxZV1J2Ym14NUlGSnVZVVpoYzNSaFFXeHdhR0ZpWlhRZ1BTQnVaWGNnVTJWMEtGc25RU2NzSUNkREp5d2dKMGNuTENBblZTZGRLVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhObGRGVnVhWFJ6Vkc5R1lYTjBZVU52YkhWdGJpaGpiMnc2SUVSSExrTnZiSFZ0YmlrZ2UxeHVJQ0FnSUdsbUlDaGpiMnd1YzJWdFZIbHdaU0FoUFQwZ1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RHWVhOMFlTQmpiMngxYlc0Z2JYVnpkQ0JpWlNCTlFVTlNUMDFQVEVWRFZVeEZKeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnpkR0YwY3pvZ1UyVnhRMjlzVTNSaGRITWdQU0JYWldKTWIyZHZMbWRsZEZOMFlYUnpLR052YkN3Z05Td2dWMlZpVEc5bmJ5NXpjR3hwZEhSbGNrRnpSbUZ6ZEdFcE8xeHVJQ0FnSUdOdmJuTjBJSE5sY1ZSNWNHVWdQU0J6ZEdGMGN5NXpZVzFsVEdWdVozUm9JRDhnSjFORlVTNU5VMEVuSURvZ0oxTkZVU2M3WEc1Y2JpQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTTZJRnR6ZEhKcGJtY3NJRk5sZER4emRISnBibWMrWFZ0ZElEMGdXMXh1SUNBZ0lDQWdXMEZNVUVoQlFrVlVMbEJVTENCVmJtbDBjMGhoYm1Sc1pYSXVVR1Z3ZEdsa1pVWmhjM1JoUVd4d2FHRmlaWFJkTEZ4dUlDQWdJQ0FnVzBGTVVFaEJRa1ZVTGtST1FTd2dWVzVwZEhOSVlXNWtiR1Z5TGtSdVlVWmhjM1JoUVd4d2FHRmlaWFJkTEZ4dUlDQWdJQ0FnVzBGTVVFaEJRa1ZVTGxKT1FTd2dWVzVwZEhOSVlXNWtiR1Z5TGxKdVlVWmhjM1JoUVd4d2FHRmlaWFJkTEZ4dUlDQWdJRjA3WEc1Y2JpQWdJQ0F2THlCRFlXeGpkV3hoZEdVZ2JHbHJaV3hwYUc5dlpITWdabTl5SUdGc2NHaGhZbVYwWDJOaGJtUnBaR0YwWlhOY2JpQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzA2SUc1MWJXSmxjbHRkSUQwZ1lXeHdhR0ZpWlhSRFlXNWthV1JoZEdWekxtMWhjQ2hjYmlBZ0lDQWdJQ2hqS1NBOVBpQlhaV0pNYjJkdkxtZGxkRUZzY0doaFltVjBVMmx0YVd4aGNtbDBlU2h6ZEdGMGN5NW1jbVZ4TENCald6RmRLU2s3WEc0Z0lDQWdZMjl1YzNRZ2JXRjRRMjl6SUQwZ1RXRjBhQzV0WVhnb0xpNHVZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpVMmx0S1R0Y2JpQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRDQTlJRzFoZUVOdmN5QStJREF1TmpVZ1B5QmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTmJZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpVMmx0TG1sdVpHVjRUMllvYldGNFEyOXpLVjFiTUYwZ09pQW5WVTRuTzF4dVhHNGdJQ0FnWTI5c0xuTmxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRMQ0JPVDFSQlZFbFBUaTVHUVZOVVFTazdYRzRnSUNBZ1kyOXNMbk5sZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiR2xuYm1Wa0xDQnpaWEZVZVhCbEtUdGNiaUFnSUNCamIyd3VjMlYwVkdGbktGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExtRnNjR2hoWW1WMExDQmhiSEJvWVdKbGRDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnWjJWMElIVnVhWFJ6S0NrNklITjBjbWx1WnlCN0lISmxkSFZ5YmlCMGFHbHpMbDkxYm1sMGN6c2dmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQm5aWFFnWTI5c2RXMXVLQ2s2SUVSSExrTnZiSFZ0YmlCN0lISmxkSFZ5YmlCMGFHbHpMbDlqYjJ4MWJXNDdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJRzV2ZEdGMGFXOXVLQ2s2SUU1UFZFRlVTVTlPSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMjV2ZEdGMGFXOXVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0JrWldaaGRXeDBSMkZ3VTNsdFltOXNLQ2s2SUhOMGNtbHVaeUI3SUhKbGRIVnliaUIwYUdsekxsOWtaV1poZFd4MFIyRndVM2x0WW05c095QjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRDQnpaWEJoY21GMGIzSW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCelpYQmhjbUYwYjNJZ1BTQjBhR2x6TG1OdmJIVnRiaTVuWlhSVVlXY29WVzVwZEhOSVlXNWtiR1Z5TGxSQlIxTXVjMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQnBaaUFvYzJWd1lYSmhkRzl5SUNFOVBTQnVkV3hzS1Z4dUlDQWdJQ0FnY21WMGRYSnVJSE5sY0dGeVlYUnZjanRjYmlBZ0lDQmxiSE5sWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMU5sY0dGeVlYUnZjaUJ1YjNRZ2MyVjBKeWs3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMElHRnNhV2R1WldRb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0JoYkdsbmJtVmtJRDBnZEdocGN5NWpiMngxYlc0dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2FXZHVaV1FwTzF4dUlDQWdJR2xtSUNoaGJHbG5ibVZrSUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVd4cFoyNWxaRHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVVlXY2dZV3hwWjI1bFpDQnViM1FnYzJWMEp5azdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xSUVGc2NHaGhZbVYwSUc1aGJXVWdLSFZ3Y0dWeUlHTmhjMlVwSUNvdlhHNGdJSEIxWW14cFl5Qm5aWFFnWVd4d2FHRmlaWFFvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRDQTlJSFJvYVhNdVkyOXNkVzF1TG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkQ2s3WEc0Z0lDQWdhV1lnS0dGc2NHaGhZbVYwSUNFOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWVd4d2FHRmlaWFF1ZEc5VmNIQmxja05oYzJVb0tUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RVWVdjZ1lXeHdhR0ZpWlhRZ2JtOTBJSE5sZENjcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUkJiSEJvWVdKbGRGTnBlbVVvS1RvZ2JuVnRZbVZ5SUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV1YjNSaGRHbHZiaUE5UFNCT1QxUkJWRWxQVGk1SVJVeE5JSHg4SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDBnUVV4UVNFRkNSVlF1VlU0cElIdGNiaUFnSUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwVTJsNlpTQTlJSEJoY25ObFNXNTBLSFJvYVhNdVkyOXNkVzF1TG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcEtUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCaGJIQm9ZV0psZEZOcGVtVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhOM2FYUmphQ0FvZEdocGN5NWhiSEJvWVdKbGRDa2dlMXh1SUNBZ0lDQWdZMkZ6WlNCQlRGQklRVUpGVkM1UVZEcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlESXdPMXh1SUNBZ0lDQWdZMkZ6WlNCQlRGQklRVUpGVkM1RVRrRTZYRzRnSUNBZ0lDQmpZWE5sSUVGTVVFaEJRa1ZVTGxKT1FUcGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlEUTdYRzRnSUNBZ0lDQmpZWE5sSUNkT1ZDYzZYRzRnSUNBZ0lDQWdJR052Ym5OdmJHVXVkMkZ5YmloZ1ZXNWxlSEJsWTNSbFpDQmhiSEJvWVdKbGRDQW5UbFFuTG1BcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z05EdGNiaUFnSUNBZ0lHUmxabUYxYkhRNlhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1ZXNWxlSEJsWTNSbFpDQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY3VZQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZEVGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJb0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWJtOTBZWFJwYjI0Z1BUMGdUazlVUVZSSlQwNHVTRVZNVFNCOGZDQjBhR2x6TG1Gc2NHaGhZbVYwSUQwOUlFRk1VRWhCUWtWVUxsVk9LU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amIyeDFiVzR1WjJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWElwSUQwOUlDZDBjblZsSnp0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJwYzBaaGMzUmhLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1UmtGVFZFRTdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTlRaWEJoY21GMGIzSW9LVG9nWW05dmJHVmhiaUI3SUhKbGRIVnliaUIwYUdsekxtNXZkR0YwYVc5dUlEMDlQU0JPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUk3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5JWld4dEtDazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR2hwY3k1dWIzUmhkR2x2YmlBOVBUMGdUazlVUVZSSlQwNHVTRVZNVFRzZ2ZWeHVYRzRnSUhCMVlteHBZeUJwYzFKdVlTZ3BPaUJpYjI5c1pXRnVJSHNnY21WMGRYSnVJSFJvYVhNdVlXeHdhR0ZpWlhRZ1BUMDlJQ2RTVGtFbk95QjlYRzVjYmlBZ2NIVmliR2xqSUdselJHNWhLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnSjBST1FTYzdJSDFjYmx4dUlDQndkV0pzYVdNZ2FYTlFaWEIwYVdSbEtDazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR2hwY3k1aGJIQm9ZV0psZENBOVBUMGdKMUJVSnpzZ2ZWeHVYRzRnSUM4cUtpQkJjM052WTJsaGRHVWdibTkwWVhScGIyNGdkSGx3WlhNZ2QybDBhQ0IwYUdVZ1kyOXljbVZ6Y0c5dVpHbHVaeUIxYm1sMGN5QXFMMXh1SUNBdktpcGNiaUFnSUNvZ1FISmxkSFZ5YmlCN1RrOVVRVlJKVDA1OUlDQWdJQ0JPYjNSaGRHbHZiaUJoYzNOdlkybGhkR1ZrSUhkcGRHZ2dkR2hsSUhWdWFYUnpJSFI1Y0dWY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQm5aWFJPYjNSaGRHbHZiaWdwT2lCT1QxUkJWRWxQVGlCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11ZFc1cGRITXVkRzlNYjNkbGNrTmhjMlVvS1M1emRHRnlkSE5YYVhSb0tFNVBWRUZVU1U5T0xrWkJVMVJCS1NsY2JpQWdJQ0FnSUhKbGRIVnliaUJPVDFSQlZFbFBUaTVHUVZOVVFUdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUU1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWp0Y2JpQWdJQ0JsYkhObElHbG1JQ2gwYUdsekxuVnVhWFJ6TG5SdlRHOTNaWEpEWVhObEtDa3VjM1JoY25SelYybDBhQ2hPVDFSQlZFbFBUaTVJUlV4TktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1SVJVeE5PMXh1SUNBZ0lHVnNjMlZjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdRMjlzZFcxdUlDY2tlM1JvYVhNdVkyOXNkVzF1TG01aGJXVjlKeUJvWVhNZ2RXNWxlSEJsWTNSbFpDQnViM1JoZEdsdmJpQW5KSHQwYUdsekxuVnVhWFJ6ZlNjdVlDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lHVnRjSFI1SUdOdmJIVnRiaUJ2WmlCMGFHVWdjM0JsWTJsbWFXVmtJRzV2ZEdGMGFXOXVJSFI1Y0dVZ1lXNWtJSFJvWlNCellXMWxYRzRnSUNBcUlHeGxibWQwYUNCaGN5QmpiMngxYlc1Y2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdE9UMVJCVkVsUFRuMGdkR0Z5WjJWMFRtOTBZWFJwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlZ4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHZGxkRTVsZDBOdmJIVnRiaWgwWVhKblpYUk9iM1JoZEdsdmJqb2dUazlVUVZSSlQwNHBPaUJFUnk1RGIyeDFiVzRnZTF4dUlDQWdJR052Ym5OMElHTnZiQ0E5SUhSb2FYTXVZMjlzZFcxdU8xeHVJQ0FnSUdOdmJuTjBJR3hsYmlBOUlHTnZiQzVzWlc1bmRHZzdYRzRnSUNBZ1kyOXVjM1FnYm1GdFpTQTlJSFJoY21kbGRFNXZkR0YwYVc5dUxuUnZURzkzWlhKRFlYTmxLQ2tnS3lBbktDY2dLeUJqYjJ3dWJtRnRaU0FySUNjcEp6dGNiaUFnSUNCamIyNXpkQ0J1WlhkRGIyeE9ZVzFsSUQwZ1kyOXNMbVJoZEdGR2NtRnRaUzVqYjJ4MWJXNXpMbWRsZEZWdWRYTmxaRTVoYldVb2JtRnRaU2s3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdSRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2R6ZEhKcGJtY25MQ0J1WlhkRGIyeE9ZVzFsTENCdVpYY2dRWEp5WVhrb2JHVnVLUzVtYVd4c0tDY25LU2s3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sYlZSNWNHVWdQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVTdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRMQ0IwYUdsekxtNXZkR0YwYVc5dUtUdGNiaUFnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0VSSExsUkJSMU11UTBWTVRGOVNSVTVFUlZKRlVpd2dKMDFoWTNKdmJXOXNaV04xYkdVbktUdGNibHh1SUNBZ0lHTnZibk4wSUhOeVkwRnNjR2hoWW1WMElEMGdZMjlzTG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkQ2s3WEc0Z0lDQWdhV1lnS0hOeVkwRnNjR2hoWW1WMEtWeHVJQ0FnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEN3Z2MzSmpRV3h3YUdGaVpYUXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2MzSmpRV3h3YUdGaVpYUlRhWHBsSUQwZ1kyOXNMbWRsZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRGTnBlbVVwTzF4dUlDQWdJR2xtSUNoemNtTkJiSEJvWVdKbGRGTnBlbVVwWEc0Z0lDQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBVMmw2WlN3Z2MzSmpRV3h3YUdGaVpYUlRhWHBsS1R0Y2JseHVJQ0FnSUdOdmJuTjBJSE55WTBGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJZ1BTQmpiMnd1WjJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBTWE5OZFd4MGFXTm9ZWElwTzF4dUlDQWdJR2xtSUNoemNtTkJiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLVnh1SUNBZ0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlMQ0J6Y21OQmJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtUdGNibHh1SUNBZ0lISmxkSFZ5YmlCdVpYZERiMngxYlc0N1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbElHRWdibVYzSUdWdGNIUjVJR052YkhWdGJpQjFjMmx1WnlCMFpXMXdiR0YwWlVOdmJDQmhjeUJoSUhSbGJYQnNZWFJsWEc0Z0lDQXFYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQjBaVzF3YkdGMFpVTnZiQ0FnZEdobElIQnliM0JsY25ScFpYTWdZVzVrSUhWdWFYUnpJRzltSUhSb2FYTWdZMjlzZFcxdUlHRnlaU0IxYzJWa0lHRnpJR0ZjYmlBZ0lDb2dkR1Z0Y0d4aGRHVWdkRzhnWW5WcGJHUWdkR2hsSUc1bGR5QnZibVZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzRvZEdWdGNHeGhkR1ZEYjJ3NklFUkhMa052YkhWdGJpazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNPaUJWYm1sMGMwaGhibVJzWlhJZ1BTQnVaWGNnVlc1cGRITklZVzVrYkdWeUtIUmxiWEJzWVhSbFEyOXNLVHRjYmlBZ0lDQmpiMjV6ZENCMFlYSm5aWFJPYjNSaGRHbHZiaUE5SUdOdmJDNXViM1JoZEdsdmJqdGNiaUFnSUNCeVpYUjFjbTRnWTI5c0xtZGxkRTVsZDBOdmJIVnRiaWgwWVhKblpYUk9iM1JoZEdsdmJpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUVNCb1pXeHdaWElnWm5WdVkzUnBiMjRnWTJobFkydHBibWNnZEdobElIWmhiR2xrYVhSNUlHOW1JSFJvWlNBbmRXNXBkSE1uSUhOMGNtbHVaMXh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITWdJSFJvWlNCemRISnBibWNnZEc4Z1ltVWdkbUZzYVdSaGRHVmtYRzRnSUNBcUlFQnlaWFIxY200Z2UySnZiMnhsWVc1OVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhWdWFYUnpVM1J5YVc1blNYTldZV3hwWkNoMWJtbDBjem9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdkVzVwZEhNZ1BTQjFibWwwY3k1MGIweHZkMlZ5UTJGelpTZ3BPMXh1SUNBZ0lHTnZibk4wSUhCeVpXWnBlR1Z6SUQwZ1cwNVBWRUZVU1U5T0xrWkJVMVJCTENCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJc0lFNVBWRUZVU1U5T0xraEZURTFkTzF4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhobGN5QTlJRnNuY201aEp5d2dKMlJ1WVNjc0lDZHdkQ2RkTzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEpsWm1sNFEzSnBkR1Z5YVc5dUlEMGdjSEpsWm1sNFpYTXVjMjl0WlNnb2NDa2dQVDRnZFc1cGRITXVjM1JoY25SelYybDBhQ2h3TG5SdlRHOTNaWEpEWVhObEtDa3BLVHRjYmlBZ0lDQnlaWFIxY200Z2NISmxabWw0UTNKcGRHVnlhVzl1TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZibk4wY25WamRDQmhJRzVsZHlCamIyeDFiVzRnYjJZZ2MyVnRZVzUwYVdNZ2RIbHdaU0JOUVVOU1QwMVBURVZEVlV4RklHWnliMjBnZEdobElHeHBjM1FnYjJaY2JpQWdJQ29nYzNCbFkybG1hV1ZrSUhCaGNtRnRaWFJsY25OY2JpQWdJQ3BjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlDQWdJR3hsYmlBZ2RHaGxJR3hsYm1kMGFDQnZaaUIwYUdVZ2JtVjNJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnSUNBZ2JtRnRaU0FnZEdobElHNWhiV1VnYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlDQWdJSFZ1YVhSeklDQjBhR1VnZFc1cGRITWdiMllnZEdobElHNWxkeUJqYjJ4MWJXNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUk9aWGREYjJ4MWJXNUdjbTl0VUdGeVlXMXpLRnh1SUNBZ0lHeGxiam9nYm5WdFltVnlMRnh1SUNBZ0lHNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjFibWwwY3pvZ2MzUnlhVzVuWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVjBGU1RrbE9Sem9nYVc0Z2RHaHBjeUJwYlhCc1pXMWxiblJoZEdsdmJpQnBjeUJwY3lCcGJYQnZjM05wWW14bElIUnZJSFpsY21sbWVTQjBhR1VnZFc1cGNYVmxibVZ6YzF4dUlDQWdJQzh2SUc5bUlIUm9aU0J1WlhjZ1kyOXNkVzF1SjNNZ2JtRnRaVnh1SUNBZ0lDOHZJRlJQUkU4NklIWmxjbWxtZVNCMGFHVWdkbUZzYVdScGRIa2diMllnZFc1cGRITWdjR0Z5WVcxbGRHVnlYRzRnSUNBZ2FXWWdLQ0ZWYm1sMGMwaGhibVJzWlhJdWRXNXBkSE5UZEhKcGJtZEpjMVpoYkdsa0tIVnVhWFJ6S1NsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduU1c1MllXeHBaQ0JtYjNKdFlYUWdiMllnWEZ3bmRXNXBkSE5jWENjZ2NHRnlZVzFsZEdWeUp5azdYRzRnSUNBZ1kyOXVjM1FnYm1WM1EyOXNkVzF1SUQwZ1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZHpkSEpwYm1jbkxDQnVZVzFsTENCdVpYY2dRWEp5WVhrb2JHVnVLUzVtYVd4c0tDY25LU2s3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sYlZSNWNHVWdQU0JFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVTdYRzRnSUNBZ2JtVjNRMjlzZFcxdUxuTmxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRMQ0IxYm1sMGN5azdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCamIyNXpkSEoxWTNSdmNpaGpiMnc2SUVSSExrTnZiSFZ0YmlrZ2UxeHVJQ0FnSUhSb2FYTXVYMk52YkhWdGJpQTlJR052YkR0Y2JpQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlIUm9hWE11WDJOdmJIVnRiaTUwWVdkelcwUkhMbFJCUjFNdVZVNUpWRk5kTzF4dUlDQWdJR2xtSUNoMWJtbDBjeUFoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSFJvYVhNdVgzVnVhWFJ6SUQwZ2RXNXBkSE03WEc0Z0lDQWdaV3h6WlZ4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RWYm1sMGN5QmhjbVVnYm05MElITndaV05wWm1sbFpDQnBiaUJqYjJ4MWJXNG5LVHRjYmlBZ0lDQjBhR2x6TGw5dWIzUmhkR2x2YmlBOUlIUm9hWE11WjJWMFRtOTBZWFJwYjI0b0tUdGNiaUFnSUNCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNJRDBnS0hSb2FYTXVhWE5HWVhOMFlTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtaQlUxUkJJRHBjYmlBZ0lDQWdJQ2gwYUdsekxtbHpTR1ZzYlNncEtTQS9JRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa2hGVEUwZ09seHVJQ0FnSUNBZ0lDQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVZMjlzZFcxdUxuUmhaM011YUdGektGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExtRnNjR2hoWW1WMFUybDZaU2twSUh0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG1selNHVnNiU2dwS1Z4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvWUVadmNpQmpiMngxYlc0Z0p5UjdkR2hwY3k1amIyeDFiVzR1Ym1GdFpYMG5JRzltSUc1dmRHRjBhVzl1SUNja2UzUm9hWE11Ym05MFlYUnBiMjU5SnlCZ0lDdGNiaUFnSUNBZ0lDQWdJQ0JnZEdGbklDY2tlMVZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBVMmw2WlgwbklHbHpJRzFoYm1SaGRHOXllUzVnS1R0Y2JpQWdJQ0FnSUdWc2MyVWdhV1lnS0ZzblZVNG5YUzVwYm1Oc2RXUmxjeWgwYUdsekxtRnNjR2hoWW1WMEtTbGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQkdiM0lnWTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCdlppQmhiSEJvWVdKbGRDQW5KSHQwYUdsekxtRnNjR2hoWW1WMGZTY2dZQ0FyWEc0Z0lDQWdJQ0FnSUNBZ1lIUmhaeUFuSkh0VmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVjlKeUJwY3lCdFlXNWtZWFJ2Y25rdVlDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtTnZiSFZ0Ymk1MFlXZHpMbWhoY3loVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEVselRYVnNkR2xqYUdGeUtTa2dlMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVhWE5JWld4dEtDa3BYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSbTl5SUdOdmJIVnRiaUFuSkh0MGFHbHpMbU52YkhWdGJpNXVZVzFsZlNjZ2IyWWdibTkwWVhScGIyNGdKeVI3ZEdocGN5NXViM1JoZEdsdmJuMG5JR0FnSzF4dUlDQWdJQ0FnSUNBZ0lHQjBZV2NnSnlSN1ZXNXBkSE5JWVc1a2JHVnlMbFJCUjFNdVlXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNuMG5JR2x6SUcxaGJtUmhkRzl5ZVM1Z0tUdGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tGc25WVTRuWFM1cGJtTnNkV1JsY3loMGFHbHpMbUZzY0doaFltVjBLU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JHYjNJZ1kyOXNkVzF1SUNja2UzUm9hWE11WTI5c2RXMXVMbTVoYldWOUp5QnZaaUJoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2NnWUNBclhHNGdJQ0FnSUNBZ0lDQWdZSFJoWnlBbkpIdFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlmU2NnYVhNZ2JXRnVaR0YwYjNKNUxtQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dWZWeHVJbDE5IiwiLy8gRGF0YSBzdHJ1Y3R1cmVzIGZvciBWLURvbWFpbiByZWdpb25zIG9mIGFudGlib2RpZXNcbmV4cG9ydCB2YXIgVmRSZWdpb25UeXBlO1xuKGZ1bmN0aW9uIChWZFJlZ2lvblR5cGUpIHtcbiAgICBWZFJlZ2lvblR5cGVbXCJVbmtub3duXCJdID0gXCJ1bmtub3duXCI7XG4gICAgVmRSZWdpb25UeXBlW1wiRlJcIl0gPSBcImZyYW1ld29ya1wiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkNEUlwiXSA9IFwiY2RyXCI7XG59KShWZFJlZ2lvblR5cGUgfHwgKFZkUmVnaW9uVHlwZSA9IHt9KSk7XG4vKiogRGVzY3JpYmVzIFYtRE9NQUlOIChJRyBhbmQgVFIpIHJlZ2lvbiAob2YgbXVsdGlwbGUgYWxpZ25tZW50KVxuICogaHR0cHM6Ly93d3cuaW1ndC5vcmcvSU1HVFNjaWVudGlmaWNDaGFydC9OdW1iZXJpbmcvSU1HVElHVkxzdXBlcmZhbWlseS5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBWZFJlZ2lvbiB7XG4gICAgLyoqXG4gICAgICogc3RhcnQgYW5kIHBvc2l0aW9uIGFyZSBzdHJpbmdzIGJlY2F1c2UgdGhleSBjb3JyZXNwb25kIHRvIHBvc2l0aW9uIG5hbWVzIGFzIGNvbHVtbiBuYW1lcyBpbiBBTkFSQ0kgb3V0cHV0XG4gICAgICogQHBhcmFtIHtWZFJlZ2lvblR5cGV9IHR5cGUgIFR5cGUgb2YgdGhlIHJlZ2lvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lICBOYW1lIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhaW5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3JkZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25TdGFydE5hbWUgIFJlZ2lvbiBzdGFydCBwb3NpdGlvbiAoaW5jbHVzaXZlKVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwb3NpdGlvbkVuZE5hbWUgIFJlZ2lvbiBlbmQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBuYW1lLCBjaGFpbiwgb3JkZXIsIHBvc2l0aW9uU3RhcnROYW1lLCBwb3NpdGlvbkVuZE5hbWUpIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5jaGFpbiA9IGNoYWluO1xuICAgICAgICB0aGlzLm9yZGVyID0gb3JkZXI7XG4gICAgICAgIHRoaXMucG9zaXRpb25TdGFydE5hbWUgPSBwb3NpdGlvblN0YXJ0TmFtZTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbkVuZE5hbWUgPSBwb3NpdGlvbkVuZE5hbWU7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZG1RdGNtVm5hVzl1Y3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblprTFhKbFoybHZibk11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNjVVJCUVhGRU8wRkJSWEpFTEUxQlFVMHNRMEZCVGl4SlFVRlpMRmxCU1ZnN1FVRktSQ3hYUVVGWkxGbEJRVms3U1VGRGRFSXNiVU5CUVcxQ0xFTkJRVUU3U1VGRGJrSXNaME5CUVdkQ0xFTkJRVUU3U1VGRGFFSXNNa0pCUVZjc1EwRkJRVHRCUVVOaUxFTkJRVU1zUlVGS1Z5eFpRVUZaTEV0QlFWb3NXVUZCV1N4UlFVbDJRanRCUVVWRU96dEhRVVZITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRkZCUVZFN1NVRlJia0k3T3pzN096czdPMDlCVVVjN1NVRkRTQ3haUVVGWkxFbEJRV3RDTEVWQlFVVXNTVUZCV1N4RlFVRkZMRXRCUVdFc1JVRkJSU3hMUVVGaExFVkJRM2hGTEdsQ1FVRjVRaXhGUVVGRkxHVkJRWFZDTzFGQlEyeEVMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEycENMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEycENMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETzFGQlEyNUNMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4cFFrRkJhVUlzUTBGQlF6dFJRVU16UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExHVkJRV1VzUTBGQlF6dEpRVU42UXl4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZMeUJFWVhSaElITjBjblZqZEhWeVpYTWdabTl5SUZZdFJHOXRZV2x1SUhKbFoybHZibk1nYjJZZ1lXNTBhV0p2WkdsbGMxeHVYRzVsZUhCdmNuUWdaVzUxYlNCV1pGSmxaMmx2YmxSNWNHVWdlMXh1SUNCVmJtdHViM2R1SUQwZ0ozVnVhMjV2ZDI0bkxGeHVJQ0JHVWlBOUlDZG1jbUZ0WlhkdmNtc25MRnh1SUNCRFJGSWdQU0FuWTJSeUp5eGNibjFjYmx4dUx5b3FJRVJsYzJOeWFXSmxjeUJXTFVSUFRVRkpUaUFvU1VjZ1lXNWtJRlJTS1NCeVpXZHBiMjRnS0c5bUlHMTFiSFJwY0d4bElHRnNhV2R1YldWdWRDbGNiaUFxSUdoMGRIQnpPaTh2ZDNkM0xtbHRaM1F1YjNKbkwwbE5SMVJUWTJsbGJuUnBabWxqUTJoaGNuUXZUblZ0WW1WeWFXNW5MMGxOUjFSSlIxWk1jM1Z3WlhKbVlXMXBiSGt1YUhSdGJGeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbVJTWldkcGIyNGdlMXh1SUNCMGVYQmxPaUJXWkZKbFoybHZibFI1Y0dVN1hHNGdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdZMmhoYVc0NklITjBjbWx1Wnp0Y2JpQWdiM0prWlhJNklHNTFiV0psY2p0Y2JpQWdjRzl6YVhScGIyNVRkR0Z5ZEU1aGJXVTZJSE4wY21sdVp6dGNiaUFnY0c5emFYUnBiMjVGYm1ST1lXMWxPaUJ6ZEhKcGJtYzdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlITjBZWEowSUdGdVpDQndiM05wZEdsdmJpQmhjbVVnYzNSeWFXNW5jeUJpWldOaGRYTmxJSFJvWlhrZ1kyOXljbVZ6Y0c5dVpDQjBieUJ3YjNOcGRHbHZiaUJ1WVcxbGN5QmhjeUJqYjJ4MWJXNGdibUZ0WlhNZ2FXNGdRVTVCVWtOSklHOTFkSEIxZEZ4dUlDQWdLaUJBY0dGeVlXMGdlMVprVW1WbmFXOXVWSGx3WlgwZ2RIbHdaU0FnVkhsd1pTQnZaaUIwYUdVZ2NtVm5hVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUNCT1lXMWxJRzltSUhSb1pTQnlaV2RwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR05vWVdsdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J2Y21SbGNseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnSUZKbFoybHZiaUJ6ZEdGeWRDQndiM05wZEdsdmJpQW9hVzVqYkhWemFYWmxLVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1RmJtUk9ZVzFsSUNCU1pXZHBiMjRnWlc1a0lIQnZjMmwwYVc5dUlDaHBibU5zZFhOcGRtVXBYRzRnSUNBcUwxeHVJQ0JqYjI1emRISjFZM1J2Y2loMGVYQmxPaUJXWkZKbFoybHZibFI1Y0dVc0lHNWhiV1U2SUhOMGNtbHVaeXdnWTJoaGFXNDZJSE4wY21sdVp5d2diM0prWlhJNklHNTFiV0psY2l4Y2JpQWdJQ0J3YjNOcGRHbHZibE4wWVhKMFRtRnRaVG9nYzNSeWFXNW5MQ0J3YjNOcGRHbHZia1Z1WkU1aGJXVTZJSE4wY21sdVp5a2dlMXh1SUNBZ0lIUm9hWE11ZEhsd1pTQTlJSFI1Y0dVN1hHNGdJQ0FnZEdocGN5NXVZVzFsSUQwZ2JtRnRaVHRjYmlBZ0lDQjBhR2x6TG1Ob1lXbHVJRDBnWTJoaGFXNDdYRzRnSUNBZ2RHaHBjeTV2Y21SbGNpQTlJRzl5WkdWeU8xeHVJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNVRkR0Z5ZEU1aGJXVWdQU0J3YjNOcGRHbHZibE4wWVhKMFRtRnRaVHRjYmlBZ0lDQjBhR2x6TG5CdmMybDBhVzl1Ulc1a1RtRnRaU0E5SUhCdmMybDBhVzl1Ulc1a1RtRnRaVHRjYmlBZ2ZWeHVmVnh1SWwxOSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgKiBhcyByeGpzIGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgdmVjdG9yTGVuZ3RoLCB2ZWN0b3JEb3RQcm9kdWN0IH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgQW1pbm9hY2lkcywgQW1pbm9hY2lkc1BhbGV0dGVzIH0gZnJvbSAnLi4vYW1pbm9hY2lkcyc7XG5pbXBvcnQgeyBOdWNsZW90aWRlcywgTnVjbGVvdGlkZXNQYWxldHRlcyB9IGZyb20gJy4uL251Y2xlb3RpZGVzJztcbmltcG9ydCB7IFVua25vd25TZXFQYWxldHRlcyB9IGZyb20gJy4uL3Vua25vd24nO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnLi4vdXRpbHMvdW5pdHMtaGFuZGxlcic7XG52YXIgUG9zaXRpb25IZWlnaHQ7XG4oZnVuY3Rpb24gKFBvc2l0aW9uSGVpZ2h0KSB7XG4gICAgUG9zaXRpb25IZWlnaHRbXCJFbnRyb3B5XCJdID0gXCJFbnRyb3B5XCI7XG4gICAgUG9zaXRpb25IZWlnaHRbXCJmdWxsXCJdID0gXCIxMDAlXCI7XG59KShQb3NpdGlvbkhlaWdodCB8fCAoUG9zaXRpb25IZWlnaHQgPSB7fSkpO1xuLyoqQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudFxuICogQHBhcmFtIHtudW1iZXJ9IHIgZGV2aWNlUGl4ZWxSYXRpb25cbiAqIEByZXR1cm4ge0RHLlBvaW50fSBjYW52YXMgcmVsYXRlZCBjdXJzb3IgcG9zaXRpb25cbiAqL1xuSFRNTENhbnZhc0VsZW1lbnQucHJvdG90eXBlLmdldEN1cnNvclBvc2l0aW9uID0gZnVuY3Rpb24gKGV2ZW50LCByKSB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgcmV0dXJuIG5ldyBERy5Qb2ludCgoZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdCkgKiByLCAoZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wKSAqIHIpO1xufTtcbkRHLlJlY3QucHJvdG90eXBlLmNvbnRhaW5zID0gZnVuY3Rpb24gKHgsIHkpIHtcbiAgICByZXR1cm4gdGhpcy5sZWZ0IDw9IHggJiYgeCA8PSB0aGlzLnJpZ2h0ICYmIHRoaXMudG9wIDw9IHkgJiYgeSA8PSB0aGlzLmJvdHRvbTtcbn07XG5leHBvcnQgY2xhc3MgUG9zaXRpb25Nb25vbWVySW5mbyB7XG4gICAgY29uc3RydWN0b3IoY291bnQgPSAwLCBib3VuZHMgPSBuZXcgREcuUmVjdCgwLCAwLCAwLCAwKSkge1xuICAgICAgICB0aGlzLmNvdW50ID0gY291bnQ7XG4gICAgICAgIHRoaXMuYm91bmRzID0gYm91bmRzO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBQb3NpdGlvbkluZm8ge1xuICAgIC8qKiBmcmVxID0ge30sIHJvd0NvdW50ID0gMFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIE5hbWUgb2YgcG9zaXRpb24gKCcxMTFBJywgJzExMS4xJywgZXRjKVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdW1Gb3JIZWlnaHRDYWxjIFN1bSBvZiBhbGwgbW9ub21lciBjb3VudHMgZm9yIGhlaWdodCBjYWxjdWxhdGlvblxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSByb3dDb3VudCBDb3VudCBvZiBlbGVtZW50cyBpbiBjb2x1bW5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBmcmVxIGZyZXF1ZW5jeSBvZiBtb25vbWVycyBpbiBwb3NpdGlvblxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG5hbWUsIGZyZXEgPSB7fSwgcm93Q291bnQgPSAwLCBzdW1Gb3JIZWlnaHRDYWxjID0gMCkge1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLmZyZXEgPSBmcmVxO1xuICAgICAgICB0aGlzLnJvd0NvdW50ID0gcm93Q291bnQ7XG4gICAgICAgIHRoaXMuc3VtRm9ySGVpZ2h0Q2FsYyA9IHN1bUZvckhlaWdodENhbGM7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFdlYkxvZ28gZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmlld2VySWQgPSAtMTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgICAgICAvLyBwcml2YXRlIHJlYWRvbmx5IGNvbG9yU2NoZW1lOiBDb2xvclNjaGVtZSA9IENvbG9yU2NoZW1lc1tOdWNsZW90aWRlc1dlYkxvZ28ucmVzaWR1ZXNTZXRdO1xuICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgdGhpcy5heGlzSGVpZ2h0ID0gMTI7XG4gICAgICAgIHRoaXMuc2VxQ29sID0gbnVsbDtcbiAgICAgICAgdGhpcy5zcGxpdHRlciA9IG51bGw7XG4gICAgICAgIC8vIHByaXZhdGUgbWF4TGVuZ3RoOiBudW1iZXIgPSAxMDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25zID0gW107XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IDA7XG4gICAgICAgIHRoaXMucm93c051bGwgPSAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gMDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gW107XG4gICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uID0gLTE7XG4gICAgICAgIHRoaXMudmlld1N1YnMgPSBbXTtcbiAgICAgICAgdGhpcy52aWV3ZXJJZCA9IFdlYkxvZ28udmlld2VyQ291bnQ7XG4gICAgICAgIFdlYkxvZ28udmlld2VyQ291bnQgKz0gMTtcbiAgICAgICAgdGhpcy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoID0gdGhpcy5mbG9hdCgncG9zaXRpb25XaWR0aCcsIDE2IC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDQsIG1heDogNjQsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLm1pbkhlaWdodCA9IHRoaXMuZmxvYXQoJ21pbkhlaWdodCcsIDUwIC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDI1LCBtYXg6IDI1MCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMubWF4SGVpZ2h0ID0gdGhpcy5mbG9hdCgnbWF4SGVpZ2h0JywgMTAwIC8qLFxuICAgICAgICAgIHtlZGl0b3I6ICdzbGlkZXInLCBtaW46IDI1LCBtYXg6IDUwMCwgcG9zdGZpeDogJ3B4J30qLyk7XG4gICAgICAgIHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzID0gdGhpcy5ib29sKCdjb25zaWRlck51bGxTZXF1ZW5jZXMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zdHJpbmcoJ3NlcXVlbmNlQ29sdW1uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb25OYW1lID0gdGhpcy5zdHJpbmcoJ3N0YXJ0UG9zaXRpb25OYW1lJywgbnVsbCk7XG4gICAgICAgIHRoaXMuZW5kUG9zaXRpb25OYW1lID0gdGhpcy5zdHJpbmcoJ2VuZFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmZpeFdpZHRoID0gdGhpcy5ib29sKCdmaXhXaWR0aCcsIGZhbHNlKTtcbiAgICAgICAgdGhpcy52ZXJ0aWNhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCd2ZXJ0aWNhbEFsaWdubWVudCcsICdtaWRkbGUnLCB7IGNob2ljZXM6IFsndG9wJywgJ21pZGRsZScsICdib3R0b20nXSB9KTtcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50ID0gdGhpcy5zdHJpbmcoJ2hvcml6b250YWxBbGlnbm1lbnQnLCAnY2VudGVyJywgeyBjaG9pY2VzOiBbJ2xlZnQnLCAnY2VudGVyJywgJ3JpZ2h0J10gfSk7XG4gICAgICAgIHRoaXMuZml0QXJlYSA9IHRoaXMuYm9vbCgnZml0QXJlYScsIHRydWUpO1xuICAgICAgICB0aGlzLnNocmlua0VtcHR5VGFpbCA9IHRoaXMuYm9vbCgnc2hyaW5rRW1wdHlUYWlsJywgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zID0gdGhpcy5ib29sKCdza2lwRW1wdHlQb3NpdGlvbnMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9IHRoaXMuc3RyaW5nKCdwb3NpdGlvbk1hcmdpblN0YXRlJywgJ2F1dG8nLCB7IGNob2ljZXM6IFsnYXV0bycsICdlbmFibGUnLCAnb2ZmJ10gfSk7XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWVGb3JQb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPT09ICdhdXRvJykge1xuICAgICAgICAgICAgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSA0O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucG9zaXRpb25NYXJnaW4gPSB0aGlzLmludCgncG9zaXRpb25NYXJnaW4nLCBkZWZhdWx0VmFsdWVGb3JQb3NpdGlvbk1hcmdpbiwgeyBtaW46IDAsIG1heDogMTYgfSk7XG4gICAgICAgIHRoaXMucG9zaXRpb25IZWlnaHQgPSB0aGlzLnN0cmluZygncG9zaXRpb25IZWlnaHQnLCBQb3NpdGlvbkhlaWdodC5mdWxsLCB7IGNob2ljZXM6IFtQb3NpdGlvbkhlaWdodC5mdWxsLCBQb3NpdGlvbkhlaWdodC5FbnRyb3B5XSB9KTtcbiAgICB9XG4gICAgLyoqIEZvciBzdGFydFBvc2l0aW9uIGVxdWFscyB0byBlbmRQb3NpdGlvbiBMZW5ndGggaXMgMSAqL1xuICAgIGdldCBMZW5ndGgoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb25zLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDA7XG4gICAgfVxuICAgIGdldCBwb3NpdGlvbldpZHRoV2l0aE1hcmdpbigpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2F1dG8nKSAmJiAoKChfYSA9IHRoaXMudW5pdHNIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0QWxwaGFiZXRJc011bHRpY2hhcigpKSA9PT0gdHJ1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbldpZHRoICsgdGhpcy5wb3NpdGlvbk1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnZW5hYmxlJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uV2lkdGggKyB0aGlzLnBvc2l0aW9uTWFyZ2luO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbldpZHRoO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdXZWJMb2dvIHNlY29uZCBpbml0aWFsaXphdGlvbiEnKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaGVscFVybCA9ICcvaGVscC92aXN1YWxpemUvdmlld2Vycy93ZWItbG9nby5tZCc7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1aS5kaXYoJ05vIG1lc3NhZ2UnKTtcbiAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSB1aS5jYW52YXMoKTtcbiAgICAgICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgdGhpcy5ob3N0ID0gdWkuZGl2KFt0aGlzLm1zZ0hvc3QsIHRoaXMuY2FudmFzXSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlciA9IHVpLnJhbmdlU2xpZGVyKDAsIDIwLCAyLCA1KTtcbiAgICAgICAgICAgIC8vIHRoaXMuc2xpZGVyLnJvb3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLmhlaWdodCA9ICcxMnB4JztcbiAgICAgICAgICAgIGNvbnN0IGdldE1vbm9tZXIgPSAocCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGpQb3MgPSBNYXRoLmZsb29yKHAueCAvIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbnNbalBvc107XG4gICAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uID09PSB2b2lkIDApXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbnVsbCwgbnVsbF07XG4gICAgICAgICAgICAgICAgY29uc3QgbW9ub21lciA9IE9iamVjdC5rZXlzKHBvc2l0aW9uLmZyZXEpXG4gICAgICAgICAgICAgICAgICAgIC5maW5kKChtKSA9PiBwb3NpdGlvbi5mcmVxW21dLmJvdW5kcy5jb250YWlucyhwLngsIHAueSkpO1xuICAgICAgICAgICAgICAgIGlmIChtb25vbWVyID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbnVsbCwgbnVsbF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtqUG9zLCBtb25vbWVyLCBwb3NpdGlvbi5mcmVxW21vbm9tZXJdXTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyB0aGlzLnN1YnMucHVzaChyeGpzLmZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmNhbnZhcywgJ21vdXNlb3ZlcicpLnN1YnNjcmliZSgoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgLy8gfSkpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnbW91c2Vtb3ZlJykuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhbnZhcylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQID0gdGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcik7XG4gICAgICAgICAgICAgICAgY29uc3QgW2pQb3MsIG1vbm9tZXJdID0gZ2V0TW9ub21lcihjdXJzb3JQKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5zZXFDb2wgJiYgdGhpcy5zcGxpdHRlciAmJiBtb25vbWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd0NvdW50ID0gd3UuY291bnQoKS50YWtlKHRoaXMuZGF0YUZyYW1lLnJvd0NvdW50KS5maWx0ZXIoKGlSb3cpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuc2VxQ29sLmdldChpUm93KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlcU0gPSBzZXEgPyB0aGlzLnNwbGl0dGVyKHNlcSlbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc10gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoc2VxTSA9PT0gbW9ub21lcikgfHwgKHNlcU0gPT09ICcnICYmIG1vbm9tZXIgPT09ICctJykpICYmIHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXQoaVJvdyk7XG4gICAgICAgICAgICAgICAgICAgIH0pLnJlZHVjZSgoY291bnQsIGlSb3cpID0+IGNvdW50ICsgMSwgMCk7XG4gICAgICAgICAgICAgICAgICAgIHVpLnRvb2x0aXAuc2hvdyh1aS5kaXYoW3VpLmRpdihgJHttb25vbWVyfWApLCB1aS5kaXYoYCR7cm93Q291bnR9IHJvd3NgKV0pLCBhcmdzLnggKyAxNiwgYXJncy55ICsgMTYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdWkudG9vbHRpcC5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHJ4anMuZnJvbUV2ZW50KHRoaXMuY2FudmFzLCAnbW91c2Vkb3duJykuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCBlLmJ1dHRvbiAhPSAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgYXJncyA9IGU7XG4gICAgICAgICAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIodGhpcy5jYW52YXMuZ2V0Q3Vyc29yUG9zaXRpb24oYXJncywgcikpO1xuICAgICAgICAgICAgICAgIC8vIHByZXZlbnRzIGRlc2VsZWN0IGFsbCByb3dzIGlmIHdlIG1pc3MgbW9ub21lciBib3VuZHNcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgdGhpcy5zZXFDb2wgJiYgdGhpcy5zcGxpdHRlciAmJiBtb25vbWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5pbml0KChpUm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLnZpZXdTdWJzLnB1c2godWkub25TaXplQ2hhbmdlZCh0aGlzLnJvb3QpLnN1YnNjcmliZSh0aGlzLnJvb3RPblNpemVDaGFuZ2VkLmJpbmQodGhpcykpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmQodGhpcy5ob3N0KTtcbiAgICAgICAgICAgIC8vIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnNsaWRlci5yb290KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJncykge1xuICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5vblJvb3RTaXplQ2hhbmdlZCgpIGAgK1xuICAgICAgICAvLyAgIGByb290LndpZHRoPSR7dGhpcy5yb290LmNsaWVudFdpZHRofSwgcm9vdC5oZWlnaHQ9JHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fSwgYCArXG4gICAgICAgIC8vICAgYGNhbnZhcy53aWR0aD0ke3RoaXMuY2FudmFzLndpZHRofSwgY2FudmFzLmhlaWdodD0ke3RoaXMuY2FudmFzLmhlaWdodH0gLmApO1xuICAgIH1cbiAgICAvKiogQXNzaWducyB7QGxpbmsgc2VxQ29sfSBhbmQge0BsaW5rIGNwfSBiYXNlZCBvbiB7QGxpbmsgc2VxdWVuY2VDb2x1bW5OYW1lfSBhbmQgY2FsbHMge0BsaW5rIHJlbmRlcn0oKS5cbiAgICAgKi9cbiAgICB1cGRhdGVTZXFDb2woKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSkge1xuICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA/IHRoaXMuZGF0YUZyYW1lLmNvbCh0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSkgOiBudWxsO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcUNvbCA9IFdlYkxvZ28ucGlja1VwU2VxQ29sMih0aGlzLmRhdGFGcmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPSB0aGlzLnNlcUNvbCA/IHRoaXMuc2VxQ29sLm5hbWUgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdW5pdHMgPSB0aGlzLnNlcUNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5zZXFDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3AgPSBXZWJMb2dvLnBpY2tVcFBhbGV0dGUodGhpcy5zZXFDb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zcGxpdHRlciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gLTE7XG4gICAgICAgICAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuY3AgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfVxuICAgIHVwZGF0ZVBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlcUNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgbGV0IGNhdGVnb3JpZXM7XG4gICAgICAgIGlmICh0aGlzLnNocmlua0VtcHR5VGFpbCkge1xuICAgICAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSBBcnJheS5mcm9tKG5ldyBTZXQoQXJyYXkuZnJvbShBcnJheShpbmRpY2VzLmxlbmd0aCkua2V5cygpKS5tYXAoKGkpID0+IHRoaXMuc2VxQ29sLmdldChpbmRpY2VzW2ldKSkpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhdGVnb3JpZXMgPSB0aGlzLnNlcUNvbC5jYXRlZ29yaWVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IE1hdGgubWF4KC4uLmNhdGVnb3JpZXMubWFwKChzKSA9PiBzICE9PSBudWxsID8gdGhpcy5zcGxpdHRlcihzKS5sZW5ndGggOiAwKSkgOiAwO1xuICAgICAgICAvLyBHZXQgcG9zaXRpb24gbmFtZXMgZnJvbSBkYXRhIGNvbHVtbiB0YWcgJ3Bvc2l0aW9uTmFtZXMnXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uTmFtZXNUeHQgPSB0aGlzLnNlcUNvbC5nZXRUYWcoJ3Bvc2l0aW9uTmFtZXMnKTtcbiAgICAgICAgLy8gRmFsbGJhY2sgaWYgJ3Bvc2l0aW9uTmFtZXMnIHRhZyBpcyBub3QgcHJvdmlkZWRcbiAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzID0gcG9zaXRpb25OYW1lc1R4dCA/IHBvc2l0aW9uTmFtZXNUeHQuc3BsaXQoJywgJykubWFwKChuKSA9PiBuLnRyaW0oKSkgOlxuICAgICAgICAgICAgWy4uLkFycmF5KG1heExlbmd0aCkua2V5cygpXS5tYXAoKGpQb3MpID0+IGAke2pQb3MgKyAxfWApO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAodGhpcy5zdGFydFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLnN0YXJ0UG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5zdGFydFBvc2l0aW9uTmFtZSkgOiAwO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uID0gKHRoaXMuZW5kUG9zaXRpb25OYW1lICYmIHRoaXMucG9zaXRpb25OYW1lcyAmJlxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluY2x1ZGVzKHRoaXMuZW5kUG9zaXRpb25OYW1lKSkgP1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbk5hbWVzLmluZGV4T2YodGhpcy5lbmRQb3NpdGlvbk5hbWUpIDogKG1heExlbmd0aCAtIDEpO1xuICAgIH1cbiAgICBvblByb3BlcnR5Q2hhbmdlZChwcm9wZXJ0eSkge1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvLm9uUHJvcGVydHlDaGFuZ2VkKCAke3Byb3BlcnR5Lm5hbWV9ID0gJycgfSlgKTtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpO1xuICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NvbnNpZGVyTnVsbFNlcXVlbmNlcyc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZXF1ZW5jZUNvbHVtbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzdGFydFBvc2l0aW9uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2VuZFBvc2l0aW9uTmFtZSc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uV2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuX3Bvc2l0aW9uV2lkdGggPSB0aGlzLnBvc2l0aW9uV2lkdGg7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtaW5IZWlnaHQnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWF4SGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpeFdpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3ZlcnRpY2FsQWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2hvcml6b250YWxBbGlnbm1lbnQnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZml0QXJlYSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzaHJpbmtFbXB0eVRhaWwnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdza2lwRW1wdHlQb3NpdGlvbnMnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbk1hcmdpbic6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbk1hcmdpblN0YXRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uSGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgICAgICAgb25UYWJsZUF0dGFjaGVkOiB7IGdldDogKCkgPT4gc3VwZXIub25UYWJsZUF0dGFjaGVkIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhRnJhbWVUeHQgPSB0aGlzLmRhdGFGcmFtZSA/ICdkYXRhJyA6ICdudWxsJztcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoIGRhdGFGcmFtZSA9ICR7ZGF0YUZyYW1lVHh0fSApIHN0YXJ0YCk7XG4gICAgICAgICAgICBfc3VwZXIub25UYWJsZUF0dGFjaGVkLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24ub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4gdGhpcy5yZW5kZXIoKSkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vicy5wdXNoKHRoaXMuZGF0YUZyYW1lLmZpbHRlci5vbkNoYW5nZWQuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgdGhpcy5pbml0KCk7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCkgZW5kYCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBkZXRhY2goKSB7XG4gICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgICAgICAgZGV0YWNoOiB7IGdldDogKCkgPT4gc3VwZXIuZGV0YWNoIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhRnJhbWVUeHQgPSBgJHt0aGlzLmRhdGFGcmFtZSA/ICdkYXRhJyA6ICdudWxsJ31gO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCggZGF0YUZyYW1lID0gJHtkYXRhRnJhbWVUeHR9ICkgc3RhcnRgKTtcbiAgICAgICAgICAgIF9zdXBlci5kZXRhY2guY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgICAgICB0aGlzLmhvc3QucmVtb3ZlKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubXNnSG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoKSBlbmRgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIF9udWxsU2VxdWVuY2UoZmlsbGVyUmVzaWR1ZSA9ICdYJykge1xuICAgICAgICBpZiAodGhpcy5jb25zaWRlck51bGxTZXF1ZW5jZXMpXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5KHRoaXMuTGVuZ3RoKS5maWxsKGZpbGxlclJlc2lkdWUpLmpvaW4oJycpO1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJlbW92ZVdoZXJlKGFycmF5LCBwcmVkaWNhdGUpIHtcbiAgICAgICAgbGV0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcbiAgICAgICAgbGV0IHVwZGF0ZUl0ZXJhdG9yID0gMDtcbiAgICAgICAgZm9yIChsZXQgZGVsZXRlSXRlcmF0b3IgPSAwOyBkZWxldGVJdGVyYXRvciA8IGxlbmd0aDsgZGVsZXRlSXRlcmF0b3IrKykge1xuICAgICAgICAgICAgaWYgKCFwcmVkaWNhdGUoYXJyYXlbZGVsZXRlSXRlcmF0b3JdKSkge1xuICAgICAgICAgICAgICAgIGFycmF5W3VwZGF0ZUl0ZXJhdG9yXSA9IGFycmF5W2RlbGV0ZUl0ZXJhdG9yXTtcbiAgICAgICAgICAgICAgICB1cGRhdGVJdGVyYXRvcisrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFycmF5Lmxlbmd0aCA9IHVwZGF0ZUl0ZXJhdG9yO1xuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuICAgIF9yZW1vdmVFbXB0eVBvc2l0aW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZVdoZXJlKHRoaXMucG9zaXRpb25zLCBpdGVtID0+IHsgdmFyIF9hOyByZXR1cm4gKChfYSA9IGl0ZW0gPT09IG51bGwgfHwgaXRlbSA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlbS5mcmVxWyctJ10pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb3VudCkgPT09IGl0ZW0ucm93Q291bnQ7IH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIF9jYWxjdWxhdGUocikge1xuICAgICAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLmhvc3QgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy51bml0c0hhbmRsZXIgPSBuZXcgVW5pdHNIYW5kbGVyKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IG5ldyBBcnJheSh0aGlzLnN0YXJ0UG9zaXRpb24gPD0gdGhpcy5lbmRQb3NpdGlvbiA/IHRoaXMuZW5kUG9zaXRpb24gLSB0aGlzLnN0YXJ0UG9zaXRpb24gKyAxIDogMCk7XG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zTmFtZSA9IHRoaXMucG9zaXRpb25OYW1lc1t0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXTtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdID0gbmV3IFBvc2l0aW9uSW5mbyhwb3NOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvLyAyMDIyLTA1LTA1IGFza2Fsa2luIGluc3RydWN0ZWQgdG8gc2hvdyBXZWJMb2dvIGJhc2VkIG9uIGZpbHRlciAobm90IHNlbGVjdGlvbilcbiAgICAgICAgY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLmZpbHRlci5nZXRTZWxlY3RlZEluZGV4ZXMoKTtcbiAgICAgICAgLy8gY29uc3QgaW5kaWNlcyA9IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi50cnVlQ291bnQgPiAwID8gdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLmdldFNlbGVjdGVkSW5kZXhlcygpIDpcbiAgICAgICAgLy8gICB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIHRoaXMucm93c01hc2tlZCA9IGluZGljZXMubGVuZ3RoO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgZm9yIChjb25zdCBpIG9mIGluZGljZXMpIHtcbiAgICAgICAgICAgIGxldCBzID0gKHRoaXMuc2VxQ29sLmdldChpKSk7XG4gICAgICAgICAgICBpZiAoIXMpIHtcbiAgICAgICAgICAgICAgICBzID0gdGhpcy5fbnVsbFNlcXVlbmNlKCk7XG4gICAgICAgICAgICAgICAgKyt0aGlzLnJvd3NOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHRoaXMuc3BsaXR0ZXIocyk7XG4gICAgICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwbUluZm8gPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBzZXFNW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIHx8ICctJztcbiAgICAgICAgICAgICAgICBpZiAoIShtIGluIHBtSW5mbykpXG4gICAgICAgICAgICAgICAgICAgIHBtSW5mb1ttXSA9IG5ldyBQb3NpdGlvbk1vbm9tZXJJbmZvKCk7XG4gICAgICAgICAgICAgICAgcG1JbmZvW21dLmNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8jcmVnaW9uIFBvbGlzaCBmcmVxIGNvdW50c1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIC8vIGRlbGV0ZSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxWyctJ107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSlcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudCArPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxW21dLmNvdW50O1xuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMgPSAwO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBpbiB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBuID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudCAvIHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjICs9IC1wbiAqIE1hdGgubG9nMihwbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgICAgICB0aGlzLl9yZW1vdmVFbXB0eVBvc2l0aW9ucygpO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZU1heEhlaWdodCA9IHRoaXMuY2FudmFzLmhlaWdodCAtIHRoaXMuYXhpc0hlaWdodCAqIHI7XG4gICAgICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4uX2NhbGN1bGF0ZSgpIG1heEhlaWdodD0ke21heEhlaWdodH0uYCk7XG4gICAgICAgIC8vI3JlZ2lvbiBDYWxjdWxhdGUgc2NyZWVuXG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgZnJlcSA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXE7XG4gICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHRoaXMucG9zaXRpb25zW2pQb3NdLnJvd0NvdW50O1xuICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRTaXplID0gdGhpcy5nZXRBbHBoYWJldFNpemUoKTtcbiAgICAgICAgICAgIGlmICgodGhpcy5wb3NpdGlvbkhlaWdodCA9PSBQb3NpdGlvbkhlaWdodC5FbnRyb3B5KSAmJiAoYWxwaGFiZXRTaXplID09IG51bGwpKSB7XG4gICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignV2ViTG9nbzogYWxwaGFiZXQgaXMgdW5kZWZpbmVkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgPyAoYWJzb2x1dGVNYXhIZWlnaHQgKiAoTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkgLSAodGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYykpIC8gTWF0aC5sb2cyKGFscGhhYmV0U2l6ZSkpIDogYWJzb2x1dGVNYXhIZWlnaHQ7XG4gICAgICAgICAgICBsZXQgeSA9IHRoaXMuYXhpc0hlaWdodCAqIHIgKyAoYWJzb2x1dGVNYXhIZWlnaHQgLSBtYXhIZWlnaHQgLSAxKTtcbiAgICAgICAgICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhmcmVxKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFbMF0gIT09ICctJyAmJiBiWzBdICE9PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiWzFdLmNvdW50IC0gYVsxXS5jb3VudDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScgJiYgYlswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChhWzBdID09PSAnLScpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgICAgICAgICBlbHNlIC8qIChiWzBdID09PSAnLScpICovXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiArMTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbTogc3RyaW5nID0gZW50cnlbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaCA9IG1heEhlaWdodCAqIHBtSW5mby5jb3VudCAvIHJvd0NvdW50O1xuICAgICAgICAgICAgICAgIHBtSW5mby5ib3VuZHMgPSBuZXcgREcuUmVjdChqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiwgeSwgdGhpcy5fcG9zaXRpb25XaWR0aCwgaCk7XG4gICAgICAgICAgICAgICAgeSArPSBoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvblxuICAgIH1cbiAgICAvLyByZWZsZWN0IGNoYW5nZXMgbWFkZSB0byBmaWx0ZXIvc2VsZWN0aW9uXG4gICAgcmVuZGVyKHJlY2FsYyA9IHRydWUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAodGhpcy5tc2dIb3N0KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXFDb2wgJiYgIXRoaXMuY3ApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ0hvc3QuaW5uZXJUZXh0ID0gYFVua25vd24gcGFsZXR0ZSAoY29sdW1uIHNlbVR5cGU6ICcke3RoaXMuc2VxQ29sLnNlbVR5cGV9JykuYDtcbiAgICAgICAgICAgICAgICB0aGlzLm1zZ0hvc3Quc3R5bGUuZGlzcGxheSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5zZXFDb2wgfHwgIXRoaXMuZGF0YUZyYW1lIHx8ICF0aGlzLmNwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBnID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgICAgaWYgKCFnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgIGlmIChyZWNhbGMpXG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGUocik7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnd2hpdGUnO1xuICAgICAgICBnLmZpbGxSZWN0KDAsIDAsIHRoaXMuY2FudmFzLndpZHRoLCB0aGlzLmNhbnZhcy5oZWlnaHQpO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9IHRoaXMudGV4dEJhc2VsaW5lO1xuICAgICAgICAvLyBQcmV2ZW50cyBkaXZpc2lvbiBieSB6ZXJvIG9uIExlbmd0aCA9IDBcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRQb3NpdGlvbiA9PT0gLTEgfHwgdGhpcy5lbmRQb3NpdGlvbiA9PT0gLTEpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8vI3JlZ2lvbiBQbG90IHBvc2l0aW9uTmFtZXNcbiAgICAgICAgY29uc3QgcG9zaXRpb25Gb250U2l6ZSA9IDEwICogcjtcbiAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9ICdibGFjayc7XG4gICAgICAgIGcudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgIGcuZm9udCA9IGAke3Bvc2l0aW9uRm9udFNpemUudG9GaXhlZCgxKX1weCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZmA7XG4gICAgICAgIGNvbnN0IHBvc05hbWVNYXhXaWR0aCA9IE1hdGgubWF4KC4uLnRoaXMucG9zaXRpb25zLm1hcCgocG9zKSA9PiBnLm1lYXN1cmVUZXh0KHBvcy5uYW1lKS53aWR0aCkpO1xuICAgICAgICBjb25zdCBoU2NhbGUgPSBwb3NOYW1lTWF4V2lkdGggPCAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpID8gMSA6ICh0aGlzLl9wb3NpdGlvbldpZHRoIC0gMikgLyBwb3NOYW1lTWF4V2lkdGg7XG4gICAgICAgIGZvciAobGV0IGpQb3MgPSAwOyBqUG9zIDwgdGhpcy5MZW5ndGg7IGpQb3MrKykge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5wb3NpdGlvbnNbalBvc107XG4gICAgICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgICAgICBnLnNldFRyYW5zZm9ybShoU2NhbGUsIDAsIDAsIDEsIGpQb3MgKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luICsgdGhpcy5fcG9zaXRpb25XaWR0aCAvIDIsIDApO1xuICAgICAgICAgICAgZy5maWxsVGV4dChwb3MubmFtZSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8jZW5kcmVnaW9uIFBsb3QgcG9zaXRpb25OYW1lc1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW21vbm9tZXIsIHBtSW5mb10gb2YgT2JqZWN0LmVudHJpZXModGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciAhPT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJUeHQgPSBXZWJMb2dvLm1vbm9tZXJUb1RleHQobW9ub21lcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGIgPSBwbUluZm8uYm91bmRzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmb250U3R5bGUgPSAnMTZweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZic7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhhY2tzIHRvIHNjYWxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIHRvIHRhcmdldCByZWN0YW5nbGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVyQXNjZW50ID0gMC4yNTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXBwZXJjYXNlTGV0dGVySGVpZ2h0ID0gMTIuMjtcbiAgICAgICAgICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgICAgICAgICBnLnN0cm9rZVN0eWxlID0gJ2xpZ2h0Z3JheSc7XG4gICAgICAgICAgICAgICAgICAgIGcubGluZVdpZHRoID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZy5yZWN0KGIubGVmdCwgYi50b3AsIGIud2lkdGgsIGIuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgZy5maWxsU3R5bGUgPSAoX2EgPSB0aGlzLmNwLmdldChtb25vbWVyKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdGhpcy5jcC5nZXQoJ290aGVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGcudGV4dEFsaWduID0gJ2xlZnQnO1xuICAgICAgICAgICAgICAgICAgICBnLmZvbnQgPSBmb250U3R5bGU7XG4gICAgICAgICAgICAgICAgICAgIC8vZy5maWxsUmVjdChiLmxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1UbSA9IGcubWVhc3VyZVRleHQobW9ub21lclR4dCk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGlmIChtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCAhPSAwKVxuICAgICAgICAgICAgICAgICAgICAvLyAgIGNvbnNvbGUuZGVidWcoYG06ICR7bX0sIG1NLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50OiAke21NLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50fWApO1xuICAgICAgICAgICAgICAgICAgICBnLnNldFRyYW5zZm9ybShiLndpZHRoIC8gbVRtLndpZHRoLCAwLCAwLCBiLmhlaWdodCAvIHVwcGVyY2FzZUxldHRlckhlaWdodCwgYi5sZWZ0LCBiLnRvcCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFRleHQobW9ub21lclR4dCwgMCwgLXVwcGVyY2FzZUxldHRlckFzY2VudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FudmFzIHx8ICF0aGlzLmhvc3QpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgbGV0IHdpZHRoID0gdGhpcy5MZW5ndGggKiB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luIC8gcjtcbiAgICAgICAgbGV0IGhlaWdodCA9IE1hdGgubWluKHRoaXMubWF4SGVpZ2h0LCBNYXRoLm1heCh0aGlzLm1pbkhlaWdodCwgdGhpcy5yb290LmNsaWVudEhlaWdodCkpO1xuICAgICAgICBpZiAodGhpcy5maXRBcmVhKSB7XG4gICAgICAgICAgICBjb25zdCB4U2NhbGUgPSB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC8gaGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgeVNjYWxlID0gdGhpcy5yb290LmNsaWVudFdpZHRoIC8gd2lkdGg7XG4gICAgICAgICAgICBjb25zdCBzY2FsZSA9IE1hdGgubWF4KDEsIE1hdGgubWluKHhTY2FsZSwgeVNjYWxlKSk7XG4gICAgICAgICAgICB3aWR0aCA9IHdpZHRoICogc2NhbGU7XG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgKiBzY2FsZTtcbiAgICAgICAgICAgIHRoaXMuX3Bvc2l0aW9uV2lkdGggPSB0aGlzLnBvc2l0aW9uV2lkdGggKiBzY2FsZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhbnZhcy53aWR0aCA9IHdpZHRoICogcjtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XG4gICAgICAgIC8vIGNvbnN0IGNhbnZhc0hlaWdodDogbnVtYmVyID0gd2lkdGggPiB0aGlzLnJvb3QuY2xpZW50V2lkdGggPyBoZWlnaHQgLSA4IDogaGVpZ2h0O1xuICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xuICAgICAgICBjb25zdCBjYW52YXNIZWlnaHQgPSB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLmNhbnZhcy5oZWlnaHQgPSBjYW52YXNIZWlnaHQgKiByO1xuICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7Y2FudmFzSGVpZ2h0fXB4YCk7XG4gICAgICAgIC8vIEFkanVzdCBob3N0IGFuZCByb290IHdpZHRoXG4gICAgICAgIGlmICh0aGlzLmZpeFdpZHRoKSB7XG4gICAgICAgICAgICAvLyBmdWxsIHdpZHRoIGZvciBjYW52YXMgaG9zdCBhbmQgcm9vdFxuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLndpZHRoID0gdGhpcy5ob3N0LnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93JywgJ2hpZGRlbicsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIGFsbG93IHNjcm9sbCBjYW52YXMgaW4gcm9vdFxuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLndpZHRoID0gdGhpcy5ob3N0LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLm92ZXJmbG93WCA9ICdhdXRvIWltcG9ydGFudCc7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93JywgbnVsbCk7XG4gICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ3RleHQtYWxpZ24nLCB0aGlzLmhvcml6b250YWxBbGlnbm1lbnQpO1xuICAgICAgICAgICAgLy8gdmVydGljYWwgYWxpZ25tZW50XG4gICAgICAgICAgICBsZXQgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMudmVydGljYWxBbGlnbm1lbnQpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgICAgICBob3N0VG9wTWFyZ2luID0gMDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnbWlkZGxlJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsICh0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IC0gaGVpZ2h0KSAvIDIpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICAgICAgICAgICAgICBob3N0VG9wTWFyZ2luID0gTWF0aC5tYXgoMCwgdGhpcy5yb290LmNsaWVudEhlaWdodCAtIGhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdtYXJnaW4tdG9wJywgYCR7aG9zdFRvcE1hcmdpbn1weGAsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QuY2xpZW50SGVpZ2h0IDwgaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fXB4YCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3R5bGUuc2V0UHJvcGVydHkoJ292ZXJmbG93LXknLCAnaGlkZGVuJywgJ2ltcG9ydGFudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUuZGVidWcoXG4gICAgICAgIC8vICAgYHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSAke3RoaXMucm9vdC5zdHlsZS5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMucm9vdC5jbGllbnRIZWlnaHQgPSAke3RoaXMucm9vdC5jbGllbnRIZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuaG9zdC5zdHlsZS5oZWlnaHQgPSAke3RoaXMuaG9zdC5zdHlsZS5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuaG9zdC5jbGllbnRIZWlnaHQgPSAke3RoaXMuaG9zdC5jbGllbnRIZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgJ1xcbicgK1xuICAgICAgICAvLyAgIGB0aGlzLmNhbnZhcy5oZWlnaHQgICAgICAgPSAke3RoaXMuY2FudmFzLmhlaWdodH1cXG5gICtcbiAgICAgICAgLy8gICBgdGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLmNhbnZhcy5zdHlsZS5oZWlnaHR9YCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7REcuQ29sdW1ufSBzZXFDb2wgQ29sdW1uIHRvIGxvb2sgZm9yIGEgcGFsZXR0ZVxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSAgbWluTGVuZ3RoIG1pbmltdW0gbGVuZ3RoIG9mIHNlcXVlbmNlIHRvIGRldGVjdCBwYWxldHRlIChlbXB0eSBzdHJpbmdzIGFyZSBhbGxvd2VkKVxuICAgICAqIEByZXR1cm4ge1NlcVBhbGV0dGV9IFBhbGV0dGUgY29ycmVzcG9uZGluZyB0byB0aGUgYWxwaGFiZXQgb2YgdGhlIHNlcXVlbmNlcyBpbiB0aGUgY29sdW1uXG4gICAgICovXG4gICAgc3RhdGljIHBpY2tVcFBhbGV0dGUoc2VxQ29sLCBtaW5MZW5ndGggPSA1KSB7XG4gICAgICAgIGxldCByZXMgPSBudWxsO1xuICAgICAgICBzd2l0Y2ggKHNlcUNvbC5zZW1UeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFtaW5vYWNpZHMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgICAgICAgICAgIHJlcyA9IEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBOdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQ6XG4gICAgICAgICAgICAgICAgcmVzID0gTnVjbGVvdGlkZXNQYWxldHRlcy5DaHJvbWF0b2dyYW07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKHNlcUNvbCwgbWluTGVuZ3RoLCBXZWJMb2dvLnNwbGl0dGVyQXNGYXN0YSk7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlcyA9IFtcbiAgICAgICAgICAgIFtuZXcgU2V0KE9iamVjdC5rZXlzKE51Y2xlb3RpZGVzLk5hbWVzKSksIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtXSxcbiAgICAgICAgICAgIFtuZXcgU2V0KE9iamVjdC5rZXlzKEFtaW5vYWNpZHMuTmFtZXMpKSwgQW1pbm9hY2lkc1BhbGV0dGVzLkdyb2tHcm91cHNdLFxuICAgICAgICBdO1xuICAgICAgICAvLyBDYWxjdWxhdGUgbGlrZWxpaG9vZHMgZm9yIGFscGhhYmV0X2NhbmRpZGF0ZXNcbiAgICAgICAgY29uc3QgYWxwaGFiZXRDYW5kaWRhdGVzU2ltID0gYWxwaGFiZXRDYW5kaWRhdGVzXG4gICAgICAgICAgICAubWFwKChjKSA9PiBXZWJMb2dvLmdldEFscGhhYmV0U2ltaWxhcml0eShzdGF0cy5mcmVxLCBjWzBdKSk7XG4gICAgICAgIGNvbnN0IG1heENvcyA9IE1hdGgubWF4KC4uLmFscGhhYmV0Q2FuZGlkYXRlc1NpbSk7XG4gICAgICAgIGlmIChtYXhDb3MgPiAwLjU1KVxuICAgICAgICAgICAgcmVzID0gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzFdO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXMgPSBVbmtub3duU2VxUGFsZXR0ZXMuQ29sb3I7XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIGdldEFscGhhYmV0U2l6ZSgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuIChfYiA9IChfYSA9IHRoaXMudW5pdHNIYW5kbGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0QWxwaGFiZXRTaXplKCkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgfVxuICAgIC8qKiBTdGF0cyBvZiBzZXF1ZW5jZXMgd2l0aCBzcGVjaWZpZWQgc3BsaXR0ZXIgZnVuYywgcmV0dXJucyB7IGZyZXEsIHNhbWVMZW5ndGggfS5cbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG1pbkxlbmd0aFxuICAgICAqIEBwYXJhbSB7U3BsaXR0ZXJGdW5jfSBzcGxpdHRlclxuICAgICAqIEByZXR1cm4geyBTZXFDb2xTdGF0cyB9LCBzYW1lTGVuZ3RoOiBib29sZWFuIH0gc3RhdHMgb2YgY29sdW1uIHNlcXVlbmNlc1xuICAgICAqL1xuICAgIHN0YXRpYyBnZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgc3BsaXR0ZXIpIHtcbiAgICAgICAgY29uc3QgZnJlcSA9IHt9O1xuICAgICAgICBsZXQgc2FtZUxlbmd0aCA9IHRydWU7XG4gICAgICAgIGxldCBmaXJzdExlbmd0aCA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3Qgc2VxIG9mIHNlcUNvbC5jYXRlZ29yaWVzKSB7XG4gICAgICAgICAgICBjb25zdCBtU2VxID0gc3BsaXR0ZXIoc2VxKTtcbiAgICAgICAgICAgIGlmIChmaXJzdExlbmd0aCA9PSBudWxsKVxuICAgICAgICAgICAgICAgIGZpcnN0TGVuZ3RoID0gbVNlcS5sZW5ndGg7XG4gICAgICAgICAgICBlbHNlIGlmIChtU2VxLmxlbmd0aCAhPT0gZmlyc3RMZW5ndGgpXG4gICAgICAgICAgICAgICAgc2FtZUxlbmd0aCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKG1TZXEubGVuZ3RoID4gbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBtIG9mIG1TZXEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEobSBpbiBmcmVxKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZyZXFbbV0gPSAwO1xuICAgICAgICAgICAgICAgICAgICBmcmVxW21dICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGZyZXE6IGZyZXEsIHNhbWVMZW5ndGg6IHNhbWVMZW5ndGggfTtcbiAgICB9XG4gICAgc3RhdGljIGdldEFscGhhYmV0U2ltaWxhcml0eShmcmVxLCBhbHBoYWJldCwgZ2FwU3ltYm9sID0gJy0nKSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBuZXcgU2V0KFsuLi5uZXcgU2V0KE9iamVjdC5rZXlzKGZyZXEpKSwgLi4uYWxwaGFiZXRdKTtcbiAgICAgICAga2V5cy5kZWxldGUoZ2FwU3ltYm9sKTtcbiAgICAgICAgY29uc3QgZnJlcUEgPSBbXTtcbiAgICAgICAgY29uc3QgYWxwaGFiZXRBID0gW107XG4gICAgICAgIGZvciAoY29uc3QgbSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBmcmVxQS5wdXNoKG0gaW4gZnJlcSA/IGZyZXFbbV0gOiAwKTtcbiAgICAgICAgICAgIGFscGhhYmV0QS5wdXNoKGFscGhhYmV0LmhhcyhtKSA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBUaGVyZSB3ZXJlIGEgZmV3IGlkZWFzOiBjaGktc3F1YXJlZCwgcGVhcnNvbiBjb3JyZWxhdGlvbiAodmFyaWFuY2U/KSwgc2NhbGFyIHByb2R1Y3QgKi9cbiAgICAgICAgY29uc3QgZnJlcVYgPSBuZXcgVmVjdG9yKGZyZXFBKTtcbiAgICAgICAgY29uc3QgYWxwaGFiZXRWID0gbmV3IFZlY3RvcihhbHBoYWJldEEpO1xuICAgICAgICByZXR1cm4gdmVjdG9yRG90UHJvZHVjdChmcmVxViwgYWxwaGFiZXRWKSAvICh2ZWN0b3JMZW5ndGgoZnJlcVYpICogdmVjdG9yTGVuZ3RoKGFscGhhYmV0VikpO1xuICAgIH1cbiAgICAvLyAvKiogRmlyc3QgdHJ5IHRvIGZpbmQgY29sdW1uIHdpdGggc2VtVHlwZSAnYWxpZ25lZFNlcXVlbmNlJy5cbiAgICAvLyAgKiBOZXh0IGxvb2sgZm9yIGNvbHVtbiB3aXRoIGRhdGEgYWxwaGFiZXQgY29ycmVzcG9uZGluZyB0byBhbnkgb2YgdGhlIGtub3duIHBhbGV0dGVzLlxuICAgIC8vICAqIEBwYXJhbSB7REcuRGF0YUZyYW1lfSBkYXRhRnJhbWVcbiAgICAvLyAgKiBAcmV0dXJuIHtERy5Db2x1bW59IFRoZSBjb2x1bW4gd2Ugd2VyZSBsb29raW5nIGZvciBvciBudWxsXG4gICAgLy8gICovXG4gICAgLy8gcHJpdmF0ZSBwaWNrVXBTZXFDb2woZGF0YUZyYW1lOiBERy5EYXRhRnJhbWUpOiBERy5Db2x1bW4gfCBudWxsIHtcbiAgICAvLyAgIGxldCByZXM6IERHLkNvbHVtbiB8IG51bGwgPSBkYXRhRnJhbWUuY29sdW1ucy5ieVNlbVR5cGUoJ2FsaWduZWRTZXF1ZW5jZScpO1xuICAgIC8vICAgaWYgKHJlcyA9PSBudWxsKSB7XG4gICAgLy8gICAgIGZvciAoY29uc3QgY29sIG9mIGRhdGFGcmFtZS5jb2x1bW5zKSB7XG4gICAgLy8gICAgICAgY29uc3QgY3AgPSBXZWJMb2dvLnBpY2tVcFBhbGV0dGUoY29sIGFzIERHLkNvbHVtbiwgNSk7XG4gICAgLy8gICAgICAgaWYgKGNwICE9PSBudWxsICYmICEoY3AgaW5zdGFuY2VvZiBVbmtub3duU2VxUGFsZXR0ZSkpIHtcbiAgICAvLyAgICAgICAgIHJlcyA9IGNvbDtcbiAgICAvLyAgICAgICAgIGJyZWFrO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgcmV0dXJuIHJlcztcbiAgICAvLyB9XG4gICAgc3RhdGljIHBpY2tVcFNlcUNvbDIoZGYpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBzZW1UeXBlQ29sTGlzdCA9IGRmLmNvbHVtbnMuYnlTZW1UeXBlQWxsKERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSk7XG4gICAgICAgIGxldCByZXNDb2wgPSAoX2EgPSBzZW1UeXBlQ29sTGlzdC5maW5kKChjb2wpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gY29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgICAgIHJldHVybiB1bml0cyA/IHVuaXRzLmluZGV4T2YoJ01TQScpICE9PSAtMSA6IGZhbHNlO1xuICAgICAgICB9KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgaWYgKCFyZXNDb2wgJiYgc2VtVHlwZUNvbExpc3QubGVuZ3RoID4gMClcbiAgICAgICAgICAgIHJlc0NvbCA9IHNlbVR5cGVDb2xMaXN0WzBdO1xuICAgICAgICByZXR1cm4gcmVzQ29sO1xuICAgIH1cbiAgICAvKiogU3BsaXQgc2VxdWVuY2UgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgbW9ub21lcnMsIHNxdWFyZSBicmFja2V0cyBtdWx0aWNoYXIgbW9ub21lciBuYW1lcyBvciBnYXAgc3ltYm9sLlxuICAgICAqIEBwYXJhbSB7YW55fSBzZXEgb2JqZWN0IHdpdGggc2VxdWVuY2VcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gYXJyYXkgb2YgbW9ub21lcnNcbiAgICAgKi9cbiAgICBzdGF0aWMgc3BsaXR0ZXJBc0Zhc3RhKHNlcSkge1xuICAgICAgICBjb25zdCByZXMgPSB3dShzZXEudG9TdHJpbmcoKS5tYXRjaEFsbChXZWJMb2dvLm1vbm9tZXJSZSkpXG4gICAgICAgICAgICAubWFwKChtYSkgPT4ge1xuICAgICAgICAgICAgbGV0IG1SZXM7XG4gICAgICAgICAgICBjb25zdCBtID0gbWFbMF07XG4gICAgICAgICAgICBpZiAobS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgaWYgKG0gaW4gV2ViTG9nby5hYVN5bm9ueW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIG1SZXMgPSBXZWJMb2dvLmFhU3lub255bXNbbV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtUmVzID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYExvbmcgbW9ub21lciAnJHttfScgaGFzIG5vdCBhIHNob3J0IHN5bm9ueW0uYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbVJlcyA9IG07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbVJlcztcbiAgICAgICAgfSkudG9BcnJheSgpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKiogU3BsaXRzIEhlbG0gc3RyaW5nIHRvIG1vbm9tZXJzLCBidXQgZG9lcyBub3QgcmVwbGFjZSBtb25vbWVyIG5hbWVzIHRvIG90aGVyIG5vdGF0aW9uIChlLmcuIGZvciBSTkEpLlxuICAgICAqIE9ubHkgZm9yIGxpbmVhciBwb2x5bWVycywgZG9lcyBub3Qgc3BsaXQgUk5BIGZvciByaWJvc2UgYW5kIHBob3NwaGF0ZSBtb25vbWVycy5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFNvdXJjZSBzdHJpbmcgb2YgSEVMTSBub3RhdGlvblxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfVxuICAgICAqL1xuICAgIHN0YXRpYyBzcGxpdHRlckFzSGVsbShzZXEpIHtcbiAgICAgICAgV2ViTG9nby5oZWxtUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgZWEgPSBXZWJMb2dvLmhlbG1SZS5leGVjKHNlcS50b1N0cmluZygpKTtcbiAgICAgICAgY29uc3QgaW5TZXEgPSBlYSA/IGVhWzJdIDogbnVsbDtcbiAgICAgICAgY29uc3QgbW1Qb3N0UHJvY2VzcyA9IChtbSkgPT4ge1xuICAgICAgICAgICAgV2ViTG9nby5oZWxtUHAxUmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IHBwMU0gPSBXZWJMb2dvLmhlbG1QcDFSZS5leGVjKG1tKTtcbiAgICAgICAgICAgIGlmIChwcDFNICYmIHBwMU0ubGVuZ3RoID49IDIpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBwMU1bMV07XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1tO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtbUxpc3QgPSBpblNlcSA/IGluU2VxLnNwbGl0KCcuJykgOiBbXTtcbiAgICAgICAgY29uc3QgbW1MaXN0UmVzID0gbW1MaXN0Lm1hcChtbVBvc3RQcm9jZXNzKTtcbiAgICAgICAgcmV0dXJuIG1tTGlzdFJlcztcbiAgICB9XG4gICAgLyoqIEdldHMgbWV0aG9kIHRvIHNwbGl0IHNlcXVlbmNlIGJ5IHNlcGFyYXRvclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3JcbiAgICAgKiBAcGFyYW0gbGltaXRcbiAgICAgKiBAcmV0dXJuIHtTcGxpdHRlckZ1bmN9XG4gICAgICovXG4gICAgc3RhdGljIGdldFNwbGl0dGVyV2l0aFNlcGFyYXRvcihzZXBhcmF0b3IsIGxpbWl0ID0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiAoc2VxKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2VxLnNwbGl0KHNlcGFyYXRvciwgbGltaXQpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKiogR2V0IHNwbGl0dGVyIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZXMgdG8gbW9ub21lcnNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdW5pdHNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAgICogQHBhcmFtIGxpbWl0XG4gICAgICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLykpXG4gICAgICAgICAgICByZXR1cm4gV2ViTG9nby5zcGxpdHRlckFzRmFzdGE7XG4gICAgICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLykpXG4gICAgICAgICAgICByZXR1cm4gV2ViTG9nby5nZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCk7XG4gICAgICAgIGVsc2UgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKSlcbiAgICAgICAgICAgIHJldHVybiBXZWJMb2dvLnNwbGl0dGVyQXNIZWxtO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgdW5pdHMgJHt1bml0c30gLmApO1xuICAgICAgICAvLyBUT0RPOiBTcGxpdHRlciBmb3IgSEVMTVxuICAgIH1cbiAgICBzdGF0aWMgZ2V0U3BsaXR0ZXJGb3JDb2x1bW4oY29sKSB7XG4gICAgICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBHZXQgc3BsaXR0ZXIgZm9yIHNlbVR5cGUgXCIke0RHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRX1cIiBvbmx5LmApO1xuICAgICAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1Muc2VwYXJhdG9yKTtcbiAgICAgICAgcmV0dXJuIFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgfVxuICAgIC8qIFNob3J0ZW5zIG1vbm9tZXIgcmVwcmVzZW50YXRpb24gdGV4dCBmb3IgbW9ub21lcnMgd2l0aCBsb25nIG5hbWVzLlxuICAgICoqL1xuICAgIHN0YXRpYyBtb25vbWVyVG9UZXh0KHNyYykge1xuICAgICAgICBjb25zdCBzcmNUeHQgPSBzcmMudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKHNyY1R4dC5sZW5ndGggPD0gNSkge1xuICAgICAgICAgICAgcmV0dXJuIHNyY1R4dDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gd3Uoc3JjLnRvU3RyaW5nKCkubWF0Y2hBbGwoV2ViTG9nby5sb25nTW9ub21lclBhcnRSZSkpXG4gICAgICAgICAgICAgICAgLm1hcCgobWEpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtUmVzID0gbWFbMF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1SZXM7XG4gICAgICAgICAgICB9KS50b0FycmF5KCk7XG4gICAgICAgICAgICBpZiAocGFydHMubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFydDAgPSBwYXJ0c1swXTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNUeHQgPSBwYXJ0MC5sZW5ndGggPCA2ID8gYCR7cGFydDB94oCmYCA6IGAke3BhcnQwLnN1YnN0cmluZygwLCA1KX3igKZgO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNUeHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIG1vbm9tZXJUb1Nob3J0KGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpIHtcbiAgICAgICAgcmV0dXJuIGFtaW5vLmxlbmd0aCA8PSBtYXhMZW5ndGhPZk1vbm9tZXIgPyBhbWlubyA6IGFtaW5vLnN1YnN0cmluZygwLCBtYXhMZW5ndGhPZk1vbm9tZXIpICsgJ+KApic7XG4gICAgfVxufVxuV2ViTG9nby5yZXNpZHVlc1NldCA9ICdudWNsZW90aWRlcyc7XG5XZWJMb2dvLnZpZXdlckNvdW50ID0gLTE7XG5XZWJMb2dvLm1vbm9tZXJSZSA9IC9cXFsoXFx3KylcXF18KFxcdyl8KC0pL2c7XG5XZWJMb2dvLmhlbG1SZSA9IC8oUEVQVElERTF8RE5BMXxSTkExKVxceyhbXn1dKyl9L2c7XG5XZWJMb2dvLmhlbG1QcDFSZSA9IC9cXFsoW15cXFtcXF1dKyldL2c7XG4vKiogT25seSBzb21lIG9mIHRoZSBzeW5vbnltcy4gVGhlc2Ugd2VyZSBvYnRhaW5lZCBmcm9tIHRoZSBjbHVzdGVyZWQgb2xpZ29wZXB0aWRlIGRhdGFzZXQuICovXG5XZWJMb2dvLmFhU3lub255bXMgPSB7XG4gICAgJ1tNZU5sZV0nOiAnTCcsXG4gICAgJ1tNZUFdJzogJ0EnLFxuICAgICdbTWVHXSc6ICdHJyxcbiAgICAnW01lRl0nOiAnRicsXG59O1xuV2ViTG9nby5sb25nTW9ub21lclBhcnRSZSA9IC8oXFx3KykvZztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWQyVmlMV3h2WjI4dWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUozWldJdGJHOW5ieTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEV0QlFVc3NTVUZCU1N4TlFVRk5MRzFDUVVGdFFpeERRVUZETzBGQlF6RkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU03UVVGRGNFSXNUMEZCVHl4TFFVRkxMRWxCUVVrc1RVRkJUU3hOUVVGTkxFTkJRVU03UVVGRk4wSXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCUTNaRkxFOUJRVThzUlVGQlF5eFpRVUZaTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVU1zVFVGQlRTeHBSRUZCYVVRc1EwRkJRenRCUVVNdlJpeFBRVUZQTEVWQlFVTXNWVUZCVlN4RlFVRkZMR3RDUVVGclFpeEZRVUZETEUxQlFVMHNaVUZCWlN4RFFVRkRPMEZCUXpkRUxFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVU1zVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVOb1JTeFBRVUZQTEVWQlFVTXNhMEpCUVd0Q0xFVkJRVU1zVFVGQlRTeFpRVUZaTEVOQlFVTTdRVUZIT1VNc1QwRkJUeXhGUVVGWExGbEJRVmtzUlVGQlF5eE5RVUZOTEhkQ1FVRjNRaXhEUVVGRE8wRkJVVGxFTEVsQlFVc3NZMEZIU2p0QlFVaEVMRmRCUVVzc1kwRkJZenRKUVVOcVFpeHhRMEZCYlVJc1EwRkJRVHRKUVVOdVFpd3JRa0ZCWVN4RFFVRkJPMEZCUTJZc1EwRkJReXhGUVVoSkxHTkJRV01zUzBGQlpDeGpRVUZqTEZGQlIyeENPMEZCV1VRN096dEhRVWRITzBGQlEwZ3NhVUpCUVdsQ0xFTkJRVU1zVTBGQlV5eERRVUZETEdsQ1FVRnBRaXhIUVVGSExGVkJRVk1zUzBGQmFVSXNSVUZCUlN4RFFVRlRPMGxCUTI1R0xFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUlVGQlJTeERRVUZETzBsQlF6RkRMRTlCUVU4c1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRrWXNRMEZCUXl4RFFVRkRPMEZCUlVZc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4SFFVRkhMRlZCUVZNc1EwRkJVeXhGUVVGRkxFTkJRVk03U1VGRGVFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF6dEJRVU5vUml4RFFVRkRMRU5CUVVNN1FVRkZSaXhOUVVGTkxFOUJRVThzYlVKQlFXMUNPMGxCVXpsQ0xGbEJRVmtzVVVGQlowSXNRMEZCUXl4RlFVRkZMRk5CUVd0Q0xFbEJRVWtzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZEVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdVVUZEYmtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eE5RVUZOTEVOQlFVTTdTVUZEZGtJc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFBRVUZQTEZsQlFWazdTVUZOZGtJN096czdPMDlCUzBjN1NVRkRTQ3haUVVGWkxFbEJRVmtzUlVGQlJTeFBRVUUyUXl4RlFVRkZMRVZCUVVVc1YwRkJiVUlzUTBGQlF5eEZRVUZGTEcxQ1FVRXlRaXhEUVVGRE8xRkJRek5JTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1VVRkJVU3hEUVVGRE8xRkJRM3BDTEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRKUVVNelF5eERRVUZETzBOQlEwWTdRVUZGUkN4TlFVRk5MRTlCUVU4c1QwRkJVU3hUUVVGUkxFVkJRVVVzUTBGQlF5eFJRVUZSTzBsQmVVVjBRenRSUVVORkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQmRFVkdMR0ZCUVZFc1IwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVYwUWl4blFrRkJWeXhIUVVGWkxFdEJRVXNzUTBGQlF6dFJRVVZ5UXl3MFJrRkJORVk3VVVGRGJFWXNUMEZCUlN4SFFVRnpRaXhKUVVGSkxFTkJRVU03VVVGUkwwSXNaVUZCVlN4SFFVRlhMRVZCUVVVc1EwRkJRenRSUVVWNFFpeFhRVUZOTEVkQlFUWkNMRWxCUVVrc1EwRkJRenRSUVVONFF5eGhRVUZSTEVkQlFYZENMRWxCUVVrc1EwRkJRenRSUVVNM1F5eHRRMEZCYlVNN1VVRkRNMElzWTBGQlV5eEhRVUZ0UWl4RlFVRkZMRU5CUVVNN1VVRkZMMElzWlVGQlZTeEhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhoUVVGUkxFZEJRVmNzUTBGQlF5eERRVUZETzFGQlZYUkNMRzFDUVVGakxFZEJRVmNzUTBGQlF5eERRVUZETzFGQlZ6RkNMR3RDUVVGaExFZEJRV0VzUlVGQlJTeERRVUZETzFGQlJUZENMR3RDUVVGaExFZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGTTBJc1owSkJRVmNzUjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFYRkNla0lzWVVGQlVTeEhRVUZ0UWl4RlFVRkZMRU5CUVVNN1VVRkxjRU1zU1VGQlNTeERRVUZETEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRE8xRkJRM0JETEU5QlFVOHNRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSWHBDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRekZDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJSWHBDTEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1JVRkJSU3hGUVVGRkxFTkJRVUU3T0VSQlEyNUNMRU5CUVVNc1EwRkJRenRSUVVONFJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVWQlFVVXNRMEZCUVR0blJVRkRZU3hEUVVGRExFTkJRVU03VVVGRE1VUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4SFFVRkhMRU5CUVVFN1owVkJRMWtzUTBGQlF5eERRVUZETzFGQlJURkVMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM1pGTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRzlDUVVGdlFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUld4RkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVVTFSQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlJUZERMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRkZCUVZFc1JVRkRhRVVzUlVGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUTBGQlF5eEZRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hSUVVGUkxFVkJRM0JGTEVWQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFBRVUZQTEVOQlFVTXNSVUZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNVU1zU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTXhReXhKUVVGSkxFTkJRVU1zWlVGQlpTeEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNiMEpCUVc5Q0xFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEYWtVc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRVZCUVVVc1RVRkJUU3hGUVVOc1JTeEZRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNoRExFbEJRVWtzTmtKQlFUWkNMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM1JETEVsQlFVa3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEUxQlFVMHNSVUZCUlR0WlFVTnlReXcyUWtGQk5rSXNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRja003VVVGRFJDeEpRVUZKTEVOQlFVTXNZMEZCWXl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc05rSkJRVFpDTEVWQlFVVXNSVUZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFZEJRVWNzUlVGQlJTeEZRVUZGTEVWQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1SExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4alFVRmpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hqUVVGakxFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKSkxFTkJRVU03U1VFMVJFUXNNRVJCUVRCRU8wbEJRekZFTEVsQlFWa3NUVUZCVFR0UlFVTm9RaXhKUVVGSkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSVHRaUVVNelFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRE8xTkJRemxDTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1lVRkJZU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5vUnl4RFFVRkRPMGxCUlVRc1NVRkJXU3gxUWtGQmRVSTdPMUZCUTJwRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkJMRTFCUVVFc1NVRkJTU3hEUVVGRExGbEJRVmtzTUVOQlFVVXNjMEpCUVhOQ0xFVkJRVVVzVFVGQlN5eEpRVUZKTEVOQlFVTXNSVUZCUlR0WlFVTnVSeXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRUUVVOc1JEdFJRVU5FTEVsQlFVa3NTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeExRVUZMTEZGQlFWRXNSVUZCUlR0WlFVTjZReXhQUVVGUExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRUUVVOc1JEdFJRVVZFTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJRenRKUVVNM1FpeERRVUZETzBsQk5rTmhMRWxCUVVrN08xbEJRMmhDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1JVRkJSVHRuUWtGRGNFSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhuUTBGQlowTXNRMEZCUXl4RFFVRkRPMmRDUVVOb1JDeFBRVUZQTzJGQlExSTdXVUZGUkN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU40UWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExIRkRRVUZ4UXl4RFFVRkRPMWxCUlhKRUxFbEJRVWtzUTBGQlF5eFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFpRVU53UXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVkQlFVY3NUVUZCVFN4RFFVRkRPMWxCUlhCRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRekZDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTTdXVUZGYWtNc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVWb1JDdzJRMEZCTmtNN1dVRkROME1zZVVOQlFYbERPMWxCUTNwRExEQkRRVUV3UXp0WlFVVXhReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFWY3NSVUZCZFVRc1JVRkJSVHRuUWtGRGRFWXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMmRDUVVNMVJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVVjBReXhKUVVGSkxGRkJRVkVzUzBGQlN5eExRVUZMTEVOQlFVTTdiMEpCUTNKQ0xFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVVUxUWl4TlFVRk5MRTlCUVU4c1IwRkJkVUlzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRE8zRkNRVU16UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNelJDeEpRVUZKTEU5QlFVOHNTMEZCU3l4VFFVRlRPMjlDUVVOMlFpeFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZGTlVJc1QwRkJUeXhEUVVGRExFbEJRVWtzUlVGQlJTeFBRVUZQTEVWQlFVVXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEycEVMRU5CUVVNc1EwRkJRenRaUVVkR0xIRkhRVUZ4Unp0WlFVTnlSeXhQUVVGUE8xbEJSVkFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQllTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFXRXNSVUZCUlN4RlFVRkZPMmRDUVVOc1J5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwN2IwSkJRMlFzVDBGQlR6dG5Ra0ZGVkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhEUVVGbExFTkJRVU03WjBKQlJUZENMRTFCUVUwc1EwRkJReXhIUVVGWExFMUJRVTBzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRuUWtGRE1VTXNUVUZCVFN4UFFVRlBMRWRCUVdFc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTJwRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVVTFReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEU5QlFVOHNSVUZCUlR0dlFrRkROMFFzVFVGQlRTeFJRVUZSTEVkQlFVY3NSVUZCUlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFWa3NSVUZCUlN4RlFVRkZPM2RDUVVOb1JpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0M1FrRkRia01zVFVGQlRTeEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJRenQzUWtGRGVrVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1NVRkJTU3hMUVVGTExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4TFFVRkxMRVZCUVVVc1NVRkJTU3hQUVVGUExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN2IwSkJRM0pITEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJVeXhEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTJwRUxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1QwRkJUeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1VVRkJVU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJRenRwUWtGRGRrYzdjVUpCUVUwN2IwSkJRMHdzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRwUWtGRGJrSTdXVUZEU0N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJSVW9zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQllTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFXRXNSVUZCUlN4RlFVRkZPMmRDUVVOc1J5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTTdiMEpCUXk5Q0xFOUJRVTg3WjBKQlJWUXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJaU3hEUVVGRE8yZENRVU0zUWl4TlFVRk5MRU5CUVVNc1IwRkJWeXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1owSkJRekZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlJUTkZMSFZFUVVGMVJEdG5Ra0ZEZGtRc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzU1VGQlNTeFBRVUZQTEVWQlFVVTdiMEpCUXpkRUxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTzNkQ1FVTnlReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dDNRa0ZEYmtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0M1FrRkRla1VzVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdiMEpCUTNKSExFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTktPMWxCUTBnc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVZLTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVVM1JpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdXVUZETlVJc01rTkJRVEpETzFsQlJUTkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEY0VJc1EwRkJRenRMUVVGQk8wbEJSVThzYVVKQlFXbENMRU5CUVVNc1NVRkJVenRSUVVOcVF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJSV3hDTEdsRVFVRnBSRHRSUVVOcVJDeHhSa0ZCY1VZN1VVRkRja1lzYVVaQlFXbEdPMGxCUTI1R0xFTkJRVU03U1VGRlJEdFBRVU5ITzBsQlEwc3NXVUZCV1R0UlFVTnNRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdXVUZEYkVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZETTBZc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NSVUZCUlR0blFrRkRka0lzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0blFrRkRjRVFzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1lVRkRha1U3V1VGRFJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVN1owSkJRMllzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4RFFVRkRMRTFCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRGVrUXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hEUVVGRExFMUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBVc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEZEVRc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03WjBKQlJXeEVMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dGhRVU01UXp0cFFrRkJUVHRuUWtGRFRDeEpRVUZKTEVOQlFVTXNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJRenRuUWtGRGNrSXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhGUVVGRkxFTkJRVU03WjBKQlEzaENMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1JDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRE8yRkJRMmhDTzFOQlEwWTdVVUZEUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGFFSXNRMEZCUXp0SlFVVlBMR1ZCUVdVN1VVRkRja0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5PMWxCUTJRc1QwRkJUenRSUVVWVUxFbEJRVWtzVlVGQk9FSXNRMEZCUXp0UlFVTnVReXhKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVWQlFVVTdXVUZEZUVJc1RVRkJUU3hQUVVGUExFZEJRV1VzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0WlFVTjJSU3hWUVVGVkxFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkROMElzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU12Ump0aFFVRk5PMWxCUTB3c1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUTNKRE8xRkJRMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NWVUZCVlN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVU5zUlN4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWNlJDd3dSRUZCTUVRN1VVRkRNVVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVNM1JDeHJSRUZCYTBRN1VVRkRiRVFzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42Uml4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJUVkVMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZEYUVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNSRUxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVrUXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eGxRVUZsTEVsQlFVa3NTVUZCU1N4RFFVRkRMR0ZCUVdFN1dVRkROVVFzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndSQ3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1pGTEVOQlFVTTdTVUZGWlN4cFFrRkJhVUlzUTBGQlF5eFJRVUZ4UWp0UlFVTnlSQ3gzUlVGQmQwVTdVVUZEZUVVc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJSV3hETEZGQlFWRXNVVUZCVVN4RFFVRkRMRWxCUVVrc1JVRkJSVHRaUVVOMlFpeExRVUZMTEhWQ1FVRjFRanRuUWtGRE1VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEUxQlFVMDdXVUZEVWl4TFFVRkxMRzFDUVVGdFFqdG5Ra0ZEZEVJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzJkQ1FVTndRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eHBRa0ZCYVVJN1owSkJRM0JDTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc1pVRkJaVHRuUWtGRGJFSXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETzJkQ1FVTjZReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4WFFVRlhPMmRDUVVOa0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEUxQlFVMDdXVUZEVWl4TFFVRkxMRmRCUVZjN1owSkJRMlFzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc1ZVRkJWVHRuUWtGRFlpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4TlFVRk5PMWxCUTFJc1MwRkJTeXh0UWtGQmJVSTdaMEpCUTNSQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEUxQlFVMDdXVUZEVWl4TFFVRkxMSEZDUVVGeFFqdG5Ra0ZEZUVJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NVMEZCVXp0blFrRkRXaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4cFFrRkJhVUk3WjBKQlEzQkNMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NiMEpCUVc5Q08yZENRVU4yUWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03WjBKQlEzWkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEdkQ1FVRm5RanRuUWtGRGJrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzY1VKQlFYRkNPMmRDUVVONFFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU5zUWl4TlFVRk5PMWxCUTFJc1MwRkJTeXhuUWtGQlowSTdaMEpCUTI1Q0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1owSkJRMnhDTEUxQlFVMDdVMEZEVUR0SlFVTklMRU5CUVVNN1NVRkZjVUlzWlVGQlpUczdPenM3V1VGRGJrTXNUVUZCVFN4WlFVRlpMRWRCUVZjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRE9VUXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4RFFVRkRMRkZCUVZFc2EwTkJRV3RETEZsQlFWa3NWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkRja2NzVDBGQlRTeGxRVUZsTEZsQlFVYzdXVUZGZUVJc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzFsQlJYQkNMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUzBGQlN5eExRVUZMTEVOQlFVTXNSVUZCUlR0blFrRkROMElzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYmtZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRk8yOUNRVU0zUkN4SlFVRkpMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03YjBKQlEzWkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dG5Ra0ZEYUVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dGhRVU5NTzFsQlJVUXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03V1VGRGJFSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4RFFVRkRMRkZCUVZFc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXp0UlFVTjRSU3hEUVVGRE8wdEJRVUU3U1VGRmNVSXNUVUZCVFRzN096czdXVUZETVVJc1RVRkJUU3haUVVGWkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpORUxFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEd0RFFVRnJReXhaUVVGWkxGVkJRVlVzUTBGQlF5eERRVUZETzFsQlEzSkhMRTlCUVUwc1RVRkJUU3haUVVGSE8xbEJSV1lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkxMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRGVFSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRGVrSXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU03V1VGRmRFSXNTVUZCU1N4RFFVRkRMRmRCUVZjc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGVrSXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNTVUZCU1N4RFFVRkRMRkZCUVZFc2VVSkJRWGxDTEVOQlFVTXNRMEZCUXp0UlFVTjRSU3hEUVVGRE8wdEJRVUU3U1VGRlV5eGhRVUZoTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWRCUVVjN1VVRkRla01zU1VGQlNTeEpRVUZKTEVOQlFVTXNjVUpCUVhGQ08xbEJRelZDTEU5QlFVOHNTVUZCU1N4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGTjBRc1QwRkJUeXhGUVVGRkxFTkJRVU03U1VGRFdpeERRVUZETzBsQlJWTXNWMEZCVnl4RFFVRkRMRXRCUVdsQ0xFVkJRVVVzVTBGQk9FSTdVVUZEY2tVc1NVRkJTU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXhRaXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZGtJc1MwRkJTeXhKUVVGSkxHTkJRV01zUjBGQlJ5eERRVUZETEVWQlFVVXNZMEZCWXl4SFFVRkhMRTFCUVUwc1JVRkJSU3hqUVVGakxFVkJRVVVzUlVGQlJUdFpRVU4wUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzJkQ1FVTTVReXhqUVVGakxFVkJRVVVzUTBGQlF6dGhRVU5zUWp0VFFVTkdPMUZCUTBRc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eGpRVUZqTEVOQlFVTTdVVUZET1VJc1QwRkJUeXhMUVVGTExFTkJRVU03U1VGRFppeERRVUZETzBsQlIxTXNjVUpCUVhGQ08xRkJRemRDTEVsQlFVa3NTVUZCU1N4RFFVRkRMR3RDUVVGclFpeEZRVUZGTzFsQlF6TkNMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSU3hYUVVGRExFOUJRVUVzUTBGQlFTeE5RVUZCTEVsQlFVa3NZVUZCU2l4SlFVRkpMSFZDUVVGS0xFbEJRVWtzUTBGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMREJEUVVGRkxFdEJRVXNzVFVGQlN5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkJMRVZCUVVFc1EwRkJReXhEUVVGRE8xTkJRM0JHTzBsQlEwZ3NRMEZCUXp0SlFVVlRMRlZCUVZVc1EwRkJReXhEUVVGVE8xRkJRelZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXp0WlFVTXZSQ3hQUVVGUE8xRkJRMVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4SlFVRkpMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZIYkVRc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFGQlJXaENMRWxCUVVrc1EwRkJReXhUUVVGVExFZEJRVWNzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51U0N4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRTlCUVU4c1IwRkJWeXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRGRFVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRUUVVOc1JEdFJRVVZFTEdsR1FVRnBSanRSUVVOcVJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRek5FTERKSFFVRXlSenRSUVVNelJ5eG5SRUZCWjBRN1VVRkZhRVFzU1VGQlNTeERRVUZETEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJRMnBETEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJSV3hDTEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1QwRkJUeXhGUVVGRk8xbEJRM1pDTEVsQlFVa3NRMEZCUXl4SFFVRnRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRk4wTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1JVRkJSVHRuUWtGRFRpeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1JVRkJSU3hEUVVGRE8yZENRVU42UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03WVVGRGFrSTdXVUZGUkN4TlFVRk5MRWxCUVVrc1IwRkJZU3hKUVVGSkxFTkJRVU1zVVVGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNwRExFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMmRDUVVNM1F5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0blFrRkRla01zVFVGQlRTeERRVUZETEVkQlFWY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRPMmRDUVVONlJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRE8yOUNRVU5vUWl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSU3hEUVVGRE8yZENRVU40UXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdZVUZEYmtJN1UwRkRSanRSUVVWRUxEUkNRVUUwUWp0UlFVTTFRaXhMUVVGTExFbEJRVWtzU1VGQlNTeEhRVUZITEVOQlFVTXNSVUZCUlN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlR0WlFVTTNReXg1UTBGQmVVTTdXVUZGZWtNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnhETEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpPMmRDUVVOMlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkVzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1dVRkRkRVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4SlFVRkpMR05CUVdNc1EwRkJReXhQUVVGUExFVkJRVVU3WjBKQlEycEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNaMEpCUVdkQ0xFZEJRVWNzUTBGQlF5eERRVUZETzJkQ1FVTXhReXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTzI5Q1FVTjZReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN2IwSkJRemxGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRwUWtGRE9VUTdZVUZEUmp0VFFVTkdPMUZCUTBRc1dVRkJXVHRSUVVOYUxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8xRkJSVGRDTEUxQlFVMHNhVUpCUVdsQ0xFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYmtVc2JVWkJRVzFHTzFGQlJXNUdMREJDUVVFd1FqdFJRVU14UWl4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4TlFVRk5MRWxCUVVrc1IwRkJlVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE4wVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNN1dVRkRMME1zVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xbEJRelZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhKUVVGSkxHTkJRV01zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1NVRkJTU3hKUVVGSkxFTkJRVU1zUlVGQlJUdG5Ra0ZETjBVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNhVU5CUVdsRExFTkJRVU1zUTBGQlF6dGhRVU55UkR0WlFVVkVMRTFCUVUwc1UwRkJVeXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNTVUZCU1N4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhwUWtGQmFVSXNRMEZCUXp0WlFVVTFUU3hKUVVGSkxFTkJRVU1zUjBGQlZ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVVV4UlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRha1FzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVNNVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenR4UWtGRE5VSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhIUVVGSE8yOUNRVU51UXl4UFFVRlBMRU5CUVVNc1EwRkJRenR4UWtGRFRpeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhIUVVGSE8yOUNRVU51UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8zRkNRVU5RTEc5Q1FVRnZRanR2UWtGRGRrSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOa0xFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwZ3NTMEZCU3l4TlFVRk5MRXRCUVVzc1NVRkJTU3hQUVVGUExFVkJRVVU3WjBKQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGM1FpeExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRemRETERoQ1FVRTRRanRuUWtGRE9VSXNUVUZCVFN4RFFVRkRMRWRCUVZjc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eExRVUZMTEVkQlFVY3NVVUZCVVN4RFFVRkRPMmRDUVVWMFJDeE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1kwRkJZeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTTFSaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJGQlExSTdVMEZEUmp0UlFVTkVMRmxCUVZrN1NVRkRaQ3hEUVVGRE8wbEJSVVFzTWtOQlFUSkRPMGxCUXpORExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1RzN1VVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1EwRkJReXhQUVVGUkxFTkJRVU1zVTBGQlV5eEhRVUZITEhGRFFVRnhReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNTMEZCU3l4RFFVRkRPMmRDUVVONFJpeEpRVUZKTEVOQlFVTXNUMEZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETzJGQlEyeERPMmxDUVVGTk8yZENRVU5NTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eE5RVUZOTEVOQlFVTTdZVUZEZEVNN1UwRkRSanRSUVVWRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU0zUkN4UFFVRlBPMUZCUlZRc1RVRkJUU3hEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGRrTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkJSU3hQUVVGUE8xRkJSV1lzVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETzFGQlJXeERMRWxCUVVrc1RVRkJUVHRaUVVOU0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZja0lzUTBGQlF5eERRVUZETEdOQlFXTXNSVUZCUlN4RFFVRkRPMUZCUTI1Q0xFTkJRVU1zUTBGQlF5eFRRVUZUTEVkQlFVY3NUMEZCVHl4RFFVRkRPMUZCUTNSQ0xFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEzaEVMRU5CUVVNc1EwRkJReXhaUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVVnVReXd3UTBGQk1FTTdVVUZETVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zWVVGQllTeExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzUkVMRTlCUVU4N1VVRkZWQ3cwUWtGQk5FSTdVVUZETlVJc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMmhETEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRSUVVOdVFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRTlCUVU4c1EwRkJRenRSUVVOMFFpeERRVUZETEVOQlFVTXNVMEZCVXl4SFFVRkhMRkZCUVZFc1EwRkJRenRSUVVOMlFpeERRVUZETEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXh4UTBGQmNVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFhRVUZYTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYUVjc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1pVRkJaU3hEUVVGRE8xRkJSVGRITEV0QlFVc3NTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRk8xbEJRemRETEUxQlFVMHNSMEZCUnl4SFFVRnBRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUXk5RExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVTnVRaXhEUVVGRExFTkJRVU1zV1VGQldTeERRVU5hTEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGRFppeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEhRVUZITEVsQlFVa3NRMEZCUXl4alFVRmpMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzQkZMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRE5VSTdVVUZEUkN3clFrRkJLMEk3VVVGRkwwSXNTMEZCU3l4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVU3V1VGRE4wTXNTMEZCU3l4TlFVRk5MRU5CUVVNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRuUWtGRGVrVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1IwRkJSeXhGUVVGRk8yOUNRVU51UWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMjlDUVVOc1JDeE5RVUZOTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRE8yOUNRVVY0UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXgxUTBGQmRVTXNRMEZCUXp0dlFrRkRNVVFzTUVSQlFUQkVPMjlDUVVNeFJDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzUTBGQlF6dHZRa0ZEYmtNc1RVRkJUU3h4UWtGQmNVSXNSMEZCUnl4SlFVRkpMRU5CUVVNN2IwSkJSVzVETEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenR2UWtGRGJrSXNRMEZCUXl4RFFVRkRMRmRCUVZjc1IwRkJSeXhYUVVGWExFTkJRVU03YjBKQlF6VkNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTm9RaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dHZRa0ZEZWtNc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZCTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eHRRMEZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0dlFrRkRNMFFzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TlFVRk5MRU5CUVVNN2IwSkJRM0pDTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1UwRkJVeXhEUVVGRE8yOUNRVU51UWl3clEwRkJLME03YjBKQlF5OURMRTFCUVUwc1IwRkJSeXhIUVVGblFpeERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yOUNRVVZ1UkN4MVEwRkJkVU03YjBKQlEzWkRMSGxHUVVGNVJqdHZRa0ZGZWtZc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGRFdpeERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1RVRkJUU3hIUVVGSExIRkNRVUZ4UWl4RlFVTXpSQ3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGFrSXNRMEZCUXl4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUTBGQlF6dHBRa0ZEYmtRN1lVRkRSanRUUVVOR08wbEJRMGdzUTBGQlF6dEpRVVZQTEZGQlFWRTdVVUZEWkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUXpWQ0xFOUJRVTg3VVVGRlZDeE5RVUZOTEVOQlFVTXNSMEZCVnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZGTVVNc1NVRkJTU3hMUVVGTExFZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTI1RkxFbEJRVWtzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJSWGhHTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSVHRaUVVOb1FpeE5RVUZOTEUxQlFVMHNSMEZCVnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eE5RVUZOTEVOQlFVTTdXVUZEZGtRc1RVRkJUU3hOUVVGTkxFZEJRVmNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJRM0pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY0VRc1MwRkJTeXhIUVVGSExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTTdXVUZEZEVJc1RVRkJUU3hIUVVGSExFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTTdXVUZEZUVJc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SFFVRkhMRXRCUVVzc1EwRkJRenRUUVVOc1JEdFJRVVZFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZET1VJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWRCUVVjc1MwRkJTeXhKUVVGSkxFTkJRVU03VVVGRmRrTXNiMFpCUVc5R08xRkJRM0JHTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNXVUZCV1N4SFFVRlhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETzFGQlEzQkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEZsQlFWa3NSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRkRU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeEhRVUZITEZsQlFWa3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZOMFFzTmtKQlFUWkNPMUZCUXpkQ0xFbEJRVWtzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlR0WlFVTnFRaXh6UTBGQmMwTTdXVUZEZEVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRE8xbEJRemRFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRPMWxCUTNaRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMU5CUTJoRk8yRkJRVTA3V1VGRFRDdzRRa0ZCT0VJN1dVRkRPVUlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRGRrUXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eEhRVUZITEdkQ1FVRm5RaXhEUVVGRE8xbEJRemRETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkZPVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGbEJRVmtzUlVGQlJTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFpRVVZ3UlN4eFFrRkJjVUk3V1VGRGNrSXNTVUZCU1N4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRM1JDTEZGQlFWRXNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTzJkQ1FVTm9ReXhMUVVGTExFdEJRVXM3YjBKQlExSXNZVUZCWVN4SFFVRkhMRU5CUVVNc1EwRkJRenR2UWtGRGJFSXNUVUZCVFR0blFrRkRVaXhMUVVGTExGRkJRVkU3YjBKQlExZ3NZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRMjVGTEUxQlFVMDdaMEpCUTFJc1MwRkJTeXhSUVVGUk8yOUNRVU5ZTEdGQlFXRXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dHZRa0ZETjBRc1RVRkJUVHRoUVVOUU8xbEJRMFFzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEdGQlFXRXNTVUZCU1N4RlFVRkZMRmRCUVZjc1EwRkJReXhEUVVGRE8xbEJSVGRGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzVFVGQlRTeEZRVUZGTzJkQ1FVTnVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVU55UlN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNXVUZCV1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRMnBFTzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhaUVVGWkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMkZCUTJ4Rk8xTkJRMFk3VVVGRlJDeHBRa0ZCYVVJN1VVRkRha0lzTmtSQlFUWkVPMUZCUXpkRUxEWkVRVUUyUkR0UlFVTTNSQ3cyUkVGQk5rUTdVVUZETjBRc05rUkJRVFpFTzFGQlF6ZEVMRmRCUVZjN1VVRkRXQ3d5UkVGQk1rUTdVVUZETTBRc0swUkJRU3RFTzBsQlEycEZMRU5CUVVNN1NVRkZSRHM3T3p0UFFVbEhPMGxCUTBrc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eE5RVUZwUWl4RlFVRkZMRmxCUVc5Q0xFTkJRVU03VVVGRGJFVXNTVUZCU1N4SFFVRkhMRWRCUVhOQ0xFbEJRVWtzUTBGQlF6dFJRVU5zUXl4UlFVRlJMRTFCUVUwc1EwRkJReXhQUVVGUExFVkJRVVU3V1VGRGVFSXNTMEZCU3l4VlFVRlZMRU5CUVVNc2QwSkJRWGRDTzJkQ1FVTjBReXhIUVVGSExFZEJRVWNzYTBKQlFXdENMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yZENRVU53UXl4TlFVRk5PMWxCUTFJc1MwRkJTeXhYUVVGWExFTkJRVU1zZDBKQlFYZENPMmRDUVVOMlF5eEhRVUZITEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeERRVUZETzJkQ1FVTjJReXhOUVVGTk8xTkJRMUE3VVVGRFJDeE5RVUZOTEV0QlFVc3NSMEZCWjBJc1QwRkJUeXhEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVVY0Uml4TlFVRk5MR3RDUVVGclFpeEhRVUZuUXp0WlFVTjBSQ3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVWQlFVVXNiVUpCUVcxQ0xFTkJRVU1zV1VGQldTeERRVUZETzFsQlF6TkZMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhWUVVGVkxFTkJRVU03VTBGRGVFVXNRMEZCUXp0UlFVTkdMR2RFUVVGblJEdFJRVU5vUkN4TlFVRk5MSEZDUVVGeFFpeEhRVUZoTEd0Q1FVRnJRanRoUVVOMlJDeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGREwwUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEhGQ1FVRnhRaXhEUVVGRExFTkJRVU03VVVGRGJFUXNTVUZCU1N4TlFVRk5MRWRCUVVjc1NVRkJTVHRaUVVObUxFZEJRVWNzUjBGQlJ5eHJRa0ZCYTBJc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXpzN1dVRkZia1VzUjBGQlJ5eEhRVUZITEd0Q1FVRnJRaXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVVZxUXl4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFTkJRVU03U1VGRlRTeGxRVUZsT3p0UlFVTndRaXhQUVVGUExFMUJRVUVzVFVGQlFTeEpRVUZKTEVOQlFVTXNXVUZCV1N3d1EwRkJSU3hsUVVGbExFVkJRVVVzYlVOQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTI1RUxFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJhVUlzUlVGQlJTeFRRVUZwUWl4RlFVRkZMRkZCUVhOQ08xRkJRekZGTEUxQlFVMHNTVUZCU1N4SFFVRTBRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM1JDTEVsQlFVa3NWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMlFpeExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhWUVVGVkxFVkJRVVU3V1VGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJUTkNMRWxCUVVrc1YwRkJWeXhKUVVGSkxFbEJRVWs3WjBKQlEzSkNMRmRCUVZjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzJsQ1FVTjJRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NWMEZCVnp0blFrRkRiRU1zVlVGQlZTeEhRVUZITEV0QlFVc3NRMEZCUXp0WlFVVnlRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NVMEZCVXl4RlFVRkZPMmRDUVVNelFpeExRVUZMTEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSVHR2UWtGRGNFSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF6dDNRa0ZEWkN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTmtMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdhVUpCUTJRN1lVRkRSanRUUVVOR08xRkJRMFFzVDBGQlR5eEZRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxGVkJRVlVzUlVGQlF5eERRVUZETzBsQlF6bERMRU5CUVVNN1NVRkZUU3hOUVVGTkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1NVRkJhMElzUlVGQlJTeFJRVUZ4UWl4RlFVRkZMRmxCUVc5Q0xFZEJRVWM3VVVGRGNFY3NUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVk1zUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE0wVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVVYyUWl4TlFVRk5MRXRCUVVzc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE0wSXNUVUZCVFN4VFFVRlRMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NUVUZCVFN4RFFVRkRMRWxCUVVrc1NVRkJTU3hGUVVGRk8xbEJRM0JDTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VTBGRGVrTTdVVUZEUkN3d1JrRkJNRVk3VVVGRE1VWXNUVUZCVFN4TFFVRkxMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZUVNc1RVRkJUU3hUUVVGVExFZEJRVmNzU1VGQlNTeE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRhRVFzVDBGQlR5eG5Ra0ZCWjBJc1EwRkJReXhMUVVGTExFVkJRVVVzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1MwRkJTeXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVVlzUTBGQlF6dEpRVVZFTEN0RVFVRXJSRHRKUVVNdlJDeDVSa0ZCZVVZN1NVRkRla1lzY1VOQlFYRkRPMGxCUTNKRExHZEZRVUZuUlR0SlFVTm9SU3hOUVVGTk8wbEJRMDRzYjBWQlFXOUZPMGxCUTNCRkxHZEdRVUZuUmp0SlFVTm9SaXgxUWtGQmRVSTdTVUZEZGtJc05rTkJRVFpETzBsQlF6ZERMQ3RFUVVFclJEdEpRVU12UkN4cFJVRkJhVVU3U1VGRGFrVXNjVUpCUVhGQ08wbEJRM0pDTEdsQ1FVRnBRanRKUVVOcVFpeFZRVUZWTzBsQlExWXNVVUZCVVR0SlFVTlNMRTFCUVUwN1NVRkRUaXhuUWtGQlowSTdTVUZEYUVJc1NVRkJTVHRKUVVWSExFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNSVUZCWjBJN08xRkJRekZETEUxQlFVMHNZMEZCWXl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03VVVGRGVrVXNTVUZCU1N4TlFVRk5MRWRCUVhGQ0xFMUJRVUVzWTBGQll5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRk8xbEJRM3BFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRaUVVONFF5eFBRVUZQTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzSkVMRU5CUVVNc1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTTdVVUZEV0N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxHTkJRV01zUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXp0WlFVTjBReXhOUVVGTkxFZEJRVWNzWTBGQll5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpkQ0xFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1NVRkpSRHM3TzA5QlIwYzdTVUZEU1N4TlFVRk5MRU5CUVVNc1pVRkJaU3hEUVVGRExFZEJRVkU3VVVGRGNFTXNUVUZCVFN4SFFVRkhMRWRCUVdFc1JVRkJSU3hEUVVGdFFpeEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0aFFVTnVSaXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVN1dVRkROVUlzU1VGQlNTeEpRVUZaTEVOQlFVTTdXVUZEYWtJc1RVRkJUU3hEUVVGRExFZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNoQ0xFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRVZCUVVVN1owSkJRMmhDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhWUVVGVkxFVkJRVVU3YjBKQlF6TkNMRWxCUVVrc1IwRkJSeXhQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmxDUVVNNVFqdHhRa0ZCVFR0dlFrRkRUQ3hKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzI5Q1FVTldMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zYVVKQlFXbENMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNRMEZCUXp0cFFrRkRMMFE3WVVGRFJqdHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETzJGQlExWTdXVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRSUVVOa0xFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUldZc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBsQlMwUTdPenM3VDBGSlJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4alFVRmpMRU5CUVVNc1IwRkJVVHRSUVVOdVF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE4wSXNUVUZCVFN4RlFVRkZMRWRCUVRKQ0xFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkZMRTFCUVUwc1MwRkJTeXhIUVVGclFpeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUlM5RExFMUJRVTBzWVVGQllTeEhRVUZITEVOQlFVTXNSVUZCVlN4RlFVRlZMRVZCUVVVN1dVRkRNME1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMmhETEUxQlFVMHNTVUZCU1N4SFFVRkhMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTNoRExFbEJRVWtzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJRenRuUWtGRE1VSXNUMEZCVHl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03TzJkQ1FVVm1MRTlCUVU4c1JVRkJSU3hEUVVGRE8xRkJRMlFzUTBGQlF5eERRVUZETzFGQlJVWXNUVUZCVFN4TlFVRk5MRWRCUVdFc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdVVUZEZGtRc1RVRkJUU3hUUVVGVExFZEJRV0VzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVOMFJDeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVVE3T3pzN1QwRkpSenRKUVVOSkxFMUJRVTBzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhUUVVGcFFpeEZRVUZGTEZGQlFUUkNMRk5CUVZNN1VVRkROMFlzVDBGQlR5eERRVUZETEVkQlFWY3NSVUZCUlN4RlFVRkZPMWxCUTNKQ0xFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNrTXNRMEZCUXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRU96czdPenRQUVV0SE8wbEJRMGtzVFVGQlRTeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRmhMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeFJRVUUwUWl4VFFVRlRPMUZCUXk5R0xFbEJRVWtzUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRlZCUVZVc09FSkJRV2RDTzFsQlEyaEVMRTlCUVU4c1QwRkJUeXhEUVVGRExHVkJRV1VzUTBGQlF6dGhRVU0xUWl4SlFVRkpMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF5eFZRVUZWTEhORFFVRnZRanRaUVVONlJDeFBRVUZQTEU5QlFVOHNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1lVRkRka1FzU1VGQlNTeExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1ZVRkJWU3cwUWtGQlpUdFpRVU53UkN4UFFVRlBMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU03TzFsQlJUbENMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYjBKQlFXOUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRmFrUXNNRUpCUVRCQ08wbEJRelZDTEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNSMEZCWXp0UlFVTXZReXhKUVVGSkxFZEJRVWNzUTBGQlF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhoUVVGaE8xbEJRekZETEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc05rSkJRVFpDTEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVVZzUml4TlFVRk5MRXRCUVVzc1IwRkJSeXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRekZFTEU5QlFVOHNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdTVUZETDBNc1EwRkJRenRKUVZsRU8wOUJRMGM3U1VGRFNTeE5RVUZOTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWRCUVZFN1VVRkRiRU1zVFVGQlRTeE5RVUZOTEVkQlFWY3NSMEZCUnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJRM1JETEVsQlFVa3NUVUZCVFN4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFVkJRVVU3V1VGRGRFSXNUMEZCVHl4TlFVRk5MRU5CUVVNN1UwRkRaanRoUVVGTk8xbEJRMHdzVFVGQlRTeExRVUZMTEVkQlFXRXNSVUZCUlN4RFFVRnRRaXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMmxDUVVNM1JpeEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRnZRaXhGUVVGRkxFVkJRVVU3WjBKQlF6VkNMRTFCUVUwc1NVRkJTU3hIUVVGWExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRNMElzVDBGQlR5eEpRVUZKTEVOQlFVTTdXVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJReXhQUVVGUExFVkJRVVVzUTBGQlF6dFpRVVZtTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFVkJRVVU3WjBKQlEzSkNMRTlCUVU4c1IwRkJSeXhEUVVGRE8yRkJRMW83YVVKQlFVMDdaMEpCUTB3c1RVRkJUU3hMUVVGTExFZEJRVmNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMmRDUVVNdlFpeE5RVUZOTEUxQlFVMHNSMEZCVnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETzJkQ1FVTndSaXhQUVVGUExFMUJRVTBzUTBGQlF6dGhRVU5tTzFOQlEwWTdTVUZEU0N4RFFVRkRPMGxCUlUwc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZoTEVWQlFVVXNhMEpCUVRCQ08xRkJRM0JGTEU5QlFVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1NVRkJTU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJRenRKUVVOdVJ5eERRVUZET3p0QlFXZ3pRbUVzYlVKQlFWY3NSMEZCUnl4aFFVRmhMRU5CUVVNN1FVRkRNMElzYlVKQlFWY3NSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVN0MVFucENMR2xDUVVGVExFZEJRVWNzY1VKQlFYRkNMRU5CUVVNN1FVRXlRbXhETEdOQlFVMHNSMEZCUnl4cFEwRkJhVU1zUTBGQlF6dEJRVU16UXl4cFFrRkJVeXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMEZCYVVVMVF5dzRSa0ZCT0VZN1FVRkRMMFVzYTBKQlFWVXNSMEZCSzBJN1NVRkRkRVFzVTBGQlV5eEZRVUZGTEVkQlFVYzdTVUZEWkN4UFFVRlBMRVZCUVVVc1IwRkJSenRKUVVOYUxFOUJRVThzUlVGQlJTeEhRVUZITzBsQlExb3NUMEZCVHl4RlFVRkZMRWRCUVVjN1EwRkRZaXhEUVVGRE8wRkJSV0VzZVVKQlFXbENMRWRCUVVjc1VVRkJVU3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIZDFJR1p5YjIwZ0ozZDFKenRjYm1sdGNHOXlkQ0FxSUdGeklISjRhbk1nWm5KdmJTQW5jbmhxY3ljN1hHNWNibWx0Y0c5eWRDQjdWbVZqZEc5eWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlM1psWTNSdmNreGxibWQwYUN3Z2RtVmpkRzl5Ukc5MFVISnZaSFZqZEgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdEJiV2x1YjJGamFXUnpMQ0JCYldsdWIyRmphV1J6VUdGc1pYUjBaWE45SUdaeWIyMGdKeTR1TDJGdGFXNXZZV05wWkhNbk8xeHVhVzF3YjNKMElIdE9kV05zWlc5MGFXUmxjeXdnVG5WamJHVnZkR2xrWlhOUVlXeGxkSFJsYzMwZ1puSnZiU0FuTGk0dmJuVmpiR1Z2ZEdsa1pYTW5PMXh1YVcxd2IzSjBJSHRWYm10dWIzZHVVMlZ4VUdGc1pYUjBaWE45SUdaeWIyMGdKeTR1TDNWdWEyNXZkMjRuTzF4dWFXMXdiM0owSUh0VFpYRlFZV3hsZEhSbGZTQm1jbTl0SUNjdUxpOXpaWEV0Y0dGc1pYUjBaWE1uTzF4dWFXMXdiM0owSUh0VGRXSnpZM0pwY0hScGIyNTlJR1p5YjIwZ0ozSjRhbk1uTzF4dWFXMXdiM0owSUh0T1QxUkJWRWxQVGl3Z1ZXNXBkSE5JWVc1a2JHVnlmU0JtY205dElDY3VMaTkxZEdsc2N5OTFibWwwY3kxb1lXNWtiR1Z5Snp0Y2JseHVaR1ZqYkdGeVpTQnRiMlIxYkdVZ0oyUmhkR0ZuY205ckxXRndhUzl6Y21NdlozSnBaQ2NnZTF4dUlDQnBiblJsY21aaFkyVWdVbVZqZENCN1hHNGdJQ0FnWTI5dWRHRnBibk1vZURvZ2JuVnRZbVZ5TENCNU9pQnVkVzFpWlhJcE9pQmliMjlzWldGdU8xeHVJQ0I5WEc1OVhHNWNibVZ1ZFcwZ1VHOXphWFJwYjI1SVpXbG5hSFFnZTF4dUlDQkZiblJ5YjNCNUlEMGdKMFZ1ZEhKdmNIa25MRnh1SUNCbWRXeHNJRDBnSnpFd01DVW5MRnh1ZlZ4dVhHNWtaV05zWVhKbElHZHNiMkpoYkNCN1hHNGdJR2x1ZEdWeVptRmpaU0JJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQ0I3WEc0Z0lDQWdaMlYwUTNWeWMyOXlVRzl6YVhScGIyNG9aWFpsYm5RNklFMXZkWE5sUlhabGJuUXNJSEk2SUc1MWJXSmxjaWs2SUVSSExsQnZhVzUwTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRTF2Ym05dFpYSkdjbVZ4Y3lBOUlIc2dXMjA2SUhOMGNtbHVaMTA2SUc1MWJXSmxjaUI5TzF4dVpYaHdiM0owSUhSNWNHVWdVMlZ4UTI5c1UzUmhkSE1nUFNCN0lHWnlaWEU2SUUxdmJtOXRaWEpHY21WeGN5d2djMkZ0WlV4bGJtZDBhRG9nWW05dmJHVmhiaUI5WEc1bGVIQnZjblFnZEhsd1pTQlRjR3hwZEhSbGNrWjFibU1nUFNBb2MyVnhPaUJ6ZEhKcGJtY3BJRDArSUhOMGNtbHVaMXRkTzF4dVhHNHZLaXBBY0dGeVlXMGdlMDF2ZFhObFJYWmxiblI5SUdWMlpXNTBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnY2lCa1pYWnBZMlZRYVhobGJGSmhkR2x2Ymx4dUlDb2dRSEpsZEhWeWJpQjdSRWN1VUc5cGJuUjlJR05oYm5aaGN5QnlaV3hoZEdWa0lHTjFjbk52Y2lCd2IzTnBkR2x2Ymx4dUlDb3ZYRzVJVkUxTVEyRnVkbUZ6Uld4bGJXVnVkQzV3Y205MGIzUjVjR1V1WjJWMFEzVnljMjl5VUc5emFYUnBiMjRnUFNCbWRXNWpkR2x2YmlobGRtVnVkRG9nVFc5MWMyVkZkbVZ1ZEN3Z2Nqb2diblZ0WW1WeUtUb2dSRWN1VUc5cGJuUWdlMXh1SUNCamIyNXpkQ0J5WldOMElEMGdkR2hwY3k1blpYUkNiM1Z1WkdsdVowTnNhV1Z1ZEZKbFkzUW9LVHRjYmlBZ2NtVjBkWEp1SUc1bGR5QkVSeTVRYjJsdWRDZ29aWFpsYm5RdVkyeHBaVzUwV0NBdElISmxZM1F1YkdWbWRDa2dLaUJ5TENBb1pYWmxiblF1WTJ4cFpXNTBXU0F0SUhKbFkzUXVkRzl3S1NBcUlISXBPMXh1ZlR0Y2JseHVSRWN1VW1WamRDNXdjbTkwYjNSNWNHVXVZMjl1ZEdGcGJuTWdQU0JtZFc1amRHbHZiaWg0T2lCdWRXMWlaWElzSUhrNklHNTFiV0psY2lrNklHSnZiMnhsWVc0Z2UxeHVJQ0J5WlhSMWNtNGdkR2hwY3k1c1pXWjBJRHc5SUhnZ0ppWWdlQ0E4UFNCMGFHbHpMbkpwWjJoMElDWW1JSFJvYVhNdWRHOXdJRHc5SUhrZ0ppWWdlU0E4UFNCMGFHbHpMbUp2ZEhSdmJUdGNibjA3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUh0Y2JpQWdMeW9xSUZObGNYVmxibU5sY3lCamIzVnVkQ0IzYVhSb0lHMXZibTl0WlhJZ2FXNGdjRzl6YVhScGIyNWNiaUFnSUNvdlhHNGdJR052ZFc1ME9pQnVkVzFpWlhJN1hHNWNiaUFnTHlvcUlGSmxiV1Z0WW1WeUlITmpjbVZsYmlCamIyOXlaSE1nY21WamRGeHVJQ0FnS2k5Y2JpQWdZbTkxYm1Sek9pQkVSeTVTWldOME8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtHTnZkVzUwT2lCdWRXMWlaWElnUFNBd0xDQmliM1Z1WkhNNklFUkhMbEpsWTNRZ1BTQnVaWGNnUkVjdVVtVmpkQ2d3TENBd0xDQXdMQ0F3S1NrZ2UxeHVJQ0FnSUhSb2FYTXVZMjkxYm5RZ1BTQmpiM1Z1ZER0Y2JpQWdJQ0IwYUdsekxtSnZkVzVrY3lBOUlHSnZkVzVrY3p0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVUc5emFYUnBiMjVKYm1adklIdGNiaUFnY0hWaWJHbGpJSEpsWVdSdmJteDVJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdabkpsY1RvZ2V5QmJiVG9nYzNSeWFXNW5YVG9nVUc5emFYUnBiMjVOYjI1dmJXVnlTVzVtYnlCOU8xeHVJQ0J5YjNkRGIzVnVkRG9nYm5WdFltVnlPMXh1SUNCemRXMUdiM0pJWldsbmFIUkRZV3hqT2lCdWRXMWlaWEk3WEc1Y2JpQWdMeW9xSUdaeVpYRWdQU0I3ZlN3Z2NtOTNRMjkxYm5RZ1BTQXdYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdVlXMWxJRTVoYldVZ2IyWWdjRzl6YVhScGIyNGdLQ2N4TVRGQkp5d2dKekV4TVM0eEp5d2daWFJqS1Z4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QlRkVzBnYjJZZ1lXeHNJRzF2Ym05dFpYSWdZMjkxYm5SeklHWnZjaUJvWldsbmFIUWdZMkZzWTNWc1lYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISnZkME52ZFc1MElFTnZkVzUwSUc5bUlHVnNaVzFsYm5SeklHbHVJR052YkhWdGJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkZlNCbWNtVnhJR1p5WlhGMVpXNWplU0J2WmlCdGIyNXZiV1Z5Y3lCcGJpQndiM05wZEdsdmJseHVJQ0FnS2k5Y2JpQWdZMjl1YzNSeWRXTjBiM0lvYm1GdFpUb2djM1J5YVc1bkxDQm1jbVZ4T2lCN0lGdHRPaUJ6ZEhKcGJtZGRPaUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUgwZ1BTQjdmU3dnY205M1EyOTFiblE2SUc1MWJXSmxjaUE5SURBc0lITjFiVVp2Y2tobGFXZG9kRU5oYkdNNklHNTFiV0psY2lBOUlEQXBJSHRjYmlBZ0lDQjBhR2x6TG01aGJXVWdQU0J1WVcxbE8xeHVJQ0FnSUhSb2FYTXVabkpsY1NBOUlHWnlaWEU3WEc0Z0lDQWdkR2hwY3k1eWIzZERiM1Z1ZENBOUlISnZkME52ZFc1ME8xeHVJQ0FnSUhSb2FYTXVjM1Z0Um05eVNHVnBaMmgwUTJGc1l5QTlJSE4xYlVadmNraGxhV2RvZEVOaGJHTTdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGZGxZa3h2WjI4Z1pYaDBaVzVrY3lCRVJ5NUtjMVpwWlhkbGNpQjdYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjbVZ6YVdSMVpYTlRaWFFnUFNBbmJuVmpiR1Z2ZEdsa1pYTW5PMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUIyYVdWM1pYSkRiM1Z1ZERvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNaWEpKWkRvZ2JuVnRZbVZ5SUQwZ0xURTdYRzRnSUhCeWFYWmhkR1VnZFc1cGRITklZVzVrYkdWeU9pQlZibWwwYzBoaGJtUnNaWElnZkNCdWRXeHNPMXh1SUNCd2NtbDJZWFJsSUdsdWFYUnBZV3hwZW1Wa09pQmliMjlzWldGdUlEMGdabUZzYzJVN1hHNWNiaUFnTHk4Z2NISnBkbUYwWlNCeVpXRmtiMjVzZVNCamIyeHZjbE5qYUdWdFpUb2dRMjlzYjNKVFkyaGxiV1VnUFNCRGIyeHZjbE5qYUdWdFpYTmJUblZqYkdWdmRHbGtaWE5YWldKTWIyZHZMbkpsYzJsa2RXVnpVMlYwWFR0Y2JpQWdjSEp2ZEdWamRHVmtJR053T2lCVFpYRlFZV3hsZEhSbElId2diblZzYkNBOUlHNTFiR3c3WEc1Y2JpQWdjSEpwZG1GMFpTQm9iM04wUHpvZ1NGUk5URVJwZGtWc1pXMWxiblE3WEc0Z0lIQnlhWFpoZEdVZ2JYTm5TRzl6ZEQ4NklFaFVUVXhGYkdWdFpXNTBPMXh1SUNCd2NtbDJZWFJsSUdOaGJuWmhjejg2SUVoVVRVeERZVzUyWVhORmJHVnRaVzUwTzF4dUlDQndjbWwyWVhSbElITnNhV1JsY2o4NklFUkhMbEpoYm1kbFUyeHBaR1Z5TzF4dUlDQndjbWwyWVhSbElIUmxlSFJDWVhObGJHbHVaVG9nUTJGdWRtRnpWR1Y0ZEVKaGMyVnNhVzVsTzF4dVhHNGdJSEJ5YVhaaGRHVWdZWGhwYzBobGFXZG9kRG9nYm5WdFltVnlJRDBnTVRJN1hHNWNiaUFnY0hKcGRtRjBaU0J6WlhGRGIydzZJRVJITGtOdmJIVnRianh6ZEhKcGJtYytJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNGdJSEJ5YVhaaGRHVWdjM0JzYVhSMFpYSTZJRk53YkdsMGRHVnlSblZ1WXlCOElHNTFiR3dnUFNCdWRXeHNPMXh1SUNBdkx5QndjbWwyWVhSbElHMWhlRXhsYm1kMGFEb2diblZ0WW1WeUlEMGdNVEF3TzF4dUlDQndjbWwyWVhSbElIQnZjMmwwYVc5dWN6b2dVRzl6YVhScGIyNUpibVp2VzEwZ1BTQmJYVHRjYmx4dUlDQndjbWwyWVhSbElISnZkM05OWVhOclpXUTZJRzUxYldKbGNpQTlJREE3WEc0Z0lIQnlhWFpoZEdVZ2NtOTNjMDUxYkd3NklHNTFiV0psY2lBOUlEQTdYRzVjYmlBZ0x5OGdWbWxsZDJWeUozTWdjSEp2Y0dWeWRHbGxjeUFvYkdsclpXeDVJSFJvWlhrZ2MyaHZkV3hrSUdKbElIQjFZbXhwWXlCemJ5QjBhR0YwSUhSb1pYa2dZMkZ1SUdKbElITmxkQ0J2ZFhSemFXUmxLVnh1SUNCd2NtbDJZWFJsSUY5d2IzTnBkR2x2YmxkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUhCMVlteHBZeUJ3YjNOcGRHbHZibGRwWkhSb09pQnVkVzFpWlhJN1hHNGdJSEIxWW14cFl5QnRhVzVJWldsbmFIUTZJRzUxYldKbGNqdGNiaUFnY0hWaWJHbGpJRzFoZUVobGFXZG9kRG9nYm5WdFltVnlPMXh1SUNCd2RXSnNhV01nWTI5dWMybGtaWEpPZFd4c1UyVnhkV1Z1WTJWek9pQmliMjlzWldGdU8xeHVJQ0J3ZFdKc2FXTWdjMlZ4ZFdWdVkyVkRiMngxYlc1T1lXMWxPaUJ6ZEhKcGJtY2dmQ0J1ZFd4c08xeHVJQ0J3ZFdKc2FXTWdjRzl6YVhScGIyNU5ZWEpuYVc1VGRHRjBaVG9nYzNSeWFXNW5PMXh1SUNCd2RXSnNhV01nY0c5emFYUnBiMjVOWVhKbmFXNDZJRzUxYldKbGNpQTlJREE3WEc0Z0lIQjFZbXhwWXlCemRHRnlkRkJ2YzJsMGFXOXVUbUZ0WlRvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdWdVpGQnZjMmwwYVc5dVRtRnRaVG9nYzNSeWFXNW5JSHdnYm5Wc2JEdGNiaUFnY0hWaWJHbGpJR1pwZUZkcFpIUm9PaUJpYjI5c1pXRnVPMXh1SUNCd2RXSnNhV01nZG1WeWRHbGpZV3hCYkdsbmJtMWxiblE2SUhOMGNtbHVaeUI4SUc1MWJHdzdYRzRnSUhCMVlteHBZeUJvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nWm1sMFFYSmxZVG9nWW05dmJHVmhianRjYmlBZ2NIVmliR2xqSUhOb2NtbHVhMFZ0Y0hSNVZHRnBiRG9nWW05dmJHVmhianRjYmlBZ2NIVmliR2xqSUhOcmFYQkZiWEIwZVZCdmMybDBhVzl1Y3pvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklIQnZjMmwwYVc5dVNHVnBaMmgwT2lCemRISnBibWM3WEc1Y2JpQWdjSEpwZG1GMFpTQndiM05wZEdsdmJrNWhiV1Z6T2lCemRISnBibWRiWFNBOUlGdGRPMXh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhjblJRYjNOcGRHbHZiam9nYm5WdFltVnlJRDBnTFRFN1hHNWNiaUFnY0hKcGRtRjBaU0JsYm1SUWIzTnBkR2x2YmpvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ0x5b3FJRVp2Y2lCemRHRnlkRkJ2YzJsMGFXOXVJR1Z4ZFdGc2N5QjBieUJsYm1SUWIzTnBkR2x2YmlCTVpXNW5kR2dnYVhNZ01TQXFMMXh1SUNCd2NtbDJZWFJsSUdkbGRDQk1aVzVuZEdnb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1emEybHdSVzF3ZEhsUWIzTnBkR2x2Ym5NcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJ2YzJsMGFXOXVjeTVzWlc1bmRHZzdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnUEQwZ2RHaHBjeTVsYm1SUWIzTnBkR2x2YmlBL0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z0xTQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdLeUF4SURvZ01EdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaMlYwSUhCdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVLQ2tnZTF4dUlDQWdJR2xtSUNnb2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsSUQwOVBTQW5ZWFYwYnljcElDWW1JQ2gwYUdsekxuVnVhWFJ6U0dGdVpHeGxjajh1WjJWMFFXeHdhR0ZpWlhSSmMwMTFiSFJwWTJoaGNpZ3BJRDA5UFNCMGNuVmxLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnS3lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdU8xeHVJQ0FnSUgxY2JpQWdJQ0JwWmlBb2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsSUQwOVBTQW5aVzVoWW14bEp5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WDNCdmMybDBhVzl1VjJsa2RHZ2dLeUIwYUdsekxuQnZjMmwwYVc5dVRXRnlaMmx1TzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9PMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0IyYVdWM1UzVmljem9nVTNWaWMyTnlhWEIwYVc5dVcxMGdQU0JiWFR0Y2JseHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dVhHNGdJQ0FnZEdocGN5NTJhV1YzWlhKSlpDQTlJRmRsWWt4dloyOHVkbWxsZDJWeVEyOTFiblE3WEc0Z0lDQWdWMlZpVEc5bmJ5NTJhV1YzWlhKRGIzVnVkQ0FyUFNBeE8xeHVYRzRnSUNBZ2RHaHBjeTUwWlhoMFFtRnpaV3hwYm1VZ1BTQW5kRzl3Snp0Y2JpQWdJQ0IwYUdsekxuVnVhWFJ6U0dGdVpHeGxjaUE5SUc1MWJHdzdYRzVjYmlBZ0lDQjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JRDBnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTVtYkc5aGRDZ25jRzl6YVhScGIyNVhhV1IwYUNjc0lERTJMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQTBMQ0J0WVhnNklEWTBMQ0J3YjNOMFptbDRPaUFuY0hnbmZTb3ZLVHRjYmlBZ0lDQjBhR2x6TG0xcGJraGxhV2RvZENBOUlIUm9hWE11Wm14dllYUW9KMjFwYmtobGFXZG9kQ2NzSURVd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBeU5UQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1SUNBZ0lIUm9hWE11YldGNFNHVnBaMmgwSUQwZ2RHaHBjeTVtYkc5aGRDZ25iV0Y0U0dWcFoyaDBKeXdnTVRBd0x5b3NYRzRnSUNBZ0lDQjdaV1JwZEc5eU9pQW5jMnhwWkdWeUp5d2diV2x1T2lBeU5Td2diV0Y0T2lBMU1EQXNJSEJ2YzNSbWFYZzZJQ2R3ZUNkOUtpOHBPMXh1WEc0Z0lDQWdkR2hwY3k1amIyNXphV1JsY2s1MWJHeFRaWEYxWlc1alpYTWdQU0IwYUdsekxtSnZiMndvSjJOdmJuTnBaR1Z5VG5Wc2JGTmxjWFZsYm1ObGN5Y3NJR1poYkhObEtUdGNiaUFnSUNCMGFHbHpMbk5sY1hWbGJtTmxRMjlzZFcxdVRtRnRaU0E5SUhSb2FYTXVjM1J5YVc1bktDZHpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVW5MQ0J1ZFd4c0tUdGNibHh1SUNBZ0lIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJrNWhiV1VnUFNCMGFHbHpMbk4wY21sdVp5Z25jM1JoY25SUWIzTnBkR2x2Yms1aGJXVW5MQ0J1ZFd4c0tUdGNiaUFnSUNCMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTQTlJSFJvYVhNdWMzUnlhVzVuS0NkbGJtUlFiM05wZEdsdmJrNWhiV1VuTENCdWRXeHNLVHRjYmx4dUlDQWdJSFJvYVhNdVptbDRWMmxrZEdnZ1BTQjBhR2x6TG1KdmIyd29KMlpwZUZkcFpIUm9KeXdnWm1Gc2MyVXBPMXh1WEc0Z0lDQWdkR2hwY3k1MlpYSjBhV05oYkVGc2FXZHViV1Z1ZENBOUlIUm9hWE11YzNSeWFXNW5LQ2QyWlhKMGFXTmhiRUZzYVdkdWJXVnVkQ2NzSUNkdGFXUmtiR1VuTEZ4dUlDQWdJQ0FnZTJOb2IybGpaWE02SUZzbmRHOXdKeXdnSjIxcFpHUnNaU2NzSUNkaWIzUjBiMjBuWFgwcE8xeHVJQ0FnSUhSb2FYTXVhRzl5YVhwdmJuUmhiRUZzYVdkdWJXVnVkQ0E5SUhSb2FYTXVjM1J5YVc1bktDZG9iM0pwZW05dWRHRnNRV3hwWjI1dFpXNTBKeXdnSjJObGJuUmxjaWNzWEc0Z0lDQWdJQ0I3WTJodmFXTmxjem9nV3lkc1pXWjBKeXdnSjJObGJuUmxjaWNzSUNkeWFXZG9kQ2RkZlNrN1hHNGdJQ0FnZEdocGN5NW1hWFJCY21WaElEMGdkR2hwY3k1aWIyOXNLQ2RtYVhSQmNtVmhKeXdnZEhKMVpTazdYRzRnSUNBZ2RHaHBjeTV6YUhKcGJtdEZiWEIwZVZSaGFXd2dQU0IwYUdsekxtSnZiMndvSjNOb2NtbHVhMFZ0Y0hSNVZHRnBiQ2NzSUhSeWRXVXBPMXh1SUNBZ0lIUm9hWE11YzJ0cGNFVnRjSFI1VUc5emFYUnBiMjV6SUQwZ2RHaHBjeTVpYjI5c0tDZHphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTW5MQ0JtWVd4elpTazdYRzRnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazFoY21kcGJsTjBZWFJsSUQwZ2RHaHBjeTV6ZEhKcGJtY29KM0J2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VuTENBbllYVjBieWNzWEc0Z0lDQWdJQ0I3WTJodmFXTmxjem9nV3lkaGRYUnZKeXdnSjJWdVlXSnNaU2NzSUNkdlptWW5YWDBwTzF4dUlDQWdJR3hsZENCa1pXWmhkV3gwVm1Gc2RXVkdiM0pRYjNOcGRHbHZiazFoY21kcGJpQTlJREE3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjRzl6YVhScGIyNU5ZWEpuYVc1VGRHRjBaU0E5UFQwZ0oyRjFkRzhuS1NCN1hHNGdJQ0FnSUNBZ0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVJRDBnTkR0Y2JpQWdJQ0I5WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBiaUE5SUhSb2FYTXVhVzUwS0Nkd2IzTnBkR2x2YmsxaGNtZHBiaWNzSUdSbFptRjFiSFJXWVd4MVpVWnZjbEJ2YzJsMGFXOXVUV0Z5WjJsdUxDQjdiV2x1T2lBd0xDQnRZWGc2SURFMmZTazdYRzRnSUNBZ2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlJSFJvYVhNdWMzUnlhVzVuS0Nkd2IzTnBkR2x2YmtobGFXZG9kQ2NzSUZCdmMybDBhVzl1U0dWcFoyaDBMbVoxYkd3c0lIdGphRzlwWTJWek9pQmJVRzl6YVhScGIyNUlaV2xuYUhRdVpuVnNiQ3dnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VWMTlLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdhVzVwZENncE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjMjlzWlM1bGNuSnZjaWduVjJWaVRHOW5ieUJ6WldOdmJtUWdhVzVwZEdsaGJHbDZZWFJwYjI0aEp5azdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnZEdocGN5NXBibWwwYVdGc2FYcGxaQ0E5SUhSeWRXVTdYRzRnSUNBZ2RHaHBjeTVvWld4d1ZYSnNJRDBnSnk5b1pXeHdMM1pwYzNWaGJHbDZaUzkyYVdWM1pYSnpMM2RsWWkxc2IyZHZMbTFrSnp0Y2JseHVJQ0FnSUhSb2FYTXViWE5uU0c5emRDQTlJSFZwTG1ScGRpZ25UbThnYldWemMyRm5aU2NwTzF4dUlDQWdJSFJvYVhNdWJYTm5TRzl6ZEM1emRIbHNaUzVrYVhOd2JHRjVJRDBnSjI1dmJtVW5PMXh1WEc0Z0lDQWdkR2hwY3k1allXNTJZWE1nUFNCMWFTNWpZVzUyWVhNb0tUdGNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5NXpkSGxzWlM1M2FXUjBhQ0E5SUNjeE1EQWxKenRjYmx4dUlDQWdJSFJvYVhNdWFHOXpkQ0E5SUhWcExtUnBkaWhiZEdocGN5NXRjMmRJYjNOMExDQjBhR2x6TG1OaGJuWmhjMTBwTzF4dVhHNGdJQ0FnTHk4Z2RHaHBjeTV6Ykdsa1pYSWdQU0IxYVM1eVlXNW5aVk5zYVdSbGNpZ3dMQ0F5TUN3Z01pd2dOU2s3WEc0Z0lDQWdMeThnZEdocGN5NXpiR2xrWlhJdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlDY3hNREFsSnp0Y2JpQWdJQ0F2THlCMGFHbHpMbk5zYVdSbGNpNXliMjkwTG5OMGVXeGxMbWhsYVdkb2RDQTlJQ2N4TW5CNEp6dGNibHh1SUNBZ0lHTnZibk4wSUdkbGRFMXZibTl0WlhJZ1BTQW9jRG9nUkVjdVVHOXBiblFwT2lCYmJuVnRZbVZ5TENCemRISnBibWNnZkNCdWRXeHNMQ0JRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2SUh3Z2JuVnNiRjBnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYWxCdmN5QTlJRTFoZEdndVpteHZiM0lvY0M1NElDOGdkR2hwY3k1d2IzTnBkR2x2YmxkcFpIUm9WMmwwYUUxaGNtZHBiaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQndiM05wZEdsdmJpQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTzF4dVhHNGdJQ0FnSUNCcFppQW9jRzl6YVhScGIyNGdQVDA5SUhadmFXUWdNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRnRxVUc5ekxDQnVkV3hzTENCdWRXeHNYVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdiVzl1YjIxbGNqb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtJRDBnVDJKcVpXTjBMbXRsZVhNb2NHOXphWFJwYjI0dVpuSmxjU2xjYmlBZ0lDQWdJQ0FnTG1acGJtUW9LRzBwSUQwK0lIQnZjMmwwYVc5dUxtWnlaWEZiYlYwdVltOTFibVJ6TG1OdmJuUmhhVzV6S0hBdWVDd2djQzU1S1NrN1hHNGdJQ0FnSUNCcFppQW9iVzl1YjIxbGNpQTlQVDBnZFc1a1pXWnBibVZrS1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnVzJwUWIzTXNJRzUxYkd3c0lHNTFiR3hkTzF4dVhHNGdJQ0FnSUNCeVpYUjFjbTRnVzJwUWIzTXNJRzF2Ym05dFpYSXNJSEJ2YzJsMGFXOXVMbVp5WlhGYmJXOXViMjFsY2wxZE8xeHVJQ0FnSUgwN1hHNWNibHh1SUNBZ0lDOHZJSFJvYVhNdWMzVmljeTV3ZFhOb0tISjRhbk11Wm5KdmJVVjJaVzUwUEUxdmRYTmxSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuYlc5MWMyVnZkbVZ5SnlrdWMzVmljMk55YVdKbEtDaGxPaUJOYjNWelpVVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0x5OGdmU2twTzF4dVhHNGdJQ0FnZEdocGN5NTJhV1YzVTNWaWN5NXdkWE5vS0hKNGFuTXVabkp2YlVWMlpXNTBQRTF2ZFhObFJYWmxiblErS0hSb2FYTXVZMkZ1ZG1GekxDQW5iVzkxYzJWdGIzWmxKeWt1YzNWaWMyTnlhV0psS0NobE9pQk5iM1Z6WlVWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9JWFJvYVhNdVkyRnVkbUZ6S1Z4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR0Z5WjNNZ1BTQmxJR0Z6SUUxdmRYTmxSWFpsYm5RN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUhJNklHNTFiV0psY2lBOUlIZHBibVJ2ZHk1a1pYWnBZMlZRYVhobGJGSmhkR2x2TzF4dUlDQWdJQ0FnWTI5dWMzUWdZM1Z5YzI5eVVEb2dSRWN1VUc5cGJuUWdQU0IwYUdsekxtTmhiblpoY3k1blpYUkRkWEp6YjNKUWIzTnBkR2x2YmloaGNtZHpMQ0J5S1R0Y2JpQWdJQ0FnSUdOdmJuTjBJRnRxVUc5ekxDQnRiMjV2YldWeVhTQTlJR2RsZEUxdmJtOXRaWElvWTNWeWMyOXlVQ2s3WEc1Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG1SaGRHRkdjbUZ0WlNBbUppQjBhR2x6TG5ObGNVTnZiQ0FtSmlCMGFHbHpMbk53YkdsMGRHVnlJQ1ltSUcxdmJtOXRaWElwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY205M1EyOTFiblFnUFNCM2RTNWpiM1Z1ZENncExuUmhhMlVvZEdocGN5NWtZWFJoUm5KaGJXVXVjbTkzUTI5MWJuUXBMbVpwYkhSbGNpZ29hVkp2ZHpvZ2JuVnRZbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZ4SUQwZ2RHaHBjeTV6WlhGRGIyd2hMbWRsZENocFVtOTNLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6WlhGTklEMGdjMlZ4SUQ4Z2RHaHBjeTV6Y0d4cGRIUmxjaUVvYzJWeEtWdDBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdLeUJxVUc5elhTQTZJRzUxYkd3N1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDZ29jMlZ4VFNBOVBUMGdiVzl1YjIxbGNpa2dmSHdnS0hObGNVMGdQVDA5SUNjbklDWW1JRzF2Ym05dFpYSWdQVDA5SUNjdEp5a3BJQ1ltSUhSb2FYTXVaR0YwWVVaeVlXMWxMbVpwYkhSbGNpNW5aWFFvYVZKdmR5azdYRzRnSUNBZ0lDQWdJSDBwTG5KbFpIVmpaVHh1ZFcxaVpYSStLQ2hqYjNWdWRDd2dhVkp2ZHlrZ1BUNGdZMjkxYm5RZ0t5QXhMQ0F3S1R0Y2JpQWdJQ0FnSUNBZ2RXa3VkRzl2YkhScGNDNXphRzkzS0hWcExtUnBkaWhiZFdrdVpHbDJLR0FrZTIxdmJtOXRaWEo5WUNrc0lIVnBMbVJwZGloZ0pIdHliM2REYjNWdWRIMGdjbTkzYzJBcFhTa3NJR0Z5WjNNdWVDQXJJREUyTENCaGNtZHpMbmtnS3lBeE5pazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjFhUzUwYjI5c2RHbHdMbWhwWkdVb0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOUtTazdYRzVjYmlBZ0lDQjBhR2x6TG5acFpYZFRkV0p6TG5CMWMyZ29jbmhxY3k1bWNtOXRSWFpsYm5ROFRXOTFjMlZGZG1WdWRENG9kR2hwY3k1allXNTJZWE1zSUNkdGIzVnpaV1J2ZDI0bktTNXpkV0p6WTNKcFltVW9LR1U2SUUxdmRYTmxSWFpsYm5RcElEMCtJSHRjYmlBZ0lDQWdJR2xtSUNnaGRHaHBjeTVqWVc1MllYTWdmSHdnWlM1aWRYUjBiMjRnSVQwZ01DbGNiaUFnSUNBZ0lDQWdjbVYwZFhKdU8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCaGNtZHpJRDBnWlNCaGN5Qk5iM1Z6WlVWMlpXNTBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2Nqb2diblZ0WW1WeUlEMGdkMmx1Wkc5M0xtUmxkbWxqWlZCcGVHVnNVbUYwYVc4N1hHNGdJQ0FnSUNCamIyNXpkQ0JiYWxCdmN5d2diVzl1YjIxbGNsMGdQU0JuWlhSTmIyNXZiV1Z5S0hSb2FYTXVZMkZ1ZG1GekxtZGxkRU4xY25OdmNsQnZjMmwwYVc5dUtHRnlaM01zSUhJcEtUdGNibHh1SUNBZ0lDQWdMeThnY0hKbGRtVnVkSE1nWkdWelpXeGxZM1FnWVd4c0lISnZkM01nYVdZZ2QyVWdiV2x6Y3lCdGIyNXZiV1Z5SUdKdmRXNWtjMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVaR0YwWVVaeVlXMWxJQ1ltSUhSb2FYTXVjMlZ4UTI5c0lDWW1JSFJvYVhNdWMzQnNhWFIwWlhJZ0ppWWdiVzl1YjIxbGNpa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVhVzVwZENnb2FWSnZkeWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElITmxjU0E5SUhSb2FYTXVjMlZ4UTI5c0lTNW5aWFFvYVZKdmR5azdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdjMlZ4VFNBOUlITmxjU0EvSUhSb2FYTXVjM0JzYVhSMFpYSWhLSE5sY1NsYmRHaHBjeTV6ZEdGeWRGQnZjMmwwYVc5dUlDc2dhbEJ2YzEwZ09pQnVkV3hzTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb0tITmxjVTBnUFQwOUlHMXZibTl0WlhJcElIeDhJQ2h6WlhGTklEMDlQU0FuSnlBbUppQnRiMjV2YldWeUlEMDlQU0FuTFNjcEtTQW1KaUIwYUdsekxtUmhkR0ZHY21GdFpTNW1hV3gwWlhJdVoyVjBLR2xTYjNjcE8xeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWnBaWGRUZFdKekxuQjFjMmdvZFdrdWIyNVRhWHBsUTJoaGJtZGxaQ2gwYUdsekxuSnZiM1FwTG5OMVluTmpjbWxpWlNoMGFHbHpMbkp2YjNSUGJsTnBlbVZEYUdGdVoyVmtMbUpwYm1Rb2RHaHBjeWtwS1R0Y2JseHVJQ0FnSUhSb2FYTXVjbTl2ZEM1aGNIQmxibVFvZEdocGN5NW9iM04wS1R0Y2JpQWdJQ0F2THlCMGFHbHpMbkp2YjNRdVlYQndaVzVrUTJocGJHUW9kR2hwY3k1emJHbGtaWEl1Y205dmRDazdYRzVjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjbTl2ZEU5dVUybDZaVU5vWVc1blpXUW9ZWEpuY3pvZ1lXNTVLU0I3WEc0Z0lDQWdkR2hwY3k1eVpXNWtaWElvZEhKMVpTazdYRzVjYmlBZ0lDQXZMeUJqYjI1emIyeGxMbVJsWW5WbktHQlhaV0pNYjJkdkxtOXVVbTl2ZEZOcGVtVkRhR0Z1WjJWa0tDa2dZQ0FyWEc0Z0lDQWdMeThnSUNCZ2NtOXZkQzUzYVdSMGFEMGtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUlhhV1IwYUgwc0lISnZiM1F1YUdWcFoyaDBQU1I3ZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RIMHNJR0FnSzF4dUlDQWdJQzh2SUNBZ1lHTmhiblpoY3k1M2FXUjBhRDBrZTNSb2FYTXVZMkZ1ZG1GekxuZHBaSFJvZlN3Z1kyRnVkbUZ6TG1obGFXZG9kRDBrZTNSb2FYTXVZMkZ1ZG1GekxtaGxhV2RvZEgwZ0xtQXBPMXh1SUNCOVhHNWNiaUFnTHlvcUlFRnpjMmxuYm5NZ2UwQnNhVzVySUhObGNVTnZiSDBnWVc1a0lIdEFiR2x1YXlCamNIMGdZbUZ6WldRZ2IyNGdlMEJzYVc1cklITmxjWFZsYm1ObFEyOXNkVzF1VG1GdFpYMGdZVzVrSUdOaGJHeHpJSHRBYkdsdWF5QnlaVzVrWlhKOUtDa3VYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJSFZ3WkdGMFpWTmxjVU52YkNncE9pQjJiMmxrSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTVrWVhSaFJuSmhiV1VwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjMlZ4UTI5c0lEMGdkR2hwY3k1elpYRjFaVzVqWlVOdmJIVnRiazVoYldVZ1B5QjBhR2x6TG1SaGRHRkdjbUZ0WlM1amIyd29kR2hwY3k1elpYRjFaVzVqWlVOdmJIVnRiazVoYldVcElEb2diblZzYkR0Y2JpQWdJQ0FnSUdsbUlDaDBhR2x6TG5ObGNVTnZiQ0E5UFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjMlZ4UTI5c0lEMGdWMlZpVEc5bmJ5NXdhV05yVlhCVFpYRkRiMnd5S0hSb2FYTXVaR0YwWVVaeVlXMWxLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVWdQU0IwYUdsekxuTmxjVU52YkNBL0lIUm9hWE11YzJWeFEyOXNMbTVoYldVZ09pQnVkV3hzTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YzJWeFEyOXNLU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSFZ1YVhSek9pQnpkSEpwYm1jZ1BTQjBhR2x6TG5ObGNVTnZiQ0V1WjJWMFZHRm5LRVJITGxSQlIxTXVWVTVKVkZNcE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYQmhjbUYwYjNJNklITjBjbWx1WnlBOUlIUm9hWE11YzJWeFEyOXNJUzVuWlhSVVlXY29WVzVwZEhOSVlXNWtiR1Z5TGxSQlIxTXVjMlZ3WVhKaGRHOXlLVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXpjR3hwZEhSbGNpQTlJRmRsWWt4dloyOHVaMlYwVTNCc2FYUjBaWElvZFc1cGRITXNJSE5sY0dGeVlYUnZjaWs3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVkVzVwZEhOSVlXNWtiR1Z5SUQwZ2JtVjNJRlZ1YVhSelNHRnVaR3hsY2loMGFHbHpMbk5sY1VOdmJDazdYRzVjYmlBZ0lDQWdJQ0FnZEdocGN5NTFjR1JoZEdWUWIzTnBkR2x2Ym5Nb0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1amNDQTlJRmRsWWt4dloyOHVjR2xqYTFWd1VHRnNaWFIwWlNoMGFHbHpMbk5sY1VOdmJDazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5Od2JHbDBkR1Z5SUQwZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXdiM05wZEdsdmJrNWhiV1Z6SUQwZ1cxMDdYRzRnSUNBZ0lDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUE5SUMweE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1WdVpGQnZjMmwwYVc5dUlEMGdMVEU3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVZM0FnUFNCdWRXeHNPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCMGFHbHpMbkpsYm1SbGNpZ3BPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0IxY0dSaGRHVlFiM05wZEdsdmJuTW9LVG9nZG05cFpDQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxuTmxjVU52YkNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR3hsZENCallYUmxaMjl5YVdWek9pQW9jM1J5YVc1bklId2diblZzYkNrZ1cxMDdYRzRnSUNBZ2FXWWdLSFJvYVhNdWMyaHlhVzVyUlcxd2RIbFVZV2xzS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JwYm1ScFkyVnpPaUJKYm5Rek1rRnljbUY1SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dUlDQWdJQ0FnWTJGMFpXZHZjbWxsY3lBOUlFRnljbUY1TG1aeWIyMG9ibVYzSUZObGRDaGNiaUFnSUNBZ0lDQWdRWEp5WVhrdVpuSnZiU2hCY25KaGVTaHBibVJwWTJWekxteGxibWQwYUNrdWEyVjVjeWdwS1M1dFlYQW9LR2s2SUc1MWJXSmxjaWtnUFQ0Z2RHaHBjeTV6WlhGRGIyd2hMbWRsZENocGJtUnBZMlZ6VzJsZEtTa3BLVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJSFJvYVhNdWMyVnhRMjlzTG1OaGRHVm5iM0pwWlhNN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElHMWhlRXhsYm1kMGFDQTlJR05oZEdWbmIzSnBaWE11YkdWdVozUm9JRDRnTUNBL0lFMWhkR2d1YldGNEtDNHVMbU5oZEdWbmIzSnBaWE11YldGd0tGeHVJQ0FnSUNBZ0tITXBJRDArSUhNZ0lUMDlJRzUxYkd3Z1B5QjBhR2x6TG5Od2JHbDBkR1Z5SVNoektTNXNaVzVuZEdnZ09pQXdLU2tnT2lBd08xeHVYRzRnSUNBZ0x5OGdSMlYwSUhCdmMybDBhVzl1SUc1aGJXVnpJR1p5YjIwZ1pHRjBZU0JqYjJ4MWJXNGdkR0ZuSUNkd2IzTnBkR2x2Yms1aGJXVnpKMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1VG1GdFpYTlVlSFFnUFNCMGFHbHpMbk5sY1VOdmJDNW5aWFJVWVdjb0ozQnZjMmwwYVc5dVRtRnRaWE1uS1R0Y2JpQWdJQ0F2THlCR1lXeHNZbUZqYXlCcFppQW5jRzl6YVhScGIyNU9ZVzFsY3ljZ2RHRm5JR2x6SUc1dmRDQndjbTkyYVdSbFpGeHVJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBOUlIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1B5QndiM05wZEdsdmJrNWhiV1Z6VkhoMExuTndiR2wwS0Njc0lDY3BMbTFoY0Nnb2Jpa2dQVDRnYmk1MGNtbHRLQ2twSURwY2JpQWdJQ0FnSUZzdUxpNUJjbkpoZVNodFlYaE1aVzVuZEdncExtdGxlWE1vS1YwdWJXRndLQ2hxVUc5ektTQTlQaUJnSkh0cVVHOXpJQ3NnTVgxZ0tUdGNibHh1SUNBZ0lIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbElDWW1JSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeUFtSmx4dUlDQWdJQ0FnZEdocGN5NXdiM05wZEdsdmJrNWhiV1Z6TG1sdVkyeDFaR1Z6S0hSb2FYTXVjM1JoY25SUWIzTnBkR2x2Yms1aGJXVXBLU0EvWEc0Z0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE11YVc1a1pYaFBaaWgwYUdsekxuTjBZWEowVUc5emFYUnBiMjVPWVcxbEtTQTZJREE3WEc0Z0lDQWdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQTlJQ2gwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNBbUppQjBhR2x6TG5CdmMybDBhVzl1VG1GdFpYTWdKaVpjYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1Oc2RXUmxjeWgwYUdsekxtVnVaRkJ2YzJsMGFXOXVUbUZ0WlNrcElEOWNiaUFnSUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5NXBibVJsZUU5bUtIUm9hWE11Wlc1a1VHOXphWFJwYjI1T1lXMWxLU0E2SUNodFlYaE1aVzVuZEdnZ0xTQXhLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ2ZG1WeWNtbGtaU0J2YmxCeWIzQmxjblI1UTJoaGJtZGxaQ2h3Y205d1pYSjBlVG9nUkVjdVVISnZjR1Z5ZEhrcE9pQjJiMmxrSUh0Y2JpQWdJQ0F2THlCamIyNXpiMnhsTG1SbFluVm5LR0JYWldKTWIyZHZMbTl1VUhKdmNHVnlkSGxEYUdGdVoyVmtLQ0FrZTNCeWIzQmxjblI1TG01aGJXVjlJRDBnSnljZ2ZTbGdLVHRjYmlBZ0lDQnpkWEJsY2k1dmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVNrN1hHNWNiaUFnSUNCemQybDBZMmdnS0hCeWIzQmxjblI1TG01aGJXVXBJSHRjYmlBZ0lDQmpZWE5sSUNkamIyNXphV1JsY2s1MWJHeFRaWEYxWlc1alpYTW5PbHh1SUNBZ0lDQWdkR2hwY3k1eVpXNWtaWElvZEhKMVpTazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZHpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVW5PbHh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZUWlhGRGIyd29LVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM04wWVhKMFVHOXphWFJwYjI1T1lXMWxKenBjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsVTJWeFEyOXNLQ2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2RsYm1SUWIzTnBkR2x2Yms1aGJXVW5PbHh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZUWlhGRGIyd29LVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM0J2YzJsMGFXOXVWMmxrZEdnbk9seHVJQ0FnSUNBZ2RHaHBjeTVmY0c5emFYUnBiMjVYYVdSMGFDQTlJSFJvYVhNdWNHOXphWFJwYjI1WGFXUjBhRHRjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5iV2x1U0dWcFoyaDBKenBjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5iV0Y0U0dWcFoyaDBKenBjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5abWw0VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1eVpXNWtaWElvZEhKMVpTazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZDJaWEowYVdOaGJFRnNhV2R1YldWdWRDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0oyaHZjbWw2YjI1MFlXeEJiR2xuYm0xbGJuUW5PbHh1SUNBZ0lDQWdkR2hwY3k1eVpXNWtaWElvZEhKMVpTazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZG1hWFJCY21WaEp6cGNiaUFnSUNBZ0lIUm9hWE11Y21WdVpHVnlLSFJ5ZFdVcE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdZMkZ6WlNBbmMyaHlhVzVyUlcxd2RIbFVZV2xzSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFVHOXphWFJwYjI1ektDazdYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0ozTnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN5YzZYRzRnSUNBZ0lDQjBhR2x6TG5Wd1pHRjBaVkJ2YzJsMGFXOXVjeWdwTzF4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R3YjNOcGRHbHZiazFoY21kcGJpYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJR05oYzJVZ0ozQnZjMmwwYVc5dVRXRnlaMmx1VTNSaGRHVW5PbHh1SUNBZ0lDQWdkR2hwY3k1eVpXNWtaWElvZEhKMVpTazdYRzRnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0JqWVhObElDZHdiM05wZEdsdmJraGxhV2RvZENjNlhHNGdJQ0FnSUNCMGFHbHpMbkpsYm1SbGNpaDBjblZsS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QnZkbVZ5Y21sa1pTQmhjM2x1WXlCdmJsUmhZbXhsUVhSMFlXTm9aV1FvS1NCN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVVaeVlXMWxWSGgwT2lCemRISnBibWNnUFNCMGFHbHpMbVJoZEdGR2NtRnRaU0EvSUNka1lYUmhKeUE2SUNkdWRXeHNKenRjYmlBZ0lDQmpiMjV6YjJ4bExtUmxZblZuS0dCaWFXODZJRmRsWWt4dloyODhKSHQwYUdsekxuWnBaWGRsY2tsa2ZUNHViMjVVWVdKc1pVRjBkR0ZqYUdWa0tDQmtZWFJoUm5KaGJXVWdQU0FrZTJSaGRHRkdjbUZ0WlZSNGRIMGdLU0J6ZEdGeWRHQXBPMXh1SUNBZ0lITjFjR1Z5TG05dVZHRmliR1ZCZEhSaFkyaGxaQ2dwTzF4dVhHNGdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1SaGRHRkdjbUZ0WlNBaFBUMGdkbTlwWkNBd0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5OMVluTXVjSFZ6YUNoMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YjI1RGFHRnVaMlZrTG5OMVluTmpjbWxpWlNnb1h5a2dQVDRnZEdocGN5NXlaVzVrWlhJb0tTa3BPMXh1SUNBZ0lDQWdkR2hwY3k1emRXSnpMbkIxYzJnb2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbTl1UTJoaGJtZGxaQzV6ZFdKelkzSnBZbVVvS0Y4cElEMCtJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NTFjR1JoZEdWUWIzTnBkR2x2Ym5Nb0tUdGNiaUFnSUNBZ0lDQWdkR2hwY3k1eVpXNWtaWElvS1R0Y2JpQWdJQ0FnSUgwcEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtbHVhWFFvS1R0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ2tnWlc1a1lDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdiM1psY25KcFpHVWdZWE41Ym1NZ1pHVjBZV05vS0NrZ2UxeHVJQ0FnSUdOdmJuTjBJR1JoZEdGR2NtRnRaVlI0ZENBOUlHQWtlM1JvYVhNdVpHRjBZVVp5WVcxbElEOGdKMlJoZEdFbklEb2dKMjUxYkd3bmZXQTdYRzRnSUNBZ1kyOXVjMjlzWlM1a1pXSjFaeWhnWW1sdk9pQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xtOXVWR0ZpYkdWQmRIUmhZMmhsWkNnZ1pHRjBZVVp5WVcxbElEMGdKSHRrWVhSaFJuSmhiV1ZVZUhSOUlDa2djM1JoY25SZ0tUdGNiaUFnSUNCemRYQmxjaTVrWlhSaFkyZ29LVHRjYmx4dUlDQWdJSFJvYVhNdWRtbGxkMU4xWW5NdVptOXlSV0ZqYUNnb2MzVmlLU0E5UGlCemRXSXVkVzV6ZFdKelkzSnBZbVVvS1NrN1hHNGdJQ0FnZEdocGN5NW9iM04wSVM1eVpXMXZkbVVvS1R0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3lBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCMGFHbHpMbTF6WjBodmMzUWdQU0IxYm1SbFptbHVaV1E3WEc0Z0lDQWdkR2hwY3k1b2IzTjBJRDBnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnZEdocGN5NXBibWwwYVdGc2FYcGxaQ0E5SUdaaGJITmxPMXh1SUNBZ0lHTnZibk52YkdVdVpHVmlkV2NvWUdKcGJ6b2dWMlZpVEc5bmJ6d2tlM1JvYVhNdWRtbGxkMlZ5U1dSOVBpNXZibFJoWW14bFFYUjBZV05vWldRb0tTQmxibVJnS1R0Y2JpQWdmVnh1WEc0Z0lIQnliM1JsWTNSbFpDQmZiblZzYkZObGNYVmxibU5sS0dacGJHeGxjbEpsYzJsa2RXVWdQU0FuV0NjcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG1OdmJuTnBaR1Z5VG5Wc2JGTmxjWFZsYm1ObGN5bGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRWEp5WVhrb2RHaHBjeTVNWlc1bmRHZ3BMbVpwYkd3b1ptbHNiR1Z5VW1WemFXUjFaU2t1YW05cGJpZ25KeWs3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdKeWM3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2NtVnRiM1psVjJobGNtVW9ZWEp5WVhrNklFRnljbUY1UEdGdWVUNHNJSEJ5WldScFkyRjBaVG9nS0ZRNklHRnVlU2tnUFQ0Z1ltOXZiR1ZoYmlrNklFRnljbUY1UEdGdWVUNGdlMXh1SUNBZ0lHeGxkQ0JzWlc1bmRHZ2dQU0JoY25KaGVTNXNaVzVuZEdnN1hHNGdJQ0FnYkdWMElIVndaR0YwWlVsMFpYSmhkRzl5SUQwZ01EdGNiaUFnSUNCbWIzSWdLR3hsZENCa1pXeGxkR1ZKZEdWeVlYUnZjaUE5SURBN0lHUmxiR1YwWlVsMFpYSmhkRzl5SUR3Z2JHVnVaM1JvT3lCa1pXeGxkR1ZKZEdWeVlYUnZjaXNyS1NCN1hHNGdJQ0FnSUNCcFppQW9JWEJ5WldScFkyRjBaU2hoY25KaGVWdGtaV3hsZEdWSmRHVnlZWFJ2Y2wwcEtTQjdYRzRnSUNBZ0lDQWdJR0Z5Y21GNVczVndaR0YwWlVsMFpYSmhkRzl5WFNBOUlHRnljbUY1VzJSbGJHVjBaVWwwWlhKaGRHOXlYVHRjYmlBZ0lDQWdJQ0FnZFhCa1lYUmxTWFJsY21GMGIzSXJLenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ1lYSnlZWGt1YkdWdVozUm9JRDBnZFhCa1lYUmxTWFJsY21GMGIzSTdYRzRnSUNBZ2NtVjBkWEp1SUdGeWNtRjVPMXh1SUNCOVhHNWNibHh1SUNCd2NtOTBaV04wWldRZ1gzSmxiVzkyWlVWdGNIUjVVRzl6YVhScGIyNXpLQ2tnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbk5yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWtnZTF4dUlDQWdJQ0FnZEdocGN5NXlaVzF2ZG1WWGFHVnlaU2gwYUdsekxuQnZjMmwwYVc5dWN5d2dhWFJsYlNBOVBpQnBkR1Z0UHk1bWNtVnhXeWN0SjEwL0xtTnZkVzUwSUQwOVBTQnBkR1Z0TG5KdmQwTnZkVzUwS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1gyTmhiR04xYkdGMFpTaHlPaUJ1ZFcxaVpYSXBJSHRjYmlBZ0lDQnBaaUFvSVhSb2FYTXVZMkZ1ZG1GeklIeDhJQ0YwYUdsekxtaHZjM1FnZkh3Z0lYUm9hWE11YzJWeFEyOXNJSHg4SUNGMGFHbHpMbVJoZEdGR2NtRnRaU2xjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNWxkeUJWYm1sMGMwaGhibVJzWlhJb2RHaHBjeTV6WlhGRGIyd3BPMXh1WEc1Y2JpQWdJQ0IwYUdsekxtTmhiR05UYVhwbEtDazdYRzVjYmlBZ0lDQjBhR2x6TG5CdmMybDBhVzl1Y3lBOUlHNWxkeUJCY25KaGVTaDBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdQRDBnZEdocGN5NWxibVJRYjNOcGRHbHZiaUEvSUhSb2FYTXVaVzVrVUc5emFYUnBiMjRnTFNCMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z0t5QXhJRG9nTUNrN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWxCdmN5QTlJREE3SUdwUWIzTWdQQ0IwYUdsekxreGxibWQwYURzZ2FsQnZjeXNyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J3YjNOT1lXMWxPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE5iZEdocGN5NXpkR0Z5ZEZCdmMybDBhVzl1SUNzZ2FsQnZjMTA3WEc0Z0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFNBOUlHNWxkeUJRYjNOcGRHbHZia2x1Wm04b2NHOXpUbUZ0WlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z01qQXlNaTB3TlMwd05TQmhjMnRoYkd0cGJpQnBibk4wY25WamRHVmtJSFJ2SUhOb2IzY2dWMlZpVEc5bmJ5QmlZWE5sWkNCdmJpQm1hV3gwWlhJZ0tHNXZkQ0J6Wld4bFkzUnBiMjRwWEc0Z0lDQWdZMjl1YzNRZ2FXNWthV05sY3lBOUlIUm9hWE11WkdGMFlVWnlZVzFsTG1acGJIUmxjaTVuWlhSVFpXeGxZM1JsWkVsdVpHVjRaWE1vS1R0Y2JpQWdJQ0F2THlCamIyNXpkQ0JwYm1ScFkyVnpJRDBnZEdocGN5NWtZWFJoUm5KaGJXVXVjMlZzWldOMGFXOXVMblJ5ZFdWRGIzVnVkQ0ErSURBZ1B5QjBhR2x6TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dVoyVjBVMlZzWldOMFpXUkpibVJsZUdWektDa2dPbHh1SUNBZ0lDOHZJQ0FnZEdocGN5NWtZWFJoUm5KaGJXVXVabWxzZEdWeUxtZGxkRk5sYkdWamRHVmtTVzVrWlhobGN5Z3BPMXh1WEc0Z0lDQWdkR2hwY3k1eWIzZHpUV0Z6YTJWa0lEMGdhVzVrYVdObGN5NXNaVzVuZEdnN1hHNGdJQ0FnZEdocGN5NXliM2R6VG5Wc2JDQTlJREE3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdrZ2IyWWdhVzVrYVdObGN5a2dlMXh1SUNBZ0lDQWdiR1YwSUhNNklITjBjbWx1WnlBOUlEeHpkSEpwYm1jK0tIUm9hWE11YzJWeFEyOXNMbWRsZENocEtTazdYRzVjYmlBZ0lDQWdJR2xtSUNnaGN5a2dlMXh1SUNBZ0lDQWdJQ0J6SUQwZ2RHaHBjeTVmYm5Wc2JGTmxjWFZsYm1ObEtDazdYRzRnSUNBZ0lDQWdJQ3NyZEdocGN5NXliM2R6VG5Wc2JEdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2MyVnhUVG9nYzNSeWFXNW5XMTBnUFNCMGFHbHpMbk53YkdsMGRHVnlJU2h6S1R0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdwUWIzTWdQU0F3T3lCcVVHOXpJRHdnZEdocGN5NU1aVzVuZEdnN0lHcFFiM01yS3lrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd2JVbHVabThnUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4TzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCelpYRk5XM1JvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUFySUdwUWIzTmRJSHg4SUNjdEp6dGNiaUFnSUNBZ0lDQWdhV1lnS0NFb2JTQnBiaUJ3YlVsdVptOHBLVnh1SUNBZ0lDQWdJQ0FnSUhCdFNXNW1iMXR0WFNBOUlHNWxkeUJRYjNOcGRHbHZiazF2Ym05dFpYSkpibVp2S0NrN1hHNGdJQ0FnSUNBZ0lIQnRTVzVtYjF0dFhTNWpiM1Z1ZENzck8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUM4dkkzSmxaMmx2YmlCUWIyeHBjMmdnWm5KbGNTQmpiM1Z1ZEhOY2JpQWdJQ0JtYjNJZ0tHeGxkQ0JxVUc5eklEMGdNRHNnYWxCdmN5QThJSFJvYVhNdVRHVnVaM1JvT3lCcVVHOXpLeXNwSUh0Y2JpQWdJQ0FnSUM4dklHUmxiR1YwWlNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4V3ljdEoxMDdYRzVjYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG5KdmQwTnZkVzUwSUQwZ01EdGNiaUFnSUNBZ0lHWnZjaUFvWTI5dWMzUWdiU0JwYmlCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4S1Z4dUlDQWdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWRDQXJQU0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1bWNtVnhXMjFkTG1OdmRXNTBPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVjRzl6YVhScGIyNUlaV2xuYUhRZ1BUMGdVRzl6YVhScGIyNUlaV2xuYUhRdVJXNTBjbTl3ZVNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV6ZFcxR2IzSklaV2xuYUhSRFlXeGpJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQnRJR2x1SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCd2JpQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRmJiVjB1WTI5MWJuUWdMeUIwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1eWIzZERiM1Z1ZER0Y2JpQWdJQ0FnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV6ZFcxR2IzSklaV2xuYUhSRFlXeGpJQ3M5SUMxd2JpQXFJRTFoZEdndWJHOW5NaWh3YmlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnTHk4alpXNWtjbVZuYVc5dVhHNGdJQ0FnZEdocGN5NWZjbVZ0YjNabFJXMXdkSGxRYjNOcGRHbHZibk1vS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJRDBnZEdocGN5NWpZVzUyWVhNdWFHVnBaMmgwSUMwZ2RHaHBjeTVoZUdselNHVnBaMmgwSUNvZ2NqdGNiaUFnSUNBdkx5QmpiMjV6YjJ4bExtUmxZblZuS0dCWFpXSk1iMmR2UENSN2RHaHBjeTUyYVdWM1pYSkpaSDArTGw5allXeGpkV3hoZEdVb0tTQnRZWGhJWldsbmFIUTlKSHR0WVhoSVpXbG5hSFI5TG1BcE8xeHVYRzRnSUNBZ0x5OGpjbVZuYVc5dUlFTmhiR04xYkdGMFpTQnpZM0psWlc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JxVUc5eklEMGdNRHNnYWxCdmN5QThJSFJvYVhNdVRHVnVaM1JvT3lCcVVHOXpLeXNwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1p5WlhFNklIc2dXMk02SUhOMGNtbHVaMTA2SUZCdmMybDBhVzl1VFc5dWIyMWxja2x1Wm04Z2ZTQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRTdYRzRnSUNBZ0lDQmpiMjV6ZENCeWIzZERiM1Z1ZENBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbkp2ZDBOdmRXNTBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1lXeHdhR0ZpWlhSVGFYcGxJRDBnZEdocGN5NW5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUdGNiaUFnSUNBZ0lHbG1JQ2dvZEdocGN5NXdiM05wZEdsdmJraGxhV2RvZENBOVBTQlFiM05wZEdsdmJraGxhV2RvZEM1RmJuUnliM0I1S1NBbUppQW9ZV3h3YUdGaVpYUlRhWHBsSUQwOUlHNTFiR3dwS1NCN1hHNGdJQ0FnSUNBZ0lHZHliMnN1YzJobGJHd3VaWEp5YjNJb0oxZGxZa3h2WjI4NklHRnNjR2hoWW1WMElHbHpJSFZ1WkdWbWFXNWxaQzRuS1R0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ1kyOXVjM1FnYldGNFNHVnBaMmgwSUQwZ0tIUm9hWE11Y0c5emFYUnBiMjVJWldsbmFIUWdQVDBnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VTa2dQeUFvWVdKemIyeDFkR1ZOWVhoSVpXbG5hSFFnS2lBb1RXRjBhQzVzYjJjeUtHRnNjR2hoWW1WMFUybDZaU2tnTFNBb2RHaHBjeTV3YjNOcGRHbHZibk5iYWxCdmMxMHVjM1Z0Um05eVNHVnBaMmgwUTJGc1l5a3BJQzhnVFdGMGFDNXNiMmN5S0dGc2NHaGhZbVYwVTJsNlpTa3BJRG9nWVdKemIyeDFkR1ZOWVhoSVpXbG5hSFE3WEc1Y2JpQWdJQ0FnSUd4bGRDQjVPaUJ1ZFcxaVpYSWdQU0IwYUdsekxtRjRhWE5JWldsbmFIUWdLaUJ5SUNzZ0tHRmljMjlzZFhSbFRXRjRTR1ZwWjJoMElDMGdiV0Y0U0dWcFoyaDBJQzBnTVNrN1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdWdWRISnBaWE1nUFNCUFltcGxZM1F1Wlc1MGNtbGxjeWhtY21WeEtTNXpiM0owS0NoaExDQmlLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hoV3pCZElDRTlQU0FuTFNjZ0ppWWdZbHN3WFNBaFBUMGdKeTBuS1Z4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaVd6RmRMbU52ZFc1MElDMGdZVnN4WFM1amIzVnVkRHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVZzd1hTQTlQVDBnSnkwbklDWW1JR0piTUYwZ1BUMDlJQ2N0SnlsY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z01EdGNiaUFnSUNBZ0lDQWdaV3h6WlNCcFppQW9ZVnN3WFNBOVBUMGdKeTBuS1Z4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBdE1UdGNiaUFnSUNBZ0lDQWdaV3h6WlNBdktpQW9ZbHN3WFNBOVBUMGdKeTBuS1NBcUwxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXJNVHRjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnWm05eUlDaGpiMjV6ZENCbGJuUnllU0J2WmlCbGJuUnlhV1Z6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCdFNXNW1iem9nVUc5emFYUnBiMjVOYjI1dmJXVnlTVzVtYnlBOUlHVnVkSEo1V3pGZE8xeHVJQ0FnSUNBZ0lDQXZMeUJqYjI1emRDQnRPaUJ6ZEhKcGJtY2dQU0JsYm5SeWVWc3dYVHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdhRG9nYm5WdFltVnlJRDBnYldGNFNHVnBaMmgwSUNvZ2NHMUpibVp2TG1OdmRXNTBJQzhnY205M1EyOTFiblE3WEc1Y2JpQWdJQ0FnSUNBZ2NHMUpibVp2TG1KdmRXNWtjeUE5SUc1bGR5QkVSeTVTWldOMEtHcFFiM01nS2lCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdoWGFYUm9UV0Z5WjJsdUxDQjVMQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvTENCb0tUdGNiaUFnSUNBZ0lDQWdlU0FyUFNCb08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0F2THlObGJtUnlaV2RwYjI1Y2JpQWdmVnh1WEc0Z0lDOHZJSEpsWm14bFkzUWdZMmhoYm1kbGN5QnRZV1JsSUhSdklHWnBiSFJsY2k5elpXeGxZM1JwYjI1Y2JpQWdjbVZ1WkdWeUtISmxZMkZzWXlBOUlIUnlkV1VwSUh0Y2JpQWdJQ0JwWmlBb2RHaHBjeTV0YzJkSWIzTjBLU0I3WEc0Z0lDQWdJQ0JwWmlBb2RHaHBjeTV6WlhGRGIyd2dKaVlnSVhSb2FYTXVZM0FwSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV0YzJkSWIzTjBJUzVwYm01bGNsUmxlSFFnUFNCZ1ZXNXJibTkzYmlCd1lXeGxkSFJsSUNoamIyeDFiVzRnYzJWdFZIbHdaVG9nSnlSN2RHaHBjeTV6WlhGRGIyd3VjMlZ0Vkhsd1pYMG5LUzVnTzF4dUlDQWdJQ0FnSUNCMGFHbHpMbTF6WjBodmMzUWhMbk4wZVd4bExtUnBjM0JzWVhrZ1BTQW5KenRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWJYTm5TRzl6ZENFdWMzUjViR1V1WkdsemNHeGhlU0E5SUNkdWIyNWxKenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvSVhSb2FYTXVZMkZ1ZG1GeklIeDhJQ0YwYUdsekxuTmxjVU52YkNCOGZDQWhkR2hwY3k1a1lYUmhSbkpoYldVZ2ZId2dJWFJvYVhNdVkzQXBYRzRnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNCamIyNXpkQ0JuSUQwZ2RHaHBjeTVqWVc1MllYTXVaMlYwUTI5dWRHVjRkQ2duTW1RbktUdGNiaUFnSUNCcFppQW9JV2NwSUhKbGRIVnlianRjYmx4dUlDQWdJR052Ym5OMElISWdQU0IzYVc1a2IzY3VaR1YyYVdObFVHbDRaV3hTWVhScGJ6dGNibHh1SUNBZ0lHbG1JQ2h5WldOaGJHTXBYRzRnSUNBZ0lDQjBhR2x6TGw5allXeGpkV3hoZEdVb2NpazdYRzVjYmlBZ0lDQm5MbkpsYzJWMFZISmhibk5tYjNKdEtDazdYRzRnSUNBZ1p5NW1hV3hzVTNSNWJHVWdQU0FuZDJocGRHVW5PMXh1SUNBZ0lHY3VabWxzYkZKbFkzUW9NQ3dnTUN3Z2RHaHBjeTVqWVc1MllYTXVkMmxrZEdnc0lIUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RDazdYRzRnSUNBZ1p5NTBaWGgwUW1GelpXeHBibVVnUFNCMGFHbHpMblJsZUhSQ1lYTmxiR2x1WlR0Y2JseHVJQ0FnSUM4dklGQnlaWFpsYm5SeklHUnBkbWx6YVc5dUlHSjVJSHBsY204Z2IyNGdUR1Z1WjNSb0lEMGdNRnh1SUNBZ0lHbG1JQ2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnUFQwOUlDMHhJSHg4SUhSb2FYTXVaVzVrVUc5emFYUnBiMjRnUFQwOUlDMHhLVnh1SUNBZ0lDQWdjbVYwZFhKdU8xeHVYRzRnSUNBZ0x5OGpjbVZuYVc5dUlGQnNiM1FnY0c5emFYUnBiMjVPWVcxbGMxeHVJQ0FnSUdOdmJuTjBJSEJ2YzJsMGFXOXVSbTl1ZEZOcGVtVWdQU0F4TUNBcUlISTdYRzRnSUNBZ1p5NXlaWE5sZEZSeVlXNXpabTl5YlNncE8xeHVJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdKMkpzWVdOckp6dGNiaUFnSUNCbkxuUmxlSFJCYkdsbmJpQTlJQ2RqWlc1MFpYSW5PMXh1SUNBZ0lHY3VabTl1ZENBOUlHQWtlM0J2YzJsMGFXOXVSbTl1ZEZOcGVtVXVkRzlHYVhobFpDZ3hLWDF3ZUNCU2IySnZkRzhzSUZKdlltOTBieUJNYjJOaGJDd2djMkZ1Y3kxelpYSnBabUE3WEc0Z0lDQWdZMjl1YzNRZ2NHOXpUbUZ0WlUxaGVGZHBaSFJvSUQwZ1RXRjBhQzV0WVhnb0xpNHVkR2hwY3k1d2IzTnBkR2x2Ym5NdWJXRndLQ2h3YjNNcElEMCtJR2N1YldWaGMzVnlaVlJsZUhRb2NHOXpMbTVoYldVcExuZHBaSFJvS1NrN1hHNGdJQ0FnWTI5dWMzUWdhRk5qWVd4bElEMGdjRzl6VG1GdFpVMWhlRmRwWkhSb0lEd2dLSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnTFNBeUtTQS9JREVnT2lBb2RHaHBjeTVmY0c5emFYUnBiMjVYYVdSMGFDQXRJRElwSUM4Z2NHOXpUbUZ0WlUxaGVGZHBaSFJvTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYWxCdmN5QTlJREE3SUdwUWIzTWdQQ0IwYUdsekxreGxibWQwYURzZ2FsQnZjeXNyS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J3YjNNNklGQnZjMmwwYVc5dVNXNW1ieUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZE8xeHVJQ0FnSUNBZ1p5NXlaWE5sZEZSeVlXNXpabTl5YlNncE8xeHVJQ0FnSUNBZ1p5NXpaWFJVY21GdWMyWnZjbTBvWEc0Z0lDQWdJQ0FnSUdoVFkyRnNaU3dnTUN3Z01Dd2dNU3hjYmlBZ0lDQWdJQ0FnYWxCdmN5QXFJSFJvYVhNdWNHOXphWFJwYjI1WGFXUjBhRmRwZEdoTllYSm5hVzRnS3lCMGFHbHpMbDl3YjNOcGRHbHZibGRwWkhSb0lDOGdNaXdnTUNrN1hHNGdJQ0FnSUNCbkxtWnBiR3hVWlhoMEtIQnZjeTV1WVcxbExDQXdMQ0F3S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeThqWlc1a2NtVm5hVzl1SUZCc2IzUWdjRzl6YVhScGIyNU9ZVzFsYzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYWxCdmN5QTlJREE3SUdwUWIzTWdQQ0IwYUdsekxreGxibWQwYURzZ2FsQnZjeXNyS1NCN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElGdHRiMjV2YldWeUxDQndiVWx1Wm05ZElHOW1JRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhFcEtTQjdYRzRnSUNBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5SUNFOVBTQW5MU2NwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCdGIyNXZiV1Z5VkhoMElEMGdWMlZpVEc5bmJ5NXRiMjV2YldWeVZHOVVaWGgwS0cxdmJtOXRaWElwTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUdJZ1BTQndiVWx1Wm04dVltOTFibVJ6TzF4dVhHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1ptOXVkRk4wZVd4bElEMGdKekUyY0hnZ1VtOWliM1J2TENCU2IySnZkRzhnVEc5allXd3NJSE5oYm5NdGMyVnlhV1luTzF4dUlDQWdJQ0FnSUNBZ0lDOHZJRWhoWTJ0eklIUnZJSE5qWVd4bElIVndjR1Z5WTJGelpTQmphR0Z5WVdOMFpYSnpJSFJ2SUhSaGNtZGxkQ0J5WldOMFlXNW5iR1ZjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0IxY0hCbGNtTmhjMlZNWlhSMFpYSkJjMk5sYm5RZ1BTQXdMakkxTzF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhWd2NHVnlZMkZ6WlV4bGRIUmxja2hsYVdkb2RDQTlJREV5TGpJN1hHNWNiaUFnSUNBZ0lDQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1p5NXpkSEp2YTJWVGRIbHNaU0E5SUNkc2FXZG9kR2R5WVhrbk8xeHVJQ0FnSUNBZ0lDQWdJR2N1YkdsdVpWZHBaSFJvSUQwZ01UdGNiaUFnSUNBZ0lDQWdJQ0JuTG5KbFkzUW9ZaTVzWldaMExDQmlMblJ2Y0N3Z1lpNTNhV1IwYUN3Z1lpNW9aV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ2RHaHBjeTVqY0M1blpYUW9iVzl1YjIxbGNpa2dQejhnZEdocGN5NWpjQzVuWlhRb0oyOTBhR1Z5SnlrN1hHNGdJQ0FnSUNBZ0lDQWdaeTUwWlhoMFFXeHBaMjRnUFNBbmJHVm1kQ2M3WEc0Z0lDQWdJQ0FnSUNBZ1p5NW1iMjUwSUQwZ1ptOXVkRk4wZVd4bE8xeHVJQ0FnSUNBZ0lDQWdJQzh2Wnk1bWFXeHNVbVZqZENoaUxteGxablFzSUdJdWRHOXdMQ0JpTG5kcFpIUm9MQ0JpTG1obGFXZG9kQ2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlZSdE9pQlVaWGgwVFdWMGNtbGpjeUE5SUdjdWJXVmhjM1Z5WlZSbGVIUW9iVzl1YjIxbGNsUjRkQ2s3WEc1Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJwWmlBb2JVMHVZV04wZFdGc1FtOTFibVJwYm1kQ2IzaEJjMk5sYm5RZ0lUMGdNQ2xjYmlBZ0lDQWdJQ0FnSUNBdkx5QWdJR052Ym5OdmJHVXVaR1ZpZFdjb1lHMDZJQ1I3Ylgwc0lHMU5MbUZqZEhWaGJFSnZkVzVrYVc1blFtOTRRWE5qWlc1ME9pQWtlMjFOTG1GamRIVmhiRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBmV0FwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpTG5kcFpIUm9JQzhnYlZSdExuZHBaSFJvTENBd0xDQXdMQ0JpTG1obGFXZG9kQ0F2SUhWd2NHVnlZMkZ6WlV4bGRIUmxja2hsYVdkb2RDeGNiaUFnSUNBZ0lDQWdJQ0FnSUdJdWJHVm1kQ3dnWWk1MGIzQXBPMXh1SUNBZ0lDQWdJQ0FnSUdjdVptbHNiRlJsZUhRb2JXOXViMjFsY2xSNGRDd2dNQ3dnTFhWd2NHVnlZMkZ6WlV4bGRIUmxja0Z6WTJWdWRDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR05oYkdOVGFYcGxLQ2tnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTVqWVc1MllYTWdmSHdnSVhSb2FYTXVhRzl6ZENsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmx4dUlDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVYRzRnSUNBZ2JHVjBJSGRwWkhSb09pQnVkVzFpWlhJZ1BTQjBhR2x6TGt4bGJtZDBhQ0FxSUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0Z0x5QnlPMXh1SUNBZ0lHeGxkQ0JvWldsbmFIUWdQU0JOWVhSb0xtMXBiaWgwYUdsekxtMWhlRWhsYVdkb2RDd2dUV0YwYUM1dFlYZ29kR2hwY3k1dGFXNUlaV2xuYUhRc0lIUm9hWE11Y205dmRDNWpiR2xsYm5SSVpXbG5hSFFwS1R0Y2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1acGRFRnlaV0VwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSGhUWTJGc1pUb2diblZ0WW1WeUlEMGdkR2hwY3k1eWIyOTBMbU5zYVdWdWRFaGxhV2RvZENBdklHaGxhV2RvZER0Y2JpQWdJQ0FnSUdOdmJuTjBJSGxUWTJGc1pUb2diblZ0WW1WeUlEMGdkR2hwY3k1eWIyOTBMbU5zYVdWdWRGZHBaSFJvSUM4Z2QybGtkR2c3WEc0Z0lDQWdJQ0JqYjI1emRDQnpZMkZzWlNBOUlFMWhkR2d1YldGNEtERXNJRTFoZEdndWJXbHVLSGhUWTJGc1pTd2dlVk5qWVd4bEtTazdYRzRnSUNBZ0lDQjNhV1IwYUNBOUlIZHBaSFJvSUNvZ2MyTmhiR1U3WEc0Z0lDQWdJQ0JvWldsbmFIUWdQU0JvWldsbmFIUWdLaUJ6WTJGc1pUdGNiaUFnSUNBZ0lIUm9hWE11WDNCdmMybDBhVzl1VjJsa2RHZ2dQU0IwYUdsekxuQnZjMmwwYVc5dVYybGtkR2dnS2lCelkyRnNaVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTUzYVdSMGFDQTlJSGRwWkhSb0lDb2djanRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlHQWtlM2RwWkhSb2ZYQjRZRHRjYmx4dUlDQWdJQzh2SUdOdmJuTjBJR05oYm5aaGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ2QybGtkR2dnUGlCMGFHbHpMbkp2YjNRdVkyeHBaVzUwVjJsa2RHZ2dQeUJvWldsbmFIUWdMU0E0SURvZ2FHVnBaMmgwTzF4dUlDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYUdWcFoyaDBKeXdnWUNSN2FHVnBaMmgwZlhCNFlDazdYRzRnSUNBZ1kyOXVjM1FnWTJGdWRtRnpTR1ZwWjJoME9pQnVkVzFpWlhJZ1BTQjBhR2x6TG1odmMzUXVZMnhwWlc1MFNHVnBaMmgwTzF4dUlDQWdJSFJvYVhNdVkyRnVkbUZ6TG1obGFXZG9kQ0E5SUdOaGJuWmhjMGhsYVdkb2RDQXFJSEk3WEc0Z0lDQWdkR2hwY3k1allXNTJZWE11YzNSNWJHVXVjMlYwVUhKdmNHVnlkSGtvSjJobGFXZG9kQ2NzSUdBa2UyTmhiblpoYzBobGFXZG9kSDF3ZUdBcE8xeHVYRzRnSUNBZ0x5OGdRV1JxZFhOMElHaHZjM1FnWVc1a0lISnZiM1FnZDJsa2RHaGNiaUFnSUNCcFppQW9kR2hwY3k1bWFYaFhhV1IwYUNrZ2UxeHVJQ0FnSUNBZ0x5OGdablZzYkNCM2FXUjBhQ0JtYjNJZ1kyRnVkbUZ6SUdodmMzUWdZVzVrSUhKdmIzUmNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1M2FXUjBhQ0E5SUhSb2FYTXVhRzl6ZEM1emRIbHNaUzUzYVdSMGFDQTlJR0FrZTNkcFpIUm9mWEI0WUR0Y2JpQWdJQ0FnSUhSb2FYTXVjbTl2ZEM1emRIbHNaUzVvWldsbmFIUWdQU0JnSkh0b1pXbG5hSFI5Y0hoZ08xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG5ObGRGQnliM0JsY25SNUtDZHZkbVZ5Wm14dmR5Y3NJQ2RvYVdSa1pXNG5MQ0FuYVcxd2IzSjBZVzUwSnlrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQzh2SUdGc2JHOTNJSE5qY205c2JDQmpZVzUyWVhNZ2FXNGdjbTl2ZEZ4dUlDQWdJQ0FnZEdocGN5NXliMjkwTG5OMGVXeGxMbmRwWkhSb0lEMGdkR2hwY3k1b2IzTjBMbk4wZVd4bExuZHBaSFJvSUQwZ0p6RXdNQ1VuTzF4dUlDQWdJQ0FnZEdocGN5NW9iM04wTG5OMGVXeGxMbTkyWlhKbWJHOTNXQ0E5SUNkaGRYUnZJV2x0Y0c5eWRHRnVkQ2M3WEc0Z0lDQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjMlYwVUhKdmNHVnlkSGtvSjI5MlpYSm1iRzkzSnl3Z2JuVnNiQ2s3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmRHVjRkQzFoYkdsbmJpY3NJSFJvYVhNdWFHOXlhWHB2Ym5SaGJFRnNhV2R1YldWdWRDazdYRzVjYmlBZ0lDQWdJQzh2SUhabGNuUnBZMkZzSUdGc2FXZHViV1Z1ZEZ4dUlDQWdJQ0FnYkdWMElHaHZjM1JVYjNCTllYSm5hVzRnUFNBd08xeHVJQ0FnSUNBZ2MzZHBkR05vSUNoMGFHbHpMblpsY25ScFkyRnNRV3hwWjI1dFpXNTBLU0I3WEc0Z0lDQWdJQ0JqWVhObElDZDBiM0FuT2x4dUlDQWdJQ0FnSUNCb2IzTjBWRzl3VFdGeVoybHVJRDBnTUR0Y2JpQWdJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdJQ0JqWVhObElDZHRhV1JrYkdVbk9seHVJQ0FnSUNBZ0lDQm9iM04wVkc5d1RXRnlaMmx1SUQwZ1RXRjBhQzV0WVhnb01Dd2dLSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ0xTQm9aV2xuYUhRcElDOGdNaWs3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNBblltOTBkRzl0SnpwY2JpQWdJQ0FnSUNBZ2FHOXpkRlJ2Y0UxaGNtZHBiaUE5SUUxaGRHZ3ViV0Y0S0RBc0lIUm9hWE11Y205dmRDNWpiR2xsYm5SSVpXbG5hSFFnTFNCb1pXbG5hSFFwTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYldGeVoybHVMWFJ2Y0Njc0lHQWtlMmh2YzNSVWIzQk5ZWEpuYVc1OWNIaGdMQ0FuYVcxd2IzSjBZVzUwSnlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuSnZiM1F1WTJ4cFpXNTBTR1ZwWjJoMElEd2dhR1ZwWjJoMEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYUdWcFoyaDBKeXdnWUNSN2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kSDF3ZUdBcE8xeHVJQ0FnSUNBZ0lDQjBhR2x6TG1odmMzUXVjM1I1YkdVdWMyVjBVSEp2Y0dWeWRIa29KMjkyWlhKbWJHOTNMWGtuTENCdWRXeHNLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWFHOXpkQzV6ZEhsc1pTNXpaWFJRY205d1pYSjBlU2duYjNabGNtWnNiM2N0ZVNjc0lDZG9hV1JrWlc0bkxDQW5hVzF3YjNKMFlXNTBKeWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnWTI5dWMyOXNaUzVrWldKMVp5aGNiaUFnSUNBdkx5QWdJR0IwYUdsekxuSnZiM1F1YzNSNWJHVXVhR1ZwWjJoMElEMGdKSHQwYUdsekxuSnZiM1F1YzNSNWJHVXVhR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11Y205dmRDNWpiR2xsYm5SSVpXbG5hSFFnUFNBa2UzUm9hWE11Y205dmRDNWpiR2xsYm5SSVpXbG5hSFI5WEZ4dVlDQXJYRzRnSUNBZ0x5OGdJQ0JnZEdocGN5NW9iM04wTG5OMGVXeGxMbWhsYVdkb2RDQTlJQ1I3ZEdocGN5NW9iM04wTG5OMGVXeGxMbWhsYVdkb2RIMWNYRzVnSUN0Y2JpQWdJQ0F2THlBZ0lHQjBhR2x6TG1odmMzUXVZMnhwWlc1MFNHVnBaMmgwSUQwZ0pIdDBhR2x6TG1odmMzUXVZMnhwWlc1MFNHVnBaMmgwZlZ4Y2JtQWdLMXh1SUNBZ0lDOHZJQ0FnSjF4Y2JpY2dLMXh1SUNBZ0lDOHZJQ0FnWUhSb2FYTXVZMkZ1ZG1GekxtaGxhV2RvZENBZ0lDQWdJQ0E5SUNSN2RHaHBjeTVqWVc1MllYTXVhR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11WTJGdWRtRnpMbk4wZVd4bExtaGxhV2RvZENBOUlDUjdkR2hwY3k1allXNTJZWE11YzNSNWJHVXVhR1ZwWjJoMGZXQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCd1lYSmhiU0I3UkVjdVEyOXNkVzF1ZlNCelpYRkRiMndnUTI5c2RXMXVJSFJ2SUd4dmIyc2dabTl5SUdFZ2NHRnNaWFIwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdJRzFwYmt4bGJtZDBhQ0J0YVc1cGJYVnRJR3hsYm1kMGFDQnZaaUJ6WlhGMVpXNWpaU0IwYnlCa1pYUmxZM1FnY0dGc1pYUjBaU0FvWlcxd2RIa2djM1J5YVc1bmN5QmhjbVVnWVd4c2IzZGxaQ2xjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVMlZ4VUdGc1pYUjBaWDBnVUdGc1pYUjBaU0JqYjNKeVpYTndiMjVrYVc1bklIUnZJSFJvWlNCaGJIQm9ZV0psZENCdlppQjBhR1VnYzJWeGRXVnVZMlZ6SUdsdUlIUm9aU0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NHbGphMVZ3VUdGc1pYUjBaU2h6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnYldsdVRHVnVaM1JvT2lCdWRXMWlaWElnUFNBMUtUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdiR1YwSUhKbGN6b2dVMlZ4VUdGc1pYUjBaU0I4SUc1MWJHd2dQU0J1ZFd4c08xeHVJQ0FnSUhOM2FYUmphQ0FvYzJWeFEyOXNMbk5sYlZSNWNHVXBJSHRjYmlBZ0lDQmpZWE5sSUVGdGFXNXZZV05wWkhNdVUyVnRWSGx3WlUxMWJIUnBjR3hsUVd4cFoyNXRaVzUwT2x4dUlDQWdJQ0FnY21WeklEMGdRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE03WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJRTUxWTJ4bGIzUnBaR1Z6TGxObGJWUjVjR1ZOZFd4MGFYQnNaVUZzYVdkdWJXVnVkRHBjYmlBZ0lDQWdJSEpsY3lBOUlFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTXVRMmh5YjIxaGRHOW5jbUZ0TzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSE4wWVhSek9pQlRaWEZEYjJ4VGRHRjBjeUE5SUZkbFlreHZaMjh1WjJWMFUzUmhkSE1vYzJWeFEyOXNMQ0J0YVc1TVpXNW5kR2dzSUZkbFlreHZaMjh1YzNCc2FYUjBaWEpCYzBaaGMzUmhLVHRjYmx4dUlDQWdJR052Ym5OMElHRnNjR2hoWW1WMFEyRnVaR2xrWVhSbGN6b2dXMU5sZER4emRISnBibWMrTENCVFpYRlFZV3hsZEhSbFhWdGRJRDBnVzF4dUlDQWdJQ0FnVzI1bGR5QlRaWFFvVDJKcVpXTjBMbXRsZVhNb1RuVmpiR1Z2ZEdsa1pYTXVUbUZ0WlhNcEtTd2dUblZqYkdWdmRHbGtaWE5RWVd4bGRIUmxjeTVEYUhKdmJXRjBiMmR5WVcxZExGeHVJQ0FnSUNBZ1cyNWxkeUJUWlhRb1QySnFaV04wTG10bGVYTW9RVzFwYm05aFkybGtjeTVPWVcxbGN5a3BMQ0JCYldsdWIyRmphV1J6VUdGc1pYUjBaWE11UjNKdmEwZHliM1Z3YzEwc1hHNGdJQ0FnWFR0Y2JpQWdJQ0F2THlCRFlXeGpkV3hoZEdVZ2JHbHJaV3hwYUc5dlpITWdabTl5SUdGc2NHaGhZbVYwWDJOaGJtUnBaR0YwWlhOY2JpQWdJQ0JqYjI1emRDQmhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzA2SUc1MWJXSmxjbHRkSUQwZ1lXeHdhR0ZpWlhSRFlXNWthV1JoZEdWelhHNGdJQ0FnSUNBdWJXRndLQ2hqS1NBOVBpQlhaV0pNYjJkdkxtZGxkRUZzY0doaFltVjBVMmx0YVd4aGNtbDBlU2h6ZEdGMGN5NW1jbVZ4TENCald6QmRLU2s3WEc0Z0lDQWdZMjl1YzNRZ2JXRjRRMjl6SUQwZ1RXRjBhQzV0WVhnb0xpNHVZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpVMmx0S1R0Y2JpQWdJQ0JwWmlBb2JXRjRRMjl6SUQ0Z01DNDFOU2xjYmlBZ0lDQWdJSEpsY3lBOUlHRnNjR2hoWW1WMFEyRnVaR2xrWVhSbGMxdGhiSEJvWVdKbGRFTmhibVJwWkdGMFpYTlRhVzB1YVc1a1pYaFBaaWh0WVhoRGIzTXBYVnN4WFR0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCeVpYTWdQU0JWYm10dWIzZHVVMlZ4VUdGc1pYUjBaWE11UTI5c2IzSTdYRzVjYmlBZ0lDQnlaWFIxY200Z2NtVnpPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZEVGc2NHaGhZbVYwVTJsNlpTZ3BPaUJ1ZFcxaVpYSWdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUlRhWHBsS0NrZ1B6OGdNRHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlRkR0YwY3lCdlppQnpaWEYxWlc1alpYTWdkMmwwYUNCemNHVmphV1pwWldRZ2MzQnNhWFIwWlhJZ1puVnVZeXdnY21WMGRYSnVjeUI3SUdaeVpYRXNJSE5oYldWTVpXNW5kR2dnZlM1Y2JpQWdJQ29nUUhCaGNtRnRJSHRFUnk1RGIyeDFiVzU5SUhObGNVTnZiRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JXbHVUR1Z1WjNSb1hHNGdJQ0FxSUVCd1lYSmhiU0I3VTNCc2FYUjBaWEpHZFc1amZTQnpjR3hwZEhSbGNseHVJQ0FnS2lCQWNtVjBkWEp1SUhzZ1UyVnhRMjlzVTNSaGRITWdmU3dnYzJGdFpVeGxibWQwYURvZ1ltOXZiR1ZoYmlCOUlITjBZWFJ6SUc5bUlHTnZiSFZ0YmlCelpYRjFaVzVqWlhOY2JpQWdJQ292WEc0Z0lITjBZWFJwWXlCblpYUlRkR0YwY3loelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z2JXbHVUR1Z1WjNSb09pQnVkVzFpWlhJc0lITndiR2wwZEdWeU9pQlRjR3hwZEhSbGNrWjFibU1wT2lCVFpYRkRiMnhUZEdGMGN5QjdYRzRnSUNBZ1kyOXVjM1FnWm5KbGNUb2dleUJiYlRvZ2MzUnlhVzVuWFRvZ2JuVnRZbVZ5SUgwZ1BTQjdmVHRjYmlBZ0lDQnNaWFFnYzJGdFpVeGxibWQwYUNBOUlIUnlkV1U3WEc0Z0lDQWdiR1YwSUdacGNuTjBUR1Z1WjNSb0lEMGdiblZzYkR0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2MyVnhJRzltSUhObGNVTnZiQzVqWVhSbFoyOXlhV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J0VTJWeElEMGdjM0JzYVhSMFpYSW9jMlZ4S1R0Y2JseHVJQ0FnSUNBZ2FXWWdLR1pwY25OMFRHVnVaM1JvSUQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0FnSUdacGNuTjBUR1Z1WjNSb0lEMGdiVk5sY1M1c1pXNW5kR2c3WEc0Z0lDQWdJQ0JsYkhObElHbG1JQ2h0VTJWeExteGxibWQwYUNBaFBUMGdabWx5YzNSTVpXNW5kR2dwWEc0Z0lDQWdJQ0FnSUhOaGJXVk1aVzVuZEdnZ1BTQm1ZV3h6WlR0Y2JseHVJQ0FnSUNBZ2FXWWdLRzFUWlhFdWJHVnVaM1JvSUQ0Z2JXbHVUR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCdlppQnRVMlZ4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0NFb2JTQnBiaUJtY21WeEtTbGNiaUFnSUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnUFNBd08xeHVJQ0FnSUNBZ0lDQWdJR1p5WlhGYmJWMGdLejBnTVR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdlMlp5WlhFNklHWnlaWEVzSUhOaGJXVk1aVzVuZEdnNklITmhiV1ZNWlc1bmRHaDlPMXh1SUNCOVhHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJCYkhCb1lXSmxkRk5wYldsc1lYSnBkSGtvWm5KbGNUb2dUVzl1YjIxbGNrWnlaWEZ6TENCaGJIQm9ZV0psZERvZ1UyVjBQSE4wY21sdVp6NHNJR2RoY0ZONWJXSnZiRG9nYzNSeWFXNW5JRDBnSnkwbktUb2diblZ0WW1WeUlIdGNiaUFnSUNCamIyNXpkQ0JyWlhseklEMGdibVYzSUZObGREeHpkSEpwYm1jK0tGc3VMaTV1WlhjZ1UyVjBLRTlpYW1WamRDNXJaWGx6S0daeVpYRXBLU3dnTGk0dVlXeHdhR0ZpWlhSZEtUdGNiaUFnSUNCclpYbHpMbVJsYkdWMFpTaG5ZWEJUZVcxaWIyd3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVUU2SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnWVd4d2FHRmlaWFJCT2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdiU0J2WmlCclpYbHpLU0I3WEc0Z0lDQWdJQ0JtY21WeFFTNXdkWE5vS0cwZ2FXNGdabkpsY1NBL0lHWnlaWEZiYlYwZ09pQXdLVHRjYmlBZ0lDQWdJR0ZzY0doaFltVjBRUzV3ZFhOb0tHRnNjR2hoWW1WMExtaGhjeWh0S1NBL0lERWdPaUF3S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdMeW9nVkdobGNtVWdkMlZ5WlNCaElHWmxkeUJwWkdWaGN6b2dZMmhwTFhOeGRXRnlaV1FzSUhCbFlYSnpiMjRnWTI5eWNtVnNZWFJwYjI0Z0tIWmhjbWxoYm1ObFB5a3NJSE5qWVd4aGNpQndjbTlrZFdOMElDb3ZYRzRnSUNBZ1kyOXVjM1FnWm5KbGNWWTZJRlpsWTNSdmNpQTlJRzVsZHlCV1pXTjBiM0lvWm5KbGNVRXBPMXh1SUNBZ0lHTnZibk4wSUdGc2NHaGhZbVYwVmpvZ1ZtVmpkRzl5SUQwZ2JtVjNJRlpsWTNSdmNpaGhiSEJvWVdKbGRFRXBPMXh1SUNBZ0lISmxkSFZ5YmlCMlpXTjBiM0pFYjNSUWNtOWtkV04wS0daeVpYRldMQ0JoYkhCb1lXSmxkRllwSUM4Z0tIWmxZM1J2Y2t4bGJtZDBhQ2htY21WeFZpa2dLaUIyWldOMGIzSk1aVzVuZEdnb1lXeHdhR0ZpWlhSV0tTazdYRzRnSUgxY2JseHVJQ0F2THlBdktpb2dSbWx5YzNRZ2RISjVJSFJ2SUdacGJtUWdZMjlzZFcxdUlIZHBkR2dnYzJWdFZIbHdaU0FuWVd4cFoyNWxaRk5sY1hWbGJtTmxKeTVjYmlBZ0x5OGdJQ29nVG1WNGRDQnNiMjlySUdadmNpQmpiMngxYlc0Z2QybDBhQ0JrWVhSaElHRnNjR2hoWW1WMElHTnZjbkpsYzNCdmJtUnBibWNnZEc4Z1lXNTVJRzltSUhSb1pTQnJibTkzYmlCd1lXeGxkSFJsY3k1Y2JpQWdMeThnSUNvZ1FIQmhjbUZ0SUh0RVJ5NUVZWFJoUm5KaGJXVjlJR1JoZEdGR2NtRnRaVnh1SUNBdkx5QWdLaUJBY21WMGRYSnVJSHRFUnk1RGIyeDFiVzU5SUZSb1pTQmpiMngxYlc0Z2QyVWdkMlZ5WlNCc2IyOXJhVzVuSUdadmNpQnZjaUJ1ZFd4c1hHNGdJQzh2SUNBcUwxeHVJQ0F2THlCd2NtbDJZWFJsSUhCcFkydFZjRk5sY1VOdmJDaGtZWFJoUm5KaGJXVTZJRVJITGtSaGRHRkdjbUZ0WlNrNklFUkhMa052YkhWdGJpQjhJRzUxYkd3Z2UxeHVJQ0F2THlBZ0lHeGxkQ0J5WlhNNklFUkhMa052YkhWdGJpQjhJRzUxYkd3Z1BTQmtZWFJoUm5KaGJXVXVZMjlzZFcxdWN5NWllVk5sYlZSNWNHVW9KMkZzYVdkdVpXUlRaWEYxWlc1alpTY3BPMXh1SUNBdkx5QWdJR2xtSUNoeVpYTWdQVDBnYm5Wc2JDa2dlMXh1SUNBdkx5QWdJQ0FnWm05eUlDaGpiMjV6ZENCamIyd2diMllnWkdGMFlVWnlZVzFsTG1OdmJIVnRibk1wSUh0Y2JpQWdMeThnSUNBZ0lDQWdZMjl1YzNRZ1kzQWdQU0JYWldKTWIyZHZMbkJwWTJ0VmNGQmhiR1YwZEdVb1kyOXNJR0Z6SUVSSExrTnZiSFZ0Yml3Z05TazdYRzRnSUM4dklDQWdJQ0FnSUdsbUlDaGpjQ0FoUFQwZ2JuVnNiQ0FtSmlBaEtHTndJR2x1YzNSaGJtTmxiMllnVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VwS1NCN1hHNGdJQzh2SUNBZ0lDQWdJQ0FnY21WeklEMGdZMjlzTzF4dUlDQXZMeUFnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0F2THlBZ0lDQWdJQ0I5WEc0Z0lDOHZJQ0FnSUNCOVhHNGdJQzh2SUNBZ2ZWeHVJQ0F2THlBZ0lISmxkSFZ5YmlCeVpYTTdYRzRnSUM4dklIMWNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEJwWTJ0VmNGTmxjVU52YkRJb1pHWTZJRVJITGtSaGRHRkdjbUZ0WlNrNklFUkhMa052YkhWdGJpQjhJRzUxYkd3Z2UxeHVJQ0FnSUdOdmJuTjBJSE5sYlZSNWNHVkRiMnhNYVhOMElEMGdaR1l1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1ZCYkd3b1JFY3VVMFZOVkZsUVJTNU5RVU5TVDAxUFRFVkRWVXhGS1R0Y2JpQWdJQ0JzWlhRZ2NtVnpRMjlzT2lCRVJ5NURiMngxYlc0Z2ZDQnVkV3hzSUQwZ2MyVnRWSGx3WlVOdmJFeHBjM1F1Wm1sdVpDZ29ZMjlzS1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMWJtbDBjeUE5SUdOdmJDNW5aWFJVWVdjb1JFY3VWRUZIVXk1VlRrbFVVeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkVzVwZEhNZ1B5QjFibWwwY3k1cGJtUmxlRTltS0NkTlUwRW5LU0FoUFQwZ0xURWdPaUJtWVd4elpUdGNiaUFnSUNCOUtTQS9QeUJ1ZFd4c08xeHVJQ0FnSUdsbUlDZ2hjbVZ6UTI5c0lDWW1JSE5sYlZSNWNHVkRiMnhNYVhOMExteGxibWQwYUNBK0lEQXBYRzRnSUNBZ0lDQnlaWE5EYjJ3Z1BTQnpaVzFVZVhCbFEyOXNUR2x6ZEZzd1hUdGNiaUFnSUNCeVpYUjFjbTRnY21WelEyOXNPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdiVzl1YjIxbGNsSmxJRDBnTDF4Y1d5aGNYSGNyS1Z4Y1hYd29YRngzS1h3b0xTa3ZaenRjYmx4dUlDQXZLaW9nVTNCc2FYUWdjMlZ4ZFdWdVkyVWdabTl5SUhOcGJtZHNaU0JqYUdGeVlXTjBaWElnYlc5dWIyMWxjbk1zSUhOeGRXRnlaU0JpY21GamEyVjBjeUJ0ZFd4MGFXTm9ZWElnYlc5dWIyMWxjaUJ1WVcxbGN5QnZjaUJuWVhBZ2MzbHRZbTlzTGx4dUlDQWdLaUJBY0dGeVlXMGdlMkZ1ZVgwZ2MyVnhJRzlpYW1WamRDQjNhWFJvSUhObGNYVmxibU5sWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVoxdGRmU0JoY25KaGVTQnZaaUJ0YjI1dmJXVnljMXh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QnpjR3hwZEhSbGNrRnpSbUZ6ZEdFb2MyVnhPaUJoYm5rcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ1kyOXVjM1FnY21Wek9pQnpkSEpwYm1kYlhTQTlJSGQxUEZKbFowVjRjRTFoZEdOb1FYSnlZWGsrS0hObGNTNTBiMU4wY21sdVp5Z3BMbTFoZEdOb1FXeHNLRmRsWWt4dloyOHViVzl1YjIxbGNsSmxLU2xjYmlBZ0lDQWdJQzV0WVhBb0tHMWhPaUJTWldkRmVIQk5ZWFJqYUVGeWNtRjVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lHeGxkQ0J0VW1Wek9pQnpkSEpwYm1jN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUcwNklITjBjbWx1WnlBOUlHMWhXekJkTzF4dUlDQWdJQ0FnSUNCcFppQW9iUzVzWlc1bmRHZ2dQaUF4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdhV1lnS0cwZ2FXNGdWMlZpVEc5bmJ5NWhZVk41Ym05dWVXMXpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRVbVZ6SUQwZ1YyVmlURzluYnk1aFlWTjVibTl1ZVcxelcyMWRPMXh1SUNBZ0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnRVbVZ6SUQwZ0p5YzdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpiMnhsTG1SbFluVm5LR0JNYjI1bklHMXZibTl0WlhJZ0p5UjdiWDBuSUdoaGN5QnViM1FnWVNCemFHOXlkQ0J6ZVc1dmJubHRMbUFwTzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0J0VW1WeklEMGdiVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnYlZKbGN6dGNiaUFnSUNBZ0lIMHBMblJ2UVhKeVlYa29LVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJvWld4dFVtVWdQU0F2S0ZCRlVGUkpSRVV4ZkVST1FURjhVazVCTVNsY1hIc29XMTU5WFNzcGZTOW5PMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJvWld4dFVIQXhVbVVnUFNBdlhGeGJLRnRlWEZ4YlhGeGRYU3NwWFM5bk8xeHVYRzRnSUM4cUtpQlRjR3hwZEhNZ1NHVnNiU0J6ZEhKcGJtY2dkRzhnYlc5dWIyMWxjbk1zSUdKMWRDQmtiMlZ6SUc1dmRDQnlaWEJzWVdObElHMXZibTl0WlhJZ2JtRnRaWE1nZEc4Z2IzUm9aWElnYm05MFlYUnBiMjRnS0dVdVp5NGdabTl5SUZKT1FTa3VYRzRnSUNBcUlFOXViSGtnWm05eUlHeHBibVZoY2lCd2IyeDViV1Z5Y3l3Z1pHOWxjeUJ1YjNRZ2MzQnNhWFFnVWs1QklHWnZjaUJ5YVdKdmMyVWdZVzVrSUhCb2IzTndhR0YwWlNCdGIyNXZiV1Z5Y3k1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY1NCVGIzVnlZMlVnYzNSeWFXNW5JRzltSUVoRlRFMGdibTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN2MzUnlhVzVuVzExOVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhOd2JHbDBkR1Z5UVhOSVpXeHRLSE5sY1RvZ1lXNTVLVG9nYzNSeWFXNW5XMTBnZTF4dUlDQWdJRmRsWWt4dloyOHVhR1ZzYlZKbExteGhjM1JKYm1SbGVDQTlJREE3WEc0Z0lDQWdZMjl1YzNRZ1pXRTZJRkpsWjBWNGNFVjRaV05CY25KaGVTQjhJRzUxYkd3Z1BTQlhaV0pNYjJkdkxtaGxiRzFTWlM1bGVHVmpLSE5sY1M1MGIxTjBjbWx1WnlncEtUdGNiaUFnSUNCamIyNXpkQ0JwYmxObGNUb2djM1J5YVc1bklId2diblZzYkNBOUlHVmhJRDhnWldGYk1sMGdPaUJ1ZFd4c08xeHVYRzRnSUNBZ1kyOXVjM1FnYlcxUWIzTjBVSEp2WTJWemN5QTlJQ2h0YlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUQwK0lIdGNiaUFnSUNBZ0lGZGxZa3h2WjI4dWFHVnNiVkJ3TVZKbExteGhjM1JKYm1SbGVDQTlJREE3WEc0Z0lDQWdJQ0JqYjI1emRDQndjREZOSUQwZ1YyVmlURzluYnk1b1pXeHRVSEF4VW1VdVpYaGxZeWh0YlNrN1hHNGdJQ0FnSUNCcFppQW9jSEF4VFNBbUppQndjREZOTG14bGJtZDBhQ0ErUFNBeUtWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NIQXhUVnN4WFR0Y2JpQWdJQ0FnSUdWc2MyVmNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHMXRPMXh1SUNBZ0lIMDdYRzVjYmlBZ0lDQmpiMjV6ZENCdGJVeHBjM1E2SUhOMGNtbHVaMXRkSUQwZ2FXNVRaWEVnUHlCcGJsTmxjUzV6Y0d4cGRDZ25MaWNwSURvZ1cxMDdYRzRnSUNBZ1kyOXVjM1FnYlcxTWFYTjBVbVZ6T2lCemRISnBibWRiWFNBOUlHMXRUR2x6ZEM1dFlYQW9iVzFRYjNOMFVISnZZMlZ6Y3lrN1hHNGdJQ0FnY21WMGRYSnVJRzF0VEdsemRGSmxjenRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkhaWFJ6SUcxbGRHaHZaQ0IwYnlCemNHeHBkQ0J6WlhGMVpXNWpaU0JpZVNCelpYQmhjbUYwYjNKY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY0dGeVlYUnZjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JHbHRhWFJjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVM0JzYVhSMFpYSkdkVzVqZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlPaUJ6ZEhKcGJtY3NJR3hwYldsME9pQnVkVzFpWlhJZ2ZDQjFibVJsWm1sdVpXUWdQU0IxYm1SbFptbHVaV1FwT2lCVGNHeHBkSFJsY2taMWJtTWdlMXh1SUNBZ0lISmxkSFZ5YmlBb2MyVnhPaUJ6ZEhKcGJtY3BJRDArSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ6WlhFdWMzQnNhWFFvYzJWd1lYSmhkRzl5TENCc2FXMXBkQ2s3WEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQkhaWFFnYzNCc2FYUjBaWElnYldWMGFHOWtJSFJ2SUhOd2JHbDBJSE5sY1hWbGJtTmxjeUIwYnlCdGIyNXZiV1Z5YzF4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkVzVwZEhOY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY0dGeVlYUnZjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2JHbHRhWFJjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVM0JzYVhSMFpYSkdkVzVqZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSVGNHeHBkSFJsY2loMWJtbDBjem9nYzNSeWFXNW5MQ0J6WlhCaGNtRjBiM0k2SUhOMGNtbHVaeXdnYkdsdGFYUTZJRzUxYldKbGNpQjhJSFZ1WkdWbWFXNWxaQ0E5SUhWdVpHVm1hVzVsWkNrNklGTndiR2wwZEdWeVJuVnVZeUI3WEc0Z0lDQWdhV1lnS0hWdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNUdRVk5VUVNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnVjJWaVRHOW5ieTV6Y0d4cGRIUmxja0Z6Um1GemRHRTdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVaWtwWEc0Z0lDQWdJQ0J5WlhSMWNtNGdWMlZpVEc5bmJ5NW5aWFJUY0d4cGRIUmxjbGRwZEdoVFpYQmhjbUYwYjNJb2MyVndZWEpoZEc5eUxDQnNhVzFwZENrN1hHNGdJQ0FnWld4elpTQnBaaUFvZFc1cGRITXVkRzlNYjNkbGNrTmhjMlVvS1M1emRHRnlkSE5YYVhSb0tFNVBWRUZVU1U5T0xraEZURTBwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRmRsWWt4dloyOHVjM0JzYVhSMFpYSkJjMGhsYkcwN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCVmJtVjRjR1ZqZEdWa0lIVnVhWFJ6SUNSN2RXNXBkSE45SUM1Z0tUdGNibHh1SUNBZ0lDOHZJRlJQUkU4NklGTndiR2wwZEdWeUlHWnZjaUJJUlV4TlhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRGTndiR2wwZEdWeVJtOXlRMjlzZFcxdUtHTnZiRG9nUkVjdVEyOXNkVzF1S1RvZ1UzQnNhWFIwWlhKR2RXNWpJSHRjYmlBZ0lDQnBaaUFvWTI5c0xuTmxiVlI1Y0dVZ0lUMDlJRVJITGxORlRWUlpVRVV1VFVGRFVrOU5UMHhGUTFWTVJTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2loZ1IyVjBJSE53YkdsMGRHVnlJR1p2Y2lCelpXMVVlWEJsSUZ3aUpIdEVSeTVUUlUxVVdWQkZMazFCUTFKUFRVOU1SVU5WVEVWOVhDSWdiMjVzZVM1Z0tUdGNibHh1SUNBZ0lHTnZibk4wSUhWdWFYUnpJRDBnWTI5c0xtZGxkRlJoWnloRVJ5NVVRVWRUTGxWT1NWUlRLVHRjYmlBZ0lDQmpiMjV6ZENCelpYQmhjbUYwYjNJZ1BTQmpiMnd1WjJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbk5sY0dGeVlYUnZjaWs3WEc0Z0lDQWdjbVYwZFhKdUlGZGxZa3h2WjI4dVoyVjBVM0JzYVhSMFpYSW9kVzVwZEhNc0lITmxjR0Z5WVhSdmNpazdYRzRnSUgxY2JseHVJQ0F2S2lvZ1QyNXNlU0J6YjIxbElHOW1JSFJvWlNCemVXNXZibmx0Y3k0Z1ZHaGxjMlVnZDJWeVpTQnZZblJoYVc1bFpDQm1jbTl0SUhSb1pTQmpiSFZ6ZEdWeVpXUWdiMnhwWjI5d1pYQjBhV1JsSUdSaGRHRnpaWFF1SUNvdlhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHRmhVM2x1YjI1NWJYTTZJSHNnVzI1aGJXVTZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlJRDBnZTF4dUlDQWdJQ2RiVFdWT2JHVmRKem9nSjB3bkxDQXZMeUJPYkdVZ0xTQnViM0pzWlhWamFXNWxYRzRnSUNBZ0oxdE5aVUZkSnpvZ0owRW5MRnh1SUNBZ0lDZGJUV1ZIWFNjNklDZEhKeXhjYmlBZ0lDQW5XMDFsUmwwbk9pQW5SaWNzWEc0Z0lIMDdYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nYkc5dVowMXZibTl0WlhKUVlYSjBVbVVnUFNBdktGeGNkeXNwTDJjN1hHNWNiaUFnTHlvZ1UyaHZjblJsYm5NZ2JXOXViMjFsY2lCeVpYQnlaWE5sYm5SaGRHbHZiaUIwWlhoMElHWnZjaUJ0YjI1dmJXVnljeUIzYVhSb0lHeHZibWNnYm1GdFpYTXVYRzRnSUNvcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHMXZibTl0WlhKVWIxUmxlSFFvYzNKak9pQmhibmtwT2lCemRISnBibWNnZTF4dUlDQWdJR052Ym5OMElITnlZMVI0ZERvZ2MzUnlhVzVuSUQwZ2MzSmpMblJ2VTNSeWFXNW5LQ2s3WEc0Z0lDQWdhV1lnS0hOeVkxUjRkQzVzWlc1bmRHZ2dQRDBnTlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhOeVkxUjRkRHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY0dGeWRITTZJSE4wY21sdVoxdGRJRDBnZDNVOFVtVm5SWGh3VFdGMFkyaEJjbkpoZVQ0b2MzSmpMblJ2VTNSeWFXNW5LQ2t1YldGMFkyaEJiR3dvVjJWaVRHOW5ieTVzYjI1blRXOXViMjFsY2xCaGNuUlNaU2twWEc0Z0lDQWdJQ0FnSUM1dFlYQW9LRzFoT2lCU1pXZEZlSEJOWVhSamFFRnljbUY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiVkpsY3pvZ2MzUnlhVzVuSUQwZ2JXRmJNRjA3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUcxU1pYTTdYRzRnSUNBZ0lDQWdJSDBwTG5SdlFYSnlZWGtvS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLSEJoY25SekxteGxibWQwYUNBOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUFuSUNjN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3WVhKME1Eb2djM1J5YVc1bklEMGdjR0Z5ZEhOYk1GMDdYRzRnSUNBZ0lDQWdJR052Ym5OMElISmxjMVI0ZERvZ2MzUnlhVzVuSUQwZ2NHRnlkREF1YkdWdVozUm9JRHdnTmlBL0lHQWtlM0JoY25Rd2ZlS0FwbUFnT2lCZ0pIdHdZWEowTUM1emRXSnpkSEpwYm1jb01Dd2dOU2w5NG9DbVlEdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlISmxjMVI0ZER0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRzF2Ym05dFpYSlViMU5vYjNKMEtHRnRhVzV2T2lCemRISnBibWNzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2pvZ2JuVnRZbVZ5S1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZVzFwYm04dWJHVnVaM1JvSUR3OUlHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNpQS9JR0Z0YVc1dklEb2dZVzFwYm04dWMzVmljM1J5YVc1bktEQXNJRzFoZUV4bGJtZDBhRTltVFc5dWIyMWxjaWtnS3lBbjRvQ21KenRjYmlBZ2ZWeHVmVnh1SWwxOSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsgbm9ybWFsaXplIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlRGltZW5zaW5hbGl0eVJlZHVjaW5nV29ya2VyIH0gZnJvbSAnLi93b3JrZXJzL2RpbWVuc2lvbmFsaXR5LXJlZHVjaW5nLXdvcmtlci1jcmVhdG9yJztcbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24oZGF0YUNvbCwgbWV0aG9kTmFtZSwgc2ltaWxhcml0eU1ldHJpYywgb3B0aW9ucykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzID0geWllbGQgY3JlYXRlRGltZW5zaW5hbGl0eVJlZHVjaW5nV29ya2VyKHsgZGF0YTogZGF0YUNvbCwgbWV0cmljOiBzaW1pbGFyaXR5TWV0cmljIH0sIG1ldGhvZE5hbWUsIG9wdGlvbnMpO1xuICAgICAgICBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcy5lbWJlZGRpbmcgPSBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcy5lbWJlZGRpbmcubWFwKGl0ID0+IG5vcm1hbGl6ZShpdCkpO1xuICAgICAgICByZXR1cm4gZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXM7XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4ZFdWdVkyVXRjM0JoWTJVdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp6WlhGMVpXNWpaUzF6Y0dGalpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZGUVN4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxFMUJRVTBzYVVSQlFXbEVMRU5CUVVNN1FVRkhOVVVzVDBGQlR5eEZRVUZGTEdsRFFVRnBReXhGUVVFclFpeE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJSMnhKTEUxQlFVMHNWVUZCWjBJc2IwTkJRVzlETEVOQlEzUkVMRTlCUVhGRExFVkJRM0pETEZWQlFXdENMRVZCUTJ4Q0xHZENRVUUyUkN4RlFVTTNSQ3hQUVVGaE96dFJRVVZpTEUxQlFVMHNkVUpCUVhWQ0xFZEJRM3BDTEUxQlFVMHNhVU5CUVdsRExFTkJRMjVETEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hOUVVGTkxFVkJRVVVzWjBKQlFXZENMRVZCUVdkQ0xFVkJRM3BFTEZWQlFWVXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVVM1FpeDFRa0ZCZFVJc1EwRkJReXhUUVVGVExFZEJRVWNzZFVKQlFYVkNMRU5CUVVNc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF5OUdMRTlCUVU4c2RVSkJRWFZDTEVOQlFVTTdTVUZEYmtNc1EwRkJRenREUVVGQklpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElFSnBkRUZ5Y21GNUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwySnBkQzFoY25KaGVTYzdYRzVwYlhCdmNuUWdleUJOWVhSeWFYZ3NJRlpsWTNSdmNpQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1I1Y0dVdFpHVmpiR0Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0I3SUc1dmNtMWhiR2w2WlNCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzWmxZM1J2Y2kxdmNHVnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1cGJYQnZjblFnZXlCQ2FYUkJjbkpoZVUxbGRISnBZM01zSUZOMGNtbHVaMDFsZEhKcFkzTXNJRlpoYkdsa1ZIbHdaWE1zSUZabFkzUnZjazFsZEhKcFkzTWdmU0JtY205dElDY3VMM1I1Y0dWa0xXMWxkSEpwWTNNbk8xeHVhVzF3YjNKMElIc2dZM0psWVhSbFJHbHRaVzV6YVc1aGJHbDBlVkpsWkhWamFXNW5WMjl5YTJWeUxDQkpVbVZrZFdObFJHbHRaVzV6YVc5dVlXeHBkSGxTWlhOMWJIUWdmU0JtY205dElDY3VMM2R2Y210bGNuTXZaR2x0Wlc1emFXOXVZV3hwZEhrdGNtVmtkV05wYm1jdGQyOXlhMlZ5TFdOeVpXRjBiM0luTzF4dVhHNWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCeVpXUjFZMlZFYVcxbGJuTnBibUZzYVhSNVYybDBhRTV2Y20xaGJHbDZZWFJwYjI0b1hHNGdJQ0FnWkdGMFlVTnZiRG9nUW1sMFFYSnlZWGxiWFh4V1pXTjBiM0piWFh4emRISnBibWRiWFN3Z1hHNGdJQ0FnYldWMGFHOWtUbUZ0WlRvZ2MzUnlhVzVuTENCY2JpQWdJQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUJDYVhSQmNuSmhlVTFsZEhKcFkzTjhWbVZqZEc5eVRXVjBjbWxqYzN4VGRISnBibWROWlhSeWFXTnpMRnh1SUNBZ0lHOXdkR2x2Ym5NL09pQmhibmtwT2lCUWNtOXRhWE5sUEVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZEQ0Z2UxeHVYRzRnSUNBZ1kyOXVjM1FnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWU1pYTTZJRWxTWldSMVkyVkVhVzFsYm5OcGIyNWhiR2wwZVZKbGMzVnNkQ0E5WEc0Z0lDQWdJQ0FnSUdGM1lXbDBJR055WldGMFpVUnBiV1Z1YzJsdVlXeHBkSGxTWldSMVkybHVaMWR2Y210bGNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUhzZ1pHRjBZVG9nWkdGMFlVTnZiQ3dnYldWMGNtbGpPaUJ6YVcxcGJHRnlhWFI1VFdWMGNtbGpJSDBnWVhNZ1ZtRnNhV1JVZVhCbGN5eGNiaUFnSUNBZ0lDQWdJQ0FnSUcxbGRHaHZaRTVoYldVc0lHOXdkR2x2Ym5NcE8xeHVYRzRnSUNBZ1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE11WlcxaVpXUmthVzVuSUQwZ1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE11WlcxaVpXUmthVzVuTG0xaGNDaHBkQ0E5UGlCdWIzSnRZV3hwZW1Vb2FYUXBLVHRjYmlBZ0lDQnlaWFIxY200Z1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE03WEc1OUlsMTkiLCJpbXBvcnQgKiBhcyBmbCBmcm9tICdmYXN0ZXN0LWxldmVuc2h0ZWluJztcbmltcG9ydCB7IGphcm9XaW5rbGVyIH0gZnJvbSAnamFyby13aW5rbGVyLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgZGlzdGFuY2VNZXRyaWNzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvc2ltaWxhcml0eS1tZXRyaWNzJztcbmltcG9ydCB7IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuZXhwb3J0IGNvbnN0IEF2YWlsYWJsZU1ldHJpY3MgPSB7XG4gICAgJ1ZlY3Rvcic6IHtcbiAgICAgICAgJ0V1Y2xpZGVhbkRpc3RhbmNlJzogY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UsXG4gICAgfSxcbiAgICAnU3RyaW5nJzoge1xuICAgICAgICAnTGV2ZW5zaHRlaW4nOiBmbC5kaXN0YW5jZSxcbiAgICAgICAgJ0phcm8tV2lua2xlcic6IGphcm9XaW5rbGVyLFxuICAgIH0sXG4gICAgJ0JpdEFycmF5Jzoge1xuICAgICAgICAnVGFuaW1vdG8nOiBkaXN0YW5jZU1ldHJpY3NbJ1Rhbmltb3RvJ10sXG4gICAgICAgICdEaWNlJzogZGlzdGFuY2VNZXRyaWNzWydEaWNlJ10sXG4gICAgICAgICdBc3ltbWV0cmljJzogZGlzdGFuY2VNZXRyaWNzWydBc3ltbWV0cmljJ10sXG4gICAgICAgICdCcmF1bi1CbGFucXVldCc6IGRpc3RhbmNlTWV0cmljc1snQnJhdW4tQmxhbnF1ZXQnXSxcbiAgICAgICAgJ0Nvc2luZSc6IGRpc3RhbmNlTWV0cmljc1snQ29zaW5lJ10sXG4gICAgICAgICdLdWxjenluc2tpJzogZGlzdGFuY2VNZXRyaWNzWydLdWxjenluc2tpJ10sXG4gICAgICAgICdNYy1Db25uYXVnaGV5JzogZGlzdGFuY2VNZXRyaWNzWydNYy1Db25uYXVnaGV5J10sXG4gICAgICAgICdSb2dvdC1Hb2xkYmVyZyc6IGRpc3RhbmNlTWV0cmljc1snUm9nb3QtR29sZGJlcmcnXSxcbiAgICAgICAgJ1J1c3NlbCc6IGRpc3RhbmNlTWV0cmljc1snUnVzc2VsJ10sXG4gICAgICAgICdTb2thbCc6IGRpc3RhbmNlTWV0cmljc1snU29rYWwnXSxcbiAgICB9LFxufTtcbmV4cG9ydCBjb25zdCBNZXRyaWNUb0RhdGFUeXBlID0gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcylcbiAgICAucmVkdWNlKChyZXQsIGtleSkgPT4ge1xuICAgIGZvciAoY29uc3QgdmFsIG9mIE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3Nba2V5XSkpIHtcbiAgICAgICAgcmV0W3ZhbF0gPSBrZXk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG59LCB7fSk7XG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdNZXRyaWMobmFtZSkge1xuICAgIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09ICdTdHJpbmcnO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzQml0QXJyYXlNZXRyaWMobmFtZSkge1xuICAgIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09ICdCaXRBcnJheSc7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNWZWN0b3JNZXRyaWMobmFtZSkge1xuICAgIHJldHVybiBNZXRyaWNUb0RhdGFUeXBlW25hbWVdID09ICdWZWN0b3InO1xufVxuLyoqIFVuaWZpZWQgY2xhc3MgaW1wbGVtZW50aW5nIGRpZmZlcmVudCBzdHJpbmcgbWVhc3VyZXMuICovXG5leHBvcnQgY2xhc3MgTWVhc3VyZSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBNZWFzdXJlIHdpdGggLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgTWV0aG9kIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZSBiZXR3ZWVuIHN0cmluZ3MuXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgY29uc3RydWN0b3IobWV0aG9kKSB7XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kO1xuICAgICAgICB0aGlzLmRhdGFUeXBlID0gTWV0cmljVG9EYXRhVHlwZVttZXRob2RdO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGN1c3RvbSBzdHJpbmcgZGlzdGFuY2UgZnVuY3Rpb24gc3BlY2lmaWVkLlxuICAgICAqIEByZXR1cm4ge0Rpc3RhbmNlTWV0cmljfSBDYWxsYmFjayBvZiB0aGUgbWVhc3VyZSBjaG9zZW4uXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgZ2V0TWVhc3VyZSgpIHtcbiAgICAgICAgY29uc3QgZGljdCA9IEF2YWlsYWJsZU1ldHJpY3M7XG4gICAgICAgIHJldHVybiBkaWN0W3RoaXMuZGF0YVR5cGVdW3RoaXMubWV0aG9kXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGJ5IHRoZSBnaXZlbiBkYXRhIHR5cGUuXG4gICAgICogQHBhcmFtIHtBdmFpbGFibGVEYXRhVHlwZXN9IGRhdGFUeXBlIE1ldHJpYydzIGRhdGEgdHlwZVxuICAgICAqIEByZXR1cm4ge3N0cmluZ1tdfSBNZXRyaWMgbmFtZXMgd2hpY2ggZXhwZWN0cyB0aGUgZ2l2ZW4gZGF0YSB0eXBlXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgICovXG4gICAgc3RhdGljIGdldE1ldHJpY0J5RGF0YVR5cGUoZGF0YVR5cGUpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbZGF0YVR5cGVdKTtcbiAgICB9XG4gICAgLyoqIFJldHVybnMgbWV0cmljIG5hbWVzIGF2YWlsYWJsZS5cbiAgICAgKiBAbWVtYmVyb2YgTWVhc3VyZXJcbiAgICAqL1xuICAgIHN0YXRpYyBnZXQgYXZhaWxhYmxlTWVhc3VyZXMoKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WldRdGJXVjBjbWxqY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblI1Y0dWa0xXMWxkSEpwWTNNdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4eFFrRkJjVUlzUTBGQlF6dEJRVU14UXl4UFFVRlBMRVZCUVVNc1YwRkJWeXhGUVVGRExFMUJRVTBzZVVKQlFYbENMRU5CUVVNN1FVRkZjRVFzVDBGQlR5eEZRVUZETEdWQlFXVXNSVUZCUXl4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlEycEdMRTlCUVU4c1JVRkJReXd3UWtGQk1FSXNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlNUTkdMRTFCUVUwc1EwRkJReXhOUVVGTkxHZENRVUZuUWl4SFFVRkhPMGxCUXpsQ0xGRkJRVkVzUlVGQlJUdFJRVU5TTEcxQ1FVRnRRaXhGUVVGRkxEQkNRVUV3UWp0TFFVTm9SRHRKUVVORUxGRkJRVkVzUlVGQlJUdFJRVU5TTEdGQlFXRXNSVUZCUlN4RlFVRkZMRU5CUVVNc1VVRkJVVHRSUVVNeFFpeGpRVUZqTEVWQlFVVXNWMEZCVnp0TFFVTTFRanRKUVVORUxGVkJRVlVzUlVGQlJUdFJRVU5XTEZWQlFWVXNSVUZCUlN4bFFVRmxMRU5CUVVNc1ZVRkJWU3hEUVVGRE8xRkJRM1pETEUxQlFVMHNSVUZCUlN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRE8xRkJReTlDTEZsQlFWa3NSVUZCUlN4bFFVRmxMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRek5ETEdkQ1FVRm5RaXhGUVVGRkxHVkJRV1VzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVOdVJDeFJRVUZSTEVWQlFVVXNaVUZCWlN4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOdVF5eFpRVUZaTEVWQlFVVXNaVUZCWlN4RFFVRkRMRmxCUVZrc1EwRkJRenRSUVVNelF5eGxRVUZsTEVWQlFVVXNaVUZCWlN4RFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVOcVJDeG5Ra0ZCWjBJc1JVRkJSU3hsUVVGbExFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1VVRkRia1FzVVVGQlVTeEZRVUZGTEdWQlFXVXNRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRia01zVDBGQlR5eEZRVUZGTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNN1MwRkRiRU03UTBGRFJpeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc1owSkJRV2RDTEVkQlFYRkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNN1MwRkROVVVzVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCY1VJc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdEpRVU55UXl4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQmVVSXNRMEZCUXl4RFFVRkRMRVZCUVVVN1VVRkRNVVVzUjBGQlJ5eERRVUZETEVkQlFYbENMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU03UzBGRGRFTTdTVUZEUkN4UFFVRlBMRWRCUVVjc1EwRkJRenRCUVVOaUxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFWZFVMRTFCUVUwc1ZVRkJWU3hqUVVGakxFTkJRVU1zU1VGQmEwSTdTVUZETDBNc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU03UVVGRE5VTXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3huUWtGQlowSXNRMEZCUXl4SlFVRnJRanRKUVVOcVJDeFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEZWQlFWVXNRMEZCUXp0QlFVTTVReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4SlFVRnJRanRKUVVNdlF5eFBRVUZQTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXp0QlFVTTFReXhEUVVGRE8wRkJSVVFzTkVSQlFUUkVPMEZCUXpWRUxFMUJRVTBzVDBGQlR5eFBRVUZQTzBsQlNXeENPenM3TzA5QlNVYzdTVUZEU0N4WlFVRlpMRTFCUVc5Q08xRkJRemxDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJRM0pDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RFFVRjFRaXhEUVVGRE8wbEJRMnBGTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwa3NWVUZCVlR0UlFVTm1MRTFCUVUwc1NVRkJTU3hIUVVGelJDeG5Ra0ZCWjBJc1EwRkJRenRSUVVOcVJpeFBRVUZQTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUXpGRExFTkJRVU03U1VGRlJEczdPenM3VDBGTFJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFJRVUUwUWp0UlFVTTFSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTnFSQ3hEUVVGRE8wbEJSVVE3TzAxQlJVVTdTVUZEUml4TlFVRk5MRXRCUVVzc2FVSkJRV2xDTzFGQlF6RkNMRTlCUVU4c1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRE8wbEJRM1pETEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR1pzSUdaeWIyMGdKMlpoYzNSbGMzUXRiR1YyWlc1emFIUmxhVzRuTzF4dWFXMXdiM0owSUh0cVlYSnZWMmx1YTJ4bGNuMGdabkp2YlNBbmFtRnlieTEzYVc1cmJHVnlMWFI1Y0dWelkzSnBjSFFuTzF4dWFXMXdiM0owSUh0RWFYTjBZVzVqWlUxbGRISnBZMzBnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12ZEhsd1pTMWtaV05zWVhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUh0a2FYTjBZVzVqWlUxbGRISnBZM045SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNOcGJXbHNZWEpwZEhrdGJXVjBjbWxqY3ljN1hHNXBiWEJ2Y25RZ2UyTmhiR04xYkdGMFpVVjFZMnhwWkdWaGJrUnBjM1JoYm1ObGZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTJaV04wYjNJdGIzQmxjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdRbWwwUVhKeVlYa2dabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZZbWwwTFdGeWNtRjVKenRjYm1sdGNHOXlkQ0I3Vm1WamRHOXlMQ0JUZEhKcGJtZEVhV04wYVc5dVlYSjVmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JCZG1GcGJHRmliR1ZOWlhSeWFXTnpJRDBnZTF4dUlDQW5WbVZqZEc5eUp6b2dlMXh1SUNBZ0lDZEZkV05zYVdSbFlXNUVhWE4wWVc1alpTYzZJR05oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxMRnh1SUNCOUxGeHVJQ0FuVTNSeWFXNW5Kem9nZTF4dUlDQWdJQ2RNWlhabGJuTm9kR1ZwYmljNklHWnNMbVJwYzNSaGJtTmxMRnh1SUNBZ0lDZEtZWEp2TFZkcGJtdHNaWEluT2lCcVlYSnZWMmx1YTJ4bGNpeGNiaUFnZlN4Y2JpQWdKMEpwZEVGeWNtRjVKem9nZTF4dUlDQWdJQ2RVWVc1cGJXOTBieWM2SUdScGMzUmhibU5sVFdWMGNtbGpjMXNuVkdGdWFXMXZkRzhuWFN4Y2JpQWdJQ0FuUkdsalpTYzZJR1JwYzNSaGJtTmxUV1YwY21samMxc25SR2xqWlNkZExGeHVJQ0FnSUNkQmMzbHRiV1YwY21sakp6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZEJjM2x0YldWMGNtbGpKMTBzWEc0Z0lDQWdKMEp5WVhWdUxVSnNZVzV4ZFdWMEp6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZENjbUYxYmkxQ2JHRnVjWFZsZENkZExGeHVJQ0FnSUNkRGIzTnBibVVuT2lCa2FYTjBZVzVqWlUxbGRISnBZM05iSjBOdmMybHVaU2RkTEZ4dUlDQWdJQ2RMZFd4amVubHVjMnRwSnpvZ1pHbHpkR0Z1WTJWTlpYUnlhV056V3lkTGRXeGplbmx1YzJ0cEoxMHNYRzRnSUNBZ0owMWpMVU52Ym01aGRXZG9aWGtuT2lCa2FYTjBZVzVqWlUxbGRISnBZM05iSjAxakxVTnZibTVoZFdkb1pYa25YU3hjYmlBZ0lDQW5VbTluYjNRdFIyOXNaR0psY21jbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkoxSnZaMjkwTFVkdmJHUmlaWEpuSjEwc1hHNGdJQ0FnSjFKMWMzTmxiQ2M2SUdScGMzUmhibU5sVFdWMGNtbGpjMXNuVW5WemMyVnNKMTBzWEc0Z0lDQWdKMU52YTJGc0p6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZFRiMnRoYkNkZExGeHVJQ0I5TEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFMWxkSEpwWTFSdlJHRjBZVlI1Y0dVNklGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQlBZbXBsWTNRdWEyVjVjeWhCZG1GcGJHRmliR1ZOWlhSeWFXTnpLVnh1SUNBdWNtVmtkV05sS0NoeVpYUTZJRk4wY21sdVowUnBZM1JwYjI1aGNua3NJR3RsZVNrZ1BUNGdlMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdkbUZzSUc5bUlFOWlhbVZqZEM1clpYbHpLRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJhMlY1SUdGeklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGMxMHBLU0I3WEc0Z0lDQWdJQ0J5WlhSYmRtRnNJR0Z6SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsYzEwZ1BTQnJaWGs3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCeVpYUTdYRzRnSUgwc0lIdDlLVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdRWFpoYVd4aFlteGxSR0YwWVZSNWNHVnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNNN1hHNWxlSEJ2Y25RZ2RIbHdaU0JUZEhKcGJtZE5aWFJ5YVdOeklEMGdhMlY1YjJZZ2RIbHdaVzltSUVGMllXbHNZV0pzWlUxbGRISnBZM05iSjFOMGNtbHVaeWRkTzF4dVpYaHdiM0owSUhSNWNHVWdRbWwwUVhKeVlYbE5aWFJ5YVdOeklEMGdhMlY1YjJZZ2RIbHdaVzltSUVGMllXbHNZV0pzWlUxbGRISnBZM05iSjBKcGRFRnljbUY1SjEwN1hHNWxlSEJ2Y25RZ2RIbHdaU0JXWldOMGIzSk5aWFJ5YVdOeklEMGdhMlY1YjJZZ2RIbHdaVzltSUVGMllXbHNZV0pzWlUxbGRISnBZM05iSjFabFkzUnZjaWRkTzF4dVpYaHdiM0owSUhSNWNHVWdTMjV2ZDI1TlpYUnlhV056SUQwZ1UzUnlhVzVuVFdWMGNtbGpjeUI4SUVKcGRFRnljbUY1VFdWMGNtbGpjeUI4SUZabFkzUnZjazFsZEhKcFkzTTdYRzVjYm1WNGNHOXlkQ0IwZVhCbElGWmhiR2xrVkhsd1pYTWdQU0I3WkdGMFlUb2djM1J5YVc1blcxMHNJRzFsZEhKcFl6b2dVM1J5YVc1blRXVjBjbWxqYzMwZ2ZDQjdaR0YwWVRvZ1ZtVmpkRzl5VzEwc0lHMWxkSEpwWXpvZ1ZtVmpkRzl5VFdWMGNtbGpjMzBnZkZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUh0a1lYUmhPaUJDYVhSQmNuSmhlVnRkTENCdFpYUnlhV002SUVKcGRFRnljbUY1VFdWMGNtbGpjMzA3WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMxTjBjbWx1WjAxbGRISnBZeWh1WVcxbE9pQkxibTkzYmsxbGRISnBZM01wSUh0Y2JpQWdjbVYwZFhKdUlFMWxkSEpwWTFSdlJHRjBZVlI1Y0dWYmJtRnRaVjBnUFQwZ0oxTjBjbWx1WnljN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJwYzBKcGRFRnljbUY1VFdWMGNtbGpLRzVoYldVNklFdHViM2R1VFdWMGNtbGpjeWtnZTF4dUlDQnlaWFIxY200Z1RXVjBjbWxqVkc5RVlYUmhWSGx3WlZ0dVlXMWxYU0E5UFNBblFtbDBRWEp5WVhrbk8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYVhOV1pXTjBiM0pOWlhSeWFXTW9ibUZ0WlRvZ1MyNXZkMjVOWlhSeWFXTnpLU0I3WEc0Z0lISmxkSFZ5YmlCTlpYUnlhV05VYjBSaGRHRlVlWEJsVzI1aGJXVmRJRDA5SUNkV1pXTjBiM0luTzF4dWZWeHVYRzR2S2lvZ1ZXNXBabWxsWkNCamJHRnpjeUJwYlhCc1pXMWxiblJwYm1jZ1pHbG1abVZ5Wlc1MElITjBjbWx1WnlCdFpXRnpkWEpsY3k0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTlpXRnpkWEpsSUh0Y2JpQWdjSEp2ZEdWamRHVmtJRzFsZEdodlpEb2dTMjV2ZDI1TlpYUnlhV056TzF4dUlDQndjbTkwWldOMFpXUWdaR0YwWVZSNWNHVTZJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjenRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRM0psWVhSbGN5QmhiaUJwYm5OMFlXNWpaU0J2WmlCTlpXRnpkWEpsSUhkcGRHZ2dMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2JXVjBhRzlrSUUxbGRHaHZaQ0IwYnlCallXeGpkV3hoZEdVZ1pHbHpkR0Z1WTJVZ1ltVjBkMlZsYmlCemRISnBibWR6TGx4dUlDQWdLaUJBYldWdFltVnliMllnVFdWaGMzVnlaWEpjYmlBZ0lDb3ZYRzRnSUdOdmJuTjBjblZqZEc5eUtHMWxkR2h2WkRvZ1MyNXZkMjVOWlhSeWFXTnpLU0I3WEc0Z0lDQWdkR2hwY3k1dFpYUm9iMlFnUFNCdFpYUm9iMlE3WEc0Z0lDQWdkR2hwY3k1a1lYUmhWSGx3WlNBOUlFMWxkSEpwWTFSdlJHRjBZVlI1Y0dWYmJXVjBhRzlrWFNCaGN5QkJkbUZwYkdGaWJHVkVZWFJoVkhsd1pYTTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nVW1WMGRYSnVjeUJqZFhOMGIyMGdjM1J5YVc1bklHUnBjM1JoYm1ObElHWjFibU4wYVc5dUlITndaV05wWm1sbFpDNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JHbHpkR0Z1WTJWTlpYUnlhV045SUVOaGJHeGlZV05ySUc5bUlIUm9aU0J0WldGemRYSmxJR05vYjNObGJpNWNiaUFnSUNvZ1FHMWxiV0psY205bUlFMWxZWE4xY21WeVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1oyVjBUV1ZoYzNWeVpTZ3BPaUJFYVhOMFlXNWpaVTFsZEhKcFl5QjdYRzRnSUNBZ1kyOXVjM1FnWkdsamREb2dlMXRyWlhrNklITjBjbWx1WjEwNklIdGJhMlY1TWpvZ2MzUnlhVzVuWFRvZ1JHbHpkR0Z1WTJWTlpYUnlhV045ZlNBOUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNNN1hHNGdJQ0FnY21WMGRYSnVJR1JwWTNSYmRHaHBjeTVrWVhSaFZIbHdaVjFiZEdocGN5NXRaWFJvYjJSZE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRkpsZEhWeWJuTWdZM1Z6ZEc5dElITjBjbWx1WnlCa2FYTjBZVzVqWlNCaWVTQjBhR1VnWjJsMlpXNGdaR0YwWVNCMGVYQmxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGMzMGdaR0YwWVZSNWNHVWdUV1YwY21sakozTWdaR0YwWVNCMGVYQmxYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjF0ZGZTQk5aWFJ5YVdNZ2JtRnRaWE1nZDJocFkyZ2daWGh3WldOMGN5QjBhR1VnWjJsMlpXNGdaR0YwWVNCMGVYQmxYRzRnSUNBcUlFQnRaVzFpWlhKdlppQk5aV0Z6ZFhKbGNseHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUk5aWFJ5YVdOQ2VVUmhkR0ZVZVhCbEtHUmhkR0ZVZVhCbE9pQkJkbUZwYkdGaWJHVkVZWFJoVkhsd1pYTXBPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdjbVYwZFhKdUlFOWlhbVZqZEM1clpYbHpLRUYyWVdsc1lXSnNaVTFsZEhKcFkzTmJaR0YwWVZSNWNHVmRLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlNaWFIxY201eklHMWxkSEpwWXlCdVlXMWxjeUJoZG1GcGJHRmliR1V1WEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJOWldGemRYSmxjbHh1SUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwSUdGMllXbHNZV0pzWlUxbFlYTjFjbVZ6S0NrNklITjBjbWx1WjF0ZElIdGNiaUFnSUNCeVpYUjFjbTRnVDJKcVpXTjBMbXRsZVhNb1FYWmhhV3hoWW14bFRXVjBjbWxqY3lrN1hHNGdJSDFjYm4xY2JpSmRmUT09IiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0IHsgZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyByZW1vdmVFbXB0eVN0cmluZ1Jvd3MgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9kYXRhZnJhbWUtdXRpbHMnO1xubGV0IHpvb20gPSBmYWxzZTtcbmNvbnN0IG1vbENvbHVtbk5hbWVzID0gWycxX3NlcScsICcyX3NlcSddO1xuY29uc3Qgbm9uTm9ybWFsaXplZERpc3RhbmNlcyA9IFsnTGV2ZW5zaHRlaW4nXTtcbi8vIFNlYXJjaGVzIGZvciBhY3Rpdml0eSBjbGlmZnMgaW4gYSBjaGVtaWNhbCBkYXRhc2V0IGJ5IHNlbGVjdGVkIGN1dG9mZlxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGl2aXR5Q2xpZmZzKGRmLCBzZXFDb2wsIGVuY29kZWRDb2wsIGF4ZXNOYW1lcywgc2NhdHRlclRpdGxlLCBhY3Rpdml0aWVzLCBzaW1pbGFyaXR5LCBzaW1pbGFyaXR5TWV0cmljLCBtZXRob2ROYW1lLCBzZW1UeXBlLCB0YWdzLCBzZXFTcGFjZUZ1bmMsIHNpbU1hdHJpeEZ1bmMsIHRvb2x0aXBGdW5jLCBwcm9wZXJ0eVBhbmVsRnVuYywgc2VxU3BhY2VPcHRpb25zKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgYXV0b21hdGljU2ltaWxhcml0eUxpbWl0ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IE1JTl9TSU1JTEFSSVRZID0gODA7XG4gICAgICAgIGNvbnN0IGluaXRpYWxTaW1pbGFyaXR5TGltaXQgPSBhdXRvbWF0aWNTaW1pbGFyaXR5TGltaXQgPyBNSU5fU0lNSUxBUklUWSA6IHNpbWlsYXJpdHkgLyAxMDA7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sID0gZW5jb2RlZENvbCAhPT0gbnVsbCAmJiBlbmNvZGVkQ29sICE9PSB2b2lkIDAgPyBlbmNvZGVkQ29sIDogc2VxQ29sO1xuICAgICAgICBjb25zdCB3aXRob3V0RW1wdHlWYWx1ZXMgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW2RpbWVuc2lvbmFsaXR5UmVkdWNlQ29sXSkuY2xvbmUoKTtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGVtcHR5VmFsc0lkeHMgPSByZW1vdmVFbXB0eVN0cmluZ1Jvd3Mod2l0aG91dEVtcHR5VmFsdWVzLCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbCk7XG4gICAgICAgIGNvbnN0IHsgZGlzdGFuY2UsIGNvb3JkaW5hdGVzIH0gPSB5aWVsZCBzZXFTcGFjZUZ1bmMoe1xuICAgICAgICAgICAgc2VxQ29sOiB3aXRob3V0RW1wdHlWYWx1ZXMuY29sKGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLm5hbWUpLFxuICAgICAgICAgICAgbWV0aG9kTmFtZTogbWV0aG9kTmFtZSxcbiAgICAgICAgICAgIHNpbWlsYXJpdHlNZXRyaWM6IHNpbWlsYXJpdHlNZXRyaWMsXG4gICAgICAgICAgICBlbWJlZEF4ZXNOYW1lczogYXhlc05hbWVzLFxuICAgICAgICAgICAgb3B0aW9uczogc2VxU3BhY2VPcHRpb25zXG4gICAgICAgIH0pO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb29yZGluYXRlcykge1xuICAgICAgICAgICAgY29uc3QgbGlzdFZhbHVlcyA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgICAgIGVtcHR5VmFsc0lkeHMuZm9yRWFjaCgoaW5kKSA9PiBsaXN0VmFsdWVzLnNwbGljZShpbmQsIDAsIG51bGwpKTtcbiAgICAgICAgICAgIGRmLmNvbHVtbnMuYWRkKERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgY29sLm5hbWUsIGxpc3RWYWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZlNlcSA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbREcuQ29sdW1uLmZyb21MaXN0KCdzdHJpbmcnLCAnc2VxJywgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wudG9MaXN0KCkpXSk7XG4gICAgICAgIGNvbnN0IGRpbSA9IGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLmxlbmd0aDtcbiAgICAgICAgY29uc3Qgc2ltQXJyID0gQXJyYXkoZGltIC0gMSk7XG4gICAgICAgIGlmICghZGlzdGFuY2UgfHwgZW1wdHlWYWxzSWR4cy5sZW5ndGggIT09IDAgfHwgbm9uTm9ybWFsaXplZERpc3RhbmNlcy5pbmNsdWRlcyhzaW1pbGFyaXR5TWV0cmljKSlcbiAgICAgICAgICAgIHlpZWxkIHNpbU1hdHJpeEZ1bmMoZGltLCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbCwgZGZTZXEsICdzZXEnLCBzaW1BcnIpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBnZXRTaW1pbGFyaXRpZXNGcm9tRGlzdGFuY2VzKGRpbSwgZGlzdGFuY2UsIHNpbUFycik7XG4gICAgICAgIGNvbnN0IG9wdFNpbWlsYXJpdHlMaW1pdCA9IGluaXRpYWxTaW1pbGFyaXR5TGltaXQ7XG4gICAgICAgIGNvbnN0IHNpbVZhbHMgPSBbXTtcbiAgICAgICAgY29uc3Qgc2FsaVZhbHMgPSBbXTtcbiAgICAgICAgY29uc3QgbjEgPSBbXTtcbiAgICAgICAgY29uc3QgbjIgPSBbXTtcbiAgICAgICAgY29uc3QgY2xpZmZzTW9sSWRzID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqICE9IGRpbSAtIDEgLSBpOyArK2opIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaW0gPSBzaW1BcnJbaV0gPyBzaW1BcnJbaV0uZ2V0KGopIDogMDtcbiAgICAgICAgICAgICAgICBpZiAoc2ltID49IG9wdFNpbWlsYXJpdHlMaW1pdCkge1xuICAgICAgICAgICAgICAgICAgICBuMS5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICBuMi5wdXNoKGkgKyBqICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNsaWZmc01vbElkcy5hZGQoaSk7XG4gICAgICAgICAgICAgICAgICAgIGNsaWZmc01vbElkcy5hZGQoaSArIGogKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgc2ltVmFscy5wdXNoKHNpbSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBNYXRoLmFicyhhY3Rpdml0aWVzLmdldChpKSAtIGFjdGl2aXRpZXMuZ2V0KGkgKyBqICsgMSkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2ltICE9IDEpXG4gICAgICAgICAgICAgICAgICAgICAgICBzYWxpVmFscy5wdXNoKGRpZmYgLyAoMSAtIHNpbSkpO1xuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBzYWxpVmFscy5wdXNoKEluZmluaXR5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2FsaVZhbHNXaXRob3V0SW5maW5pdHkgPSBzYWxpVmFscy5maWx0ZXIoaXQgPT4gaXQgIT09IEluZmluaXR5KTtcbiAgICAgICAgY29uc3Qgc2FsaU1pbiA9IE1hdGgubWluKC4uLnNhbGlWYWxzV2l0aG91dEluZmluaXR5KTtcbiAgICAgICAgY29uc3Qgc2FsaU1heCA9IE1hdGgubWF4KC4uLnNhbGlWYWxzV2l0aG91dEluZmluaXR5KTtcbiAgICAgICAgY29uc3Qgc2FsaU9wYWNpdHlDb2VmID0gMC44IC8gKHNhbGlNYXggLSBzYWxpTWluKTtcbiAgICAgICAgY29uc3QgbmVpZ2hib3Vyc0NvdW50ID0gbmV3IEFycmF5KGRpbSkuZmlsbCgwKTtcbiAgICAgICAgY29uc3Qgc2ltaWxhcml0eUNvdW50ID0gbmV3IEFycmF5KGRpbSkuZmlsbCgwKTtcbiAgICAgICAgY29uc3Qgc2FsaUNvdW50ID0gbmV3IEFycmF5KGRpbSkuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gbjEubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIG5laWdoYm91cnNDb3VudFtuMVtpXV0gKz0gMTtcbiAgICAgICAgICAgIG5laWdoYm91cnNDb3VudFtuMltpXV0gKz0gMTtcbiAgICAgICAgICAgIHNpbWlsYXJpdHlDb3VudFtuMVtpXV0gKz0gc2ltVmFsc1tpXTtcbiAgICAgICAgICAgIHNpbWlsYXJpdHlDb3VudFtuMltpXV0gKz0gc2ltVmFsc1tpXTtcbiAgICAgICAgICAgIGlmIChzYWxpVmFsc1tpXSAhPSBJbmZpbml0eSkge1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpdml0aWVzLmdldChuMVtpXSkgPiBhY3Rpdml0aWVzLmdldChuMltpXSkpXG4gICAgICAgICAgICAgICAgICAgIHNhbGlDb3VudFtuMVtpXV0gKz0gc2FsaVZhbHNbaV07XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBzYWxpQ291bnRbbjJbaV1dICs9IHNhbGlWYWxzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbGkgPSBERy5Db2x1bW4uZnJvbUxpc3QoJ2RvdWJsZScsIGBzYWxpXyR7YXhlc05hbWVzWzBdLnN1YnN0cmluZyhheGVzTmFtZXNbMF0ubGFzdEluZGV4T2YoJ18nKSl9YCwgc2FsaUNvdW50KTtcbiAgICAgICAgZGYuY29sdW1ucy5hZGQoc2FsaSk7XG4gICAgICAgIGNvbnN0IGNsaWZmc0NvbE5hbWUgPSBhZGRDbGlmZnNCb29sZWFuQ29sKGRmLCBjbGlmZnNNb2xJZHMpO1xuICAgICAgICBjb25zdCB2aWV3ID0gZ3Jvay5zaGVsbC5nZXRUYWJsZVZpZXcoZGYubmFtZSk7XG4gICAgICAgIHZpZXcuZ3JpZC5jb2x1bW5zLmJ5TmFtZShjbGlmZnNDb2xOYW1lKS52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHNwID0gdmlldy5hZGRWaWV3ZXIoREcuVmlld2VyLnNjYXR0ZXJQbG90KGRmLCB7XG4gICAgICAgICAgICB4Q29sdW1uTmFtZTogYXhlc05hbWVzWzBdLFxuICAgICAgICAgICAgeUNvbHVtbk5hbWU6IGF4ZXNOYW1lc1sxXSxcbiAgICAgICAgICAgIHNpemU6IHNhbGkubmFtZSxcbiAgICAgICAgICAgIGNvbG9yOiBhY3Rpdml0aWVzLm5hbWUsXG4gICAgICAgICAgICBzaG93WFNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dZU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd1NpemVTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93Q29sb3JTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBtYXJrZXJNaW5TaXplOiA1LFxuICAgICAgICAgICAgbWFya2VyTWF4U2l6ZTogMjUsXG4gICAgICAgICAgICB0aXRsZTogc2NhdHRlclRpdGxlXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgY2FudmFzID0gc3AuZ2V0SW5mbygpWydjYW52YXMnXTtcbiAgICAgICAgY29uc3QgbGluZXNSZXMgPSBjcmVhdGVMaW5lcyhuMSwgbjIsIHNlcUNvbCwgYWN0aXZpdGllcywgc2FsaVZhbHMsIHNpbVZhbHMsIHNlbVR5cGUsIHRhZ3MpO1xuICAgICAgICBjb25zdCBjYXNoZWRMaW5lc0RhdGEgPSB7fTtcbiAgICAgICAgbGV0IGFjYztcbiAgICAgICAgbGluZXNSZXMubGluZXNEZi5vbkN1cnJlbnRDZWxsQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE1vbElkeCA9IGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudENvbCAmJiBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRDb2wubmFtZSA9PT0gJzJfc2VxJyA/IDEgOiAwO1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCAhPT0gLTEgPyBsaW5lc1Jlcy5saW5lc1tsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHhdIDogbnVsbDtcbiAgICAgICAgICAgIHNwLmRhdGFGcmFtZS5jdXJyZW50Um93SWR4ID0gbGluZSA/IGxpbmUubW9sc1tjdXJyZW50TW9sSWR4XSA6IC0xO1xuICAgICAgICAgICAgc3AuZGF0YUZyYW1lLnNlbGVjdGlvbi5zZXQoMCwgIWxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIHNwLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KDAsIGxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIGxpbmVzRGZHcmlkLmludmFsaWRhdGUoKTtcbiAgICAgICAgICAgIGlmIChsaW5lKVxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyB1cGRhdGVQcm9wZXJ0eVBhbmVsKGRmLCBhY2MsIGNhc2hlZExpbmVzRGF0YSwgbGluZSwgc2VxQ29sLCBhY3Rpdml0aWVzLCBsaW5lc1Jlcy5saW5lc0RmLmdldCgnc2FsaScsIGxpbmUuaWQpLCBwcm9wZXJ0eVBhbmVsRnVuYyk7IH0sIDEwMDApO1xuICAgICAgICB9KTtcbiAgICAgICAgbGluZXNSZXMubGluZXNEZi5vblNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICAgICAgICBpZiAobGluZXNSZXMubGluZXNEZi5tb3VzZU92ZXJSb3dJZHggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IGxpbmVzUmVzLmxpbmVzW2xpbmVzUmVzLmxpbmVzRGYubW91c2VPdmVyUm93SWR4XTtcbiAgICAgICAgICAgICAgICBsaW5lLnNlbGVjdGVkID0gIWxpbmUuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5lLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0QWxsKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzLmZvckVhY2goKGwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobC5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgbC5tb2xzLmZvckVhY2goKG0pID0+IGRmLnNlbGVjdGlvbi5zZXQobSwgdHJ1ZSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBsaW5lc0RmR3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsaW5lc0RmR3JpZCA9IGxpbmVzUmVzLmxpbmVzRGYucGxvdC5ncmlkKCkuc29ydChbJ3NhbGknXSwgW2ZhbHNlXSk7XG4gICAgICAgIGxpbmVzRGZHcmlkLm9uQ2VsbENsaWNrLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB6b29tID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGxpc3RDbGlmZnNMaW5rID0gdWkuYnV0dG9uKGAke2xpbmVzUmVzLmxpbmVzRGYucm93Q291bnR9IGNsaWZmc2AsICgpID0+IHtcbiAgICAgICAgICAgIGdyb2suc2hlbGwuZG9ja01hbmFnZXIuZG9jayhsaW5lc0RmR3JpZC5yb290LCAnZG93bicsIG51bGwsICdBY3Rpdml0eSBjbGlmZnMnLCAwLjIpO1xuICAgICAgICB9KTtcbiAgICAgICAgZWRpdFNwTGlua1N0eWxlKGxpc3RDbGlmZnNMaW5rLCBzcCwgMTApO1xuICAgICAgICBjb25zdCBmaWx0ZXJDbGlmZnNCdXR0b24gPSB1aS5zd2l0Y2hJbnB1dChgU2hvdyBvbmx5IGNsaWZmc2AsIGZhbHNlKTtcbiAgICAgICAgZmlsdGVyQ2xpZmZzQnV0dG9uLm9uQ2hhbmdlZCgoKSA9PiB7XG4gICAgICAgICAgICBmaWx0ZXJDbGlmZnNCdXR0b24udmFsdWUgPyBkZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3dbY2xpZmZzQ29sTmFtZV0gPT09IHRydWUpIDogZGYuZmlsdGVyLnNldEFsbCh0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVkaXRTcExpbmtTdHlsZShmaWx0ZXJDbGlmZnNCdXR0b24ucm9vdCwgc3AsIDMwKTtcbiAgICAgICAgbGV0IHRpbWVyO1xuICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICAgICAgdGltZXIgPSBnbG9iYWwuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IGNoZWNrQ3Vyc29yT25MaW5lKGV2ZW50LCBjYW52YXMsIGxpbmVzUmVzLmxpbmVzKTtcbiAgICAgICAgICAgICAgICBpZiAobGluZSAmJiBkZi5tb3VzZU92ZXJSb3dJZHggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHVpLnRvb2x0aXAuc2hvdyh0b29sdGlwRnVuYyh7IGNhc2hlZERhdGE6IGNhc2hlZExpbmVzRGF0YSwgbGluZTogbGluZSwgZGY6IGRmLCBzZXFDb2w6IHNlcUNvbCwgYWN0aXZpdHlDb2w6IGFjdGl2aXRpZXMgfSksIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lID0gY2hlY2tDdXJzb3JPbkxpbmUoZXZlbnQsIGNhbnZhcywgbGluZXNSZXMubGluZXMpO1xuICAgICAgICAgICAgaWYgKGxpbmUgJiYgZGYubW91c2VPdmVyUm93SWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUuc2VsZWN0ZWQgPSAhbGluZS5zZWxlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgbGluZXNSZXMubGluZXNEZi5zZWxlY3Rpb24uc2V0KGxpbmUuaWQsIGxpbmUuc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWxpbmUuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5zZWxlY3Rpb24uc2V0QWxsKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZXNSZXMubGluZXMuZm9yRWFjaCgobCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5tb2xzLmZvckVhY2goKG0pID0+IGRmLnNlbGVjdGlvbi5zZXQobSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggIT09IGxpbmUuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzRGYuY3VycmVudFJvd0lkeCA9IGxpbmUuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZi5jdXJyZW50Um93SWR4ID0gbGluZS5tb2xzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldCgwLCAhbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldCgwLCBsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JkZXIgPSBsaW5lc1Jlcy5saW5lc0RmLmdldFNvcnRlZE9yZGVyKGxpbmVzRGZHcmlkLnNvcnRCeUNvbHVtbnMsIGxpbmVzRGZHcmlkLnNvcnRUeXBlcyk7XG4gICAgICAgICAgICAgICAgbGluZXNEZkdyaWQuc2Nyb2xsVG9DZWxsKCdzZXFfMScsIG9yZGVyLmluZGV4T2YobGluZS5pZCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3Aub25FdmVudCgnZDQtYmVmb3JlLWRyYXctc2NlbmUnKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSByZW5kZXJMaW5lcyhzcCwgYXhlc05hbWVzWzBdLCBheGVzTmFtZXNbMV0sIGxpbmVzUmVzLCBzYWxpVmFscywgc2FsaU9wYWNpdHlDb2VmLCBzYWxpTWluKTtcbiAgICAgICAgICAgIGlmICh6b29tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudExpbmUgPSBsaW5lc1tsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHhdO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHpvb21MZWZ0LCB6b29tUmlnaHQsIHpvb21Ub3AsIHpvb21Cb3R0b20gfSA9IGdldFpvb21Db29yZGluYXRlcyhzcC52aWV3cG9ydC53aWR0aCwgc3Audmlld3BvcnQuaGVpZ2h0LCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1swXSwgY3VycmVudExpbmUubW9sc1swXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzFdLCBjdXJyZW50TGluZS5tb2xzWzBdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMF0sIGN1cnJlbnRMaW5lLm1vbHNbMV0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1sxXSwgY3VycmVudExpbmUubW9sc1sxXSkpO1xuICAgICAgICAgICAgICAgICAgICBzcC56b29tKHpvb21MZWZ0LCB6b29tVG9wLCB6b29tUmlnaHQsIHpvb21Cb3R0b20pO1xuICAgICAgICAgICAgICAgIH0sIDMwMCk7XG4gICAgICAgICAgICAgICAgem9vbSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlsdGVyQ2xpZmZzQnV0dG9uLnZhbHVlID8gZGYucm93cy5maWx0ZXIoKHJvdykgPT4gcm93W2NsaWZmc0NvbE5hbWVdID09PSB0cnVlKSA6IGRmLmZpbHRlci5zZXRBbGwodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBzcC5hZGRQcm9wZXJ0eSgnc2ltaWxhcml0eUxpbWl0JywgJ2RvdWJsZScsIG9wdFNpbWlsYXJpdHlMaW1pdCk7XG4gICAgICAgIGFjYyA9IGNyZWF0ZVBvcGVydHlQYW5lbCgpO1xuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBlZGl0U3BMaW5rU3R5bGUoZWwsIHNwLCB0b3BNYXJnaW4pIHtcbiAgICBlbC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgZWwuc3R5bGUudG9wID0gYCR7dG9wTWFyZ2lufXB4YDtcbiAgICBlbC5zdHlsZS5yaWdodCA9ICcxMHB4JztcbiAgICBzcC5yb290LmFwcGVuZChlbCk7XG59XG5mdW5jdGlvbiBjcmVhdGVQb3BlcnR5UGFuZWwoKSB7XG4gICAgY29uc3QgYWNjID0gdWkuYWNjb3JkaW9uKCk7XG4gICAgY29uc3QgYWNjSWNvbiA9IHVpLmVsZW1lbnQoJ2knKTtcbiAgICBhY2NJY29uLmNsYXNzTmFtZSA9ICdncm9rLWljb24gc3ZnLWljb24gc3ZnLXZpZXctbGF5b3V0JztcbiAgICBhY2MuYWRkVGl0bGUodWkuc3BhbihbYWNjSWNvbiwgdWkubGFiZWwoYEFjdGl2aXR5IGNsaWZmc2ApXSkpO1xuICAgIGFjYy5hZGRQYW5lKCdDbGlmZiBEZXRhaWxzJywgKCkgPT4gdWkuZGl2VGV4dCgnQ2xpZmYgaGFzIG5vdCBiZWVuIHNlbGVjdGVkJyksIHRydWUpO1xuICAgIGdyb2suc2hlbGwubyA9IGFjYy5yb290O1xuICAgIHJldHVybiBhY2M7XG59XG5mdW5jdGlvbiB1cGRhdGVQcm9wZXJ0eVBhbmVsKGRmLCBhY2MsIGNhc2hlZERhdGEsIGxpbmUsIHNlcUNvbCwgYWN0aXZpdGllcywgc2FsaSwgcHJvcFBhbmVsRnVuYykge1xuICAgIGNvbnN0IHBhbmVsID0gYWNjLmdldFBhbmUoJ0NsaWZmIERldGFpbHMnKTtcbiAgICB1aS5lbXB0eShwYW5lbC5yb290KTtcbiAgICBjb25zdCBwYW5lbEVsZW1lbnQgPSBwcm9wUGFuZWxGdW5jKHsgY2FzaGVkRGF0YTogY2FzaGVkRGF0YSwgbGluZTogbGluZSwgZGY6IGRmLCBzZXFDb2w6IHNlcUNvbCwgYWN0aXZpdHlDb2w6IGFjdGl2aXRpZXMsIHNhbGk6IHNhbGkgfSk7XG4gICAgcGFuZWwucm9vdC5hcHBlbmQocGFuZWxFbGVtZW50KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZ3Jvay5zaGVsbC5vID0gYWNjLnJvb3Q7XG4gICAgfSwgNTAwKTtcbn1cbmZ1bmN0aW9uIGdldFpvb21Db29yZGluYXRlcyhXMCwgSDAsIHgxLCB5MSwgeDIsIHkyKSB7XG4gICAgY29uc3QgVzEgPSBNYXRoLmFicyh4MSAtIHgyKTtcbiAgICBjb25zdCBIMSA9IE1hdGguYWJzKHkxIC0geTIpO1xuICAgIGNvbnN0IHNjYWxlVyA9IFcwIC8gVzE7XG4gICAgY29uc3Qgc2NhbGVIID0gSDAgLyBIMTtcbiAgICBjb25zdCBzY2FsZSA9IE1hdGgubWluKHNjYWxlVywgc2NhbGVIKTtcbiAgICBjb25zdCBXMiA9IChXMCAvIHNjYWxlKSAqIDU7XG4gICAgY29uc3QgSDIgPSAoSDAgLyBzY2FsZSkgKiA1O1xuICAgIGNvbnN0IGxlZnQgPSB4MSA8IHgyID8geDEgOiB4MjtcbiAgICBjb25zdCB0b3AgPSB5MSA+IHkyID8geTEgOiB5MjtcbiAgICBjb25zdCB6b29tTGVmdCA9IChsZWZ0ICsgVzEgLyAyKSAtIFcyIC8gMjtcbiAgICBjb25zdCB6b29tUmlnaHQgPSB6b29tTGVmdCArIFcyO1xuICAgIGNvbnN0IHpvb21Ub3AgPSAodG9wIC0gSDEgLyAyKSArIEgyIC8gMjtcbiAgICBjb25zdCB6b29tQm90dG9tID0gem9vbVRvcCAtIEgyO1xuICAgIHJldHVybiB7IHpvb21MZWZ0OiB6b29tTGVmdCwgem9vbVJpZ2h0OiB6b29tUmlnaHQsIHpvb21Ub3A6IHpvb21Ub3AsIHpvb21Cb3R0b206IHpvb21Cb3R0b20gfTtcbn1cbmZ1bmN0aW9uIGNoZWNrQ3Vyc29yT25MaW5lKGV2ZW50LCBjYW52YXMsIGxpbmVzKSB7XG4gICAgY29uc3QgcmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WCAtIHJlY3QubGVmdDtcbiAgICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wO1xuICAgIGxldCBjbG9zZXN0TGluZSA9IG51bGw7XG4gICAgbGV0IG1pbkRpc3QgPSAwO1xuICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjb25zdCBkaXN0ID0gTWF0aC5hYnMoTWF0aC5oeXBvdChsaW5lLmFbMF0gLSB4LCBsaW5lLmFbMV0gLSB5KSArXG4gICAgICAgICAgICBNYXRoLmh5cG90KGxpbmUuYlswXSAtIHgsIGxpbmUuYlsxXSAtIHkpIC0gTWF0aC5oeXBvdChsaW5lLmFbMF0gLSBsaW5lLmJbMF0sIGxpbmUuYVsxXSAtIGxpbmUuYlsxXSkpO1xuICAgICAgICBpZiAoKCFtaW5EaXN0ICYmIGRpc3QgPCAyKSB8fCBkaXN0IDwgbWluRGlzdCkge1xuICAgICAgICAgICAgbWluRGlzdCA9IGRpc3Q7XG4gICAgICAgICAgICBjbG9zZXN0TGluZSA9IGxpbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsb3Nlc3RMaW5lO1xufVxuZnVuY3Rpb24gcmVuZGVyTGluZXMoc3AsIHhBeGlzLCB5QXhpcywgbGluZXNSZXMsIHNhbGlWYWxzLCBzYWxpT3BhY2l0eUNvZWYsIHNhbGlNaW4pIHtcbiAgICBjb25zdCBsaW5lcyA9IGxpbmVzUmVzLmxpbmVzO1xuICAgIGNvbnN0IGNhbnZhcyA9IHNwLmdldEluZm8oKVsnY2FudmFzJ107XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgY29uc3QgeCA9IHNwLmRhdGFGcmFtZS5jb2x1bW5zLmJ5TmFtZSh4QXhpcyk7XG4gICAgY29uc3QgeSA9IHNwLmRhdGFGcmFtZS5jb2x1bW5zLmJ5TmFtZSh5QXhpcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBwb2ludEZyb20gPSBzcC53b3JsZFRvU2NyZWVuKHguZ2V0KGxpbmVzW2ldLm1vbHNbMF0pLCB5LmdldChsaW5lc1tpXS5tb2xzWzBdKSk7XG4gICAgICAgIGNvbnN0IHBvaW50VG8gPSBzcC53b3JsZFRvU2NyZWVuKHguZ2V0KGxpbmVzW2ldLm1vbHNbMV0pLCB5LmdldChsaW5lc1tpXS5tb2xzWzFdKSk7XG4gICAgICAgIGxpbmVzW2ldLmEgPSBbcG9pbnRGcm9tLngsIHBvaW50RnJvbS55XTtcbiAgICAgICAgbGluZXNbaV0uYiA9IFtwb2ludFRvLngsIHBvaW50VG8ueV07XG4gICAgICAgIGNvbnN0IGxpbmUgPSBuZXcgUGF0aDJEKCk7XG4gICAgICAgIGxpbmUubW92ZVRvKGxpbmVzW2ldLmFbMF0sIGxpbmVzW2ldLmFbMV0pO1xuICAgICAgICBjb25zdCBjb2xvciA9IGxpbmVzW2ldLnNlbGVjdGVkID8gJzI1NSwyNTUsMCcgOiAnMCwxMjgsMCc7XG4gICAgICAgIGNvbnN0IG9wYWNpdHkgPSBzYWxpVmFsc1tpXSA9PT0gSW5maW5pdHkgPyAxIDogMC4yICsgKHNhbGlWYWxzW2ldIC0gc2FsaU1pbikgKiBzYWxpT3BhY2l0eUNvZWY7XG4gICAgICAgIGN0eC5zdHJva2VTdHlsZSA9IGByZ2JhKCR7Y29sb3J9LCR7b3BhY2l0eX0pYDtcbiAgICAgICAgY3R4LmxpbmVXaWR0aCA9IGxpbmVzW2ldLmlkID09PSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggPyAzIDogMTtcbiAgICAgICAgbGluZS5saW5lVG8obGluZXNbaV0uYlswXSwgbGluZXNbaV0uYlsxXSk7XG4gICAgICAgIGN0eC5zdHJva2UobGluZSk7XG4gICAgfVxuICAgIHJldHVybiBsaW5lcztcbn1cbmZ1bmN0aW9uIGNyZWF0ZUxpbmVzKG4xLCBuMiwgc2VxLCBhY3Rpdml0aWVzLCBzYWxpVmFscywgc2ltVmFscywgc2VtVHlwZSwgdGFncykge1xuICAgIGNvbnN0IGxpbmVzID0gbmV3IEFycmF5KG4xLmxlbmd0aCkuZmlsbChudWxsKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG4xLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG51bTEgPSBuMVtpXTtcbiAgICAgICAgY29uc3QgbnVtMiA9IG4yW2ldO1xuICAgICAgICBsaW5lc1tpXSA9ICh7IGlkOiBpLCBtb2xzOiBbbnVtMSwgbnVtMl0sIHNlbGVjdGVkOiBmYWxzZSwgYTogW10sIGI6IFtdIH0pO1xuICAgIH1cbiAgICBjb25zdCBsaW5lc0RmID0gREcuRGF0YUZyYW1lLmNyZWF0ZShsaW5lcy5sZW5ndGgpO1xuICAgIG1vbENvbHVtbk5hbWVzLmZvckVhY2goKGl0LCBpZHgpID0+IHtcbiAgICAgICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld1N0cmluZyhpdCkuaW5pdCgoaSkgPT4gc2VxLmdldChsaW5lc1tpXS5tb2xzW2lkeF0pKTtcbiAgICAgICAgc2V0VGFncyhsaW5lc0RmLmNvbChpdCksIHRhZ3MpO1xuICAgICAgICBsaW5lc0RmLmNvbChpdCkuc2VtVHlwZSA9IHNlbVR5cGU7XG4gICAgfSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdhY3RfZGlmZicpXG4gICAgICAgIC5pbml0KChpKSA9PiBNYXRoLmFicyhhY3Rpdml0aWVzLmdldChsaW5lc1tpXS5tb2xzWzBdKSAtIGFjdGl2aXRpZXMuZ2V0KGxpbmVzW2ldLm1vbHNbMV0pKSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0ludCgnbGluZV9pbmRleCcpLmluaXQoKGkpID0+IGkpO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnc2FsaScpLmluaXQoKGkpID0+IHNhbGlWYWxzW2ldKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ3NpbScpLmluaXQoKGkpID0+IHNpbVZhbHNbaV0pO1xuICAgIHJldHVybiB7IGxpbmVzLCBsaW5lc0RmIH07XG59XG5mdW5jdGlvbiBzZXRUYWdzKGNvbCwgdGFncykge1xuICAgIE9iamVjdC5rZXlzKHRhZ3MpLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgY29sLnRhZ3NbdGFnXSA9IHRhZ3NbdGFnXTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW1pbGFyaXRpZXNNYXJpeChkaW0sIHNlcUNvbCwgZGZTZXEsIHNpbUFyciwgc2ltRnVuYykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IGRpbSAtIDE7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgbW9sID0gc2VxQ29sLmdldChpKTtcbiAgICAgICAgICAgIGRmU2VxLnJvd3MucmVtb3ZlQXQoMCwgMSwgZmFsc2UpO1xuICAgICAgICAgICAgc2ltQXJyW2ldID0gKHlpZWxkIHNpbUZ1bmMoZGZTZXEuY29sKCdzZXEnKSwgbW9sKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNpbUFycjtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW1pbGFyaXRpZXNGcm9tRGlzdGFuY2VzKGRpbSwgZGlzdGFuY2VzLCBzaW1BcnIpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpbSAtIDE7ICsraSkge1xuICAgICAgICBjb25zdCBzaW1pbGFyaXR5QXJyID0gbmV3IEFycmF5KGRpbSAtIGkgLSAxKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBkaW07ICsraikge1xuICAgICAgICAgICAgc2ltaWxhcml0eUFycltqIC0gaSAtIDFdID0gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZXNbaV1bal0pO1xuICAgICAgICB9XG4gICAgICAgIHNpbUFycltpXSA9IERHLkNvbHVtbi5mcm9tRmxvYXQzMkFycmF5KCdzaW1pbGFyaXR5JywgRmxvYXQzMkFycmF5LmZyb20oc2ltaWxhcml0eUFycikpO1xuICAgIH1cbiAgICByZXR1cm4gc2ltQXJyO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFkZENsaWZmc0Jvb2xlYW5Db2woZGYsIGlkcykge1xuICAgIGNvbnN0IGNvbG5hbWUgPSAnY29udGFpbnNDbGlmZic7XG4gICAgY29uc3QgY29sTmFtZUluZCA9IGRmLmNvbHVtbnMubmFtZXMoKS5maWx0ZXIoKGl0KSA9PiBpdC5pbmNsdWRlcyhjb2xuYW1lKSkubGVuZ3RoICsgMTtcbiAgICBjb25zdCBuZXdDb2xOYW1lID0gYCR7Y29sbmFtZX1fJHtjb2xOYW1lSW5kfWA7XG4gICAgZGYuY29sdW1ucy5hZGROZXdCb29sKG5ld0NvbE5hbWUpLmluaXQoKGkpID0+IGlkcy5oYXMoaSkpO1xuICAgIHJldHVybiBuZXdDb2xOYW1lO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVdOMGFYWnBkSGt0WTJ4cFptWnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVlXTjBhWFpwZEhrdFkyeHBabVp6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1MwRkJTeXhKUVVGSkxFMUJRVTBzYlVKQlFXMUNMRU5CUVVNN1FVRkRNVU1zVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVU4wUXl4UFFVRlBMRXRCUVVzc1JVRkJSU3hOUVVGTkxHbENRVUZwUWl4RFFVRkRPMEZCUlhSRExFOUJRVThzUlVGQlJTeDVRa0ZCZVVJc1JVRkJSU3hOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUXpkR0xFOUJRVThzUlVGQlF5eHhRa0ZCY1VJc1JVRkJReXhOUVVGTkxDdERRVUVyUXl4RFFVRkJPMEZCY1VOdVJpeEpRVUZKTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkZha0lzVFVGQlRTeGpRVUZqTEVkQlFVY3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03UVVGRk1VTXNUVUZCVFN4elFrRkJjMElzUjBGQlJ5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMEZCUlM5RExIZEZRVUYzUlR0QlFVTjRSU3hOUVVGTkxGVkJRV2RDTEdsQ1FVRnBRaXhEUVVOdVF5eEZRVUZuUWl4RlFVTm9RaXhOUVVGcFFpeEZRVU5xUWl4VlFVRTBRaXhGUVVNMVFpeFRRVUZ0UWl4RlFVTnVRaXhaUVVGdlFpeEZRVU53UWl4VlFVRnhRaXhGUVVOeVFpeFZRVUZyUWl4RlFVTnNRaXhuUWtGQmQwSXNSVUZEZUVJc1ZVRkJhMElzUlVGRGJFSXNUMEZCWlN4RlFVTm1MRWxCUVN0Q0xFVkJReTlDTEZsQlFUWkZMRVZCUXpkRkxHRkJRU3RJTEVWQlF5OUlMRmRCUVRSRUxFVkJRelZFTEdsQ1FVRnJSU3hGUVVOc1JTeGxRVUZ4UWpzN1VVRkZka0lzVFVGQlRTeDNRa0ZCZDBJc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGRrTXNUVUZCVFN4alFVRmpMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJSVEZDTEUxQlFVMHNjMEpCUVhOQ0xFZEJRVWNzZDBKQlFYZENMRU5CUVVNc1EwRkJReXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVVMVJpeE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExGVkJRVlVzWVVGQlZpeFZRVUZWTEdOQlFWWXNWVUZCVlN4SFFVRkpMRTFCUVUwc1EwRkJRenRSUVVOeVJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRM0pHTEZsQlFWazdVVUZEWkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXh4UWtGQmNVSXNRMEZCUXl4clFrRkJhMElzUlVGQlJTeDFRa0ZCZFVJc1EwRkJReXhEUVVGRE8xRkJSWHBHTEUxQlFVMHNSVUZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhGUVVGRExFZEJRVWNzVFVGQlRTeFpRVUZaTEVOQlFVTTdXVUZEYWtRc1RVRkJUU3hGUVVGRkxHdENRVUZyUWl4RFFVRkRMRWRCUVVjc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4SlFVRkpMRU5CUVVVN1dVRkROMFFzVlVGQlZTeEZRVUZGTEZWQlFWVTdXVUZEZEVJc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ08xbEJRMnhETEdOQlFXTXNSVUZCUlN4VFFVRlRPMWxCUTNwQ0xFOUJRVThzUlVGQlJTeGxRVUZsTzFOQlEzcENMRU5CUVVNc1EwRkJRenRSUVVWSUxFdEJRVXNzVFVGQlRTeEhRVUZITEVsQlFVa3NWMEZCVnl4RlFVRkZPMWxCUXpOQ0xFMUJRVTBzVlVGQlZTeEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1F5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJWeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjRSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWxCUVVrc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETzFOQlEzUkZPMUZCUlVRc1RVRkJUU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4WFFVRlhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxIVkNRVUYxUWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyaElMRTFCUVUwc1IwRkJSeXhIUVVGSExIVkNRVUYxUWl4RFFVRkRMRTFCUVUwc1EwRkJRenRSUVVNelF5eE5RVUZOTEUxQlFVMHNSMEZCWjBJc1MwRkJTeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVXpReXhKUVVGSkxFTkJRVU1zVVVGQlVTeEpRVUZKTEdGQlFXRXNRMEZCUXl4TlFVRk5MRXRCUVVzc1EwRkJReXhKUVVGSkxITkNRVUZ6UWl4RFFVRkRMRkZCUVZFc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0WlFVTTVSaXhOUVVGTkxHRkJRV0VzUTBGQlF5eEhRVUZITEVWQlFVVXNkVUpCUVhWQ0xFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenM3V1VGRmVFVXNORUpCUVRSQ0xFTkJRVU1zUjBGQlJ5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVWMFJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExITkNRVUZ6UWl4RFFVRkRPMUZCUld4RUxFMUJRVTBzVDBGQlR5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVTTNRaXhOUVVGTkxGRkJRVkVzUjBGQllTeEZRVUZGTEVOQlFVTTdVVUZET1VJc1RVRkJUU3hGUVVGRkxFZEJRV0VzUlVGQlJTeERRVUZETzFGQlEzaENMRTFCUVUwc1JVRkJSU3hIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU40UWl4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlZTeERRVUZETzFGQlJYWkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTzFsQlEycERMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0blFrRkRja01zVFVGQlRTeEhRVUZITEVkQlFWY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSWEpFTEVsQlFVa3NSMEZCUnl4SlFVRkpMR3RDUVVGclFpeEZRVUZGTzI5Q1FVTTNRaXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVOWUxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEYmtJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0dlFrRkRjRUlzV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTTFRaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMjlDUVVOc1FpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEzSkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03ZDBKQlExWXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenM3ZDBKQlJXaERMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdhVUpCUXpOQ08yRkJRMFk3VTBGRFJqdFJRVVZFTEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTjJSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEhRVUZITEVkQlFVTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGSGFFUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlETEUxQlFVMHNaVUZCWlN4SFFVRkhMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNdlF5eE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZla01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRia01zWlVGQlpTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU0xUWl4bFFVRmxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUXpWQ0xHVkJRV1VzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tNc1pVRkJaU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU55UXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeFJRVUZSTEVWQlFVVTdaMEpCUXpOQ0xFbEJRVWtzVlVGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZETDBNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdiMEpCUldoRExGTkJRVk1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdZVUZEYmtNN1UwRkRSanRSUVVWRUxFMUJRVTBzU1VGQlNTeEhRVUZqTEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkZha2tzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNrSXNUVUZCVFN4aFFVRmhMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJSVFZFTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNNVF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZGTEVOQlFVTXNUMEZCVHl4SFFVRkhMRXRCUVVzc1EwRkJRenRSUVVONlJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRVZCUVVVc1JVRkJSVHRaUVVOc1JDeFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlFpeFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlFpeEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrN1dVRkRaaXhMUVVGTExFVkJRVVVzVlVGQlZTeERRVUZETEVsQlFVazdXVUZEZEVJc1lVRkJZU3hGUVVGRkxFdEJRVXM3V1VGRGNFSXNZVUZCWVN4RlFVRkZMRXRCUVVzN1dVRkRjRUlzWjBKQlFXZENMRVZCUVVVc1MwRkJTenRaUVVOMlFpeHBRa0ZCYVVJc1JVRkJSU3hMUVVGTE8xbEJRM2hDTEdGQlFXRXNSVUZCUlN4RFFVRkRPMWxCUTJoQ0xHRkJRV0VzUlVGQlJTeEZRVUZGTzFsQlEycENMRXRCUVVzc1JVRkJSU3haUVVGWk8xTkJRM0JDTEVOQlFVTXNRMEZCZVVJc1EwRkJRenRSUVVVMVFpeE5RVUZOTEUxQlFVMHNSMEZCU1N4RlFVRkZMRU5CUVVNc1QwRkJUeXhGUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdVVUZETDBNc1RVRkJUU3hSUVVGUkxFZEJRVWNzVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxGVkJRVlVzUlVGQlJTeFJRVUZSTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVV6Uml4TlFVRk5MR1ZCUVdVc1IwRkJVU3hGUVVGRkxFTkJRVU03VVVGRGFFTXNTVUZCU1N4SFFVRnBRaXhEUVVGRE8xRkJSWFJDTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1JVRkJSVHRaUVVOdVJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFdEJRVXNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14Unl4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRNMGNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFpRVU16UkN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1dVRkRNVVFzVjBGQlZ5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNwQ0xFbEJRVWtzU1VGQlNUdG5Ra0ZEVGl4VlFVRlZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVVVzYlVKQlFXMUNMRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzUlVGQlJTeGxRVUZsTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hWUVVGVkxFVkJRVVVzVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF5eERRVUZCTEVOQlFVRXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMmhMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlVnc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZOTEVWQlFVVXNSVUZCUlR0WlFVTjJSQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU16UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03WjBKQlF6bEVMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMmRDUVVNdlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFN2IwSkJRMmhDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJGQlF6bENPMWxCUTBRc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSVHRuUWtGRE0wSXNTVUZCU1N4RFFVRkRMRU5CUVVNc1VVRkJVVHR2UWtGRFdpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja1FzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEU0N4WFFVRlhMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03VVVGRE0wSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZWtVc1YwRkJWeXhEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RlFVRkZPMWxCUTNKRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWSUxFMUJRVTBzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZGQlFWRXNVMEZCVXl4RlFVRkZMRWRCUVVjc1JVRkJSVHRaUVVNelJTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM1JHTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1pVRkJaU3hEUVVGRExHTkJRV01zUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkZlRU1zVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzSkZMR3RDUVVGclFpeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkZMRVZCUVVVN1dVRkRMMElzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTXpSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEdWQlFXVXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSV3BFTEVsQlFVa3NTMEZCY1VJc1EwRkJRenRSUVVNeFFpeE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVjBGQlZ5eEZRVUZGTEZWQlFWVXNTMEZCYVVJN1dVRkRPVVFzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNCQ0xFdEJRVXNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNWVUZCVlN4RFFVRkRPMmRDUVVONFFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dG5Ra0ZET1VRc1NVRkJTU3hKUVVGSkxFbEJRVWtzUlVGQlJTeERRVUZETEdWQlFXVXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSVHR2UWtGRGJrTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVTXNWVUZCVlN4RlFVRkZMR1ZCUVdVc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNWVUZCVlN4RlFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRwUWtGRE1VbzdXVUZEU0N4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRFZpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4WFFVRlhMRVZCUVVVc1ZVRkJVeXhMUVVGcFFqdFpRVU0zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhwUWtGQmFVSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTTVSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeEZRVUZGTEVOQlFVTXNaVUZCWlN4TFFVRkxMRU5CUVVNc1EwRkJReXhGUVVGRk8yZENRVU55UXl4SlFVRkpMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVU3YjBKQlEycENMRWxCUVVrc1EwRkJReXhSUVVGUkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMjlDUVVNdlFpeFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03YjBKQlJYWkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVUdDNRa0ZEYUVJc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN2IwSkJSVGRDTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdkMEpCUXpOQ0xFbEJRVWtzUTBGQlF5eERRVUZETEZGQlFWRTdORUpCUTFvc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnlSQ3hEUVVGRExFTkJRVU1zUTBGQlF6dHBRa0ZEU2p0eFFrRkJUVHR2UWtGRFRDeEpRVUZKTEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hMUVVGTExFbEJRVWtzUTBGQlF5eEZRVUZGTEVWQlFVVTdkMEpCUXpsRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU03ZDBKQlEzcERMRVZCUVVVc1EwRkJReXhoUVVGaExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenQzUWtGRGFFTXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0M1FrRkRha1FzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03Y1VKQlEycEVPMmxDUVVOR08yZENRVU5FTEUxQlFVMHNTMEZCU3l4SFFVRkhMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEZkQlFWY3NRMEZCUXl4aFFVRmhMRVZCUVVVc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzJkQ1FVTm9SeXhYUVVGWExFTkJRVU1zV1VGQldTeERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUXpORU8xRkJRMGdzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExITkNRVUZ6UWl4RFFVRkRPMkZCUXk5Q0xGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVMHNSVUZCUlN4RlFVRkZPMWxCUTNCQ0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RlFVRkZMRVZCUXpGQ0xGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRE5VVXNTVUZCU1N4SlFVRkpMRVZCUVVVN1owSkJRMUlzVFVGQlRTeFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdaMEpCUXpGRUxGVkJRVlVzUTBGQlF5eEhRVUZGTEVWQlFVVTdiMEpCUTJJc1RVRkJUU3hGUVVGRExGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZMRlZCUVZVc1JVRkJReXhIUVVGSExHdENRVUZyUWl4RFFVTnVSU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZEYWtJc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlEyeENMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUTNCRUxFTkJRVUU3YjBKQlEwUXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRMlFzVDBGQlR5eEZRVU5RTEZOQlFWTXNSVUZEVkN4VlFVRlZMRU5CUVVNc1EwRkJRenRuUWtGRGFFSXNRMEZCUXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU5TTEVsQlFVa3NSMEZCUnl4TFFVRkxMRU5CUVVNN1lVRkRaRHRaUVVORUxHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4aFFVRmhMRU5CUVVNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETTBjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlRDeEZRVUZGTEVOQlFVTXNWMEZCVnl4RFFVRkRMR2xDUVVGcFFpeEZRVUZGTEZGQlFWRXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eERRVUZETzFGQlEyaEZMRWRCUVVjc1IwRkJSeXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpOQ0xFOUJRVThzUlVGQlJTeERRVUZETzBsQlExb3NRMEZCUXp0RFFVRkJPMEZCUlVRc1UwRkJVeXhsUVVGbExFTkJRVU1zUlVGQlpTeEZRVUZGTEVWQlFYZENMRVZCUVVVc1UwRkJhVUk3U1VGRGJrWXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFZEJRVWNzVlVGQlZTeERRVUZETzBsQlF5OUNMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEhRVUZITEVkQlFVY3NVMEZCVXl4SlFVRkpMRU5CUVVNN1NVRkRhRU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM2hDTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzBGQlEzSkNMRU5CUVVNN1FVRkZSQ3hUUVVGVExHdENRVUZyUWp0SlFVTjZRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkRNMElzVFVGQlRTeFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVU5vUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhIUVVGSExHOURRVUZ2UXl4RFFVRkRPMGxCUTNwRUxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRPVVFzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4bFFVRmxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl3MlFrRkJOa0lzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNCR0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRGVFSXNUMEZCVHl4SFFVRkhMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVTBGQlV5eHRRa0ZCYlVJc1EwRkRNVUlzUlVGQlowSXNSVUZEYUVJc1IwRkJhVUlzUlVGRGFrSXNWVUZCWlN4RlFVTm1MRWxCUVZjc1JVRkRXQ3hOUVVGcFFpeEZRVU5xUWl4VlFVRnhRaXhGUVVOeVFpeEpRVUZaTEVWQlExb3NZVUZCT0VRN1NVRkRPVVFzVFVGQlRTeExRVUZMTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dEpRVU16UXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnlRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eGhRVUZoTEVOQlFVTXNSVUZCUXl4VlFVRlZMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlF5eERRVUZETEVOQlFVTTdTVUZEZEVrc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1NVRkRhRU1zVlVGQlZTeERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTmtMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRNVUlzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMEZCUTFZc1EwRkJRenRCUVVWRUxGTkJRVk1zYTBKQlFXdENMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVlVzUlVGQlJTeEZRVUZWTEVWQlFVVXNSVUZCVlN4RlFVRkZMRVZCUVZVc1JVRkJSU3hGUVVGVk8wbEJRMmhITEUxQlFVMHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMGxCUXpkQ0xFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZENMRTFCUVUwc1RVRkJUU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEZGtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTjJRaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1JVRkJSU3hOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkROVUlzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6VkNMRTFCUVUwc1NVRkJTU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlF5OUNMRTFCUVUwc1IwRkJSeXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETzBsQlF6bENMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6RkRMRTFCUVUwc1UwRkJVeXhIUVVGSExGRkJRVkVzUjBGQlJ5eEZRVUZGTEVOQlFVTTdTVUZEYUVNc1RVRkJUU3hQUVVGUExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEZUVNc1RVRkJUU3hWUVVGVkxFZEJRVWNzVDBGQlR5eEhRVUZITEVWQlFVVXNRMEZCUXp0SlFVTm9ReXhQUVVGUExFVkJRVU1zVVVGQlVTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1UwRkJVeXhGUVVGRkxFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkJReXhEUVVGRE8wRkJRemxHTEVOQlFVTTdRVUZGUkN4VFFVRlRMR2xDUVVGcFFpeERRVUZETEV0QlFWVXNSVUZCUlN4TlFVRlhMRVZCUVVVc1MwRkJZenRKUVVOb1JTeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNRMEZCUXp0SlFVTTFReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU03U1VGRGNFTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRPMGxCUTI1RExFbEJRVWtzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0SlFVTjJRaXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYUVJc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVTdVVUZEZUVJc1RVRkJUU3hKUVVGSkxFZEJRMUlzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJRMnBFTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNaSExFbEJRVWtzUTBGQlF5eERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeEhRVUZITEU5QlFVOHNSVUZCUlR0WlFVTTFReXhQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETzFsQlEyWXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRUUVVOd1FqdExRVU5HTzBsQlEwUXNUMEZCVHl4WFFVRlhMRU5CUVVNN1FVRkRja0lzUTBGQlF6dEJRVVZFTEZOQlFWTXNWMEZCVnl4RFFVRkRMRVZCUVhkQ0xFVkJRek5ETEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUVVVc1VVRkJkMElzUlVGQlJTeFJRVUZyUWl4RlFVRkZMR1ZCUVhWQ0xFVkJRVVVzVDBGQlpUdEpRVU53U0N4TlFVRk5MRXRCUVVzc1IwRkJSeXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETzBsQlF6ZENMRTFCUVUwc1RVRkJUU3hIUVVGSkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVWQlFUaENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRGJrVXNUVUZCVFN4SFFVRkhMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFUWkNMRU5CUVVNN1NVRkRhRVVzVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRk5CUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpsRExFMUJRVTBzUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4VFFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTTVReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0UlFVTnlReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNrWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTI1R0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVONFF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGNFTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hOUVVGTkxFVkJRVVVzUTBGQlF6dFJRVU14UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6RkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzVDBGQlR5eEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGRExHVkJRV1VzUTBGQlF6dFJRVU0zUml4SFFVRkhMRU5CUVVNc1YwRkJWeXhIUVVGSExGRkJRVkVzUzBGQlN5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RFFVRkRPMUZCUXpsRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUzBGQlN5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRka1VzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNeFF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wdEJRMnhDTzBsQlEwUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1FVRkRaaXhEUVVGRE8wRkJSVVFzVTBGQlV5eFhRVUZYTEVOQlEyeENMRVZCUVZrc1JVRkRXaXhGUVVGWkxFVkJRMW9zUjBGQll5eEZRVU5rTEZWQlFYRkNMRVZCUTNKQ0xGRkJRV3RDTEVWQlEyeENMRTlCUVdsQ0xFVkJRMnBDTEU5QlFXVXNSVUZEWml4SlFVRXJRanRKUVVNdlFpeE5RVUZOTEV0QlFVc3NSMEZCV1N4SlFVRkpMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM1pFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8xRkJRMnhETEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU51UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYmtJc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlF5eERRVUZETEVOQlFVTTdTMEZEZWtVN1NVRkRSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEYkVRc1kwRkJZeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOcVF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRiRVlzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVVXNRMEZCUXl4UFFVRlBMRWRCUVVjc1QwRkJUeXhEUVVGRE8wbEJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkJPMGxCUTBZc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRPMU5CUTNCRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRWNzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU12UkN4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVZNc1JVRkJSU3hGUVVGRkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRia1VzVDBGQlR5eEZRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETzBGQlJVUXNVMEZCVXl4UFFVRlBMRU5CUVVNc1IwRkJZeXhGUVVGRkxFbEJRU3RDTzBsQlF6bEVMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRemxDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUXpWQ0xFTkJRVU1zUTBGQlF5eERRVUZCTzBGQlEwb3NRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJaMElzYjBKQlFXOUNMRU5CUTNSRExFZEJRVmNzUlVGRFdDeE5RVUZwUWl4RlFVTnFRaXhMUVVGdFFpeEZRVU51UWl4TlFVRnRRaXhGUVVOdVFpeFBRVUZ0UlRzN1VVRkhja1VzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRha01zVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU14UWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRMnBETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRkxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVVXNRMEZCUXp0VFFVTjBSRHRSUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBsQlEyaENMRU5CUVVNN1EwRkJRVHRCUVVkRUxFMUJRVTBzVlVGQlZTdzBRa0ZCTkVJc1EwRkJReXhIUVVGWExFVkJRVVVzVTBGQmFVSXNSVUZCUlN4TlFVRnRRanRKUVVVNVJpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRSUVVOb1F5eE5RVUZOTEdGQlFXRXNSMEZCUnl4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU5vUXl4aFFVRmhMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4NVFrRkJlVUlzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFRRVU4yUlR0UlFVTkVMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2RDUVVGblFpeERRVUZETEZsQlFWa3NSVUZCUlN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEZUVZN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHMUNRVUZ0UWl4RFFVRkRMRVZCUVdkQ0xFVkJRVVVzUjBGQlowSTdTVUZEY0VVc1RVRkJUU3hQUVVGUExFZEJRVWNzWlVGQlpTeERRVUZETzBsQlEyaERMRTFCUVUwc1ZVRkJWU3hIUVVGSExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVNNVJpeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRTlCUVU4c1NVRkJTU3hWUVVGVkxFVkJRVVVzUTBGQlF6dEpRVU01UXl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU14UkN4UFFVRlBMRlZCUVZVc1EwRkJRenRCUVVOd1FpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUNvZ1lYTWdaM0p2YXlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlozSnZheWM3WEc1cGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVhVzF3YjNKMElDb2dZWE1nZFdrZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwzVnBKenRjYm1sdGNHOXlkQ0I3SUUxaGRISnBlQ0I5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN0lHZGxkRk5wYldsc1lYSnBkSGxHY205dFJHbHpkR0Z1WTJVZ2ZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OXphVzFwYkdGeWFYUjVMVzFsZEhKcFkzTW5PMXh1YVcxd2IzSjBJSHR5WlcxdmRtVkZiWEIwZVZOMGNtbHVaMUp2ZDNOOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwyUmhkR0ZtY21GdFpTMTFkR2xzY3lkY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkpUR2x1WlNCN1hHNGdJR2xrT2lCdWRXMWlaWEk3WEc0Z0lHMXZiSE02SUc1MWJXSmxjbHRkTzF4dUlDQnpaV3hsWTNSbFpEb2dZbTl2YkdWaGJqdGNiaUFnWVRvZ2JuVnRZbVZ5VzEwN0lDOHZJRnQ0TENCNVhWeHVJQ0JpT2lCdWRXMWlaWEpiWFRzZ0x5OGdXM2dzSUhsZFhHNTlYRzVjYm1sdWRHVnlabUZqWlNCSlVtVnVaR1Z5WldSTWFXNWxjeUI3WEc0Z0lHeHBibVZ6T2lCSlRHbHVaVnRkTzF4dUlDQnNhVzVsYzBSbU9pQkVSeTVFWVhSaFJuSmhiV1U3WEc1OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdTVk5sY1hWbGJtTmxVM0JoWTJWUVlYSmhiWE1nZTF4dUlDQnpaWEZEYjJ3NklFUkhMa052YkhWdGJpeGNiaUFnYldWMGFHOWtUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQnpkSEpwYm1jc1hHNGdJR1Z0WW1Wa1FYaGxjMDVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnYjNCMGFXOXVjejg2SUdGdWVWeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUVsVFpYRjFaVzVqWlZOd1lXTmxVbVZ6ZFd4MElIdGNiaUFnWkdsemRHRnVZMlU2SUUxaGRISnBlRHRjYmlBZ1kyOXZjbVJwYm1GMFpYTTZJRVJITGtOdmJIVnRia3hwYzNRN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1ZSdmIyeDBhWEJCYm1SUVlXNWxiRkJoY21GdGN5QjdYRzRnSUdOaGMyaGxaRVJoZEdFNklHRnVlU3hjYmlBZ2JHbHVaVG9nU1V4cGJtVXNYRzRnSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzWEc0Z0lITmxjVU52YkRvZ1JFY3VRMjlzZFcxdUxGeHVJQ0JoWTNScGRtbDBlVU52YkRvZ1JFY3VRMjlzZFcxdUxGeHVJQ0J6WVd4cFB6b2diblZ0WW1WeVhHNTlYRzVjYm14bGRDQjZiMjl0SUQwZ1ptRnNjMlU3WEc1Y2JtTnZibk4wSUcxdmJFTnZiSFZ0Yms1aGJXVnpJRDBnV3ljeFgzTmxjU2NzSUNjeVgzTmxjU2RkTzF4dVhHNWpiMjV6ZENCdWIyNU9iM0p0WVd4cGVtVmtSR2x6ZEdGdVkyVnpJRDBnV3lkTVpYWmxibk5vZEdWcGJpZGRPMXh1WEc0dkx5QlRaV0Z5WTJobGN5Qm1iM0lnWVdOMGFYWnBkSGtnWTJ4cFptWnpJR2x1SUdFZ1kyaGxiV2xqWVd3Z1pHRjBZWE5sZENCaWVTQnpaV3hsWTNSbFpDQmpkWFJ2Wm1aY2JtVjRjRzl5ZENCaGMzbHVZeUJtZFc1amRHbHZiaUJuWlhSQlkzUnBkbWwwZVVOc2FXWm1jeWhjYmlBZ0lDQmtaam9nUkVjdVJHRjBZVVp5WVcxbExDQmNiaUFnSUNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml4Y2JpQWdJQ0JsYm1OdlpHVmtRMjlzT2lCRVJ5NURiMngxYlc0Z2ZDQnVkV3hzTEZ4dUlDQWdJR0Y0WlhOT1lXMWxjem9nYzNSeWFXNW5XMTBzWEc0Z0lDQWdjMk5oZEhSbGNsUnBkR3hsT2lCemRISnBibWNzWEc0Z0lDQWdZV04wYVhacGRHbGxjem9nUkVjdVEyOXNkVzF1TENCY2JpQWdJQ0J6YVcxcGJHRnlhWFI1T2lCdWRXMWlaWElzWEc0Z0lDQWdjMmx0YVd4aGNtbDBlVTFsZEhKcFl6b2djM1J5YVc1bkxDQmNiaUFnSUNCdFpYUm9iMlJPWVcxbE9pQnpkSEpwYm1jc0lGeHVJQ0FnSUhObGJWUjVjR1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjBZV2R6T2lCN1cybHVaR1Y0T2lCemRISnBibWRkT2lCemRISnBibWQ5TEZ4dUlDQWdJSE5sY1ZOd1lXTmxSblZ1WXpvZ0tIQmhjbUZ0Y3pvZ1NWTmxjWFZsYm1ObFUzQmhZMlZRWVhKaGJYTXBJRDArSUZCeWIyMXBjMlU4U1ZObGNYVmxibU5sVTNCaFkyVlNaWE4xYkhRK0xGeHVJQ0FnSUhOcGJVMWhkSEpwZUVaMWJtTTZJQ2hrYVcwNklHNTFiV0psY2l3Z2MyVnhRMjlzT2lCRVJ5NURiMngxYlc0c0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc0lHTnZiRTVoYldVNklITjBjbWx1Wnl3Z2MybHRRWEp5T2lCRVJ5NURiMngxYlc1YlhTa2dQVDRnVUhKdmJXbHpaVHhFUnk1RGIyeDFiVzViWFQ0c1hHNGdJQ0FnZEc5dmJIUnBjRVoxYm1NNklDaHdZWEpoYlhNNklFbFViMjlzZEdsd1FXNWtVR0Z1Wld4UVlYSmhiWE1wSUQwK0lFaFVUVXhGYkdWdFpXNTBMRnh1SUNBZ0lIQnliM0JsY25SNVVHRnVaV3hHZFc1ak9pQW9jR0Z5WVcxek9pQkpWRzl2YkhScGNFRnVaRkJoYm1Wc1VHRnlZVzF6S1NBOVBpQklWRTFNUld4bGJXVnVkQ3hjYmlBZ0lDQnpaWEZUY0dGalpVOXdkR2x2Ym5NL09pQmhibmtwSURvZ1VISnZiV2x6WlR4RVJ5NVdhV1YzWlhJK0lIdGNibHh1SUNCamIyNXpkQ0JoZFhSdmJXRjBhV05UYVcxcGJHRnlhWFI1VEdsdGFYUWdQU0JtWVd4elpUdGNiaUFnWTI5dWMzUWdUVWxPWDFOSlRVbE1RVkpKVkZrZ1BTQTRNRHRjYmx4dUlDQmpiMjV6ZENCcGJtbDBhV0ZzVTJsdGFXeGhjbWwwZVV4cGJXbDBJRDBnWVhWMGIyMWhkR2xqVTJsdGFXeGhjbWwwZVV4cGJXbDBJRDhnVFVsT1gxTkpUVWxNUVZKSlZGa2dPaUJ6YVcxcGJHRnlhWFI1SUM4Z01UQXdPMXh1WEc0Z0lHTnZibk4wSUdScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObFEyOXNJRDBnWlc1amIyUmxaRU52YkNBL1B5QnpaWEZEYjJ3N1hHNGdJR052Ym5OMElIZHBkR2h2ZFhSRmJYQjBlVlpoYkhWbGN5QTlJRVJITGtSaGRHRkdjbUZ0WlM1bWNtOXRRMjlzZFcxdWN5aGJaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ4ZEtTNWpiRzl1WlNncE8xeHVJQ0FnSUM4dlFIUnpMV2xuYm05eVpWeHVJQ0JqYjI1emRDQmxiWEIwZVZaaGJITkpaSGh6SUQwZ2NtVnRiM1psUlcxd2RIbFRkSEpwYm1kU2IzZHpLSGRwZEdodmRYUkZiWEIwZVZaaGJIVmxjeXdnWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyd3BPMXh1WEc0Z0lHTnZibk4wSUh0a2FYTjBZVzVqWlN3Z1kyOXZjbVJwYm1GMFpYTjlJRDBnWVhkaGFYUWdjMlZ4VTNCaFkyVkdkVzVqS0h0Y2JpQWdJQ0J6WlhGRGIydzZJSGRwZEdodmRYUkZiWEIwZVZaaGJIVmxjeTVqYjJ3b1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMnd1Ym1GdFpTa2hMRnh1SUNBZ0lHMWxkR2h2WkU1aGJXVTZJRzFsZEdodlpFNWhiV1VzWEc0Z0lDQWdjMmx0YVd4aGNtbDBlVTFsZEhKcFl6b2djMmx0YVd4aGNtbDBlVTFsZEhKcFl5eGNiaUFnSUNCbGJXSmxaRUY0WlhOT1lXMWxjem9nWVhobGMwNWhiV1Z6TEZ4dUlDQWdJRzl3ZEdsdmJuTTZJSE5sY1ZOd1lXTmxUM0IwYVc5dWMxeHVJQ0I5S1R0Y2JseHVJQ0JtYjNJZ0tHTnZibk4wSUdOdmJDQnZaaUJqYjI5eVpHbHVZWFJsY3lrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYkdsemRGWmhiSFZsY3lBOUlHTnZiQzUwYjB4cGMzUW9LVHRjYmlBZ0lDQWdJR1Z0Y0hSNVZtRnNjMGxrZUhNdVptOXlSV0ZqYUNnb2FXNWtPaUJ1ZFcxaVpYSXBJRDArSUd4cGMzUldZV3gxWlhNdWMzQnNhV05sS0dsdVpDd2dNQ3dnYm5Wc2JDa3BPMXh1SUNBZ0lDQWdaR1l1WTI5c2RXMXVjeTVoWkdRb1JFY3VRMjlzZFcxdUxtWnliMjFNYVhOMEtDZGtiM1ZpYkdVbkxDQmpiMnd1Ym1GdFpTd2diR2x6ZEZaaGJIVmxjeWtwTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWkdaVFpYRWdQU0JFUnk1RVlYUmhSbkpoYldVdVpuSnZiVU52YkhWdGJuTW9XMFJITGtOdmJIVnRiaTVtY205dFRHbHpkQ2duYzNSeWFXNW5KeXdnSjNObGNTY3NJR1JwYldWdWMybHZibUZzYVhSNVVtVmtkV05sUTI5c0xuUnZUR2x6ZENncEtWMHBPMXh1SUNCamIyNXpkQ0JrYVcwZ1BTQmthVzFsYm5OcGIyNWhiR2wwZVZKbFpIVmpaVU52YkM1c1pXNW5kR2c3WEc0Z0lHTnZibk4wSUhOcGJVRnljam9nUkVjdVEyOXNkVzF1VzEwZ1BTQkJjbkpoZVNoa2FXMGdMU0F4S1R0Y2JseHVJQ0JwWmlBb0lXUnBjM1JoYm1ObElIeDhJR1Z0Y0hSNVZtRnNjMGxrZUhNdWJHVnVaM1JvSUNFOVBTQXdJSHg4SUc1dmJrNXZjbTFoYkdsNlpXUkVhWE4wWVc1alpYTXVhVzVqYkhWa1pYTW9jMmx0YVd4aGNtbDBlVTFsZEhKcFl5a3BYRzRnSUNBZ1lYZGhhWFFnYzJsdFRXRjBjbWw0Um5WdVl5aGthVzBzSUdScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObFEyOXNMQ0JrWmxObGNTd2dKM05sY1Njc0lITnBiVUZ5Y2lrN1hHNGdJR1ZzYzJWY2JpQWdJQ0JuWlhSVGFXMXBiR0Z5YVhScFpYTkdjbTl0UkdsemRHRnVZMlZ6S0dScGJTd2daR2x6ZEdGdVkyVXNJSE5wYlVGeWNpazdYRzVjYmlBZ1kyOXVjM1FnYjNCMFUybHRhV3hoY21sMGVVeHBiV2wwSUQwZ2FXNXBkR2xoYkZOcGJXbHNZWEpwZEhsTWFXMXBkRHRjYmx4dUlDQmpiMjV6ZENCemFXMVdZV3h6T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNCamIyNXpkQ0J6WVd4cFZtRnNjem9nYm5WdFltVnlXMTBnUFNCYlhUdGNiaUFnWTI5dWMzUWdiakU2SUc1MWJXSmxjbHRkSUQwZ1cxMDdYRzRnSUdOdmJuTjBJRzR5T2lCdWRXMWlaWEpiWFNBOUlGdGRPMXh1SUNCamIyNXpkQ0JqYkdsbVpuTk5iMnhKWkhNZ1BTQnVaWGNnVTJWMFBHNTFiV0psY2o0b0tUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBaFBTQmthVzBnTFNBeE95QXJLMmtwSUh0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JxSUQwZ01Ec2dhaUFoUFNCa2FXMGdMU0F4SUMwZ2FUc2dLeXRxS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J6YVcwNklHNTFiV0psY2lBOUlITnBiVUZ5Y2x0cFhTQS9JSE5wYlVGeWNsdHBYUzVuWlhRb2Fpa2dPaUF3TzF4dVhHNGdJQ0FnSUNCcFppQW9jMmx0SUQ0OUlHOXdkRk5wYldsc1lYSnBkSGxNYVcxcGRDa2dlMXh1SUNBZ0lDQWdJQ0J1TVM1d2RYTm9LR2twTzF4dUlDQWdJQ0FnSUNCdU1pNXdkWE5vS0drZ0t5QnFJQ3NnTVNrN1hHNGdJQ0FnSUNBZ0lHTnNhV1ptYzAxdmJFbGtjeTVoWkdRb2FTazdYRzRnSUNBZ0lDQWdJR05zYVdabWMwMXZiRWxrY3k1aFpHUW9hU0FySUdvZ0t5QXhLVHRjYmlBZ0lDQWdJQ0FnYzJsdFZtRnNjeTV3ZFhOb0tITnBiU2s3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JwWm1ZZ1BTQk5ZWFJvTG1GaWN5aGhZM1JwZG1sMGFXVnpMbWRsZENocEtTQXRJR0ZqZEdsMmFYUnBaWE11WjJWMEtHa2dLeUJxSUNzZ01Ta3BPMXh1SUNBZ0lDQWdJQ0JwWmlBb2MybHRJQ0U5SURFcFhHNGdJQ0FnSUNBZ0lDQWdjMkZzYVZaaGJITXVjSFZ6YUNoa2FXWm1JQzhnS0RFZ0xTQnphVzBwS1R0Y2JpQWdJQ0FnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdJQ0FnSUhOaGJHbFdZV3h6TG5CMWMyZ29TVzVtYVc1cGRIa3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR052Ym5OMElITmhiR2xXWVd4elYybDBhRzkxZEVsdVptbHVhWFI1SUQwZ2MyRnNhVlpoYkhNdVptbHNkR1Z5S0dsMElEMCtJR2wwSUNFOVBTQkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsTmFXNGdQU0JOWVhSb0xtMXBiaWd1TGk1ellXeHBWbUZzYzFkcGRHaHZkWFJKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbE5ZWGdnUFNCTllYUm9MbTFoZUNndUxpNXpZV3hwVm1Gc2MxZHBkR2h2ZFhSSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xQY0dGamFYUjVRMjlsWmlBOUlEQXVPQzhvYzJGc2FVMWhlQ0F0SUhOaGJHbE5hVzRwTzF4dVhHNWNiaUFnWTI5dWMzUWdibVZwWjJoaWIzVnljME52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JpQWdZMjl1YzNRZ2MybHRhV3hoY21sMGVVTnZkVzUwSUQwZ2JtVjNJRUZ5Y21GNUtHUnBiU2t1Wm1sc2JDZ3dLVHRjYmlBZ1kyOXVjM1FnYzJGc2FVTnZkVzUwSUQwZ2JtVjNJRUZ5Y21GNUtHUnBiU2t1Wm1sc2JDZ3dLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQWhQU0J1TVM1c1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHNWxhV2RvWW05MWNuTkRiM1Z1ZEZ0dU1WdHBYVjBnS3owZ01UdGNiaUFnSUNCdVpXbG5hR0p2ZFhKelEyOTFiblJiYmpKYmFWMWRJQ3M5SURFN1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVVOdmRXNTBXMjR4VzJsZFhTQXJQU0J6YVcxV1lXeHpXMmxkTzF4dUlDQWdJSE5wYldsc1lYSnBkSGxEYjNWdWRGdHVNbHRwWFYwZ0t6MGdjMmx0Vm1Gc2MxdHBYVHRjYmlBZ0lDQnBaaUFvYzJGc2FWWmhiSE5iYVYwZ0lUMGdTVzVtYVc1cGRIa3BJSHRjYmlBZ0lDQWdJR2xtSUNoaFkzUnBkbWwwYVdWekxtZGxkQ2h1TVZ0cFhTa2dQaUJoWTNScGRtbDBhV1Z6TG1kbGRDaHVNbHRwWFNrcFhHNGdJQ0FnSUNBZ0lITmhiR2xEYjNWdWRGdHVNVnRwWFYwZ0t6MGdjMkZzYVZaaGJITmJhVjA3WEc0Z0lDQWdJQ0JsYkhObFhHNGdJQ0FnSUNBZ0lITmhiR2xEYjNWdWRGdHVNbHRwWFYwZ0t6MGdjMkZzYVZaaGJITmJhVjA3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjMkZzYVRvZ1JFY3VRMjlzZFcxdUlEMGdSRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2RrYjNWaWJHVW5MQ0JnYzJGc2FWOGtlMkY0WlhOT1lXMWxjMXN3WFM1emRXSnpkSEpwYm1jb1lYaGxjMDVoYldWeld6QmRMbXhoYzNSSmJtUmxlRTltS0NkZkp5a3BmV0FzSUhOaGJHbERiM1Z1ZENrN1hHNWNiaUFnWkdZdVkyOXNkVzF1Y3k1aFpHUW9jMkZzYVNrN1hHNGdJR052Ym5OMElHTnNhV1ptYzBOdmJFNWhiV1VnUFNCaFpHUkRiR2xtWm5OQ2IyOXNaV0Z1UTI5c0tHUm1MQ0JqYkdsbVpuTk5iMnhKWkhNcE8xeHVYRzRnSUdOdmJuTjBJSFpwWlhjZ1BTQm5jbTlyTG5Ob1pXeHNMbWRsZEZSaFlteGxWbWxsZHloa1ppNXVZVzFsS1R0Y2JpQWdkbWxsZHk1bmNtbGtMbU52YkhWdGJuTXVZbmxPWVcxbEtHTnNhV1ptYzBOdmJFNWhiV1VwSVM1MmFYTnBZbXhsSUQwZ1ptRnNjMlU3WEc0Z0lHTnZibk4wSUhOd0lEMGdkbWxsZHk1aFpHUldhV1YzWlhJb1JFY3VWbWxsZDJWeUxuTmpZWFIwWlhKUWJHOTBLR1JtTENCN1hHNGdJQ0FnZUVOdmJIVnRiazVoYldVNklHRjRaWE5PWVcxbGMxc3dYU3hjYmlBZ0lDQjVRMjlzZFcxdVRtRnRaVG9nWVhobGMwNWhiV1Z6V3pGZExGeHVJQ0FnSUhOcGVtVTZJSE5oYkdrdWJtRnRaU3hjYmlBZ0lDQmpiMnh2Y2pvZ1lXTjBhWFpwZEdsbGN5NXVZVzFsTEZ4dUlDQWdJSE5vYjNkWVUyVnNaV04wYjNJNklHWmhiSE5sTEZ4dUlDQWdJSE5vYjNkWlUyVnNaV04wYjNJNklHWmhiSE5sTEZ4dUlDQWdJSE5vYjNkVGFYcGxVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZERiMnh2Y2xObGJHVmpkRzl5T2lCbVlXeHpaU3hjYmlBZ0lDQnRZWEpyWlhKTmFXNVRhWHBsT2lBMUxGeHVJQ0FnSUcxaGNtdGxjazFoZUZOcGVtVTZJREkxTEZ4dUlDQWdJSFJwZEd4bE9pQnpZMkYwZEdWeVZHbDBiR1ZjYmlBZ2ZTa3BJR0Z6SUVSSExsTmpZWFIwWlhKUWJHOTBWbWxsZDJWeU8xeHVYRzRnSUdOdmJuTjBJR05oYm5aaGN5QTlJQ2h6Y0M1blpYUkpibVp2S0NrZ1lYTWdZVzU1S1ZzblkyRnVkbUZ6SjEwN1hHNGdJR052Ym5OMElHeHBibVZ6VW1WeklEMGdZM0psWVhSbFRHbHVaWE1vYmpFc0lHNHlMQ0J6WlhGRGIyd3NJR0ZqZEdsMmFYUnBaWE1zSUhOaGJHbFdZV3h6TENCemFXMVdZV3h6TENCelpXMVVlWEJsTENCMFlXZHpLVHRjYmx4dUlDQmpiMjV6ZENCallYTm9aV1JNYVc1bGMwUmhkR0U2SUdGdWVTQTlJSHQ5TzF4dUlDQnNaWFFnWVdOak9pQkVSeTVCWTJOdmNtUnBiMjQ3WEc1Y2JpQWdiR2x1WlhOU1pYTXViR2x1WlhORVppNXZia04xY25KbGJuUkRaV3hzUTJoaGJtZGxaQzV6ZFdKelkzSnBZbVVvS0NrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdOMWNuSmxiblJOYjJ4SlpIZ2dQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbU4xY25KbGJuUkRiMndnSmlZZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwUTI5c0xtNWhiV1VnUFQwOUlDY3lYM05sY1NjZ1B5QXhJRG9nTUR0Y2JpQWdJQ0JqYjI1emRDQnNhVzVsSUQwZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJQ0U5UFNBdE1TQS9JR3hwYm1WelVtVnpMbXhwYm1WelcyeHBibVZ6VW1WekxteHBibVZ6UkdZdVkzVnljbVZ1ZEZKdmQwbGtlRjBnT2lCdWRXeHNPMXh1SUNBZ0lITndMbVJoZEdGR2NtRnRaUzVqZFhKeVpXNTBVbTkzU1dSNElEMGdiR2x1WlNBL0lHeHBibVV1Ylc5c2MxdGpkWEp5Wlc1MFRXOXNTV1I0WFNBNklDMHhPMXh1SUNBZ0lITndMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YzJWMEtEQXNJQ0ZzYVc1bGMxSmxjeTVzYVc1bGMxc3dYUzV6Wld4bFkzUmxaQ2s3WEc0Z0lDQWdjM0F1WkdGMFlVWnlZVzFsTG5ObGJHVmpkR2x2Ymk1elpYUW9NQ3dnYkdsdVpYTlNaWE11YkdsdVpYTmJNRjB1YzJWc1pXTjBaV1FwTzF4dUlDQWdJR3hwYm1WelJHWkhjbWxrTG1sdWRtRnNhV1JoZEdVb0tUdGNiaUFnSUNCcFppQW9iR2x1WlNsY2JpQWdJQ0FnSUhObGRGUnBiV1Z2ZFhRb0tDa2dQVDRnZTNWd1pHRjBaVkJ5YjNCbGNuUjVVR0Z1Wld3b1pHWXNJR0ZqWXl3Z1kyRnphR1ZrVEdsdVpYTkVZWFJoTENCc2FXNWxMQ0J6WlhGRGIyd3NJR0ZqZEdsMmFYUnBaWE1zSUd4cGJtVnpVbVZ6TG14cGJtVnpSR1l1WjJWMEtDZHpZV3hwSnl3Z2JHbHVaUzVwWkNrc0lIQnliM0JsY25SNVVHRnVaV3hHZFc1aktYMHNJREV3TURBcE95QWdJQ0FnSUZ4dUlDQjlLVHRjYmx4dUlDQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtOXVVMlZzWldOMGFXOXVRMmhoYm1kbFpDNXpkV0p6WTNKcFltVW9LRjg2SUdGdWVTa2dQVDRnZTF4dUlDQWdJR2xtSUNoc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG0xdmRYTmxUM1psY2xKdmQwbGtlQ0FoUFQwZ0xURXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHeHBibVVnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMXRzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTF2ZFhObFQzWmxjbEp2ZDBsa2VGMDdYRzRnSUNBZ0lDQnNhVzVsTG5ObGJHVmpkR1ZrSUQwZ0lXeHBibVV1YzJWc1pXTjBaV1E3WEc0Z0lDQWdJQ0JwWmlBb0lXeHBibVV1YzJWc1pXTjBaV1FwWEc0Z0lDQWdJQ0FnSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFJCYkd3b1ptRnNjMlVwTzF4dUlDQWdJSDFjYmlBZ0lDQnNhVzVsYzFKbGN5NXNhVzVsY3k1bWIzSkZZV05vS0Noc0tTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb2JDNXpaV3hsWTNSbFpDbGNiaUFnSUNBZ0lDQWdiQzV0YjJ4ekxtWnZja1ZoWTJnb0tHMHBJRDArSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvYlN3Z2RISjFaU2twTzF4dUlDQWdJSDBwTzF4dUlDQWdJR3hwYm1WelJHWkhjbWxrTG1sdWRtRnNhV1JoZEdVb0tUdGNiaUFnZlNrN1hHNWNiaUFnWTI5dWMzUWdiR2x1WlhORVprZHlhV1FnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG5Cc2IzUXVaM0pwWkNncExuTnZjblFvV3lkellXeHBKMTBzSUZ0bVlXeHpaVjBwTzF4dVhHNGdJR3hwYm1WelJHWkhjbWxrTG05dVEyVnNiRU5zYVdOckxuTjFZbk5qY21saVpTZ29LU0E5UGlCN1hHNGdJQ0FnZW05dmJTQTlJSFJ5ZFdVN1hHNGdJSDBwTzF4dVhHNGdJR052Ym5OMElHeHBjM1JEYkdsbVpuTk1hVzVySUQwZ2RXa3VZblYwZEc5dUtHQWtlMnhwYm1WelVtVnpMbXhwYm1WelJHWXVjbTkzUTI5MWJuUjlJR05zYVdabWMyQXNJQ2dwSUQwK0lIdGNiaUFnSUNCbmNtOXJMbk5vWld4c0xtUnZZMnROWVc1aFoyVnlMbVJ2WTJzb2JHbHVaWE5FWmtkeWFXUXVjbTl2ZEN3Z0oyUnZkMjRuTENCdWRXeHNMQ0FuUVdOMGFYWnBkSGtnWTJ4cFptWnpKeXdnTUM0eUtUdGNiaUFnZlNrN1hHNGdJR1ZrYVhSVGNFeHBibXRUZEhsc1pTaHNhWE4wUTJ4cFptWnpUR2x1YXl3Z2MzQXNJREV3S1R0Y2JseHVJQ0JqYjI1emRDQm1hV3gwWlhKRGJHbG1abk5DZFhSMGIyNGdQU0IxYVM1emQybDBZMmhKYm5CMWRDaGdVMmh2ZHlCdmJteDVJR05zYVdabWMyQXNJR1poYkhObEtUdGNiaUFnWm1sc2RHVnlRMnhwWm1aelFuVjBkRzl1TG05dVEyaGhibWRsWkNnb0tUMCtJSHRjYmlBZ0lDQm1hV3gwWlhKRGJHbG1abk5DZFhSMGIyNHVkbUZzZFdVZ1B5QmtaaTV5YjNkekxtWnBiSFJsY2lnb2NtOTNLU0E5UGlCeWIzZGJZMnhwWm1aelEyOXNUbUZ0WlYwZ1BUMDlJSFJ5ZFdVcElEb2daR1l1Wm1sc2RHVnlMbk5sZEVGc2JDaDBjblZsS1R0Y2JpQWdmU2s3WEc0Z0lHVmthWFJUY0V4cGJtdFRkSGxzWlNobWFXeDBaWEpEYkdsbVpuTkNkWFIwYjI0dWNtOXZkQ3dnYzNBc0lETXdLVHRjYmx4dUlDQnNaWFFnZEdsdFpYSTZJRTV2WkdWS1V5NVVhVzFsYjNWME8xeHVJQ0JqWVc1MllYTXVZV1JrUlhabGJuUk1hWE4wWlc1bGNpZ25iVzkxYzJWdGIzWmxKeXdnWm5WdVkzUnBiMjRnS0dWMlpXNTBPaUJOYjNWelpVVjJaVzUwS1NCN1hHNGdJQ0FnWTJ4bFlYSlVhVzFsYjNWMEtIUnBiV1Z5S1R0Y2JpQWdJQ0IwYVcxbGNpQTlJR2RzYjJKaGJDNXpaWFJVYVcxbGIzVjBLR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQmphR1ZqYTBOMWNuTnZjazl1VEdsdVpTaGxkbVZ1ZEN3Z1kyRnVkbUZ6TENCc2FXNWxjMUpsY3k1c2FXNWxjeWs3WEc0Z0lDQWdJQ0JwWmlBb2JHbHVaU0FtSmlCa1ppNXRiM1Z6WlU5MlpYSlNiM2RKWkhnZ1BUMDlJQzB4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIUnZiMngwYVhCR2RXNWpLSHRqWVhOb1pXUkVZWFJoT2lCallYTm9aV1JNYVc1bGMwUmhkR0VzSUd4cGJtVTZJR3hwYm1Vc0lHUm1PaUJrWml3Z2MyVnhRMjlzT2lCelpYRkRiMndzSUdGamRHbDJhWFI1UTI5c09pQmhZM1JwZG1sMGFXVnpmU2tzSUdWMlpXNTBMbU5zYVdWdWRGZ3NJR1YyWlc1MExtTnNhV1Z1ZEZrcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwc0lEVXdNQ2s3WEc0Z0lIMHBPMXh1WEc0Z0lHTmhiblpoY3k1aFpHUkZkbVZ1ZEV4cGMzUmxibVZ5S0NkdGIzVnpaV1J2ZDI0bkxDQm1kVzVqZEdsdmJpaGxkbVZ1ZERvZ1RXOTFjMlZGZG1WdWRDa2dlMXh1SUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JqYUdWamEwTjFjbk52Y2s5dVRHbHVaU2hsZG1WdWRDd2dZMkZ1ZG1GekxDQnNhVzVsYzFKbGN5NXNhVzVsY3lrN1hHNGdJQ0FnYVdZZ0tHeHBibVVnSmlZZ1pHWXViVzkxYzJWUGRtVnlVbTkzU1dSNElEMDlQU0F0TVNrZ2UxeHVJQ0FnSUNBZ2FXWWdLR1YyWlc1MExtTjBjbXhMWlhrcElIdGNiaUFnSUNBZ0lDQWdiR2x1WlM1elpXeGxZM1JsWkNBOUlDRnNhVzVsTG5ObGJHVmpkR1ZrTzF4dUlDQWdJQ0FnSUNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG5ObGJHVmpkR2x2Ymk1elpYUW9iR2x1WlM1cFpDd2diR2x1WlM1elpXeGxZM1JsWkNrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0NGc2FXNWxMbk5sYkdWamRHVmtLVnh1SUNBZ0lDQWdJQ0FnSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFJCYkd3b1ptRnNjMlVwTzF4dVhHNGdJQ0FnSUNBZ0lHeHBibVZ6VW1WekxteHBibVZ6TG1admNrVmhZMmdvS0d3cElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCcFppQW9iQzV6Wld4bFkzUmxaQ2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHd3ViVzlzY3k1bWIzSkZZV05vS0NodEtTQTlQaUJrWmk1elpXeGxZM1JwYjI0dWMyVjBLRzBzSUhSeWRXVXBLVHRjYmlBZ0lDQWdJQ0FnZlNrN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCcFppQW9iR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUNFOVBTQnNhVzVsTG1sa0tTQjdYRzRnSUNBZ0lDQWdJQ0FnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElEMGdiR2x1WlM1cFpEdGNiaUFnSUNBZ0lDQWdJQ0JrWmk1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTNXRiMnh6V3pCZE8xeHVJQ0FnSUNBZ0lDQWdJR1JtTG5ObGJHVmpkR2x2Ymk1elpYUW9NQ3dnSVd4cGJtVnpVbVZ6TG14cGJtVnpXekJkTG5ObGJHVmpkR1ZrS1R0Y2JpQWdJQ0FnSUNBZ0lDQmtaaTV6Wld4bFkzUnBiMjR1YzJWMEtEQXNJR3hwYm1WelVtVnpMbXhwYm1Weld6QmRMbk5sYkdWamRHVmtLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWTI5dWMzUWdiM0prWlhJZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtZGxkRk52Y25SbFpFOXlaR1Z5S0d4cGJtVnpSR1pIY21sa0xuTnZjblJDZVVOdmJIVnRibk1zSUd4cGJtVnpSR1pIY21sa0xuTnZjblJVZVhCbGN5azdYRzRnSUNBZ0lDQnNhVzVsYzBSbVIzSnBaQzV6WTNKdmJHeFViME5sYkd3b0ozTmxjVjh4Snl3Z2IzSmtaWEl1YVc1a1pYaFBaaWhzYVc1bExtbGtLU2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibHh1SUNCemNDNXZia1YyWlc1MEtDZGtOQzFpWldadmNtVXRaSEpoZHkxelkyVnVaU2NwWEc0Z0lDQWdMbk4xWW5OamNtbGlaU2dvWHpvZ1lXNTVLU0E5UGlCN1hHNGdJQ0FnSUNCamIyNXpkQ0JzYVc1bGN5QTlJSEpsYm1SbGNreHBibVZ6S0hOd0xGeHVJQ0FnSUNBZ0lDQmhlR1Z6VG1GdFpYTmJNRjBzSUdGNFpYTk9ZVzFsYzFzeFhTd2diR2x1WlhOU1pYTXNJSE5oYkdsV1lXeHpMQ0J6WVd4cFQzQmhZMmwwZVVOdlpXWXNJSE5oYkdsTmFXNHBPMXh1SUNBZ0lDQWdhV1lnS0hwdmIyMHBJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZM1Z5Y21WdWRFeHBibVVnUFNCc2FXNWxjMXRzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbU4xY25KbGJuUlNiM2RKWkhoZE8xeHVJQ0FnSUNBZ0lDQnpaWFJVYVcxbGIzVjBLQ2dwUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIdDZiMjl0VEdWbWRDd2dlbTl2YlZKcFoyaDBMQ0I2YjI5dFZHOXdMQ0I2YjI5dFFtOTBkRzl0ZlNBOUlHZGxkRnB2YjIxRGIyOXlaR2x1WVhSbGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUhOd0xuWnBaWGR3YjNKMExuZHBaSFJvTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1ZG1sbGQzQnZjblF1YUdWcFoyaDBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1GMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNRjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNVjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTUYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTUYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1WMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1WMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNVjBwWEc0Z0lDQWdJQ0FnSUNBZ0tTQWdJQ0FnSUNBZ1hHNGdJQ0FnSUNBZ0lDQWdjM0F1ZW05dmJTaDZiMjl0VEdWbWRDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhwdmIyMVViM0FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjZiMjl0VW1sbmFIUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCNmIyOXRRbTkwZEc5dEtUdGNiaUFnSUNBZ0lDQWdmU3dnTXpBd0tUdGNiaUFnSUNBZ0lDQWdlbTl2YlNBOUlHWmhiSE5sTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJQ0FnWm1sc2RHVnlRMnhwWm1aelFuVjBkRzl1TG5aaGJIVmxJRDhnWkdZdWNtOTNjeTVtYVd4MFpYSW9LSEp2ZHlrZ1BUNGdjbTkzVzJOc2FXWm1jME52YkU1aGJXVmRJRDA5UFNCMGNuVmxLU0E2SUdSbUxtWnBiSFJsY2k1elpYUkJiR3dvZEhKMVpTazdYRzRnSUNBZ2ZTazdYRzVjYmlBZ2MzQXVZV1JrVUhKdmNHVnlkSGtvSjNOcGJXbHNZWEpwZEhsTWFXMXBkQ2NzSUNka2IzVmliR1VuTENCdmNIUlRhVzFwYkdGeWFYUjVUR2x0YVhRcE8xeHVJQ0JoWTJNZ1BTQmpjbVZoZEdWUWIzQmxjblI1VUdGdVpXd29LVHRjYmlBZ2NtVjBkWEp1SUhOd08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCbFpHbDBVM0JNYVc1clUzUjViR1VvWld3NklFaFVUVXhGYkdWdFpXNTBMQ0J6Y0RvZ1JFY3VVMk5oZEhSbGNsQnNiM1JXYVdWM1pYSXNJSFJ2Y0UxaGNtZHBiam9nYm5WdFltVnlLWHRjYmlBZ1pXd3VjM1I1YkdVdWNHOXphWFJwYjI0Z1BTQW5ZV0p6YjJ4MWRHVW5PMXh1SUNCbGJDNXpkSGxzWlM1MGIzQWdQU0JnSkh0MGIzQk5ZWEpuYVc1OWNIaGdPMXh1SUNCbGJDNXpkSGxzWlM1eWFXZG9kQ0E5SUNjeE1IQjRKenRjYmlBZ2MzQXVjbTl2ZEM1aGNIQmxibVFvWld3cE8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZRYjNCbGNuUjVVR0Z1Wld3b0tUb2dSRWN1UVdOamIzSmthVzl1SUh0Y2JpQWdZMjl1YzNRZ1lXTmpJRDBnZFdrdVlXTmpiM0prYVc5dUtDazdYRzRnSUdOdmJuTjBJR0ZqWTBsamIyNGdQU0IxYVM1bGJHVnRaVzUwS0NkcEp5azdYRzRnSUdGalkwbGpiMjR1WTJ4aGMzTk9ZVzFsSUQwZ0oyZHliMnN0YVdOdmJpQnpkbWN0YVdOdmJpQnpkbWN0ZG1sbGR5MXNZWGx2ZFhRbk8xeHVJQ0JoWTJNdVlXUmtWR2wwYkdVb2RXa3VjM0JoYmloYllXTmpTV052Yml3Z2RXa3ViR0ZpWld3b1lFRmpkR2wyYVhSNUlHTnNhV1ptYzJBcFhTa3BPMXh1SUNCaFkyTXVZV1JrVUdGdVpTZ25RMnhwWm1ZZ1JHVjBZV2xzY3ljc0lDZ3BJRDArSUhWcExtUnBkbFJsZUhRb0owTnNhV1ptSUdoaGN5QnViM1FnWW1WbGJpQnpaV3hsWTNSbFpDY3BMQ0IwY25WbEtUdGNiaUFnWjNKdmF5NXphR1ZzYkM1dklEMGdZV05qTG5KdmIzUTdYRzRnSUhKbGRIVnliaUJoWTJNN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUhWd1pHRjBaVkJ5YjNCbGNuUjVVR0Z1Wld3b1hHNGdJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNYRzRnSUdGall6b2dSRWN1UVdOamIzSmthVzl1TEZ4dUlDQmpZWE5vWldSRVlYUmhPaUJoYm5rc1hHNGdJR3hwYm1VNklFbE1hVzVsTENCY2JpQWdjMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCaFkzUnBkbWwwYVdWek9pQkVSeTVEYjJ4MWJXNHNYRzRnSUhOaGJHazZJRzUxYldKbGNpeGNiaUFnY0hKdmNGQmhibVZzUm5WdVl6b2dLSEJoY21GdGN6b2dTVlJ2YjJ4MGFYQkJibVJRWVc1bGJGQmhjbUZ0Y3lrZ1BUNGdTRlJOVEVWc1pXMWxiblFwZTF4dUlDQmpiMjV6ZENCd1lXNWxiQ0E5SUdGall5NW5aWFJRWVc1bEtDZERiR2xtWmlCRVpYUmhhV3h6SnlrN1hHNGdJSFZwTG1WdGNIUjVLSEJoYm1Wc0xuSnZiM1FwTzF4dUlDQmpiMjV6ZENCd1lXNWxiRVZzWlcxbGJuUWdQU0J3Y205d1VHRnVaV3hHZFc1aktIdGpZWE5vWldSRVlYUmhPaUJqWVhOb1pXUkVZWFJoTENCc2FXNWxPaUJzYVc1bExDQmtaam9nWkdZc0lITmxjVU52YkRvZ2MyVnhRMjlzTENCaFkzUnBkbWwwZVVOdmJEb2dZV04wYVhacGRHbGxjeXdnYzJGc2FUb2djMkZzYVgwcE8xeHVJQ0J3WVc1bGJDNXliMjkwTG1Gd2NHVnVaQ2h3WVc1bGJFVnNaVzFsYm5RcE8xeHVJQ0J6WlhSVWFXMWxiM1YwS0NncElEMCtJSHRjYmlBZ0lDQm5jbTlyTG5Ob1pXeHNMbThnUFNCaFkyTXVjbTl2ZER0Y2JpQWdmU3dnTlRBd0tUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z1oyVjBXbTl2YlVOdmIzSmthVzVoZEdWektGY3dPaUJ1ZFcxaVpYSXNJRWd3T2lCdWRXMWlaWElzSUhneE9pQnVkVzFpWlhJc0lIa3hPaUJ1ZFcxaVpYSXNJSGd5T2lCdWRXMWlaWElzSUhreU9pQnVkVzFpWlhJcElIdGNiaUFnWTI5dWMzUWdWekVnUFNCTllYUm9MbUZpY3loNE1TQXRJSGd5S1R0Y2JpQWdZMjl1YzNRZ1NERWdQU0JOWVhSb0xtRmljeWg1TVNBdElIa3lLVHRjYmlBZ1kyOXVjM1FnYzJOaGJHVlhJRDBnVnpBZ0x5QlhNVHRjYmlBZ1kyOXVjM1FnYzJOaGJHVklJRDBnU0RBZ0x5QklNVHRjYmlBZ1kyOXVjM1FnYzJOaGJHVWdQU0JOWVhSb0xtMXBiaWh6WTJGc1pWY3NJSE5qWVd4bFNDazdYRzRnSUdOdmJuTjBJRmN5SUQwZ0tGY3dJQzhnYzJOaGJHVXBJQ29nTlR0Y2JpQWdZMjl1YzNRZ1NESWdQU0FvU0RBZ0x5QnpZMkZzWlNrZ0tpQTFPMXh1SUNCamIyNXpkQ0JzWldaMElEMGdlREVnUENCNE1pQS9JSGd4SURvZ2VESTdYRzRnSUdOdmJuTjBJSFJ2Y0NBOUlIa3hJRDRnZVRJZ1B5QjVNU0E2SUhreU8xeHVJQ0JqYjI1emRDQjZiMjl0VEdWbWRDQTlJQ2hzWldaMElDc2dWekVnTHlBeUtTQXRJRmN5SUM4Z01qdGNiaUFnWTI5dWMzUWdlbTl2YlZKcFoyaDBJRDBnZW05dmJVeGxablFnS3lCWE1qdGNiaUFnWTI5dWMzUWdlbTl2YlZSdmNDQTlJQ2gwYjNBZ0xTQklNU0F2SURJcElDc2dTRElnTHlBeU8xeHVJQ0JqYjI1emRDQjZiMjl0UW05MGRHOXRJRDBnZW05dmJWUnZjQ0F0SUVneU8xeHVJQ0J5WlhSMWNtNGdlM3B2YjIxTVpXWjBPaUI2YjI5dFRHVm1kQ3dnZW05dmJWSnBaMmgwT2lCNmIyOXRVbWxuYUhRc0lIcHZiMjFVYjNBNklIcHZiMjFVYjNBc0lIcHZiMjFDYjNSMGIyMDZJSHB2YjIxQ2IzUjBiMjE5TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJqYUdWamEwTjFjbk52Y2s5dVRHbHVaU2hsZG1WdWREb2dZVzU1TENCallXNTJZWE02SUdGdWVTd2diR2x1WlhNNklFbE1hVzVsVzEwcE9pQkpUR2x1WlNCOElHNTFiR3dnZTF4dUlDQmpiMjV6ZENCeVpXTjBJRDBnWTJGdWRtRnpMbWRsZEVKdmRXNWthVzVuUTJ4cFpXNTBVbVZqZENncE8xeHVJQ0JqYjI1emRDQjRJRDBnWlhabGJuUXVZMnhwWlc1MFdDQXRJSEpsWTNRdWJHVm1kRHRjYmlBZ1kyOXVjM1FnZVNBOUlHVjJaVzUwTG1Oc2FXVnVkRmtnTFNCeVpXTjBMblJ2Y0R0Y2JpQWdiR1YwSUdOc2IzTmxjM1JNYVc1bElEMGdiblZzYkR0Y2JpQWdiR1YwSUcxcGJrUnBjM1FnUFNBd08xeHVJQ0JtYjNJZ0tHTnZibk4wSUd4cGJtVWdiMllnYkdsdVpYTXBJSHRjYmlBZ0lDQmpiMjV6ZENCa2FYTjBJRDFjYmlBZ0lDQWdJRTFoZEdndVlXSnpLRTFoZEdndWFIbHdiM1FvYkdsdVpTNWhXekJkSUMwZ2VDd2diR2x1WlM1aFd6RmRJQzBnZVNrZ0sxeHVJQ0FnSUNBZ1RXRjBhQzVvZVhCdmRDaHNhVzVsTG1KYk1GMGdMU0I0TENCc2FXNWxMbUpiTVYwZ0xTQjVLU0F0SUUxaGRHZ3VhSGx3YjNRb2JHbHVaUzVoV3pCZElDMGdiR2x1WlM1aVd6QmRMQ0JzYVc1bExtRmJNVjBnTFNCc2FXNWxMbUpiTVYwcEtUdGNiaUFnSUNCcFppQW9LQ0Z0YVc1RWFYTjBJQ1ltSUdScGMzUWdQQ0F5S1NCOGZDQmthWE4wSUR3Z2JXbHVSR2x6ZENrZ2UxeHVJQ0FnSUNBZ2JXbHVSR2x6ZENBOUlHUnBjM1E3WEc0Z0lDQWdJQ0JqYkc5elpYTjBUR2x1WlNBOUlHeHBibVU3WEc0Z0lDQWdmVnh1SUNCOVhHNGdJSEpsZEhWeWJpQmpiRzl6WlhOMFRHbHVaVHRjYm4xY2JseHVablZ1WTNScGIyNGdjbVZ1WkdWeVRHbHVaWE1vYzNBNklFUkhMbE5qWVhSMFpYSlFiRzkwVm1sbGQyVnlMRnh1SUNCNFFYaHBjem9nYzNSeWFXNW5MQ0I1UVhocGN6b2djM1J5YVc1bkxDQnNhVzVsYzFKbGN6b2dTVkpsYm1SbGNtVmtUR2x1WlhNc0lITmhiR2xXWVd4ek9pQnVkVzFpWlhKYlhTd2djMkZzYVU5d1lXTnBkSGxEYjJWbU9pQnVkVzFpWlhJc0lITmhiR2xOYVc0NklHNTFiV0psY2lrNklFbE1hVzVsSUZ0ZElIdGNiaUFnWTI5dWMzUWdiR2x1WlhNZ1BTQnNhVzVsYzFKbGN5NXNhVzVsY3p0Y2JpQWdZMjl1YzNRZ1kyRnVkbUZ6SUQwZ0tITndMbWRsZEVsdVptOG9LU0JoY3lCN1cybHVaR1Y0T2lCemRISnBibWRkSURvZ1lXNTVmU2xiSjJOaGJuWmhjeWRkTzF4dUlDQmpiMjV6ZENCamRIZ2dQU0JqWVc1MllYTXVaMlYwUTI5dWRHVjRkQ2duTW1RbktTQmhjeUJEWVc1MllYTlNaVzVrWlhKcGJtZERiMjUwWlhoME1rUTdYRzRnSUdOdmJuTjBJSGdnUFNCemNDNWtZWFJoUm5KaGJXVWhMbU52YkhWdGJuTXVZbmxPWVcxbEtIaEJlR2x6S1R0Y2JpQWdZMjl1YzNRZ2VTQTlJSE53TG1SaGRHRkdjbUZ0WlNFdVkyOXNkVzF1Y3k1aWVVNWhiV1VvZVVGNGFYTXBPMXh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHeHBibVZ6TG14bGJtZDBhRHNnYVNzcktTQjdYRzRnSUNBZ1kyOXVjM1FnY0c5cGJuUkdjbTl0SUQwZ2MzQXVkMjl5YkdSVWIxTmpjbVZsYmloNExtZGxkQ2hzYVc1bGMxdHBYUzV0YjJ4eld6QmRLU3dnZVM1blpYUW9iR2x1WlhOYmFWMHViVzlzYzFzd1hTa3BPMXh1SUNBZ0lHTnZibk4wSUhCdmFXNTBWRzhnUFNCemNDNTNiM0pzWkZSdlUyTnlaV1Z1S0hndVoyVjBLR3hwYm1WelcybGRMbTF2YkhOYk1WMHBMQ0I1TG1kbGRDaHNhVzVsYzF0cFhTNXRiMnh6V3pGZEtTazdYRzRnSUNBZ2JHbHVaWE5iYVYwdVlTQTlJRnR3YjJsdWRFWnliMjB1ZUN3Z2NHOXBiblJHY205dExubGRPMXh1SUNBZ0lHeHBibVZ6VzJsZExtSWdQU0JiY0c5cGJuUlVieTU0TENCd2IybHVkRlJ2TG5sZE8xeHVJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQnVaWGNnVUdGMGFESkVLQ2s3WEc0Z0lDQWdiR2x1WlM1dGIzWmxWRzhvYkdsdVpYTmJhVjB1WVZzd1hTd2diR2x1WlhOYmFWMHVZVnN4WFNrN1hHNGdJQ0FnWTI5dWMzUWdZMjlzYjNJZ1BTQnNhVzVsYzF0cFhTNXpaV3hsWTNSbFpDQS9JQ2N5TlRVc01qVTFMREFuSURvZ0p6QXNNVEk0TERBbk8xeHVJQ0FnSUdOdmJuTjBJRzl3WVdOcGRIa2dQU0J6WVd4cFZtRnNjMXRwWFNBOVBUMGdTVzVtYVc1cGRIa2dQeUF4SURvZ01DNHlJQ3NnS0hOaGJHbFdZV3h6VzJsZElDMGdjMkZzYVUxcGJpa3FjMkZzYVU5d1lXTnBkSGxEYjJWbU8xeHVJQ0FnSUdOMGVDNXpkSEp2YTJWVGRIbHNaU0E5SUdCeVoySmhLQ1I3WTI5c2IzSjlMQ1I3YjNCaFkybDBlWDBwWUR0Y2JpQWdJQ0JqZEhndWJHbHVaVmRwWkhSb0lEMGdiR2x1WlhOYmFWMHVhV1FnUFQwOUlHeHBibVZ6VW1WekxteHBibVZ6UkdZdVkzVnljbVZ1ZEZKdmQwbGtlQ0EvSURNZ09pQXhPMXh1SUNBZ0lHeHBibVV1YkdsdVpWUnZLR3hwYm1WelcybGRMbUpiTUYwc0lHeHBibVZ6VzJsZExtSmJNVjBwTzF4dUlDQWdJR04wZUM1emRISnZhMlVvYkdsdVpTazdYRzRnSUgxY2JpQWdjbVYwZFhKdUlHeHBibVZ6TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJqY21WaGRHVk1hVzVsY3loY2JpQWdiakU2SUc1MWJXSmxjbHRkTENCY2JpQWdiakk2SUc1MWJXSmxjbHRkTENCY2JpQWdjMlZ4T2lCRVJ5NURiMngxYlc0c0lGeHVJQ0JoWTNScGRtbDBhV1Z6T2lCRVJ5NURiMngxYlc0c0lGeHVJQ0J6WVd4cFZtRnNjem9nYm5WdFltVnlXMTBzWEc0Z0lITnBiVlpoYkhNNklHNTFiV0psY2x0ZExGeHVJQ0J6WlcxVWVYQmxPaUJ6ZEhKcGJtY3NYRzRnSUhSaFozTTZJSHRiYVc1a1pYZzZJSE4wY21sdVoxMDZJSE4wY21sdVozMHBJRG9nU1ZKbGJtUmxjbVZrVEdsdVpYTWdlMXh1SUNCamIyNXpkQ0JzYVc1bGN6b2dTVXhwYm1WYlhTQTlJRzVsZHlCQmNuSmhlU2h1TVM1c1pXNW5kR2dwTG1acGJHd29iblZzYkNrN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnYmpFdWJHVnVaM1JvT3lCcEt5c3BJSHRjYmlBZ0lDQmpiMjV6ZENCdWRXMHhJRDBnYmpGYmFWMDdYRzRnSUNBZ1kyOXVjM1FnYm5WdE1pQTlJRzR5VzJsZE8xeHVJQ0FnSUd4cGJtVnpXMmxkSUQwZ0tIdHBaRG9nYVN3Z2JXOXNjem9nVzI1MWJURXNJRzUxYlRKZExDQnpaV3hsWTNSbFpEb2dabUZzYzJVc0lHRTZJRnRkTENCaU9pQmJYWDBwTzF4dUlDQjlYRzRnSUdOdmJuTjBJR3hwYm1WelJHWWdQU0JFUnk1RVlYUmhSbkpoYldVdVkzSmxZWFJsS0d4cGJtVnpMbXhsYm1kMGFDazdYRzRnSUcxdmJFTnZiSFZ0Yms1aGJXVnpMbVp2Y2tWaFkyZ29LR2wwTENCcFpIZ3BJRDArSUh0Y2JpQWdJQ0JzYVc1bGMwUm1MbU52YkhWdGJuTXVZV1JrVG1WM1UzUnlhVzVuS0dsMEtTNXBibWwwS0NocE9pQnVkVzFpWlhJcElEMCtJSE5sY1M1blpYUW9iR2x1WlhOYmFWMHViVzlzYzF0cFpIaGRLU2s3WEc0Z0lDQWdjMlYwVkdGbmN5aHNhVzVsYzBSbUxtTnZiQ2hwZENraExDQjBZV2R6S1R0Y2JpQWdJQ0JzYVc1bGMwUm1MbU52YkNocGRDa2hMbk5sYlZSNWNHVWdQU0J6WlcxVWVYQmxPMXh1SUNCOUtWeHVJQ0JzYVc1bGMwUm1MbU52YkhWdGJuTXVZV1JrVG1WM1JteHZZWFFvSjJGamRGOWthV1ptSnlsY2JpQWdJQ0F1YVc1cGRDZ29hVG9nYm5WdFltVnlLU0E5UGlCTllYUm9MbUZpY3loaFkzUnBkbWwwYVdWekxtZGxkQ2hzYVc1bGMxdHBYUzV0YjJ4eld6QmRLU0F0SUdGamRHbDJhWFJwWlhNdVoyVjBLR3hwYm1WelcybGRMbTF2YkhOYk1WMHBLU2s3WEc0Z0lHeHBibVZ6UkdZdVkyOXNkVzF1Y3k1aFpHUk9aWGRKYm5Rb0oyeHBibVZmYVc1a1pYZ25LUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUdrcE8xeHVJQ0JzYVc1bGMwUm1MbU52YkhWdGJuTXVZV1JrVG1WM1JteHZZWFFvSjNOaGJHa25LUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUhOaGJHbFdZV3h6VzJsZEtUdGNiaUFnYkdsdVpYTkVaaTVqYjJ4MWJXNXpMbUZrWkU1bGQwWnNiMkYwS0NkemFXMG5LUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUhOcGJWWmhiSE5iYVYwcE8xeHVJQ0J5WlhSMWNtNGdlMnhwYm1WekxDQnNhVzVsYzBSbWZUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2MyVjBWR0ZuY3loamIydzZJRVJITGtOdmJIVnRiaXdnZEdGbmN6b2dlMXRwYm1SbGVEb2djM1J5YVc1blhUb2djM1J5YVc1bmZTa2dlMXh1SUNCUFltcGxZM1F1YTJWNWN5aDBZV2R6S1M1bWIzSkZZV05vS0hSaFp5QTlQaUI3WEc0Z0lDQWdZMjlzTG5SaFozTmJkR0ZuWFNBOUlIUmhaM05iZEdGblhUdGNiaUFnZlNsY2JuMWNibHh1Wlhod2IzSjBJR0Z6ZVc1aklHWjFibU4wYVc5dUlHZGxkRk5wYldsc1lYSnBkR2xsYzAxaGNtbDRLRnh1SUNBZ0lHUnBiVG9nYm5WdFltVnlMQ0JjYmlBZ0lDQnpaWEZEYjJ3NklFUkhMa052YkhWdGJpd2dYRzRnSUNBZ1pHWlRaWEU2SUVSSExrUmhkR0ZHY21GdFpTd2dYRzRnSUNBZ2MybHRRWEp5T2lCRVJ5NURiMngxYlc1YlhTeGNiaUFnSUNCemFXMUdkVzVqT2lBb1kyOXNPaUJFUnk1RGIyeDFiVzRzSUcxdmJEb2djM1J5YVc1bktTQTlQaUJRY205dGFYTmxQRVJITGtOdmJIVnRiaUI4SUc1MWJHdytYRzRnSUNBZ0tWeHVJQ0E2SUZCeWIyMXBjMlU4UkVjdVEyOXNkVzF1VzEwK0lIdGNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnSVQwZ1pHbHRJQzBnTVRzZ0t5dHBLU0I3WEc0Z0lDQWdZMjl1YzNRZ2JXOXNJRDBnYzJWeFEyOXNMbWRsZENocEtUdGNiaUFnSUNCa1psTmxjUzV5YjNkekxuSmxiVzkyWlVGMEtEQXNJREVzSUdaaGJITmxLVHRjYmlBZ0lDQnphVzFCY25KYmFWMGdQU0FvWVhkaGFYUWdjMmx0Um5WdVl5aGtabE5sY1M1amIyd29KM05sY1NjcElTd2diVzlzS1NraE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemFXMUJjbkk3WEc1OVhHNWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEZOcGJXbHNZWEpwZEdsbGMwWnliMjFFYVhOMFlXNWpaWE1vWkdsdE9pQnVkVzFpWlhJc0lHUnBjM1JoYm1ObGN6b2dUV0YwY21sNExDQnphVzFCY25JNklFUkhMa052YkhWdGJsdGRLVnh1SUNBNklFUkhMa052YkhWdGJsdGRJSHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmthVzBnTFNBeE95QXJLMmtwSUh0Y2JpQWdJQ0JqYjI1emRDQnphVzFwYkdGeWFYUjVRWEp5SUQwZ2JtVjNJRUZ5Y21GNUtHUnBiU0F0SUdrZ0xTQXhLUzVtYVd4c0tEQXBPMXh1SUNBZ0lHWnZjaUFvYkdWMElHb2dQU0JwSUNzZ01Uc2dhaUE4SUdScGJUc2dLeXRxS1NCN1hHNGdJQ0FnSUNCemFXMXBiR0Z5YVhSNVFYSnlXMm9nTFNCcElDMGdNVjBnUFNCblpYUlRhVzFwYkdGeWFYUjVSbkp2YlVScGMzUmhibU5sS0dScGMzUmhibU5sYzF0cFhWdHFYU2s3WEc0Z0lDQWdmVnh1SUNBZ0lITnBiVUZ5Y2x0cFhTQTlJRVJITGtOdmJIVnRiaTVtY205dFJteHZZWFF6TWtGeWNtRjVLQ2R6YVcxcGJHRnlhWFI1Snl3Z1JteHZZWFF6TWtGeWNtRjVMbVp5YjIwb2MybHRhV3hoY21sMGVVRnljaWtwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ6YVcxQmNuSTdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaFpHUkRiR2xtWm5OQ2IyOXNaV0Z1UTI5c0tHUm1PaUJFUnk1RVlYUmhSbkpoYldVc0lHbGtjem9nVTJWMFBHNTFiV0psY2o0cE9pQnpkSEpwYm1jZ2UxeHVJQ0JqYjI1emRDQmpiMnh1WVcxbElEMGdKMk52Ym5SaGFXNXpRMnhwWm1Zbk8xeHVJQ0JqYjI1emRDQmpiMnhPWVcxbFNXNWtJRDBnWkdZdVkyOXNkVzF1Y3k1dVlXMWxjeWdwTG1acGJIUmxjaWdvYVhRNklITjBjbWx1WnlrZ1BUNGdhWFF1YVc1amJIVmtaWE1vWTI5c2JtRnRaU2twTG14bGJtZDBhQ0FySURFN1hHNGdJR052Ym5OMElHNWxkME52YkU1aGJXVWdQU0JnSkh0amIyeHVZVzFsZlY4a2UyTnZiRTVoYldWSmJtUjlZRHRjYmlBZ1pHWXVZMjlzZFcxdWN5NWhaR1JPWlhkQ2IyOXNLRzVsZDBOdmJFNWhiV1VwTG1sdWFYUW9LR2twSUQwK0lHbGtjeTVvWVhNb2FTa3BPMXh1SUNCeVpYUjFjbTRnYm1WM1EyOXNUbUZ0WlR0Y2JuMWNibHh1SWwxOSIsImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaW1lbnNpbmFsaXR5UmVkdWNpbmdXb3JrZXIoZGF0YU1ldHJpYywgbWV0aG9kLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgIGNvbnN0IHdvcmtlciA9IG5ldyBXb3JrZXIobmV3IFVSTCgnLi9kaW1lbnNpb25hbGl0eS1yZWR1Y2VyJywgaW1wb3J0Lm1ldGEudXJsKSk7XG4gICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICBjb2x1bW5EYXRhOiBkYXRhTWV0cmljLmRhdGEsXG4gICAgICAgICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgICAgICAgIG1lYXN1cmU6IGRhdGFNZXRyaWMubWV0cmljLFxuICAgICAgICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSAoeyBkYXRhOiB7IGRpc3RhbmNlLCBlbWJlZGRpbmcgfSB9KSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHsgZGlzdGFuY2U6IGRpc3RhbmNlLCBlbWJlZGRpbmc6IGVtYmVkZGluZyB9KTtcbiAgICAgICAgfTtcbiAgICB9KTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHbHRaVzV6YVc5dVlXeHBkSGt0Y21Wa2RXTnBibWN0ZDI5eWEyVnlMV055WldGMGIzSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKa2FXMWxibk5wYjI1aGJHbDBlUzF5WldSMVkybHVaeTEzYjNKclpYSXRZM0psWVhSdmNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZwUWtFc1RVRkJUU3hWUVVGVkxHbERRVUZwUXl4RFFVRkRMRlZCUVhOQ0xFVkJRVVVzVFVGQll5eEZRVU5zUml4UFFVRmhPMGxCUldwQ0xFOUJRVThzU1VGQlNTeFBRVUZQTEVOQlFVTXNWVUZCVXl4UFFVRlBPMUZCUTJwRExFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NUVUZCVFN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExEQkNRVUV3UWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SaXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEycENMRlZCUVZVc1JVRkJSU3hWUVVGVkxFTkJRVU1zU1VGQlNUdFpRVU16UWl4TlFVRk5MRVZCUVVVc1RVRkJUVHRaUVVOa0xFOUJRVThzUlVGQlJTeFZRVUZWTEVOQlFVTXNUVUZCVFR0WlFVTXhRaXhQUVVGUExFVkJRVVVzVDBGQlR6dFRRVU5xUWl4RFFVRkRMRU5CUVVNN1VVRkRTQ3hOUVVGTkxFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNSVUZCUXl4SlFVRkpMRVZCUVVVc1JVRkJReXhSUVVGUkxFVkJRVVVzVTBGQlV5eEZRVUZETEVWQlFVTXNSVUZCUlN4RlFVRkZPMWxCUTNCRUxFOUJRVThzUTBGQlF5eEZRVUZETEZGQlFWRXNSVUZCUlN4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRkxGTkJRVk1zUlVGQlF5eERRVUZETEVOQlFVTTdVVUZEY2tRc1EwRkJReXhEUVVGRE8wbEJRMG9zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEVEN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnVFdGMGNtbDRJSDBnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12ZEhsd1pTMWtaV05zWVhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUh0V1lXeHBaRlI1Y0dWemZTQm1jbTl0SUNjdUxpOTBlWEJsWkMxdFpYUnlhV056Snp0Y2JseHVMeW9xWEc0Z0tpQkJJSGR2Y210bGNpQjBieUJ3WlhKbWIzSnRJR1JwYldWdWMybHZibUZzYVhSNUlISmxaSFZqZEdsdmJpNWNiaUFxWEc0Z0tpQkFjR0Z5WVcwZ2UxWmhiR2xrVkhsd1pYTjlJR1JoZEdGTlpYUnlhV01nVkdobElHUmhkR0VnZEc4Z2NISnZZMlZ6Y3k1Y2JpQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnRaWFJvYjJRZ1FTQnRaWFJvYjJRZ2IyWWdaR2x0Wlc1emFXOXVZV3hwZEhrZ2NtVmtkV04wYVc5dUxseHVJQ29nUUhCaGNtRnRJRzl3ZEdsdmJuTWdMU0JyWlhrdGRtRnNkV1VnY0dGcGNuTmNiaUFxSUVCd1lYSmhiU0J5WlhSMWNtNUVhWE4wWVc1alpVMWhkSEpwZUZ4dUlDb2dRSEpsZEhWeWJpQjdVSEp2YldselpUeEpVbVZrZFdObFJHbHRaVzV6YVc5dVlXeHBkSGxTWlhOMWJIUStmU0JTWlhOMWJIUnBibWNnWlcxaVpXUmthVzVuSUdGdVpDQmthWE4wWVc1alpTQnRZWFJ5YVhndVhHNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1ZKbFpIVmpaVVJwYldWdWMybHZibUZzYVhSNVVtVnpkV3gwSUh0Y2JpQWdaR2x6ZEdGdVkyVTZJRTFoZEhKcGVEdGNiaUFnWlcxaVpXUmthVzVuT2lCTllYUnlhWGc3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmpjbVZoZEdWRWFXMWxibk5wYm1Gc2FYUjVVbVZrZFdOcGJtZFhiM0pyWlhJb1pHRjBZVTFsZEhKcFl6b2dWbUZzYVdSVWVYQmxjeXdnYldWMGFHOWtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0lDQnZjSFJwYjI1elB6b2dZVzU1S1RvZ1VISnZiV2x6WlR4SlVtVmtkV05sUkdsdFpXNXphVzl1WVd4cGRIbFNaWE4xYkhRK0lIdGNibHh1SUNCeVpYUjFjbTRnYm1WM0lGQnliMjFwYzJVb1puVnVZM1JwYjI0b2NtVnpiMngyWlNrZ2UxeHVJQ0FnSUdOdmJuTjBJSGR2Y210bGNpQTlJRzVsZHlCWGIzSnJaWElvYm1WM0lGVlNUQ2duTGk5a2FXMWxibk5wYjI1aGJHbDBlUzF5WldSMVkyVnlKeXdnYVcxd2IzSjBMbTFsZEdFdWRYSnNLU2s3WEc0Z0lDQWdkMjl5YTJWeUxuQnZjM1JOWlhOellXZGxLSHRjYmlBZ0lDQWdJR052YkhWdGJrUmhkR0U2SUdSaGRHRk5aWFJ5YVdNdVpHRjBZU3hjYmlBZ0lDQWdJRzFsZEdodlpEb2diV1YwYUc5a0xGeHVJQ0FnSUNBZ2JXVmhjM1Z5WlRvZ1pHRjBZVTFsZEhKcFl5NXRaWFJ5YVdNc1hHNGdJQ0FnSUNCdmNIUnBiMjV6T2lCdmNIUnBiMjV6TEZ4dUlDQWdJSDBwTzF4dUlDQWdJSGR2Y210bGNpNXZibTFsYzNOaFoyVWdQU0FvZTJSaGRHRTZJSHRrYVhOMFlXNWpaU3dnWlcxaVpXUmthVzVuZlgwcElEMCtJSHRjYmlBZ0lDQWdjbVZ6YjJ4MlpTaDdaR2x6ZEdGdVkyVTZJR1JwYzNSaGJtTmxMQ0JsYldKbFpHUnBibWM2SUdWdFltVmtaR2x1WjMwcE8xeHVJQ0FnSUgwN1hHNGdJSDBwTzF4dWZWeHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHNoYTI1NiBmcm9tICdmYXN0LXNoYTI1Nic7XG4vKipcbiAqIEZvciBjb2x1bW5zIG9mIHN0cmluZyB0eXBlLiBDaGVja3Mgd2hldGhlciBjb2x1bW4gY29udGFpbnMgZW1wdHkgdmFsdWVzIGFuZCByZW1vdmVzIGNvcnJlc3BvbmRpbmcgcm93cyBpbiBjYXNlIHVzZXIgc2VsZWN0cyB0byByZW1vdmUuXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRW1wdHlTdHJpbmdSb3dzKHRhYmxlLCBjb2wpIHtcbiAgICBjb25zdCBjYXRzID0gY29sLmNhdGVnb3JpZXM7XG4gICAgY29uc3QgZW1wdHlSYXdJbmQgPSBjYXRzLm1hcCgodmFsLCBpbmQpID0+ICF2YWwgPyBpbmQgOiBudWxsKS5maWx0ZXIoKGl0KSA9PiBpdCAhPT0gbnVsbCk7XG4gICAgY29uc3QgcmF3RGF0YSA9IFsuLi5jb2wuZ2V0UmF3RGF0YSgpXTtcbiAgICBjb25zdCBlbXB0eVJhd3NJbmRleGVzID0gW107XG4gICAgbGV0IHJlbW92ZWRSb3dzQ291bnRlciA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJsZS5yb3dDb3VudDsgaSsrKSB7XG4gICAgICAgIGlmIChlbXB0eVJhd0luZC5pbmNsdWRlcyhyYXdEYXRhW2ldKSkge1xuICAgICAgICAgICAgdGFibGUucm93cy5yZW1vdmVBdChpIC0gcmVtb3ZlZFJvd3NDb3VudGVyKTtcbiAgICAgICAgICAgIGVtcHR5UmF3c0luZGV4ZXMucHVzaChpKTtcbiAgICAgICAgICAgIHJlbW92ZWRSb3dzQ291bnRlciArPSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbXB0eVJhd3NJbmRleGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhc2hEYXRhRnJhbWUodGFibGUsIG5hbWVzKSB7XG4gICAgbmFtZXMgIT09IG51bGwgJiYgbmFtZXMgIT09IHZvaWQgMCA/IG5hbWVzIDogKG5hbWVzID0gdGFibGUuY29sdW1ucy5uYW1lcygpKTtcbiAgICBjb25zdCBoYXNoZXIgPSBuZXcgc2hhMjU2Lkhhc2goKTtcbiAgICBjb25zdCBvcmRlciA9IHRhYmxlLmdldFNvcnRlZE9yZGVyKG5hbWVzKTtcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIG5hbWVzKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRhYmxlLmNvbHVtbnMuYnlOYW1lKG5hbWUpO1xuICAgICAgICBjb25zdCBkYXRhQXJyYXkgPSBjb2x1bW4uZ2V0UmF3RGF0YSgpO1xuICAgICAgICBjb25zdCBpc1N0cmluZyA9IGNvbHVtbi50eXBlID09IERHLlRZUEUuU1RSSU5HO1xuICAgICAgICBjb25zdCBjYXRzID0gY29sdW1uLmNhdGVnb3JpZXM7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YUFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoaXNTdHJpbmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gY2F0c1tkYXRhQXJyYXlbb3JkZXJbaV1dXTtcbiAgICAgICAgICAgICAgICBoYXNoZXIudXBkYXRlKGVuY29kZXIuZW5jb2RlKGRhdGEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhQXJyYXlbb3JkZXJbaV1dO1xuICAgICAgICAgICAgICAgIGhhc2hlci51cGRhdGUoVWludDhBcnJheS5mcm9tKFtkYXRhXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXNoZXIuZGlnZXN0KCk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR0YwWVdaeVlXMWxMWFYwYVd4ekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpWkdGMFlXWnlZVzFsTFhWMGFXeHpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUzBGQlN5eEZRVUZGTEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRGRFTXNUMEZCVHl4TFFVRkxMRTFCUVUwc1RVRkJUU3hoUVVGaExFTkJRVU03UVVGRGRFTTdPenRIUVVkSE8wRkJRMGdzVFVGQlRTeFZRVUZWTEhGQ1FVRnhRaXhEUVVGRExFdEJRVzFDTEVWQlFVVXNSMEZCWXp0SlFVTjJSU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUXpWQ0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14Uml4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRkRU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRE5VSXNTVUZCU1N4clFrRkJhMElzUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETTBJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRXRCUVVzc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVTdVVUZEZGtNc1NVRkJTU3hYUVVGWExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRk8xbEJRM0JETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUjBGQlJ5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xbEJRelZETEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRla0k3UzBGRFJqdEpRVU5FTEU5QlFVOHNaMEpCUVdkQ0xFTkJRVU03UVVGRE1VSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hoUVVGaExFTkJRVU1zUzBGQmJVSXNSVUZCUlN4TFFVRm5RanRKUVVOcVJTeExRVUZMTEdGQlFVd3NTMEZCU3l4alFVRk1MRXRCUVVzc1NVRkJUQ3hMUVVGTExFZEJRVXNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJRenRKUVVOb1F5eE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU5xUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpGRExFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN1NVRkRiRU1zUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4TFFVRkxMRVZCUVVVN1VVRkRlRUlzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETVVNc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUTNSRExFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNRMEZCUXl4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZETDBNc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXp0UlFVTXZRaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTjZReXhKUVVGSkxGRkJRVkVzUlVGQlJUdG5Ra0ZEV2l4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzWkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM0pETzJsQ1FVRk5PMmRDUVVOTUxFMUJRVTBzU1VGQlNTeEhRVUZITEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYWtNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJGQlEzaERPMU5CUTBZN1MwRkRSanRKUVVORUxFOUJRVThzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMEZCUTNwQ0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5QkVSeUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2Wkdjbk8xeHVhVzF3YjNKMElDb2dZWE1nYzJoaE1qVTJJR1p5YjIwZ0oyWmhjM1F0YzJoaE1qVTJKenRjYmk4cUtseHVJQ29nUm05eUlHTnZiSFZ0Ym5NZ2IyWWdjM1J5YVc1bklIUjVjR1V1SUVOb1pXTnJjeUIzYUdWMGFHVnlJR052YkhWdGJpQmpiMjUwWVdsdWN5QmxiWEIwZVNCMllXeDFaWE1nWVc1a0lISmxiVzkyWlhNZ1kyOXljbVZ6Y0c5dVpHbHVaeUJ5YjNkeklHbHVJR05oYzJVZ2RYTmxjaUJ6Wld4bFkzUnpJSFJ2SUhKbGJXOTJaUzVjYmlBcVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ5WlcxdmRtVkZiWEIwZVZOMGNtbHVaMUp2ZDNNb2RHRmliR1U2SUVSSExrUmhkR0ZHY21GdFpTd2dZMjlzT2lCRVJ5NURiMngxYlc0cE9pQnVkVzFpWlhKYlhTQjdYRzRnSUdOdmJuTjBJR05oZEhNZ1BTQmpiMnd1WTJGMFpXZHZjbWxsY3p0Y2JpQWdZMjl1YzNRZ1pXMXdkSGxTWVhkSmJtUWdQU0JqWVhSekxtMWhjQ2dvZG1Gc0xDQnBibVFwSUQwK0lDRjJZV3dnUHlCcGJtUWdPaUJ1ZFd4c0tTNW1hV3gwWlhJb0tHbDBLU0E5UGlCcGRDQWhQVDBnYm5Wc2JDazdYRzRnSUdOdmJuTjBJSEpoZDBSaGRHRWdQU0JiTGk0dVkyOXNMbWRsZEZKaGQwUmhkR0VvS1YwN1hHNGdJR052Ym5OMElHVnRjSFI1VW1GM2MwbHVaR1Y0WlhNZ1BTQmJYVHRjYmlBZ2JHVjBJSEpsYlc5MlpXUlNiM2R6UTI5MWJuUmxjaUE5SURBN1hHNGdJR1p2Y2lBb2JHVjBJR2tnUFNBd095QnBJRHdnZEdGaWJHVXVjbTkzUTI5MWJuUTdJR2tyS3lrZ2UxeHVJQ0FnSUdsbUlDaGxiWEIwZVZKaGQwbHVaQzVwYm1Oc2RXUmxjeWh5WVhkRVlYUmhXMmxkS1NrZ2UxeHVJQ0FnSUNBZ2RHRmliR1V1Y205M2N5NXlaVzF2ZG1WQmRDaHBJQzBnY21WdGIzWmxaRkp2ZDNORGIzVnVkR1Z5S1R0Y2JpQWdJQ0FnSUdWdGNIUjVVbUYzYzBsdVpHVjRaWE11Y0hWemFDaHBLVHRjYmlBZ0lDQWdJSEpsYlc5MlpXUlNiM2R6UTI5MWJuUmxjaUFyUFNBeE8xeHVJQ0FnSUgxY2JpQWdmVnh1SUNCeVpYUjFjbTRnWlcxd2RIbFNZWGR6U1c1a1pYaGxjenRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHaGhjMmhFWVhSaFJuSmhiV1VvZEdGaWJHVTZJRVJITGtSaGRHRkdjbUZ0WlN3Z2JtRnRaWE0vT2lCemRISnBibWRiWFNrNklGVnBiblE0UVhKeVlYa2dlMXh1SUNCdVlXMWxjeUEvUHowZ2RHRmliR1V1WTI5c2RXMXVjeTV1WVcxbGN5Z3BPMXh1SUNCamIyNXpkQ0JvWVhOb1pYSWdQU0J1WlhjZ2MyaGhNalUyTGtoaGMyZ29LVHRjYmlBZ1kyOXVjM1FnYjNKa1pYSWdQU0IwWVdKc1pTNW5aWFJUYjNKMFpXUlBjbVJsY2lodVlXMWxjeWs3WEc0Z0lHTnZibk4wSUdWdVkyOWtaWElnUFNCdVpYY2dWR1Y0ZEVWdVkyOWtaWElvS1R0Y2JpQWdabTl5SUNoamIyNXpkQ0J1WVcxbElHOW1JRzVoYldWektTQjdYRzRnSUNBZ1kyOXVjM1FnWTI5c2RXMXVJRDBnZEdGaWJHVXVZMjlzZFcxdWN5NWllVTVoYldVb2JtRnRaU2s3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZVUZ5Y21GNUlEMGdZMjlzZFcxdUxtZGxkRkpoZDBSaGRHRW9LVHRjYmlBZ0lDQmpiMjV6ZENCcGMxTjBjbWx1WnlBOUlHTnZiSFZ0Ymk1MGVYQmxJRDA5SUVSSExsUlpVRVV1VTFSU1NVNUhPMXh1SUNBZ0lHTnZibk4wSUdOaGRITWdQU0JqYjJ4MWJXNHVZMkYwWldkdmNtbGxjenRjYmlBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdGQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ2FXWWdLR2x6VTNSeWFXNW5LU0I3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQmpZWFJ6VzJSaGRHRkJjbkpoZVZ0dmNtUmxjbHRwWFYxZE8xeHVJQ0FnSUNBZ0lDQm9ZWE5vWlhJdWRYQmtZWFJsS0dWdVkyOWtaWEl1Wlc1amIyUmxLR1JoZEdFcEtUdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0JrWVhSaFFYSnlZWGxiYjNKa1pYSmJhVjFkTzF4dUlDQWdJQ0FnSUNCb1lYTm9aWEl1ZFhCa1lYUmxLRlZwYm5RNFFYSnlZWGt1Wm5KdmJTaGJaR0YwWVYwcEtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUdoaGMyaGxjaTVrYVdkbGMzUW9LVHRjYm4xY2JpSmRmUT09IiwiLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBmbG9hdCBmcm9tIDAgdG8gcmFuZ2UuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtudW1iZXJ9IHJhbmdlIE1heCBnZW5lcmF0aW5nIHZhbHVlLlxuICogQHJldHVybiB7bnVtYmVyfSBBIHJhbmRvbSBmbG9hdCBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21GbG9hdChyYW5nZSkge1xuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpICogcmFuZ2U7XG59XG4vKipcbiAqIEdlbmVyYXRlcyBzaW5nbGUgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gaW50ZWdlciBnZW5lcmF0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByYW5kb21JbnQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb21GbG9hdChyYW5nZSkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY21GdVpHOXRMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWNtRnVaRzl0TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJPenM3T3pzN1IwRk5SenRCUVVOSUxFMUJRVTBzVlVGQlZTeFhRVUZYTEVOQlFVTXNTMEZCWVR0SlFVTjJReXhQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1FVRkRMMElzUTBGQlF6dEJRVVZFT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVU1zUzBGQllUdEpRVU55UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRlRU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dSMlZ1WlhKaGRHVnpJSE5wYm1kc1pTQnlZVzVrYjIwZ1pteHZZWFFnWm5KdmJTQXdJSFJ2SUhKaGJtZGxMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0J5WVc1blpTQk5ZWGdnWjJWdVpYSmhkR2x1WnlCMllXeDFaUzVjYmlBcUlFQnlaWFIxY200Z2UyNTFiV0psY24wZ1FTQnlZVzVrYjIwZ1pteHZZWFFnWjJWdVpYSmhkR1ZrTGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbUZ1Wkc5dFJteHZZWFFvY21GdVoyVTZJRzUxYldKbGNpazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJOWVhSb0xuSmhibVJ2YlNncElDb2djbUZ1WjJVN1hHNTlYRzVjYmk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdhVzUwWldkbGNpQm1jbTl0SURBZ2RHOGdjbUZ1WjJVdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlISmhibWRsSUUxaGVDQm5aVzVsY21GMGFXNW5JSFpoYkhWbExseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JCSUhKaGJtUnZiU0JwYm5SbFoyVnlJR2RsYm1WeVlYUmxaQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlISmhibVJ2YlVsdWRDaHlZVzVuWlRvZ2JuVnRZbVZ5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1Wm14dmIzSW9jbUZ1Wkc5dFJteHZZWFFvY21GdVoyVXBLVHRjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgcmFuZG9tSW50IH0gZnJvbSAnLi9yYW5kb20nO1xuZXhwb3J0IGNvbnN0IHNpbWlsYXJpdHlNZXRyaWMgPSB7XG4gICAgJ1Rhbmltb3RvJzogdGFuaW1vdG9TaW1pbGFyaXR5LFxuICAgICdEaWNlJzogZGljZVNpbWlsYXJpdHksXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljU2ltaWxhcml0eSxcbiAgICAnQnJhdW4tQmxhbnF1ZXQnOiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSxcbiAgICAnQ29zaW5lJzogY29zaW5lU2ltaWxhcml0eSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lTaW1pbGFyaXR5LFxuICAgICdNYy1Db25uYXVnaGV5JzogbWNDb25uYXVnaGV5U2ltaWxhcml0eSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnU2ltaWxhcml0eSxcbiAgICAnUnVzc2VsJzogcnVzc2VsU2ltaWxhcml0eSxcbiAgICAnU29rYWwnOiBzb2thbFNpbWlsYXJpdHksXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nU2ltaWxhcml0eSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuU2ltaWxhcml0eSxcbn07XG5leHBvcnQgY29uc3QgZGlzdGFuY2VNZXRyaWNzID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvRGlzdGFuY2UsXG4gICAgJ0RpY2UnOiBkaWNlRGlzdGFuY2UsXG4gICAgJ0FzeW1tZXRyaWMnOiBhc3ltbWV0cmljRGlzdGFuY2UsXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldERpc3RhbmNlLFxuICAgICdDb3NpbmUnOiBjb3NpbmVEaXN0YW5jZSxcbiAgICAnS3VsY3p5bnNraSc6IGt1bGN6eW5za2lEaXN0YW5jZSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleURpc3RhbmNlLFxuICAgICdSb2dvdC1Hb2xkYmVyZyc6IHJvZ290R29sZGJlcmdEaXN0YW5jZSxcbiAgICAnUnVzc2VsJzogcnVzc2VsRGlzdGFuY2UsXG4gICAgJ1Nva2FsJzogc29rYWxEaXN0YW5jZSxcbiAgICAnSGFtbWluZyc6IGhhbW1pbmdEaXN0YW5jZSxcbiAgICAnRXVjbGlkZWFuJzogZXVjbGlkZWFuRGlzdGFuY2UsXG59O1xuZXhwb3J0IGNvbnN0IENIRU1fU0lNSUxBUklUWV9NRVRSSUNTID0gWydUYW5pbW90bycsICdEaWNlJywgJ0Nvc2luZScsICdIYW1taW5nJywgJ0V1Y2xpZGVhbiddO1xuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDEuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvICh0b3RhbCAtIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gdGFuaW1vdG9EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkodGFuaW1vdG9TaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWNlU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIDIgKiBjb21tb24gLyB0b3RhbDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBkaWNlRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGRpY2VTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb3NpbmVTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gTWF0aC5zcXJ0KHRvdGFsKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjb3NpbmVEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoY29zaW5lU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZXVjbGlkZWFuU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZXVjbGlkZWFuRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFtbWluZ1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGhhbW1pbmdEaXN0YW5jZSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gaGFtbWluZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCkgLSAyICogeC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNva2FsU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvICgyICogdG90YWwgLSAzICogY29tbW9uKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzb2thbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCB0b3RhbCA9IHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpO1xuICAgIGNvbnN0IHRvdGFsUHJvZCA9IHgudHJ1ZUNvdW50KCkgKiB5LnRydWVDb3VudCgpO1xuICAgIGlmICh0b3RhbFByb2QgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIChjb21tb24gKiB0b3RhbCkgLyAoMiAqIHRvdGFsUHJvZCk7XG59XG5leHBvcnQgZnVuY3Rpb24ga3VsY3p5bnNraURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gbWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwgLSB0b3RhbFByb2QpIC8gdG90YWxQcm9kO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShtY0Nvbm5hdWdoZXlTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWluID0gTWF0aC5taW4oeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1pbiA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWluO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGFzeW1tZXRyaWNEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXRTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCh4LnRydWVDb3VudCgpLCB5LnRydWVDb3VudCgpKTtcbiAgICBpZiAobWF4ID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyBtYXg7XG59XG5leHBvcnQgZnVuY3Rpb24gYnJhdW5CbGFucXVldERpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgaWYgKHgubGVuZ3RoID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyB4Lmxlbmd0aDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBydXNzZWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkocnVzc2VsU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICBjb25zdCB0b3RhbCA9IHguY291bnRCaXRzKHRydWUpICsgeS5jb3VudEJpdHModHJ1ZSk7XG4gICAgY29uc3QgbGVuID0geC5sZW5ndGg7XG4gICAgY29uc3QgZGlmZiA9IGxlbiAtIHRvdGFsICsgY29tbW9uO1xuICAgIGlmICgoY29tbW9uID09IGxlbikgfHwgKGRpZmYgPT0gbGVuKSlcbiAgICAgICAgcmV0dXJuIDEuMDtcbiAgICBlbHNlXG4gICAgICAgIHJldHVybiBjb21tb24gLyB0b3RhbCArIGRpZmYgLyAoMiAqIGxlbiAtIHRvdGFsKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiByb2dvdEdvbGRiZXJnRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGRpc3RhbmNlKSB7XG4gICAgcmV0dXJuIDEgLyAoMSArIGRpc3RhbmNlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHNpbWlsYXJpdHkpIHtcbiAgICByZXR1cm4gMSAvIHNpbWlsYXJpdHkgLSAxO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERpdmVyc2VTdWJzZXQobGVuZ3RoLCBuLCBkaXN0KSB7XG4gICAgZnVuY3Rpb24gbWF4QnkodmFsdWVzLCBvcmRlckJ5KSB7XG4gICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7XG4gICAgICAgIGxldCBtYXhPcmRlckJ5ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE9yZGVyQnkgPSBvcmRlckJ5KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKG1heE9yZGVyQnkgPT0gbnVsbCB8fCBlbGVtZW50T3JkZXJCeSA+IG1heE9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbWF4T3JkZXJCeSA9IGVsZW1lbnRPcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2V0ID0gW3JhbmRvbUludChsZW5ndGggLSAxKV07XG4gICAgY29uc3QgY29tcGxlbWVudCA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmICghc3Vic2V0LmluY2x1ZGVzKGkpKVxuICAgICAgICAgICAgY29tcGxlbWVudC5hZGQoaSk7XG4gICAgfVxuICAgIHdoaWxlIChzdWJzZXQubGVuZ3RoIDwgbikge1xuICAgICAgICBjb25zdCBpZHggPSBtYXhCeShjb21wbGVtZW50LnZhbHVlcygpLCAoaSkgPT4gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3Vic2V0Lm1hcChmdW5jdGlvbiAodmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3QoaSwgdmFsKTtcbiAgICAgICAgfSkpKTtcbiAgICAgICAgaWYgKGlkeCAhPSBudWxsKSB7XG4gICAgICAgICAgICBzdWJzZXQucHVzaChpZHgpO1xuICAgICAgICAgICAgY29tcGxlbWVudC5kZWxldGUoaWR4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3Vic2V0O1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJsdGFXeGhjbWwwZVMxdFpYUnlhV056TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljMmx0YVd4aGNtbDBlUzF0WlhSeWFXTnpMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVOQkxFOUJRVThzUlVGQlF5eFRRVUZUTEVWQlFVTXNUVUZCVFN4VlFVRlZMRU5CUVVNN1FVRkZia01zVFVGQlRTeERRVUZETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVEpFTzBsQlEzUkdMRlZCUVZVc1JVRkJSU3hyUWtGQmEwSTdTVUZET1VJc1RVRkJUU3hGUVVGRkxHTkJRV003U1VGRGRFSXNXVUZCV1N4RlFVRkZMRzlDUVVGdlFqdEpRVU5zUXl4blFrRkJaMElzUlVGQlJTeDFRa0ZCZFVJN1NVRkRla01zVVVGQlVTeEZRVUZGTEdkQ1FVRm5RanRKUVVNeFFpeFpRVUZaTEVWQlFVVXNiMEpCUVc5Q08wbEJRMnhETEdWQlFXVXNSVUZCUlN4elFrRkJjMEk3U1VGRGRrTXNaMEpCUVdkQ0xFVkJRVVVzZFVKQlFYVkNPMGxCUTNwRExGRkJRVkVzUlVGQlJTeG5Ra0ZCWjBJN1NVRkRNVUlzVDBGQlR5eEZRVUZGTEdWQlFXVTdTVUZEZUVJc1UwRkJVeXhGUVVGRkxHbENRVUZwUWp0SlFVTTFRaXhYUVVGWExFVkJRVVVzYlVKQlFXMUNPME5CUTJwRExFTkJRVU03UVVGRlJpeE5RVUZOTEVOQlFVTXNUVUZCVFN4bFFVRmxMRWRCUVRKRU8wbEJRM0pHTEZWQlFWVXNSVUZCUlN4blFrRkJaMEk3U1VGRE5VSXNUVUZCVFN4RlFVRkZMRmxCUVZrN1NVRkRjRUlzV1VGQldTeEZRVUZGTEd0Q1FVRnJRanRKUVVOb1F5eG5Ra0ZCWjBJc1JVRkJSU3h4UWtGQmNVSTdTVUZEZGtNc1VVRkJVU3hGUVVGRkxHTkJRV003U1VGRGVFSXNXVUZCV1N4RlFVRkZMR3RDUVVGclFqdEpRVU5vUXl4bFFVRmxMRVZCUVVVc2IwSkJRVzlDTzBsQlEzSkRMR2RDUVVGblFpeEZRVUZGTEhGQ1FVRnhRanRKUVVOMlF5eFJRVUZSTEVWQlFVVXNZMEZCWXp0SlFVTjRRaXhQUVVGUExFVkJRVVVzWVVGQllUdEpRVU4wUWl4VFFVRlRMRVZCUVVVc1pVRkJaVHRKUVVNeFFpeFhRVUZYTEVWQlFVVXNhVUpCUVdsQ08wTkJReTlDTEVOQlFVTTdRVUZGUml4TlFVRk5MRU5CUVVNc1RVRkJUU3gxUWtGQmRVSXNSMEZCUnl4RFFVRkRMRlZCUVZVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEZOQlFWTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1EwRkJRenRCUVVVNVJpeE5RVUZOTEZWQlFWVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZWtRc1RVRkJUU3hMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU0xUXl4SlFVRkpMRXRCUVVzc1NVRkJTU3hEUVVGRE8xRkJRMW9zVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6TkRMRTlCUVU4c1RVRkJUU3hIUVVGSExFTkJRVU1zUzBGQlN5eEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTI1RExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZGtRc1QwRkJUeXg1UWtGQmVVSXNRMEZCUXl4clFrRkJhMElzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNM1JDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU55UkN4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8wbEJRelZETEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkRXaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE0wTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF6dEJRVU0xUWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxGbEJRVmtzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTnVSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjZSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzWkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNTVUZCU1N4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVOYUxFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMEZCUTI1RExFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNZMEZCWXl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM0pFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZETTBRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHRRa0ZCYlVJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU14UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpWRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZUVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkRMRU5CUVVNc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU5zUml4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHbENRVUZwUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM2hFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRekZFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1pVRkJaU3hEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlEzUkVMRTlCUVU4c1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFZEJRVU1zUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdWQlFXVXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOMFJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpReXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdGQlFXRXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOd1JDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHVkJRV1VzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzlDUVVGdlFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUXpORUxFMUJRVTBzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETlVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUTBGQlF6dEpRVU5vUkN4SlFVRkpMRk5CUVZNc1NVRkJTU3hEUVVGRE8xRkJRMmhDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFTkJRVU1zVFVGQlRTeEhRVUZITEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETzBGQlF6VkRMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXZSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhOQ1FVRnpRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6ZEVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVOb1JDeEpRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRPMUZCUTJoQ0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUjBGQlJ5eFRRVUZUTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1FVRkRiRVFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4dlFrRkJiMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTXpSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnBGTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2IwSkJRVzlDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRNMFFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOV0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hyUWtGQmEwSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVONlJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF5OUVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZFVKQlFYVkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE9VUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEYmtRc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRVU5XTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhQUVVGUExFMUJRVTBzUjBGQlJ5eEhRVUZITEVOQlFVTTdRVUZEZEVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHhRa0ZCY1VJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU0xUkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJ4RkxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZEZGtRc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTTdVVUZEWml4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVNelFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR05CUVdNc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU55UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpORUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZET1VRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpReXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJRenRKUVVOeVFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWRCUVVjc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF6dEpRVU5zUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJRenRSUVVGRkxFOUJRVThzUjBGQlJ5eERRVUZET3p0UlFVTTFReXhQUVVGUExFMUJRVTBzUjBGQlJ5eExRVUZMTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZCUXp0QlFVTjRSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhGQ1FVRnhRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6VkVMRTlCUVU4c2VVSkJRWGxDTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRVVzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4NVFrRkJlVUlzUTBGQlF5eFJRVUZuUWp0SlFVTjRSQ3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZGTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRCUVVNM1FpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMSGxDUVVGNVFpeERRVUZETEZWQlFXdENPMGxCUXpGRUxFOUJRVThzUTBGQlF5eEhRVUZITEZWQlFWVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1FVRkROVUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eE5RVUZqTEVWQlFVVXNRMEZCVXl4RlFVRkZMRWxCUVhkRE8wbEJRMnhITEZOQlFWTXNTMEZCU3l4RFFVRkRMRTFCUVdkRExFVkJRVVVzVDBGQk9FSTdVVUZETjBVc1NVRkJTU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEzQkNMRWxCUVVrc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRVVYwUWl4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxFMUJRVTBzUlVGQlJUdFpRVU0xUWl4TlFVRk5MR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEZUVNc1NVRkJTU3hWUVVGVkxFbEJRVWtzU1VGQlNTeEpRVUZKTEdOQlFXTXNSMEZCUnl4VlFVRlZMRVZCUVVVN1owSkJRM0pFTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNN1owSkJRMjVDTEZWQlFWVXNSMEZCUnl4alFVRmpMRU5CUVVNN1lVRkROMEk3VTBGRFJqdFJRVU5FTEU5QlFVOHNVVUZCVVN4RFFVRkRPMGxCUTJ4Q0xFTkJRVU03U1VGRlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUlRkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZETDBJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja0k3U1VGRlJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRM2hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkRaaXhWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUU0UWl4RlFVTXZReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJVeXhIUVVGSExFVkJRVVVzUzBGQlN6dFpRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExQXNTVUZCU1N4SFFVRkhMRWxCUVVrc1NVRkJTU3hGUVVGRk8xbEJRMllzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVOcVFpeFZRVUZWTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xTkJRM2hDTzB0QlEwWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUVKcGRFRnljbUY1SUdaeWIyMGdKeTR2WW1sMExXRnljbUY1Snp0Y2JtbHRjRzl5ZENCN2NtRnVaRzl0U1c1MGZTQm1jbTl0SUNjdUwzSmhibVJ2YlNjN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCN1cyNWhiV1U2SUhOMGNtbHVaMTA2SUNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwSUQwK0lHNTFiV0psY24wZ1BTQjdYRzRnSUNkVVlXNXBiVzkwYnljNklIUmhibWx0YjNSdlUybHRhV3hoY21sMGVTeGNiaUFnSjBScFkyVW5PaUJrYVdObFUybHRhV3hoY21sMGVTeGNiaUFnSjBGemVXMXRaWFJ5YVdNbk9pQmhjM2x0YldWMGNtbGpVMmx0YVd4aGNtbDBlU3hjYmlBZ0owSnlZWFZ1TFVKc1lXNXhkV1YwSnpvZ1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtzWEc0Z0lDZERiM05wYm1Vbk9pQmpiM05wYm1WVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuUzNWc1kzcDVibk5yYVNjNklHdDFiR042ZVc1emEybFRhVzFwYkdGeWFYUjVMRnh1SUNBblRXTXRRMjl1Ym1GMVoyaGxlU2M2SUcxalEyOXVibUYxWjJobGVWTnBiV2xzWVhKcGRIa3NYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZFRhVzFwYkdGeWFYUjVMRnh1SUNBblVuVnpjMlZzSnpvZ2NuVnpjMlZzVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMU52YTJGc0p6b2djMjlyWVd4VGFXMXBiR0Z5YVhSNUxGeHVJQ0FuU0dGdGJXbHVaeWM2SUdoaGJXMXBibWRUYVcxcGJHRnlhWFI1TEZ4dUlDQW5SWFZqYkdsa1pXRnVKem9nWlhWamJHbGtaV0Z1VTJsdGFXeGhjbWwwZVN4Y2JuMDdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQmthWE4wWVc1alpVMWxkSEpwWTNNNklIdGJibUZ0WlRvZ2MzUnlhVzVuWFRvZ0tIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrZ1BUNGdiblZ0WW1WeWZTQTlJSHRjYmlBZ0oxUmhibWx0YjNSdkp6b2dkR0Z1YVcxdmRHOUVhWE4wWVc1alpTeGNiaUFnSjBScFkyVW5PaUJrYVdObFJHbHpkR0Z1WTJVc1hHNGdJQ2RCYzNsdGJXVjBjbWxqSnpvZ1lYTjViVzFsZEhKcFkwUnBjM1JoYm1ObExGeHVJQ0FuUW5KaGRXNHRRbXhoYm5GMVpYUW5PaUJpY21GMWJrSnNZVzV4ZFdWMFJHbHpkR0Z1WTJVc1hHNGdJQ2REYjNOcGJtVW5PaUJqYjNOcGJtVkVhWE4wWVc1alpTeGNiaUFnSjB0MWJHTjZlVzV6YTJrbk9pQnJkV3hqZW5sdWMydHBSR2x6ZEdGdVkyVXNYRzRnSUNkTll5MURiMjV1WVhWbmFHVjVKem9nYldORGIyNXVZWFZuYUdWNVJHbHpkR0Z1WTJVc1hHNGdJQ2RTYjJkdmRDMUhiMnhrWW1WeVp5YzZJSEp2WjI5MFIyOXNaR0psY21kRWFYTjBZVzVqWlN4Y2JpQWdKMUoxYzNObGJDYzZJSEoxYzNObGJFUnBjM1JoYm1ObExGeHVJQ0FuVTI5cllXd25PaUJ6YjJ0aGJFUnBjM1JoYm1ObExGeHVJQ0FuU0dGdGJXbHVaeWM2SUdoaGJXMXBibWRFYVhOMFlXNWpaU3hjYmlBZ0owVjFZMnhwWkdWaGJpYzZJR1YxWTJ4cFpHVmhia1JwYzNSaGJtTmxMRnh1ZlR0Y2JseHVaWGh3YjNKMElHTnZibk4wSUVOSVJVMWZVMGxOU1V4QlVrbFVXVjlOUlZSU1NVTlRJRDBnV3lkVVlXNXBiVzkwYnljc0lDZEVhV05sSnl3Z0owTnZjMmx1WlNjc0lDZElZVzF0YVc1bkp5d2dKMFYxWTJ4cFpHVmhiaWRkTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RHRnVhVzF2ZEc5VGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdsbUlDaDBiM1JoYkNBOVBTQXdLVnh1SUNBZ0lISmxkSFZ5YmlBeExqQTdYRzRnSUdOdmJuTjBJR052YlcxdmJpQTlJSGd1WVc1a1YybDBhRU52ZFc1MFFtbDBjeWg1TENCMGNuVmxLVHRjYmlBZ2NtVjBkWEp1SUdOdmJXMXZiaUF2SUNoMGIzUmhiQ0F0SUdOdmJXMXZiaWs3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjBZVzVwYlc5MGIwUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtIUmhibWx0YjNSdlUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrYVdObFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS3lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlBeUlDb2dZMjl0Ylc5dUlDOGdkRzkwWVd3N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJrYVdObFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1pHbGpaVk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyOXphVzVsVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLaUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3dnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJOWVhSb0xuTnhjblFvZEc5MFlXd3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1kyOXphVzVsUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvWTI5emFXNWxVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCbGRXTnNhV1JsWVc1VGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtHVjFZMnhwWkdWaGJrUnBjM1JoYm1ObEtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1YxWTJ4cFpHVmhia1JwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJOWVhSb0xuTnhjblFvZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrZ0xTQXlLbmd1WVc1a1YybDBhRU52ZFc1MFFtbDBjeWg1TENCMGNuVmxLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQm9ZVzF0YVc1blUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwVTJsdGFXeGhjbWwwZVVaeWIyMUVhWE4wWVc1alpTaG9ZVzF0YVc1blJHbHpkR0Z1WTJVb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdhR0Z0YldsdVowUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQjRMblJ5ZFdWRGIzVnVkQ2dwSUNzZ2VTNTBjblZsUTI5MWJuUW9LU0F0SURJcWVDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYzI5cllXeFRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlHTnZiVzF2YmlBdklDZ3lJQ29nZEc5MFlXd2dMU0F6SUNvZ1kyOXRiVzl1S1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE52YTJGc1JHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb2MyOXJZV3hUYVcxcGJHRnlhWFI1S0hnc0lIa3BLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHdDFiR042ZVc1emEybFRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHTnZibk4wSUhSdmRHRnNVSEp2WkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd4UWNtOWtJRDA5SURBcFhHNGdJQ0FnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdLR052YlcxdmJpQXFJSFJ2ZEdGc0tTQXZJQ2d5SUNvZ2RHOTBZV3hRY205a0tUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUd0MWJHTjZlVzV6YTJsRWFYTjBZVzVqWlNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnlaWFIxY200Z1oyVjBSR2x6ZEdGdVkyVkdjbTl0VTJsdGFXeGhjbWwwZVNocmRXeGplbmx1YzJ0cFUybHRhV3hoY21sMGVTaDRMQ0I1S1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ0WTBOdmJtNWhkV2RvWlhsVGFXMXBiR0Z5YVhSNUtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJR052Ym5OMElIUnZkR0ZzSUQwZ2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDazdYRzRnSUdOdmJuTjBJSFJ2ZEdGc1VISnZaQ0E5SUhndWRISjFaVU52ZFc1MEtDa2dLaUI1TG5SeWRXVkRiM1Z1ZENncE8xeHVJQ0JwWmlBb2RHOTBZV3hRY205a0lEMDlJREFwWEc0Z0lDQWdjbVYwZFhKdUlEQXVNRHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQnlaWFIxY200Z0tHTnZiVzF2YmlBcUlIUnZkR0ZzSUMwZ2RHOTBZV3hRY205a0tTQXZJSFJ2ZEdGc1VISnZaRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHMWpRMjl1Ym1GMVoyaGxlVVJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLRzFqUTI5dWJtRjFaMmhsZVZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYldsdUlEMGdUV0YwYUM1dGFXNG9lQzUwY25WbFEyOTFiblFvS1N3Z2VTNTBjblZsUTI5MWJuUW9LU2s3WEc0Z0lHbG1JQ2h0YVc0Z1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCdGFXNDdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaGMzbHRiV1YwY21salJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1lYTjViVzFsZEhKcFkxTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWW5KaGRXNUNiR0Z1Y1hWbGRGTnBiV2xzWVhKcGRIa29lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnWTI5dWMzUWdiV0Y0SUQwZ1RXRjBhQzV0WVhnb2VDNTBjblZsUTI5MWJuUW9LU3dnZVM1MGNuVmxRMjkxYm5Rb0tTazdYRzRnSUdsbUlDaHRZWGdnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUJ0WVhnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJpY21GMWJrSnNZVzV4ZFdWMFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NuVnpjMlZzVTJsdGFXeGhjbWwwZVNoNE9pQkNhWFJCY25KaGVTd2dlVG9nUW1sMFFYSnlZWGtwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZUM1c1pXNW5kR2dnUFQwZ01DbGNiaUFnSUNCeVpYUjFjbTRnTUM0d08xeHVJQ0JqYjI1emRDQmpiMjF0YjI0Z1BTQjRMbUZ1WkZkcGRHaERiM1Z1ZEVKcGRITW9lU3dnZEhKMVpTazdYRzRnSUhKbGRIVnliaUJqYjIxdGIyNGdMeUI0TG14bGJtZDBhRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlISjFjM05sYkVScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0hKMWMzTmxiRk5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NtOW5iM1JIYjJ4a1ltVnlaMU5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnWTI5dGJXOXVJRDBnZUM1aGJtUlhhWFJvUTI5MWJuUkNhWFJ6S0hrc0lIUnlkV1VwTzF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUhndVkyOTFiblJDYVhSektIUnlkV1VwSUNzZ2VTNWpiM1Z1ZEVKcGRITW9kSEoxWlNrN1hHNGdJR052Ym5OMElHeGxiaUE5SUhndWJHVnVaM1JvTzF4dUlDQmpiMjV6ZENCa2FXWm1JRDBnYkdWdUlDMGdkRzkwWVd3Z0t5QmpiMjF0YjI0N1hHNGdJR2xtSUNnb1kyOXRiVzl1SUQwOUlHeGxiaWtnZkh3Z0tHUnBabVlnUFQwZ2JHVnVLU2tnY21WMGRYSnVJREV1TUR0Y2JpQWdaV3h6WlNCeVpYUjFjbTRnWTI5dGJXOXVJQzhnZEc5MFlXd2dLeUJrYVdabUlDOGdLRElnS2lCc1pXNGdMU0IwYjNSaGJDazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeWIyZHZkRWR2YkdSaVpYSm5SR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jbTluYjNSSGIyeGtZbVZ5WjFOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwVTJsdGFXeGhjbWwwZVVaeWIyMUVhWE4wWVc1alpTaGthWE4wWVc1alpUb2diblZ0WW1WeUtTQjdYRzRnSUhKbGRIVnliaUF4SUM4Z0tDQXhJQ3NnWkdsemRHRnVZMlVwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHphVzFwYkdGeWFYUjVPaUJ1ZFcxaVpYSXBJSHRjYmlBZ2NtVjBkWEp1SURFZ0x5QnphVzFwYkdGeWFYUjVJQzBnTVR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsZEVScGRtVnljMlZUZFdKelpYUW9iR1Z1WjNSb09pQnVkVzFpWlhJc0lHNDZJRzUxYldKbGNpd2daR2x6ZERvZ0tHa3hPaUJ1ZFcxaVpYSXNJR2t5T2lCdWRXMWlaWElwSUQwK0lHNTFiV0psY2lrZ2UxeHVJQ0JtZFc1amRHbHZiaUJ0WVhoQ2VTaDJZV3gxWlhNNklFbDBaWEpoWW14bFNYUmxjbUYwYjNJOGJuVnRZbVZ5UGl3Z2IzSmtaWEpDZVRvZ0tHazZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLU0I3WEc0Z0lDQWdiR1YwSUcxaGVGWmhiSFZsSUQwZ2JuVnNiRHRjYmlBZ0lDQnNaWFFnYldGNFQzSmtaWEpDZVNBOUlHNTFiR3c3WEc1Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdWc1pXMWxiblFnYjJZZ2RtRnNkV1Z6S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JsYkdWdFpXNTBUM0prWlhKQ2VTQTlJRzl5WkdWeVFua29aV3hsYldWdWRDazdYRzRnSUNBZ0lDQnBaaUFvYldGNFQzSmtaWEpDZVNBOVBTQnVkV3hzSUh4OElHVnNaVzFsYm5SUGNtUmxja0o1SUQ0Z2JXRjRUM0prWlhKQ2VTa2dlMXh1SUNBZ0lDQWdJQ0J0WVhoV1lXeDFaU0E5SUdWc1pXMWxiblE3WEc0Z0lDQWdJQ0FnSUcxaGVFOXlaR1Z5UW5rZ1BTQmxiR1Z0Wlc1MFQzSmtaWEpDZVR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHMWhlRlpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2MzVmljMlYwSUQwZ1czSmhibVJ2YlVsdWRDaHNaVzVuZEdnZ0xTQXhLVjA3WEc0Z0lHTnZibk4wSUdOdmJYQnNaVzFsYm5RZ1BTQnVaWGNnVTJWMEtDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJR2xtSUNnaGMzVmljMlYwTG1sdVkyeDFaR1Z6S0drcEtWeHVJQ0FnSUNBZ1kyOXRjR3hsYldWdWRDNWhaR1FvYVNrN1hHNGdJSDFjYmx4dUlDQjNhR2xzWlNBb2MzVmljMlYwTG14bGJtZDBhQ0E4SUc0cElIdGNiaUFnSUNCamIyNXpkQ0JwWkhnZ1BTQnRZWGhDZVNoY2JpQWdJQ0FnSUdOdmJYQnNaVzFsYm5RdWRtRnNkV1Z6S0NrZ1lYTWdTWFJsY21GaWJHVkpkR1Z5WVhSdmNqeHVkVzFpWlhJK0xGeHVJQ0FnSUNBZ0tHa3BJRDArSUUxaGRHZ3ViV2x1TG1Gd2NHeDVLRTFoZEdnc0lITjFZbk5sZEM1dFlYQW9ablZ1WTNScGIyNG9kbUZzTENCcGJtUmxlQ2tnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnWkdsemRDaHBMQ0IyWVd3cE8xeHVJQ0FnSUNBZ2ZTa3BLVHRjYmlBZ0lDQnBaaUFvYVdSNElDRTlJRzUxYkd3cElIdGNiaUFnSUNBZ0lITjFZbk5sZEM1d2RYTm9LR2xrZUNrN1hHNGdJQ0FnSUNCamIyMXdiR1Z0Wlc1MExtUmxiR1YwWlNocFpIZ3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z2MzVmljMlYwTzF4dWZWeHVJbDE5IiwiLyoqXG4gKiBEZW5vdGVzIGEgdmVjdG9yIG9mIGZsb2F0aW5nIHBvaXQgdmFsdWVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JcbiAqIEBleHRlbmRzIHtGbG9hdDMyQXJyYXl9XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3IgZXh0ZW5kcyBGbG9hdDMyQXJyYXkge1xufVxuLyoqXG4gKiBEZW5vdGVzIGEgdHdvLWRpbWVuc2lvbmFsIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgTWF0cml4XG4gKiBAZXh0ZW5kcyB7QXJyYXk8VmVjdG9yPn1cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdHJpeCBleHRlbmRzIEFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBjYXJ0ZXNpYW4gY29vcmRpbmF0ZXMuXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIENvb3JkaW5hdGVzXG4gKiBAZXh0ZW5kcyB7TWF0cml4fVxuICovXG5leHBvcnQgY2xhc3MgQ29vcmRpbmF0ZXMgZXh0ZW5kcyBNYXRyaXgge1xufVxuLyoqXG4gKiBEZW5vdGVzIGFuIGFycmF5IG9mIGFyYml0cmFyeS10eXBlZCB2ZWN0b3JzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBWZWN0b3JzXG4gKiBAZXh0ZW5kcyB7QXJyYXk8YW55Pn1cbiAqL1xuZXhwb3J0IGNsYXNzIFZlY3RvcnMgZXh0ZW5kcyBBcnJheSB7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKMGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRmxCUVZrN1EwRkJSenRCUVVVelF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1RVRkJUeXhUUVVGUkxFdEJRV0U3UTBGQlJ6dEJRVVUxUXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVjBGQldTeFRRVUZSTEUxQlFVMDdRMEZCUnp0QlFVVXhRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRXRCUVZVN1EwRkJSeUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUkdWdWIzUmxjeUJoSUhabFkzUnZjaUJ2WmlCbWJHOWhkR2x1WnlCd2IybDBJSFpoYkhWbGN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdWbVZqZEc5eVhHNGdLaUJBWlhoMFpXNWtjeUI3Um14dllYUXpNa0Z5Y21GNWZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdWbVZqZEc5eUlHVjRkR1Z1WkhNZ1JteHZZWFF6TWtGeWNtRjVJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIUjNieTFrYVcxbGJuTnBiMjVoYkNCdFlYUnlhWGd1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FHTnNZWE56SUUxaGRISnBlRnh1SUNvZ1FHVjRkR1Z1WkhNZ2UwRnljbUY1UEZabFkzUnZjajU5WEc0Z0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTllYUnlhWGdnWlhoMFpXNWtjeUJCY25KaGVUeFdaV04wYjNJK0lIdDlYRzVjYmk4cUtseHVJQ29nUkdWdWIzUmxjeUJqWVhKMFpYTnBZVzRnWTI5dmNtUnBibUYwWlhNdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFTnZiM0prYVc1aGRHVnpYRzRnS2lCQVpYaDBaVzVrY3lCN1RXRjBjbWw0ZlZ4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1EyOXZjbVJwYm1GMFpYTWdaWGgwWlc1a2N5Qk5ZWFJ5YVhnZ2UzMWNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0Z1SUdGeWNtRjVJRzltSUdGeVltbDBjbUZ5ZVMxMGVYQmxaQ0IyWldOMGIzSnpMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCamJHRnpjeUJXWldOMGIzSnpYRzRnS2lCQVpYaDBaVzVrY3lCN1FYSnlZWGs4WVc1NVBuMWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRlpsWTNSdmNuTWdaWGgwWlc1a2N5QkJjbkpoZVR4aGJuaytJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElHUnBZM1JwYjI1aGNua2dZMjl1ZEdGcGJtbHVaeUJtZFc1amRHbHZiaUJ2Y0hScGIyNXpMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCMGVYQmxJRTl3ZEdsdmJuTmNiaUFxTDF4dVpYaHdiM0owSUhSNWNHVWdUM0IwYVc5dWN5QTlJSHRiYm1GdFpUb2djM1J5YVc1blhUb2dZVzU1ZlR0Y2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHTjFjM1J2YlNCa2FYTjBZVzVqWlNCdFpYUnlhV01nWW1WMGQyVmxiaUIwYUdVZ2RIZHZJR2RwZG1WdUlIWmxZM1J2Y25NdVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRSFI1Y0dVZ1JHbHpkR0Z1WTJWTlpYUnlhV05jYmlBcUlFQndZWEpoYlNCN1lXNTVmU0IyTVNCVWFHVWdabWx5YzNRZ2RtVmpkRzl5TGx4dUlDb2dRSEJoY21GdElIdGhibmw5SUhZeUlGUm9aU0J6WldOdmJtUWdkbVZqZEc5eUxseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JFYVhOMFlXNWpaU0JpWlhSM1pXVnVJSFJvWlhObElIUjNieUIyWldOMGIzSnpMbHh1SUNvdlhHNWxlSEJ2Y25RZ2RIbHdaU0JFYVhOMFlXNWpaVTFsZEhKcFl5QTlJQ2gyTVRvZ1lXNTVMQ0IyTWpvZ1lXNTVLU0E5UGlBb2JuVnRZbVZ5S1R0Y2JseHVMeW9xWEc0Z0tpQkVaVzV2ZEdWeklHRWdjMmx0Y0d4bElITjBjbWx1WnlCMGJ5QnpkSEpwYm1jZ1pHbGpkR2x2Ym1GeWVTNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBZEhsd1pTQlRkSEpwYm1kRWFXTjBhVzl1WVhKNVhHNGdLaTljYm1WNGNHOXlkQ0IwZVhCbElGTjBjbWx1WjBScFkzUnBiMjVoY25rZ1BTQjdXMnRsZVRvZ2MzUnlhVzVuWFRvZ2MzUnlhVzVuZlR0Y2JpSmRmUT09IiwiaW1wb3J0IHsgVmVjdG9yIH0gZnJvbSAnLi90eXBlLWRlY2xhcmF0aW9ucyc7XG5pbXBvcnQgeyByYW5kb21GbG9hdCwgcmFuZG9tSW50IH0gZnJvbSAnLi9yYW5kb20nO1xuLyoqXG4gKiBBc3NlcnRzIGEgY29uZGl0aW9uIGJ5IHRocm93aW5nIGFuIEVycm9yLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2NvbmRpdGlvbj1mYWxzZV0gQ29uZGl0aW9uIHRvIGFzc2VydC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZT0nQXNzZXJ0aW9uIGVycm9yLiddIE1lc3NhZ2UgdG8gb3V0cHV0LlxuICogQHRocm93cyB7RXJyb3J9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnQoY29uZGl0aW9uID0gZmFsc2UsIG1lc3NhZ2UgPSAnQXNzZXJ0aW9uIGVycm9yLicpIHtcbiAgICBpZiAoIWNvbmRpdGlvbilcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xufVxuLyoqXG4gKiBDcmVhdGVzIG5ldyB0d28tZGltZW5zaW9uYWwgYXJyYXkgYW5kIGZpbGxzIGl0IHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24xIFRoZSBmaXJzdCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2Ygcm93cykuXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgY29vcmRpbmF0ZXMgKG51bWJlciBvZiBjb2x1bW5zKS5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbZmlsbD0wXSBBIHZhbHVlIHRvIGZpbGwgdGhlIGNvb3JkaW5hdGVzIHdpdGguXG4gKiBAcmV0dXJuIHtDb29yZGluYXRlc30gQSB0d28tZGltZW5zaW9uYWwgZmlsbGVkIHdpdGggdGhlIHZhbHVlIGdpdmVuLlxuICogQHRvZG8gTWlnaHQgYmUgc2xvdyBzaW5jZSB1c2VkIEFycmF5Lm1hcC4gUHJvYmFibHkgbmVlZHMgcGVyZm9ybWFuY2UgcmV2aXNpb24uXG4gKi9cbmZ1bmN0aW9uIGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yLCBmaWxsID0gMCkge1xuICAgIHJldHVybiBuZXcgQXJyYXkoZGltZW5zaW9uMSkuZmlsbChmaWxsKS5tYXAoKCkgPT4gKG5ldyBWZWN0b3IoZGltZW5zaW9uMikuZmlsbChmaWxsKSkpO1xufVxuLyoqXG4gKiBUcmFuc3Bvc2UgbWF0cml4LlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7TWF0cml4fSBtYXRyaXggVGhlIG1hdHJpeCB0byBiZSB0cmFuc3Bvc2VkLlxuICogQHJldHVybiB7TWF0cml4fSBUcmFuc3Bvc2VkIG1hdHJpeC5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNwb3NlTWF0cml4KG1hdHJpeCkge1xuICAgIHJldHVybiBuZXcgQXJyYXkobWF0cml4WzBdLmxlbmd0aCkuZmlsbCgwKVxuICAgICAgICAubWFwKChfLCBpKSA9PiAobmV3IFZlY3RvcihtYXRyaXgubGVuZ3RoKS5maWxsKDApLm1hcCgoXywgaikgPT4gKG1hdHJpeFtqXVtpXSkpKSk7XG59XG4vKipcbiAqIEFkZHMgdHdvIHZlY3RvcnMgd2l0aCB0aGUgc2Vjb25kIG9uZSB0byBiZSBtdWx0aXBsaWVkIGJ5IHRoZSBnaXZlbiByYXRpby5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yIHRvIGFkZC5cbiAqIEBwYXJhbSB7VmVjdG9yfSBxIFRoZSBzZWNvbmQgdmVjdG9yIHRvIGFkZC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBbbXVsdGlwbGllcj0xXSBBIG11bHRpcGxpZXIgdG8gYmUgdXNlZCBiZWZvcmUgdGhlIHNlY29uZCB2ZWN0b3IgaXMgYWRkZWQuXG4gKiBAcmV0dXJuIHtWZWN0b3J9IE5ldyB2ZWN0b3IgY29udGFpbmVkIHRoZSByZXN1bHQgb2Ygb3BlcmF0aW9uIHArbXVsdGlwbGllcipxLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yQWRkKHAsIHEsIG11bHRpcGxpZXIgPSAxKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gcC5sZW5ndGg7XG4gICAgYXNzZXJ0KG5JdGVtcyA9PSBxLmxlbmd0aCwgJ1ZlY3RvciBsZW5ndGhzIGRvIG5vdCBtYXRjaC4nKTtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHAubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gcFtpXSArIG11bHRpcGxpZXIgKiBxW2ldO1xuICAgIHJldHVybiB0b3RhbDtcbn1cbi8qKlxuICogU3VtcyB0aGUgdmVjdG9yJ3MgaXRlbXMuXG4gKlxuICogQHBhcmFtIHtWZWN0b3J9IHYgVGhlIHZlY3RvciB0byBiZSBzdW1tZWQuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSB2ZWN0b3IncyBpdGVtcyBzdW0uXG4gKi9cbmZ1bmN0aW9uIGl0ZW1zU3VtKHYpIHtcbiAgICBsZXQgdG90YWwgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWwgKz0gdltpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1cWFyZXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gc3F1YXJlLlxuICogQHJldHVybiB7VmVjdG9yfSBBIG5ldyB2ZWN0b3IgY29udGFpbmluZyB0aGUgb3JpZ2luYWwncyBpdGVtcyBzcXVhcmVkLlxuICovXG5mdW5jdGlvbiB2ZWN0b3JTcXVhcmUodikge1xuICAgIGNvbnN0IG5JdGVtcyA9IHYubGVuZ3RoO1xuICAgIGNvbnN0IHRvdGFsID0gbmV3IFZlY3RvcihuSXRlbXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdi5sZW5ndGg7ICsraSlcbiAgICAgICAgdG90YWxbaV0gPSB2W2ldICogdltpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yTGVuZ3RoKHYpIHtcbiAgICBsZXQgc3FyU3VtID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyBpKyspXG4gICAgICAgIHNxclN1bSArPSB2W2ldICogdltpXTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxclN1bSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yRG90UHJvZHVjdCh2MSwgdjIpIHtcbiAgICBpZiAodjEubGVuZ3RoICE9IHYyLmxlbmd0aClcbiAgICAgICAgdGhyb3cgRXJyb3IoJ1RoZSBkaW1lbnNpb25hbGl0eSBvZiB0aGUgdmVjdG9ycyBtdXN0IG1hdGNoJyk7XG4gICAgbGV0IHByb2QgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdjEubGVuZ3RoOyBpKyspXG4gICAgICAgIHByb2QgKz0gdjFbaV0gKiB2MltpXTtcbiAgICByZXR1cm4gcHJvZDtcbn1cbi8qKlxuICogQ3JlYXRlcyBhIG1hdHJpeCBmaWxsZWQgd2l0aCByYW5kb20gZmxvYXRpbmcgcG9pbnQgdmFsdWVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24xIFRoZSBmaXJzdCBkaW1lbnNpb24gb2YgdGhlIG1hdHJpeC5cbiAqIEBwYXJhbSB7bnVtYmVyfSBkaW1lbnNpb24yIFRoZSBzZWNvbmQgZGltZW5zaW9uIG9mIHRoZSBtYXRyaXguXG4gKiBAcGFyYW0ge251bWJlcn0gW3NjYWxlPTEuXSBNYXggdmFsdWUgZ2l2ZW4gYnkgcmFuZG9tIGdlbmVyYXRvci5cbiAqIEByZXR1cm4ge01hdHJpeH0gQSBuZXcgbWF0cml4IGZpbGxlZCB3aXRoIHJhbmRvbSBmbG9hdGluZyBwb2ludCAgdmFsdWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsbFJhbmRvbU1hdHJpeChkaW1lbnNpb24xLCBkaW1lbnNpb24yLCBzY2FsZSA9IDEuKSB7XG4gICAgY29uc3QgbWF0cml4ID0gaW5pdENvb3JkaW5hdGVzKGRpbWVuc2lvbjEsIGRpbWVuc2lvbjIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGltZW5zaW9uMTsgKytpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGltZW5zaW9uMjsgKytqKVxuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gcmFuZG9tRmxvYXQoc2NhbGUpO1xuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqXG4gKiBDYWxjdWxhdGVzIEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHR3byB2ZWN0b3JzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yfSBwIFRoZSBmaXJzdCB2ZWN0b3IuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3Rvci5cbiAqIEByZXR1cm4ge251bWJlcn0gRXVjbGlkZWFuIGRpc3RhbmNlIGJldHdlZW4gdGhlIGdpdmVuIHZlY3RvcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZShwLCBxKSB7XG4gICAgY29uc3QgZGlmZiA9IHZlY3RvckFkZChwLCBxLCAtMSk7XG4gICAgY29uc3Qgc3FkaWZmID0gdmVjdG9yU3F1YXJlKGRpZmYpO1xuICAgIGNvbnN0IHNxZGlmZlN1bW0gPSBpdGVtc1N1bShzcWRpZmYpO1xuICAgIHJldHVybiBNYXRoLnNxcnQoc3FkaWZmU3VtbSk7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBkaXN0YW5jZSBtYXRyaXggdXNpbmcgYSBjdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3JzfSBkYXRhIElucHV0IHZlY3RvcnMgdG8gY2FsY3VsYXRlIGRpc3RhbmNlcy5cbiAqIEBwYXJhbSB7RGlzdGFuY2VNZXRyaWN9IGRpc3RhbmNlIEN1c3RvbSBkaXN0YW5jZSBmdW5jdGlvbi5cbiAqIEByZXR1cm4ge01hdHJpeH0gQ2FsY3VsYXRlZCBjdXN0b20gZGlzdGFuY2UgbWF0cml4LlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY0Rpc3RhbmNlTWF0cml4KGRhdGEsIGRpc3RhbmNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZGF0YS5sZW5ndGg7XG4gICAgY29uc3QgbWF0cml4ID0gaW5pdENvb3JkaW5hdGVzKG5JdGVtcywgbkl0ZW1zLCAwKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IG5JdGVtczsgKytqKSB7XG4gICAgICAgICAgICBjb25zdCBkID0gKGRhdGFbaV0gPT0gbnVsbCkgfHwgKGRhdGFbal0gPT0gbnVsbCkgPyAwIDogZGlzdGFuY2UoZGF0YVtpXSwgZGF0YVtqXSk7XG4gICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbal1baV0gPSBkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBtYXRyaXg7XG59XG4vKiogR2VuZXJhdGVzIGFycmF5IGZyb20gYSByYW5nZSBbYmVnaW47IGVuZF0gb3IgW2JlZ2luOyBlbmQpIGlmIGVuZEV4Y2x1c2l2ZS4gKiovXG5leHBvcnQgZnVuY3Rpb24gZ2VuUmFuZ2UoYmVnaW4sIGVuZCwgZW5kRXhjbHVzaXZlID0gZmFsc2UpIHtcbiAgICBjb25zdCBuSXRlbXMgPSBlbmQgLSBiZWdpbiArIChlbmRFeGNsdXNpdmUgPyAwIDogMSk7XG4gICAgY29uc3Qgc2VyaWVzID0gbmV3IEludDMyQXJyYXkobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKVxuICAgICAgICBzZXJpZXNbaV0gPSBiZWdpbiArIGk7XG4gICAgcmV0dXJuIHNlcmllcztcbn1cbi8qKlxuICogUmV0dXJucyBvcmRlciBvZiB2YWx1ZXMgYXMgaWYgdGhleSBhcmUgc29ydGVkLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7YW55W119IHZhbHVlcyBJbnB1dCBhcnJheS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3JldmVyc2U9ZmFsc2VdIFdoZXRoZXIgdG8gcmV0dXJuIHJldmVyc2VkIG9yZGVyLlxuICogQHJldHVybiB7bnVtYmVyW119IFRoZSBvcmRlciBjb21wdXRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFyZ1NvcnQodmFsdWVzLCByZXZlcnNlID0gZmFsc2UpIHtcbiAgICBjb25zdCBzb3J0Zm4gPSByZXZlcnNlID8gKGEsIGIpID0+IChiWzBdIC0gYVswXSkgOiAoYSwgYikgPT4gKGFbMF0gLSBiWzBdKTtcbiAgICBjb25zdCBkZWNvciA9ICh2LCBpKSA9PiBbdiwgaV07IC8vIHNldCBpbmRleCB0byB2YWx1ZVxuICAgIGNvbnN0IHVuZGVjb3IgPSAoYSkgPT4gYVsxXTsgLy8gbGVhdmUgb25seSBpbmRleFxuICAgIGNvbnN0IF9hcmdzb3J0ID0gKGFycikgPT4gYXJyLm1hcChkZWNvcikuc29ydChzb3J0Zm4pLm1hcCh1bmRlY29yKTtcbiAgICByZXR1cm4gX2FyZ3NvcnQodmFsdWVzKTtcbn1cbi8qKlxuICogUmV0dXJucyB0aGUgaW5kZXhlcyBvZiB0aGUgbW9zdCBkaXZlcnNlIG9iamVjdHMgYWNjb3JkaW5nIHRvIHRoZSBkaXN0IGZ1bmN0aW9uXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIHRvdGFsIG51bWJlciBvZiBvYmplY3RzXG4gKiBAcGFyYW0ge251bWJlcn0gbiBudW1iZXIgb2YgZGl2ZXJzZSBlbGVtZW50cyB0byBmaW5kXG4gKiBAcGFyYW0geyhpMTogbnVtYmVyLCBpMjogbnVtYmVyKSA9PiBudW1iZXJ9IGRpc3QgYSBmdW5jdGlvbiB3aGljaCBjYWxjdWxhdGVzIGRpc3RhbmNlIGJldHdlZW5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0d28gb2JqZWN0cyB1c2luZyB0aGVpciBpbmRleGVzXG4gKiBAcmV0dXJucyB7bnVtYmVyW119IFRoZSBpbmRleGVzIG9mIHRoZSBtb3N0IGRpdmVyc2Ugb2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGl2ZXJzZVN1YnNldChsZW5ndGgsIG4sIGRpc3QpIHtcbiAgICBmdW5jdGlvbiBtYXhCeSh2YWx1ZXMsIG9yZGVyQnkpIHtcbiAgICAgICAgbGV0IG1heFZhbHVlID0gbnVsbDtcbiAgICAgICAgbGV0IG1heE9yZGVyQnkgPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50T3JkZXJCeSA9IG9yZGVyQnkoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAobWF4T3JkZXJCeSA9PSBudWxsIHx8IGVsZW1lbnRPcmRlckJ5ID4gbWF4T3JkZXJCeSkge1xuICAgICAgICAgICAgICAgIG1heFZhbHVlID0gZWxlbWVudDtcbiAgICAgICAgICAgICAgICBtYXhPcmRlckJ5ID0gZWxlbWVudE9yZGVyQnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1heFZhbHVlO1xuICAgIH1cbiAgICBjb25zdCBzdWJzZXQgPSBbcmFuZG9tSW50KGxlbmd0aCAtIDEpXTtcbiAgICBjb25zdCBjb21wbGVtZW50ID0gbmV3IFNldCgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHtcbiAgICAgICAgaWYgKCFzdWJzZXQuaW5jbHVkZXMoaSkpXG4gICAgICAgICAgICBjb21wbGVtZW50LmFkZChpKTtcbiAgICB9XG4gICAgd2hpbGUgKHN1YnNldC5sZW5ndGggPCBuKSB7XG4gICAgICAgIGNvbnN0IGlkeCA9IG1heEJ5KGNvbXBsZW1lbnQudmFsdWVzKCksIChpKSA9PiBNYXRoLm1pbi5hcHBseShNYXRoLCBzdWJzZXQubWFwKGZ1bmN0aW9uICh2YWwsIGluZGV4KSB7XG4gICAgICAgICAgICByZXR1cm4gZGlzdChpLCB2YWwpO1xuICAgICAgICB9KSkpO1xuICAgICAgICBpZiAoaWR4KSB7XG4gICAgICAgICAgICBzdWJzZXQucHVzaChpZHgpO1xuICAgICAgICAgICAgY29tcGxlbWVudC5kZWxldGUoaWR4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3Vic2V0O1xufVxuLyoqXG4gKiBSZXR1cm5zIG5vcm1hbGl6ZWQgdmVjdG9yXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gZGF0YSBudW1lcmljYWwgYXJyYXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZShkYXRhKSB7XG4gICAgbGV0IG1lYW4gPSAwO1xuICAgIGxldCBzdGQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgbWVhbiArPSBkYXRhW2ldO1xuICAgIG1lYW4gLz0gZGF0YS5sZW5ndGg7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBzdGQgKz0gKGRhdGFbaV0gLSBtZWFuKSAqIChkYXRhW2ldIC0gbWVhbik7XG4gICAgc3RkID0gTWF0aC5zcXJ0KHN0ZCAvIGRhdGEubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIGRhdGFbaV0gPSAoZGF0YVtpXSAtIG1lYW4pIC8gc3RkO1xuICAgIHJldHVybiBkYXRhO1xufVxuLyoqXG4gKiBGaW5kcyBzZXQgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBsaXN0cy5cbiAqIEBwYXJhbSB7YW55W119IGEgVGhlIGZpcnN0IGxpc3QuXG4gKiBAcGFyYW0ge2FueVtdfSBiIFRoZSBzZWNvbmQgbGlzdC5cbiAqIEByZXR1cm4ge2FueVtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0RGlmZmVyZW5jZShhLCBiKSB7XG4gICAgY29uc3QgYlNldCA9IG5ldyBTZXQoYik7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChhLmZpbHRlcigoeCkgPT4gIWJTZXQuaGFzKHgpKSkudmFsdWVzKCkpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZG1WamRHOXlMVzl3WlhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjJaV04wYjNJdGIzQmxjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUVZNc1RVRkJUU3hGUVVGMVF5eE5RVUZOTEhGQ1FVRnhRaXhEUVVGRE8wRkJRM3BHTEU5QlFVOHNSVUZCUXl4WFFVRlhMRVZCUVVVc1UwRkJVeXhGUVVGRExFMUJRVTBzVlVGQlZTeERRVUZETzBGQlJXaEVPenM3T3pzN08wZEJUMGM3UVVGRFNDeE5RVUZOTEZWQlFWVXNUVUZCVFN4RFFVRkRMRmxCUVhGQ0xFdEJRVXNzUlVGQlJTeFZRVUZyUWl4clFrRkJhMEk3U1VGRGNrWXNTVUZCU1N4RFFVRkRMRk5CUVZNN1VVRkRXaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMEZCUXpkQ0xFTkJRVU03UVVGRlJEczdPenM3T3pzN1IwRlJSenRCUVVOSUxGTkJRVk1zWlVGQlpTeERRVUZETEZWQlFXdENMRVZCUVVVc1ZVRkJhMElzUlVGQlJTeFBRVUZsTEVOQlFVTTdTVUZETDBVc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRU5CUVVNc1NVRkJTU3hOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42Uml4RFFVRkRPMEZCUlVRN096czdPenM3UjBGUFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4bFFVRmxMRU5CUVVNc1RVRkJZenRKUVVNMVF5eFBRVUZQTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM1pETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEzUkdMRU5CUVVNN1FVRkZSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hUUVVGVExFTkJRVU1zUTBGQlV5eEZRVUZGTEVOQlFWTXNSVUZCUlN4aFFVRnhRaXhEUVVGRE8wbEJRM0JGTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRmVFSXNUVUZCVFN4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTERoQ1FVRTRRaXhEUVVGRExFTkJRVU03U1VGRk0wUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVjBReXhQUVVGUExFdEJRVXNzUTBGQlF6dEJRVU5tTEVOQlFVTTdRVUZGUkRzN096czdSMEZMUnp0QlFVTklMRk5CUVZNc1VVRkJVU3hEUVVGRExFTkJRVk03U1VGRGVrSXNTVUZCU1N4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSV1FzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZhRUlzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRPMEZCUlVRN096czdPMGRCUzBjN1FVRkRTQ3hUUVVGVExGbEJRVmtzUTBGQlF5eERRVUZUTzBsQlF6ZENMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEZUVJc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkZha01zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlhwQ0xFOUJRVThzUzBGQlN5eERRVUZETzBGQlEyWXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3haUVVGWkxFTkJRVU1zUTBGQlV6dEpRVU53UXl4SlFVRkpMRTFCUVUwc1IwRkJWeXhEUVVGRExFTkJRVU03U1VGRGRrSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRk8xRkJRM1pETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoQ0xFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNelFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2RDUVVGblFpeERRVUZETEVWQlFWVXNSVUZCUlN4RlFVRlZPMGxCUTNKRUxFbEJRVWtzUlVGQlJTeERRVUZETEUxQlFVMHNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUVHRSUVVONFFpeE5RVUZOTEV0QlFVc3NRMEZCUXl3NFEwRkJPRU1zUTBGQlF5eERRVUZETzBsQlF6bEVMRWxCUVVrc1NVRkJTU3hIUVVGWExFTkJRVU1zUTBGQlF6dEpRVU55UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGWExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGRGVFTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRlRUlzVDBGQlR5eEpRVUZKTEVOQlFVTTdRVUZEWkN4RFFVRkRPMEZCUlVRN096czdPenM3TzBkQlVVYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1owSkJRV2RDTEVOQlFVTXNWVUZCYTBJc1JVRkJSU3hWUVVGclFpeEZRVUZGTEZGQlFXZENMRVZCUVVVN1NVRkRla1lzVFVGQlRTeE5RVUZOTEVkQlFVY3NaVUZCWlN4RFFVRkRMRlZCUVZVc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dEpRVVYyUkN4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8xRkJRMjVETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRPMWxCUTJwRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdTMEZEY2tNN1NVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRPMEZCUlVRN096czdPenM3UjBGUFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN3d1FrRkJNRUlzUTBGQlF5eERRVUZUTEVWQlFVVXNRMEZCVXp0SlFVTTNSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnNReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRjRU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wRkJReTlDTEVOQlFVTTdRVUZGUkRzN096czdPenRIUVU5SE8wRkJRMGdzVFVGQlRTeFZRVUZWTEd0Q1FVRnJRaXhEUVVGRExFbEJRV0VzUlVGQlJTeFJRVUYzUWp0SlFVTjRSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMGxCUXpOQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEdWQlFXVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJXeEVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3V1VGRGJrTXNUVUZCVFN4RFFVRkRMRWRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFJpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFRRVU5xUXp0TFFVTkdPMGxCUTBRc1QwRkJUeXhOUVVGTkxFTkJRVU03UVVGRGFFSXNRMEZCUXp0QlFVVkVMR3RHUVVGclJqdEJRVU5zUml4TlFVRk5MRlZCUVZVc1VVRkJVU3hEUVVGRExFdEJRV0VzUlVGQlJTeEhRVUZYTEVWQlFVVXNXVUZCV1N4SFFVRkhMRXRCUVVzN1NVRkRka1VzVFVGQlRTeE5RVUZOTEVkQlFVY3NSMEZCUnl4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU53UkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0SlFVVjBReXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1RVRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF6dFJRVU0zUWl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVVjRRaXhQUVVGUExFMUJRVTBzUTBGQlF6dEJRVU5vUWl4RFFVRkRPMEZCUlVRN096czdPenM3UjBGUFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4UFFVRlBMRU5CUVVNc1RVRkJZU3hGUVVGRkxFOUJRVThzUjBGQlJ5eExRVUZMTzBsQlEzQkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGUkxFVkJRVVVzUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOMlJ5eE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVUwc1JVRkJSU3hEUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zY1VKQlFYRkNPMGxCUTJ4RkxFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4dFFrRkJiVUk3U1VGRGRrUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhIUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU14UlN4UFFVRlBMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU14UWl4RFFVRkRPMEZCUlVRN096czdPenM3UjBGUFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eE5RVUZqTEVWQlFVVXNRMEZCVXl4RlFVRkZMRWxCUVhkRE8wbEJRMnhITEZOQlFWTXNTMEZCU3l4RFFVRkRMRTFCUVdkRExFVkJRVVVzVDBGQk9FSTdVVUZETjBVc1NVRkJTU3hSUVVGUkxFZEJRVWNzU1VGQlNTeERRVUZETzFGQlEzQkNMRWxCUVVrc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF6dFJRVVYwUWl4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxFMUJRVTBzUlVGQlJUdFpRVU0xUWl4TlFVRk5MR05CUVdNc1IwRkJSeXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdXVUZEZUVNc1NVRkJTU3hWUVVGVkxFbEJRVWtzU1VGQlNTeEpRVUZKTEdOQlFXTXNSMEZCUnl4VlFVRlZMRVZCUVVVN1owSkJRM0pFTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNN1owSkJRMjVDTEZWQlFWVXNSMEZCUnl4alFVRmpMRU5CUVVNN1lVRkROMEk3VTBGRFJqdFJRVU5FTEU5QlFVOHNVVUZCVVN4RFFVRkRPMGxCUTJ4Q0xFTkJRVU03U1VGRlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJReXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUlRkQ0xFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdVVUZETDBJc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKQ0xGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1MwRkRja0k3U1VGRlJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8xRkJRM2hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRXRCUVVzc1EwRkRaaXhWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUU0UWl4RlFVTXZReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJVeXhIUVVGSExFVkJRVVVzUzBGQlN6dFpRVU40UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlExQXNTVUZCU1N4SFFVRkhMRVZCUVVVN1dVRkRVQ3hOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJwQ0xGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRlRUk3UzBGRFJqdEpRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMEZCUTJoQ0xFTkJRVU03UVVGRlJEczdPMGRCUjBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVTBGQlV5eERRVUZETEVsQlFWazdTVUZEY0VNc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlEySXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJSVm9zUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZiRUlzU1VGQlNTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkZjRUlzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRPMUZCUTJ4RExFZEJRVWNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVVUzUXl4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJSVzVETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8wbEJSVzVETEU5QlFVOHNTVUZCU1N4RFFVRkRPMEZCUTJRc1EwRkJRenRCUVVWRU96czdPenRIUVV0SE8wRkJRMGdzVFVGQlRTeFZRVUZWTEdGQlFXRXNRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVVHRKUVVNNVF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU40UWl4UFFVRlBMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pGTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMDFoZEhKcGVDd2dWbVZqZEc5eUxDQkRiMjl5WkdsdVlYUmxjeXdnVm1WamRHOXljeXdnUkdsemRHRnVZMlZOWlhSeWFXTjlJR1p5YjIwZ0p5NHZkSGx3WlMxa1pXTnNZWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHR5WVc1a2IyMUdiRzloZEN3Z2NtRnVaRzl0U1c1MGZTQm1jbTl0SUNjdUwzSmhibVJ2YlNjN1hHNWNiaThxS2x4dUlDb2dRWE56WlhKMGN5QmhJR052Ym1ScGRHbHZiaUJpZVNCMGFISnZkMmx1WnlCaGJpQkZjbkp2Y2k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UySnZiMnhsWVc1OUlGdGpiMjVrYVhScGIyNDlabUZzYzJWZElFTnZibVJwZEdsdmJpQjBieUJoYzNObGNuUXVYRzRnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzIxbGMzTmhaMlU5SjBGemMyVnlkR2x2YmlCbGNuSnZjaTRuWFNCTlpYTnpZV2RsSUhSdklHOTFkSEIxZEM1Y2JpQXFJRUIwYUhKdmQzTWdlMFZ5Y205eWZWeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWVhOelpYSjBLR052Ym1ScGRHbHZiam9nWW05dmJHVmhiaUE5SUdaaGJITmxMQ0J0WlhOellXZGxPaUJ6ZEhKcGJtY2dQU0FuUVhOelpYSjBhVzl1SUdWeWNtOXlMaWNwSUh0Y2JpQWdhV1lnS0NGamIyNWthWFJwYjI0cFhHNGdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ2JtVjNJSFIzYnkxa2FXMWxibk5wYjI1aGJDQmhjbkpoZVNCaGJtUWdabWxzYkhNZ2FYUWdkMmwwYUNCMGFHVWdkbUZzZFdVZ1oybDJaVzR1WEc0Z0tseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1JwYldWdWMybHZiakVnVkdobElHWnBjbk4wSUdScGJXVnVjMmx2YmlCdlppQjBhR1VnWTI5dmNtUnBibUYwWlhNZ0tHNTFiV0psY2lCdlppQnliM2R6S1M1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmthVzFsYm5OcGIyNHlJRlJvWlNCelpXTnZibVFnWkdsdFpXNXphVzl1SUc5bUlIUm9aU0JqYjI5eVpHbHVZWFJsY3lBb2JuVnRZbVZ5SUc5bUlHTnZiSFZ0Ym5NcExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnRtYVd4c1BUQmRJRUVnZG1Gc2RXVWdkRzhnWm1sc2JDQjBhR1VnWTI5dmNtUnBibUYwWlhNZ2QybDBhQzVjYmlBcUlFQnlaWFIxY200Z2UwTnZiM0prYVc1aGRHVnpmU0JCSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0JtYVd4c1pXUWdkMmwwYUNCMGFHVWdkbUZzZFdVZ1oybDJaVzR1WEc0Z0tpQkFkRzlrYnlCTmFXZG9kQ0JpWlNCemJHOTNJSE5wYm1ObElIVnpaV1FnUVhKeVlYa3ViV0Z3TGlCUWNtOWlZV0pzZVNCdVpXVmtjeUJ3WlhKbWIzSnRZVzVqWlNCeVpYWnBjMmx2Ymk1Y2JpQXFMMXh1Wm5WdVkzUnBiMjRnYVc1cGRFTnZiM0prYVc1aGRHVnpLR1JwYldWdWMybHZiakU2SUc1MWJXSmxjaXdnWkdsdFpXNXphVzl1TWpvZ2JuVnRZbVZ5TENCbWFXeHNPaUJ1ZFcxaVpYSWdQU0F3S1RvZ1EyOXZjbVJwYm1GMFpYTWdlMXh1SUNCeVpYUjFjbTRnYm1WM0lFRnljbUY1S0dScGJXVnVjMmx2YmpFcExtWnBiR3dvWm1sc2JDa3ViV0Z3S0NncElEMCtJQ2h1WlhjZ1ZtVmpkRzl5S0dScGJXVnVjMmx2YmpJcExtWnBiR3dvWm1sc2JDa3BLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQlVjbUZ1YzNCdmMyVWdiV0YwY21sNExseHVJQ3BjYmlBcUlFQmxlSEJ2Y25SY2JpQXFJRUJ3WVhKaGJTQjdUV0YwY21sNGZTQnRZWFJ5YVhnZ1ZHaGxJRzFoZEhKcGVDQjBieUJpWlNCMGNtRnVjM0J2YzJWa0xseHVJQ29nUUhKbGRIVnliaUI3VFdGMGNtbDRmU0JVY21GdWMzQnZjMlZrSUcxaGRISnBlQzVjYmlBcUlFQjBiMlJ2SUUxcFoyaDBJR0psSUhOc2IzY2djMmx1WTJVZ2RYTmxaQ0JCY25KaGVTNXRZWEF1SUZCeWIySmhZbXg1SUc1bFpXUnpJSEJsY21admNtMWhibU5sSUhKbGRtbHphVzl1TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkSEpoYm5Od2IzTmxUV0YwY21sNEtHMWhkSEpwZURvZ1RXRjBjbWw0S1RvZ1RXRjBjbWw0SUh0Y2JpQWdjbVYwZFhKdUlHNWxkeUJCY25KaGVTaHRZWFJ5YVhoYk1GMHViR1Z1WjNSb0tTNW1hV3hzS0RBcFhHNGdJQ0FnTG0xaGNDZ29YeXdnYVNrZ1BUNGdLRzVsZHlCV1pXTjBiM0lvYldGMGNtbDRMbXhsYm1kMGFDa3VabWxzYkNnd0tTNXRZWEFvS0Y4c0lHb3BJRDArSUNodFlYUnlhWGhiYWwxYmFWMHBLU2twTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUZrWkhNZ2RIZHZJSFpsWTNSdmNuTWdkMmwwYUNCMGFHVWdjMlZqYjI1a0lHOXVaU0IwYnlCaVpTQnRkV3gwYVhCc2FXVmtJR0o1SUhSb1pTQm5hWFpsYmlCeVlYUnBieTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnY0NCVWFHVWdabWx5YzNRZ2RtVmpkRzl5SUhSdklHRmtaQzVjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5ZlNCeElGUm9aU0J6WldOdmJtUWdkbVZqZEc5eUlIUnZJR0ZrWkM1Y2JpQXFJRUJ3WVhKaGJTQjdiblZ0WW1WeWZTQmJiWFZzZEdsd2JHbGxjajB4WFNCQklHMTFiSFJwY0d4cFpYSWdkRzhnWW1VZ2RYTmxaQ0JpWldadmNtVWdkR2hsSUhObFkyOXVaQ0IyWldOMGIzSWdhWE1nWVdSa1pXUXVYRzRnS2lCQWNtVjBkWEp1SUh0V1pXTjBiM0o5SUU1bGR5QjJaV04wYjNJZ1kyOXVkR0ZwYm1Wa0lIUm9aU0J5WlhOMWJIUWdiMllnYjNCbGNtRjBhVzl1SUhBcmJYVnNkR2x3YkdsbGNpcHhMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2RtVmpkRzl5UVdSa0tIQTZJRlpsWTNSdmNpd2djVG9nVm1WamRHOXlMQ0J0ZFd4MGFYQnNhV1Z5T2lCdWRXMWlaWElnUFNBeEtUb2dWbVZqZEc5eUlIdGNiaUFnWTI5dWMzUWdia2wwWlcxeklEMGdjQzVzWlc1bmRHZzdYRzVjYmlBZ1lYTnpaWEowS0c1SmRHVnRjeUE5UFNCeExteGxibWQwYUN3Z0oxWmxZM1J2Y2lCc1pXNW5kR2h6SUdSdklHNXZkQ0J0WVhSamFDNG5LVHRjYmx4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUc1bGR5QldaV04wYjNJb2JrbDBaVzF6S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhBdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2RHOTBZV3hiYVYwZ1BTQndXMmxkSUNzZ2JYVnNkR2x3YkdsbGNpQXFJSEZiYVYwN1hHNWNiaUFnY21WMGRYSnVJSFJ2ZEdGc08xeHVmVnh1WEc0dktpcGNiaUFxSUZOMWJYTWdkR2hsSUhabFkzUnZjaWR6SUdsMFpXMXpMbHh1SUNwY2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQjJJRlJvWlNCMlpXTjBiM0lnZEc4Z1ltVWdjM1Z0YldWa0xseHVJQ29nUUhKbGRIVnliaUI3Ym5WdFltVnlmU0JVYUdVZ2RtVmpkRzl5SjNNZ2FYUmxiWE1nYzNWdExseHVJQ292WEc1bWRXNWpkR2x2YmlCcGRHVnRjMU4xYlNoMk9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JzWlhRZ2RHOTBZV3dnUFNBd08xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RpNXNaVzVuZEdnN0lDc3JhU2xjYmlBZ0lDQjBiM1JoYkNBclBTQjJXMmxkTzF4dVhHNGdJSEpsZEhWeWJpQjBiM1JoYkR0Y2JuMWNibHh1THlvcVhHNGdLaUJUZFhGaGNtVnpJSFJvWlNCMlpXTjBiM0luY3lCcGRHVnRjeTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdkaUJVYUdVZ2RtVmpkRzl5SUhSdklITnhkV0Z5WlM1Y2JpQXFJRUJ5WlhSMWNtNGdlMVpsWTNSdmNuMGdRU0J1WlhjZ2RtVmpkRzl5SUdOdmJuUmhhVzVwYm1jZ2RHaGxJRzl5YVdkcGJtRnNKM01nYVhSbGJYTWdjM0YxWVhKbFpDNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2RtVmpkRzl5VTNGMVlYSmxLSFk2SUZabFkzUnZjaWs2SUZabFkzUnZjaUI3WEc0Z0lHTnZibk4wSUc1SmRHVnRjeUE5SUhZdWJHVnVaM1JvTzF4dUlDQmpiMjV6ZENCMGIzUmhiQ0E5SUc1bGR5QldaV04wYjNJb2JrbDBaVzF6S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhZdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2RHOTBZV3hiYVYwZ1BTQjJXMmxkSUNvZ2RsdHBYVHRjYmx4dUlDQnlaWFIxY200Z2RHOTBZV3c3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjJaV04wYjNKTVpXNW5kR2dvZGpvZ1ZtVmpkRzl5S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdiR1YwSUhOeGNsTjFiVG9nYm5WdFltVnlJRDBnTUR0Y2JpQWdabTl5SUNoc1pYUWdhVG9nYm5WdFltVnlJRDBnTURzZ2FTQThJSFl1YkdWdVozUm9PeUJwS3lzcFhHNGdJQ0FnYzNGeVUzVnRJQ3M5SUhaYmFWMGdLaUIyVzJsZE8xeHVJQ0J5WlhSMWNtNGdUV0YwYUM1emNYSjBLSE54Y2xOMWJTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCMlpXTjBiM0pFYjNSUWNtOWtkV04wS0hZeE9pQldaV04wYjNJc0lIWXlPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCcFppQW9kakV1YkdWdVozUm9JQ0U5SUhZeUxteGxibWQwYUNsY2JpQWdJQ0IwYUhKdmR5QkZjbkp2Y2lnblZHaGxJR1JwYldWdWMybHZibUZzYVhSNUlHOW1JSFJvWlNCMlpXTjBiM0p6SUcxMWMzUWdiV0YwWTJnbktUdGNiaUFnYkdWMElIQnliMlE2SUc1MWJXSmxjaUE5SURBN1hHNGdJR1p2Y2lBb2JHVjBJR2s2SUc1MWJXSmxjaUE5SURBN0lHa2dQQ0IyTVM1c1pXNW5kR2c3SUdrckt5bGNiaUFnSUNCd2NtOWtJQ3M5SUhZeFcybGRJQ29nZGpKYmFWMDdYRzRnSUhKbGRIVnliaUJ3Y205a08xeHVmVnh1WEc0dktpcGNiaUFxSUVOeVpXRjBaWE1nWVNCdFlYUnlhWGdnWm1sc2JHVmtJSGRwZEdnZ2NtRnVaRzl0SUdac2IyRjBhVzVuSUhCdmFXNTBJSFpoYkhWbGN5NWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdaR2x0Wlc1emFXOXVNU0JVYUdVZ1ptbHljM1FnWkdsdFpXNXphVzl1SUc5bUlIUm9aU0J0WVhSeWFYZ3VYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TWlCVWFHVWdjMlZqYjI1a0lHUnBiV1Z1YzJsdmJpQnZaaUIwYUdVZ2JXRjBjbWw0TGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHpZMkZzWlQweExsMGdUV0Y0SUhaaGJIVmxJR2RwZG1WdUlHSjVJSEpoYm1SdmJTQm5aVzVsY21GMGIzSXVYRzRnS2lCQWNtVjBkWEp1SUh0TllYUnlhWGg5SUVFZ2JtVjNJRzFoZEhKcGVDQm1hV3hzWldRZ2QybDBhQ0J5WVc1a2IyMGdabXh2WVhScGJtY2djRzlwYm5RZ0lIWmhiSFZsY3k1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1pwYkd4U1lXNWtiMjFOWVhSeWFYZ29aR2x0Wlc1emFXOXVNVG9nYm5WdFltVnlMQ0JrYVcxbGJuTnBiMjR5T2lCdWRXMWlaWElzSUhOallXeGxPaUJ1ZFcxaVpYSWdQU0F4TGlrNklFMWhkSEpwZUNCN1hHNGdJR052Ym5OMElHMWhkSEpwZUNBOUlHbHVhWFJEYjI5eVpHbHVZWFJsY3loa2FXMWxibk5wYjI0eExDQmthVzFsYm5OcGIyNHlLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JwYldWdWMybHZiakU3SUNzcmFTa2dlMXh1SUNBZ0lHWnZjaUFvYkdWMElHb2dQU0F3T3lCcUlEd2daR2x0Wlc1emFXOXVNanNnS3l0cUtWeHVJQ0FnSUNBZ2JXRjBjbWw0VzJsZFcycGRJRDBnY21GdVpHOXRSbXh2WVhRb2MyTmhiR1VwTzF4dUlDQjlYRzRnSUhKbGRIVnliaUJ0WVhSeWFYZzdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1EyRnNZM1ZzWVhSbGN5QkZkV05zYVdSbFlXNGdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQjBkMjhnZG1WamRHOXljeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnY0NCVWFHVWdabWx5YzNRZ2RtVmpkRzl5TGx4dUlDb2dRSEJoY21GdElIdFdaV04wYjNKOUlIRWdWR2hsSUhObFkyOXVaQ0IyWldOMGIzSXVYRzRnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEo5SUVWMVkyeHBaR1ZoYmlCa2FYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pTQm5hWFpsYmlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMkZzWTNWc1lYUmxSWFZqYkdsa1pXRnVSR2x6ZEdGdVkyVW9jRG9nVm1WamRHOXlMQ0J4T2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQmpiMjV6ZENCa2FXWm1JRDBnZG1WamRHOXlRV1JrS0hBc0lIRXNJQzB4S1R0Y2JpQWdZMjl1YzNRZ2MzRmthV1ptSUQwZ2RtVmpkRzl5VTNGMVlYSmxLR1JwWm1ZcE8xeHVJQ0JqYjI1emRDQnpjV1JwWm1aVGRXMXRJRDBnYVhSbGJYTlRkVzBvYzNGa2FXWm1LVHRjYmlBZ2NtVjBkWEp1SUUxaGRHZ3VjM0Z5ZENoemNXUnBabVpUZFcxdEtUdGNibjFjYmx4dUx5b3FYRzRnS2lCRGNtVmhkR1Z6SUdFZ1pHbHpkR0Z1WTJVZ2JXRjBjbWw0SUhWemFXNW5JR0VnWTNWemRHOXRJR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXljMzBnWkdGMFlTQkpibkIxZENCMlpXTjBiM0p6SUhSdklHTmhiR04xYkdGMFpTQmthWE4wWVc1alpYTXVYRzRnS2lCQWNHRnlZVzBnZTBScGMzUmhibU5sVFdWMGNtbGpmU0JrYVhOMFlXNWpaU0JEZFhOMGIyMGdaR2x6ZEdGdVkyVWdablZ1WTNScGIyNHVYRzRnS2lCQWNtVjBkWEp1SUh0TllYUnlhWGg5SUVOaGJHTjFiR0YwWldRZ1kzVnpkRzl0SUdScGMzUmhibU5sSUcxaGRISnBlQzVjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHTmhiR05FYVhOMFlXNWpaVTFoZEhKcGVDaGtZWFJoT2lCV1pXTjBiM0p6TENCa2FYTjBZVzVqWlRvZ1JHbHpkR0Z1WTJWTlpYUnlhV01wT2lCTllYUnlhWGdnZTF4dUlDQmpiMjV6ZENCdVNYUmxiWE1nUFNCa1lYUmhMbXhsYm1kMGFEdGNiaUFnWTI5dWMzUWdiV0YwY21sNElEMGdhVzVwZEVOdmIzSmthVzVoZEdWektHNUpkR1Z0Y3l3Z2JrbDBaVzF6TENBd0tUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHNUpkR1Z0Y3pzZ0t5dHBLU0I3WEc0Z0lDQWdabTl5SUNoc1pYUWdhaUE5SUdrZ0t5QXhPeUJxSUR3Z2JrbDBaVzF6T3lBcksyb3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHUTZJRzUxYldKbGNpQTlJQ2hrWVhSaFcybGRJRDA5SUc1MWJHd3BJSHg4SUNoa1lYUmhXMnBkSUQwOUlHNTFiR3dwSUQ4Z01DQTZJR1JwYzNSaGJtTmxLR1JoZEdGYmFWMHNJR1JoZEdGYmFsMHBPMXh1SUNBZ0lDQWdiV0YwY21sNFcybGRXMnBkSUQwZ2JXRjBjbWw0VzJwZFcybGRJRDBnWkR0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJRzFoZEhKcGVEdGNibjFjYmx4dUx5b3FJRWRsYm1WeVlYUmxjeUJoY25KaGVTQm1jbTl0SUdFZ2NtRnVaMlVnVzJKbFoybHVPeUJsYm1SZElHOXlJRnRpWldkcGJqc2daVzVrS1NCcFppQmxibVJGZUdOc2RYTnBkbVV1SUNvcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHZGxibEpoYm1kbEtHSmxaMmx1T2lCdWRXMWlaWElzSUdWdVpEb2diblZ0WW1WeUxDQmxibVJGZUdOc2RYTnBkbVVnUFNCbVlXeHpaU2s2SUVsdWRETXlRWEp5WVhrZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQmxibVFnTFNCaVpXZHBiaUFySUNobGJtUkZlR05zZFhOcGRtVWdQeUF3SURvZ01TazdYRzRnSUdOdmJuTjBJSE5sY21sbGN5QTlJRzVsZHlCSmJuUXpNa0Z5Y21GNUtHNUpkR1Z0Y3lrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVNYUmxiWE03SUNzcmFTbGNiaUFnSUNCelpYSnBaWE5iYVYwZ1BTQmlaV2RwYmlBcklHazdYRzVjYmlBZ2NtVjBkWEp1SUhObGNtbGxjenRjYm4xY2JseHVMeW9xWEc0Z0tpQlNaWFIxY201eklHOXlaR1Z5SUc5bUlIWmhiSFZsY3lCaGN5QnBaaUIwYUdWNUlHRnlaU0J6YjNKMFpXUXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHRoYm5sYlhYMGdkbUZzZFdWeklFbHVjSFYwSUdGeWNtRjVMbHh1SUNvZ1FIQmhjbUZ0SUh0aWIyOXNaV0Z1ZlNCYmNtVjJaWEp6WlQxbVlXeHpaVjBnVjJobGRHaGxjaUIwYnlCeVpYUjFjbTRnY21WMlpYSnpaV1FnYjNKa1pYSXVYRzRnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEpiWFgwZ1ZHaGxJRzl5WkdWeUlHTnZiWEIxZEdWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWVhKblUyOXlkQ2gyWVd4MVpYTTZJR0Z1ZVZ0ZExDQnlaWFpsY25ObElEMGdabUZzYzJVcE9pQnVkVzFpWlhKYlhTQjdYRzRnSUdOdmJuTjBJSE52Y25SbWJpQTlJSEpsZG1WeWMyVWdQeUFvWVRvZ1lXNTVXMTBzSUdJNklHRnVlVnRkS1NBOVBpQW9ZbHN3WFNBdElHRmJNRjBwSURvZ0tHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTa2dQVDRnS0dGYk1GMGdMU0JpV3pCZEtUdGNiaUFnWTI5dWMzUWdaR1ZqYjNJZ1BTQW9kam9nWVc1NUxDQnBPaUJ1ZFcxaVpYSXBJRDArSUZ0MkxDQnBYVHNnTHk4Z2MyVjBJR2x1WkdWNElIUnZJSFpoYkhWbFhHNGdJR052Ym5OMElIVnVaR1ZqYjNJZ1BTQW9ZVG9nWVc1NVcxMHBJRDArSUdGYk1WMDdJQzh2SUd4bFlYWmxJRzl1YkhrZ2FXNWtaWGhjYmlBZ1kyOXVjM1FnWDJGeVozTnZjblFnUFNBb1lYSnlPaUJoYm5sYlhTa2dQVDRnWVhKeUxtMWhjQ2hrWldOdmNpa3VjMjl5ZENoemIzSjBabTRwTG0xaGNDaDFibVJsWTI5eUtUdGNiaUFnY21WMGRYSnVJRjloY21kemIzSjBLSFpoYkhWbGN5azdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCMGFHVWdhVzVrWlhobGN5QnZaaUIwYUdVZ2JXOXpkQ0JrYVhabGNuTmxJRzlpYW1WamRITWdZV05qYjNKa2FXNW5JSFJ2SUhSb1pTQmthWE4wSUdaMWJtTjBhVzl1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JHVnVaM1JvSUhSdmRHRnNJRzUxYldKbGNpQnZaaUJ2WW1wbFkzUnpYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYmlCdWRXMWlaWElnYjJZZ1pHbDJaWEp6WlNCbGJHVnRaVzUwY3lCMGJ5Qm1hVzVrWEc0Z0tpQkFjR0Z5WVcwZ2V5aHBNVG9nYm5WdFltVnlMQ0JwTWpvZ2JuVnRZbVZ5S1NBOVBpQnVkVzFpWlhKOUlHUnBjM1FnWVNCbWRXNWpkR2x2YmlCM2FHbGphQ0JqWVd4amRXeGhkR1Z6SUdScGMzUmhibU5sSUdKbGRIZGxaVzVjYmlBcUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwZDI4Z2IySnFaV04wY3lCMWMybHVaeUIwYUdWcGNpQnBibVJsZUdWelhHNGdLaUJBY21WMGRYSnVjeUI3Ym5WdFltVnlXMTE5SUZSb1pTQnBibVJsZUdWeklHOW1JSFJvWlNCdGIzTjBJR1JwZG1WeWMyVWdiMkpxWldOMGMxeHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFJHbDJaWEp6WlZOMVluTmxkQ2hzWlc1bmRHZzZJRzUxYldKbGNpd2diam9nYm5WdFltVnlMQ0JrYVhOME9pQW9hVEU2SUc1MWJXSmxjaXdnYVRJNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtUb2diblZ0WW1WeVcxMGdlMXh1SUNCbWRXNWpkR2x2YmlCdFlYaENlU2gyWVd4MVpYTTZJRWwwWlhKaFlteGxTWFJsY21GMGIzSThiblZ0WW1WeVBpd2diM0prWlhKQ2VUb2dLR2s2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1NCN1hHNGdJQ0FnYkdWMElHMWhlRlpoYkhWbElEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ2JXRjRUM0prWlhKQ2VTQTlJRzUxYkd3N1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHVnNaVzFsYm5RZ2IyWWdkbUZzZFdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwVDNKa1pYSkNlU0E5SUc5eVpHVnlRbmtvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0JwWmlBb2JXRjRUM0prWlhKQ2VTQTlQU0J1ZFd4c0lIeDhJR1ZzWlcxbGJuUlBjbVJsY2tKNUlENGdiV0Y0VDNKa1pYSkNlU2tnZTF4dUlDQWdJQ0FnSUNCdFlYaFdZV3gxWlNBOUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHMWhlRTl5WkdWeVFua2dQU0JsYkdWdFpXNTBUM0prWlhKQ2VUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzFoZUZaaGJIVmxPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjM1ZpYzJWMElEMGdXM0poYm1SdmJVbHVkQ2hzWlc1bmRHZ2dMU0F4S1YwN1hHNGdJR052Ym5OMElHTnZiWEJzWlcxbGJuUWdQU0J1WlhjZ1UyVjBLQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUdsbUlDZ2hjM1ZpYzJWMExtbHVZMngxWkdWektHa3BLVnh1SUNBZ0lDQWdZMjl0Y0d4bGJXVnVkQzVoWkdRb2FTazdYRzRnSUgxY2JseHVJQ0IzYUdsc1pTQW9jM1ZpYzJWMExteGxibWQwYUNBOElHNHBJSHRjYmlBZ0lDQmpiMjV6ZENCcFpIZ2dQU0J0WVhoQ2VTaGNiaUFnSUNBZ0lHTnZiWEJzWlcxbGJuUXVkbUZzZFdWektDa2dZWE1nU1hSbGNtRmliR1ZKZEdWeVlYUnZjanh1ZFcxaVpYSStMRnh1SUNBZ0lDQWdLR2twSUQwK0lFMWhkR2d1YldsdUxtRndjR3g1S0UxaGRHZ3NJSE4xWW5ObGRDNXRZWEFvWm5WdVkzUnBiMjRvZG1Gc0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHbHpkQ2hwTENCMllXd3BPMXh1SUNBZ0lDQWdmU2twS1R0Y2JpQWdJQ0JwWmlBb2FXUjRLU0I3WEc0Z0lDQWdJQ0J6ZFdKelpYUXVjSFZ6YUNocFpIZ3BPMXh1SUNBZ0lDQWdZMjl0Y0d4bGJXVnVkQzVrWld4bGRHVW9hV1I0S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnY21WMGRYSnVJSE4xWW5ObGREdGNibjFjYmx4dUx5b3FYRzRnS2lCU1pYUjFjbTV6SUc1dmNtMWhiR2w2WldRZ2RtVmpkRzl5WEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ1pHRjBZU0J1ZFcxbGNtbGpZV3dnWVhKeVlYbGNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUc1dmNtMWhiR2w2WlNoa1lYUmhPaUJXWldOMGIzSXBPaUJXWldOMGIzSWdlMXh1SUNCc1pYUWdiV1ZoYmlBOUlEQTdYRzRnSUd4bGRDQnpkR1FnUFNBd08xeHVYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z1pHRjBZUzVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0J0WldGdUlDczlJR1JoZEdGYmFWMDdYRzVjYmlBZ2JXVmhiaUF2UFNCa1lYUmhMbXhsYm1kMGFEdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElHUmhkR0V1YkdWdVozUm9PeUFySzJrcFhHNGdJQ0FnYzNSa0lDczlJQ2hrWVhSaFcybGRJQzBnYldWaGJpa2dLaUFvWkdGMFlWdHBYU0F0SUcxbFlXNHBPMXh1WEc0Z0lITjBaQ0E5SUUxaGRHZ3VjM0Z5ZENoemRHUWdMeUJrWVhSaExteGxibWQwYUNrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCa1lYUmhMbXhsYm1kMGFEc2dLeXRwS1Z4dUlDQWdJR1JoZEdGYmFWMGdQU0FvWkdGMFlWdHBYU0F0SUcxbFlXNHBJQzhnYzNSa08xeHVYRzRnSUhKbGRIVnliaUJrWVhSaE8xeHVmVnh1WEc0dktpcGNiaUFxSUVacGJtUnpJSE5sZENCa2FXWm1aWEpsYm1ObElHSmxkSGRsWlc0Z2RIZHZJR3hwYzNSekxseHVJQ29nUUhCaGNtRnRJSHRoYm5sYlhYMGdZU0JVYUdVZ1ptbHljM1FnYkdsemRDNWNiaUFxSUVCd1lYSmhiU0I3WVc1NVcxMTlJR0lnVkdobElITmxZMjl1WkNCc2FYTjBMbHh1SUNvZ1FISmxkSFZ5YmlCN1lXNTVXMTE5WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnpaWFJFYVdabVpYSmxibU5sS0dFNklHRnVlVnRkTENCaU9pQmhibmxiWFNrNklHRnVlVnRkSUh0Y2JpQWdZMjl1YzNRZ1lsTmxkQ0E5SUc1bGR5QlRaWFFvWWlrN1hHNGdJSEpsZEhWeWJpQkJjbkpoZVM1bWNtOXRLRzVsZHlCVFpYUW9ZUzVtYVd4MFpYSW9LSGdwSUQwK0lDRmlVMlYwTG1oaGN5aDRLU2twTG5aaGJIVmxjeWdwS1R0Y2JuMWNiaUpkZlE9PSIsIihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuICAgIC8vIEhhY2sgdG8gbWFrZSBhbGwgZXhwb3J0cyBvZiB0aGlzIG1vZHVsZSBzaGEyNTYgZnVuY3Rpb24gb2JqZWN0IHByb3BlcnRpZXMuXG4gICAgdmFyIGV4cG9ydHMgPSB7fTtcbiAgICBmYWN0b3J5KGV4cG9ydHMpO1xuICAgIHZhciBzaGEyNTYgPSBleHBvcnRzW1wiZGVmYXVsdFwiXTtcbiAgICBmb3IgKHZhciBrIGluIGV4cG9ydHMpIHtcbiAgICAgICAgc2hhMjU2W2tdID0gZXhwb3J0c1trXTtcbiAgICB9XG4gICAgICAgIFxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gc2hhMjU2O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG4gICAgICAgIGRlZmluZShmdW5jdGlvbigpIHsgcmV0dXJuIHNoYTI1NjsgfSk7IFxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3Quc2hhMjU2ID0gc2hhMjU2O1xuICAgIH1cbn0pKHRoaXMsIGZ1bmN0aW9uKGV4cG9ydHMpIHtcblwidXNlIHN0cmljdFwiO1xuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbi8vIFNIQS0yNTYgKCsgSE1BQyBhbmQgUEJLREYyKSBmb3IgSmF2YVNjcmlwdC5cbi8vXG4vLyBXcml0dGVuIGluIDIwMTQtMjAxNiBieSBEbWl0cnkgQ2hlc3RueWtoLlxuLy8gUHVibGljIGRvbWFpbiwgbm8gd2FycmFudHkuXG4vL1xuLy8gRnVuY3Rpb25zIChhY2NlcHQgYW5kIHJldHVybiBVaW50OEFycmF5cyk6XG4vL1xuLy8gICBzaGEyNTYobWVzc2FnZSkgLT4gaGFzaFxuLy8gICBzaGEyNTYuaG1hYyhrZXksIG1lc3NhZ2UpIC0+IG1hY1xuLy8gICBzaGEyNTYucGJrZGYyKHBhc3N3b3JkLCBzYWx0LCByb3VuZHMsIGRrTGVuKSAtPiBka1xuLy9cbi8vICBDbGFzc2VzOlxuLy9cbi8vICAgbmV3IHNoYTI1Ni5IYXNoKClcbi8vICAgbmV3IHNoYTI1Ni5ITUFDKGtleSlcbi8vXG5leHBvcnRzLmRpZ2VzdExlbmd0aCA9IDMyO1xuZXhwb3J0cy5ibG9ja1NpemUgPSA2NDtcbi8vIFNIQS0yNTYgY29uc3RhbnRzXG52YXIgSyA9IG5ldyBVaW50MzJBcnJheShbXG4gICAgMHg0MjhhMmY5OCwgMHg3MTM3NDQ5MSwgMHhiNWMwZmJjZiwgMHhlOWI1ZGJhNSwgMHgzOTU2YzI1YixcbiAgICAweDU5ZjExMWYxLCAweDkyM2Y4MmE0LCAweGFiMWM1ZWQ1LCAweGQ4MDdhYTk4LCAweDEyODM1YjAxLFxuICAgIDB4MjQzMTg1YmUsIDB4NTUwYzdkYzMsIDB4NzJiZTVkNzQsIDB4ODBkZWIxZmUsIDB4OWJkYzA2YTcsXG4gICAgMHhjMTliZjE3NCwgMHhlNDliNjljMSwgMHhlZmJlNDc4NiwgMHgwZmMxOWRjNiwgMHgyNDBjYTFjYyxcbiAgICAweDJkZTkyYzZmLCAweDRhNzQ4NGFhLCAweDVjYjBhOWRjLCAweDc2Zjk4OGRhLCAweDk4M2U1MTUyLFxuICAgIDB4YTgzMWM2NmQsIDB4YjAwMzI3YzgsIDB4YmY1OTdmYzcsIDB4YzZlMDBiZjMsIDB4ZDVhNzkxNDcsXG4gICAgMHgwNmNhNjM1MSwgMHgxNDI5Mjk2NywgMHgyN2I3MGE4NSwgMHgyZTFiMjEzOCwgMHg0ZDJjNmRmYyxcbiAgICAweDUzMzgwZDEzLCAweDY1MGE3MzU0LCAweDc2NmEwYWJiLCAweDgxYzJjOTJlLCAweDkyNzIyYzg1LFxuICAgIDB4YTJiZmU4YTEsIDB4YTgxYTY2NGIsIDB4YzI0YjhiNzAsIDB4Yzc2YzUxYTMsIDB4ZDE5MmU4MTksXG4gICAgMHhkNjk5MDYyNCwgMHhmNDBlMzU4NSwgMHgxMDZhYTA3MCwgMHgxOWE0YzExNiwgMHgxZTM3NmMwOCxcbiAgICAweDI3NDg3NzRjLCAweDM0YjBiY2I1LCAweDM5MWMwY2IzLCAweDRlZDhhYTRhLCAweDViOWNjYTRmLFxuICAgIDB4NjgyZTZmZjMsIDB4NzQ4ZjgyZWUsIDB4NzhhNTYzNmYsIDB4ODRjODc4MTQsIDB4OGNjNzAyMDgsXG4gICAgMHg5MGJlZmZmYSwgMHhhNDUwNmNlYiwgMHhiZWY5YTNmNywgMHhjNjcxNzhmMlxuXSk7XG5mdW5jdGlvbiBoYXNoQmxvY2tzKHcsIHYsIHAsIHBvcywgbGVuKSB7XG4gICAgdmFyIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIHUsIGksIGosIHQxLCB0MjtcbiAgICB3aGlsZSAobGVuID49IDY0KSB7XG4gICAgICAgIGEgPSB2WzBdO1xuICAgICAgICBiID0gdlsxXTtcbiAgICAgICAgYyA9IHZbMl07XG4gICAgICAgIGQgPSB2WzNdO1xuICAgICAgICBlID0gdls0XTtcbiAgICAgICAgZiA9IHZbNV07XG4gICAgICAgIGcgPSB2WzZdO1xuICAgICAgICBoID0gdls3XTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHtcbiAgICAgICAgICAgIGogPSBwb3MgKyBpICogNDtcbiAgICAgICAgICAgIHdbaV0gPSAoKChwW2pdICYgMHhmZikgPDwgMjQpIHwgKChwW2ogKyAxXSAmIDB4ZmYpIDw8IDE2KSB8XG4gICAgICAgICAgICAgICAgKChwW2ogKyAyXSAmIDB4ZmYpIDw8IDgpIHwgKHBbaiArIDNdICYgMHhmZikpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDE2OyBpIDwgNjQ7IGkrKykge1xuICAgICAgICAgICAgdSA9IHdbaSAtIDJdO1xuICAgICAgICAgICAgdDEgPSAodSA+Pj4gMTcgfCB1IDw8ICgzMiAtIDE3KSkgXiAodSA+Pj4gMTkgfCB1IDw8ICgzMiAtIDE5KSkgXiAodSA+Pj4gMTApO1xuICAgICAgICAgICAgdSA9IHdbaSAtIDE1XTtcbiAgICAgICAgICAgIHQyID0gKHUgPj4+IDcgfCB1IDw8ICgzMiAtIDcpKSBeICh1ID4+PiAxOCB8IHUgPDwgKDMyIC0gMTgpKSBeICh1ID4+PiAzKTtcbiAgICAgICAgICAgIHdbaV0gPSAodDEgKyB3W2kgLSA3XSB8IDApICsgKHQyICsgd1tpIC0gMTZdIHwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHtcbiAgICAgICAgICAgIHQxID0gKCgoKChlID4+PiA2IHwgZSA8PCAoMzIgLSA2KSkgXiAoZSA+Pj4gMTEgfCBlIDw8ICgzMiAtIDExKSkgXlxuICAgICAgICAgICAgICAgIChlID4+PiAyNSB8IGUgPDwgKDMyIC0gMjUpKSkgKyAoKGUgJiBmKSBeICh+ZSAmIGcpKSkgfCAwKSArXG4gICAgICAgICAgICAgICAgKChoICsgKChLW2ldICsgd1tpXSkgfCAwKSkgfCAwKSkgfCAwO1xuICAgICAgICAgICAgdDIgPSAoKChhID4+PiAyIHwgYSA8PCAoMzIgLSAyKSkgXiAoYSA+Pj4gMTMgfCBhIDw8ICgzMiAtIDEzKSkgXlxuICAgICAgICAgICAgICAgIChhID4+PiAyMiB8IGEgPDwgKDMyIC0gMjIpKSkgKyAoKGEgJiBiKSBeIChhICYgYykgXiAoYiAmIGMpKSkgfCAwO1xuICAgICAgICAgICAgaCA9IGc7XG4gICAgICAgICAgICBnID0gZjtcbiAgICAgICAgICAgIGYgPSBlO1xuICAgICAgICAgICAgZSA9IChkICsgdDEpIHwgMDtcbiAgICAgICAgICAgIGQgPSBjO1xuICAgICAgICAgICAgYyA9IGI7XG4gICAgICAgICAgICBiID0gYTtcbiAgICAgICAgICAgIGEgPSAodDEgKyB0MikgfCAwO1xuICAgICAgICB9XG4gICAgICAgIHZbMF0gKz0gYTtcbiAgICAgICAgdlsxXSArPSBiO1xuICAgICAgICB2WzJdICs9IGM7XG4gICAgICAgIHZbM10gKz0gZDtcbiAgICAgICAgdls0XSArPSBlO1xuICAgICAgICB2WzVdICs9IGY7XG4gICAgICAgIHZbNl0gKz0gZztcbiAgICAgICAgdls3XSArPSBoO1xuICAgICAgICBwb3MgKz0gNjQ7XG4gICAgICAgIGxlbiAtPSA2NDtcbiAgICB9XG4gICAgcmV0dXJuIHBvcztcbn1cbi8vIEhhc2ggaW1wbGVtZW50cyBTSEEyNTYgaGFzaCBhbGdvcml0aG0uXG52YXIgSGFzaCA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBIYXNoKCkge1xuICAgICAgICB0aGlzLmRpZ2VzdExlbmd0aCA9IGV4cG9ydHMuZGlnZXN0TGVuZ3RoO1xuICAgICAgICB0aGlzLmJsb2NrU2l6ZSA9IGV4cG9ydHMuYmxvY2tTaXplO1xuICAgICAgICAvLyBOb3RlOiBJbnQzMkFycmF5IGlzIHVzZWQgaW5zdGVhZCBvZiBVaW50MzJBcnJheSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy5cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG5ldyBJbnQzMkFycmF5KDgpOyAvLyBoYXNoIHN0YXRlXG4gICAgICAgIHRoaXMudGVtcCA9IG5ldyBJbnQzMkFycmF5KDY0KTsgLy8gdGVtcG9yYXJ5IHN0YXRlXG4gICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsgLy8gYnVmZmVyIGZvciBkYXRhIHRvIGhhc2hcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwOyAvLyBudW1iZXIgb2YgYnl0ZXMgaW4gYnVmZmVyXG4gICAgICAgIHRoaXMuYnl0ZXNIYXNoZWQgPSAwOyAvLyBudW1iZXIgb2YgdG90YWwgYnl0ZXMgaGFzaGVkXG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTsgLy8gaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGhhc2ggd2FzIGZpbmFsaXplZFxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfVxuICAgIC8vIFJlc2V0cyBoYXNoIHN0YXRlIG1ha2luZyBpdCBwb3NzaWJsZVxuICAgIC8vIHRvIHJlLXVzZSB0aGlzIGluc3RhbmNlIHRvIGhhc2ggb3RoZXIgZGF0YS5cbiAgICBIYXNoLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhpcy5zdGF0ZVswXSA9IDB4NmEwOWU2Njc7XG4gICAgICAgIHRoaXMuc3RhdGVbMV0gPSAweGJiNjdhZTg1O1xuICAgICAgICB0aGlzLnN0YXRlWzJdID0gMHgzYzZlZjM3MjtcbiAgICAgICAgdGhpcy5zdGF0ZVszXSA9IDB4YTU0ZmY1M2E7XG4gICAgICAgIHRoaXMuc3RhdGVbNF0gPSAweDUxMGU1MjdmO1xuICAgICAgICB0aGlzLnN0YXRlWzVdID0gMHg5YjA1Njg4YztcbiAgICAgICAgdGhpcy5zdGF0ZVs2XSA9IDB4MWY4M2Q5YWI7XG4gICAgICAgIHRoaXMuc3RhdGVbN10gPSAweDViZTBjZDE5O1xuICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuYnl0ZXNIYXNoZWQgPSAwO1xuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gQ2xlYW5zIGludGVybmFsIGJ1ZmZlcnMgYW5kIHJlLWluaXRpYWxpemVzIGhhc2ggc3RhdGUuXG4gICAgSGFzaC5wcm90b3R5cGUuY2xlYW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5idWZmZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGVtcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy50ZW1wW2ldID0gMDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgfTtcbiAgICAvLyBVcGRhdGVzIGhhc2ggc3RhdGUgd2l0aCB0aGUgZ2l2ZW4gZGF0YS5cbiAgICAvL1xuICAgIC8vIE9wdGlvbmFsbHksIGxlbmd0aCBvZiB0aGUgZGF0YSBjYW4gYmUgc3BlY2lmaWVkIHRvIGhhc2hcbiAgICAvLyBmZXdlciBieXRlcyB0aGFuIGRhdGEubGVuZ3RoLlxuICAgIC8vXG4gICAgLy8gVGhyb3dzIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHVwZGF0ZSBhbHJlYWR5IGZpbmFsaXplZCBoYXNoOlxuICAgIC8vIGluc3RhbmNlIG11c3QgYmUgcmVzZXQgdG8gdXNlIGl0IGFnYWluLlxuICAgIEhhc2gucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIChkYXRhLCBkYXRhTGVuZ3RoKSB7XG4gICAgICAgIGlmIChkYXRhTGVuZ3RoID09PSB2b2lkIDApIHsgZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoOyB9XG4gICAgICAgIGlmICh0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJTSEEyNTY6IGNhbid0IHVwZGF0ZSBiZWNhdXNlIGhhc2ggd2FzIGZpbmlzaGVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF0YVBvcyA9IDA7XG4gICAgICAgIHRoaXMuYnl0ZXNIYXNoZWQgKz0gZGF0YUxlbmd0aDtcbiAgICAgICAgaWYgKHRoaXMuYnVmZmVyTGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgd2hpbGUgKHRoaXMuYnVmZmVyTGVuZ3RoIDwgNjQgJiYgZGF0YUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXSA9IGRhdGFbZGF0YVBvcysrXTtcbiAgICAgICAgICAgICAgICBkYXRhTGVuZ3RoLS07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5idWZmZXJMZW5ndGggPT09IDY0KSB7XG4gICAgICAgICAgICAgICAgaGFzaEJsb2Nrcyh0aGlzLnRlbXAsIHRoaXMuc3RhdGUsIHRoaXMuYnVmZmVyLCAwLCA2NCk7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhTGVuZ3RoID49IDY0KSB7XG4gICAgICAgICAgICBkYXRhUG9zID0gaGFzaEJsb2Nrcyh0aGlzLnRlbXAsIHRoaXMuc3RhdGUsIGRhdGEsIGRhdGFQb3MsIGRhdGFMZW5ndGgpO1xuICAgICAgICAgICAgZGF0YUxlbmd0aCAlPSA2NDtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoZGF0YUxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyTGVuZ3RoKytdID0gZGF0YVtkYXRhUG9zKytdO1xuICAgICAgICAgICAgZGF0YUxlbmd0aC0tO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gRmluYWxpemVzIGhhc2ggc3RhdGUgYW5kIHB1dHMgaGFzaCBpbnRvIG91dC5cbiAgICAvL1xuICAgIC8vIElmIGhhc2ggd2FzIGFscmVhZHkgZmluYWxpemVkLCBwdXRzIHRoZSBzYW1lIHZhbHVlLlxuICAgIEhhc2gucHJvdG90eXBlLmZpbmlzaCA9IGZ1bmN0aW9uIChvdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZpbmlzaGVkKSB7XG4gICAgICAgICAgICB2YXIgYnl0ZXNIYXNoZWQgPSB0aGlzLmJ5dGVzSGFzaGVkO1xuICAgICAgICAgICAgdmFyIGxlZnQgPSB0aGlzLmJ1ZmZlckxlbmd0aDtcbiAgICAgICAgICAgIHZhciBiaXRMZW5IaSA9IChieXRlc0hhc2hlZCAvIDB4MjAwMDAwMDApIHwgMDtcbiAgICAgICAgICAgIHZhciBiaXRMZW5MbyA9IGJ5dGVzSGFzaGVkIDw8IDM7XG4gICAgICAgICAgICB2YXIgcGFkTGVuZ3RoID0gKGJ5dGVzSGFzaGVkICUgNjQgPCA1NikgPyA2NCA6IDEyODtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW2xlZnRdID0gMHg4MDtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBsZWZ0ICsgMTsgaSA8IHBhZExlbmd0aCAtIDg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDhdID0gKGJpdExlbkhpID4+PiAyNCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gN10gPSAoYml0TGVuSGkgPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA2XSA9IChiaXRMZW5IaSA+Pj4gOCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNV0gPSAoYml0TGVuSGkgPj4+IDApICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDRdID0gKGJpdExlbkxvID4+PiAyNCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gM10gPSAoYml0TGVuTG8gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSAyXSA9IChiaXRMZW5MbyA+Pj4gOCkgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gMV0gPSAoYml0TGVuTG8gPj4+IDApICYgMHhmZjtcbiAgICAgICAgICAgIGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCB0aGlzLmJ1ZmZlciwgMCwgcGFkTGVuZ3RoKTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAwXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAyNCkgJiAweGZmO1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMV0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgICAgIG91dFtpICogNCArIDJdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIG91dFtpICogNCArIDNdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDApICYgMHhmZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIFJldHVybnMgdGhlIGZpbmFsIGhhc2ggZGlnZXN0LlxuICAgIEhhc2gucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG91dCA9IG5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5maW5pc2gob3V0KTtcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIC8vIEludGVybmFsIGZ1bmN0aW9uIGZvciB1c2UgaW4gSE1BQyBmb3Igb3B0aW1pemF0aW9uLlxuICAgIEhhc2gucHJvdG90eXBlLl9zYXZlU3RhdGUgPSBmdW5jdGlvbiAob3V0KSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5zdGF0ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gdGhpcy5zdGF0ZVtpXTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgLy8gSW50ZXJuYWwgZnVuY3Rpb24gZm9yIHVzZSBpbiBITUFDIGZvciBvcHRpbWl6YXRpb24uXG4gICAgSGFzaC5wcm90b3R5cGUuX3Jlc3RvcmVTdGF0ZSA9IGZ1bmN0aW9uIChmcm9tLCBieXRlc0hhc2hlZCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGVbaV0gPSBmcm9tW2ldO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYnl0ZXNIYXNoZWQgPSBieXRlc0hhc2hlZDtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmJ1ZmZlckxlbmd0aCA9IDA7XG4gICAgfTtcbiAgICByZXR1cm4gSGFzaDtcbn0oKSk7XG5leHBvcnRzLkhhc2ggPSBIYXNoO1xuLy8gSE1BQyBpbXBsZW1lbnRzIEhNQUMtU0hBMjU2IG1lc3NhZ2UgYXV0aGVudGljYXRpb24gYWxnb3JpdGhtLlxudmFyIEhNQUMgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSE1BQyhrZXkpIHtcbiAgICAgICAgdGhpcy5pbm5lciA9IG5ldyBIYXNoKCk7XG4gICAgICAgIHRoaXMub3V0ZXIgPSBuZXcgSGFzaCgpO1xuICAgICAgICB0aGlzLmJsb2NrU2l6ZSA9IHRoaXMuaW5uZXIuYmxvY2tTaXplO1xuICAgICAgICB0aGlzLmRpZ2VzdExlbmd0aCA9IHRoaXMuaW5uZXIuZGlnZXN0TGVuZ3RoO1xuICAgICAgICB2YXIgcGFkID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5ibG9ja1NpemUpO1xuICAgICAgICBpZiAoa2V5Lmxlbmd0aCA+IHRoaXMuYmxvY2tTaXplKSB7XG4gICAgICAgICAgICAobmV3IEhhc2goKSkudXBkYXRlKGtleSkuZmluaXNoKHBhZCkuY2xlYW4oKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcGFkW2ldID0ga2V5W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gXj0gMHgzNjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVyLnVwZGF0ZShwYWQpO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldIF49IDB4MzYgXiAweDVjO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3V0ZXIudXBkYXRlKHBhZCk7XG4gICAgICAgIHRoaXMuaXN0YXRlID0gbmV3IFVpbnQzMkFycmF5KDgpO1xuICAgICAgICB0aGlzLm9zdGF0ZSA9IG5ldyBVaW50MzJBcnJheSg4KTtcbiAgICAgICAgdGhpcy5pbm5lci5fc2F2ZVN0YXRlKHRoaXMuaXN0YXRlKTtcbiAgICAgICAgdGhpcy5vdXRlci5fc2F2ZVN0YXRlKHRoaXMub3N0YXRlKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUmV0dXJucyBITUFDIHN0YXRlIHRvIHRoZSBzdGF0ZSBpbml0aWFsaXplZCB3aXRoIGtleVxuICAgIC8vIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gcnVuIEhNQUMgb3ZlciB0aGUgb3RoZXIgZGF0YSB3aXRoIHRoZSBzYW1lXG4gICAgLy8ga2V5IHdpdGhvdXQgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuXG4gICAgSE1BQy5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuaW5uZXIuX3Jlc3RvcmVTdGF0ZSh0aGlzLmlzdGF0ZSwgdGhpcy5pbm5lci5ibG9ja1NpemUpO1xuICAgICAgICB0aGlzLm91dGVyLl9yZXN0b3JlU3RhdGUodGhpcy5vc3RhdGUsIHRoaXMub3V0ZXIuYmxvY2tTaXplKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBDbGVhbnMgSE1BQyBzdGF0ZS5cbiAgICBITUFDLnByb3RvdHlwZS5jbGVhbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmlzdGF0ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5vc3RhdGVbaV0gPSB0aGlzLmlzdGF0ZVtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbm5lci5jbGVhbigpO1xuICAgICAgICB0aGlzLm91dGVyLmNsZWFuKCk7XG4gICAgfTtcbiAgICAvLyBVcGRhdGVzIHN0YXRlIHdpdGggcHJvdmlkZWQgZGF0YS5cbiAgICBITUFDLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSkge1xuICAgICAgICB0aGlzLmlubmVyLnVwZGF0ZShkYXRhKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBGaW5hbGl6ZXMgSE1BQyBhbmQgcHV0cyB0aGUgcmVzdWx0IGluIG91dC5cbiAgICBITUFDLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAob3V0KSB7XG4gICAgICAgIGlmICh0aGlzLm91dGVyLmZpbmlzaGVkKSB7XG4gICAgICAgICAgICB0aGlzLm91dGVyLmZpbmlzaChvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbm5lci5maW5pc2gob3V0KTtcbiAgICAgICAgICAgIHRoaXMub3V0ZXIudXBkYXRlKG91dCwgdGhpcy5kaWdlc3RMZW5ndGgpLmZpbmlzaChvdXQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gUmV0dXJucyBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIGNvZGUuXG4gICAgSE1BQy5wcm90b3R5cGUuZGlnZXN0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgb3V0ID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5kaWdlc3RMZW5ndGgpO1xuICAgICAgICB0aGlzLmZpbmlzaChvdXQpO1xuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH07XG4gICAgcmV0dXJuIEhNQUM7XG59KCkpO1xuZXhwb3J0cy5ITUFDID0gSE1BQztcbi8vIFJldHVybnMgU0hBMjU2IGhhc2ggb2YgZGF0YS5cbmZ1bmN0aW9uIGhhc2goZGF0YSkge1xuICAgIHZhciBoID0gKG5ldyBIYXNoKCkpLnVwZGF0ZShkYXRhKTtcbiAgICB2YXIgZGlnZXN0ID0gaC5kaWdlc3QoKTtcbiAgICBoLmNsZWFuKCk7XG4gICAgcmV0dXJuIGRpZ2VzdDtcbn1cbmV4cG9ydHMuaGFzaCA9IGhhc2g7XG4vLyBGdW5jdGlvbiBoYXNoIGlzIGJvdGggYXZhaWxhYmxlIGFzIG1vZHVsZS5oYXNoIGFuZCBhcyBkZWZhdWx0IGV4cG9ydC5cbmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gaGFzaDtcbi8vIFJldHVybnMgSE1BQy1TSEEyNTYgb2YgZGF0YSB1bmRlciB0aGUga2V5LlxuZnVuY3Rpb24gaG1hYyhrZXksIGRhdGEpIHtcbiAgICB2YXIgaCA9IChuZXcgSE1BQyhrZXkpKS51cGRhdGUoZGF0YSk7XG4gICAgdmFyIGRpZ2VzdCA9IGguZGlnZXN0KCk7XG4gICAgaC5jbGVhbigpO1xuICAgIHJldHVybiBkaWdlc3Q7XG59XG5leHBvcnRzLmhtYWMgPSBobWFjO1xuLy8gRmlsbHMgaGtkZiBidWZmZXIgbGlrZSB0aGlzOlxuLy8gVCgxKSA9IEhNQUMtSGFzaChQUkssIFQoMCkgfCBpbmZvIHwgMHgwMSlcbmZ1bmN0aW9uIGZpbGxCdWZmZXIoYnVmZmVyLCBobWFjLCBpbmZvLCBjb3VudGVyKSB7XG4gICAgLy8gQ291bnRlciBpcyBhIGJ5dGUgdmFsdWU6IGNoZWNrIGlmIGl0IG92ZXJmbG93ZWQuXG4gICAgdmFyIG51bSA9IGNvdW50ZXJbMF07XG4gICAgaWYgKG51bSA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJoa2RmOiBjYW5ub3QgZXhwYW5kIG1vcmVcIik7XG4gICAgfVxuICAgIC8vIFByZXBhcmUgSE1BQyBpbnN0YW5jZSBmb3IgbmV3IGRhdGEgd2l0aCBvbGQga2V5LlxuICAgIGhtYWMucmVzZXQoKTtcbiAgICAvLyBIYXNoIGluIHByZXZpb3VzIG91dHB1dCBpZiBpdCB3YXMgZ2VuZXJhdGVkXG4gICAgLy8gKGkuZS4gY291bnRlciBpcyBncmVhdGVyIHRoYW4gMSkuXG4gICAgaWYgKG51bSA+IDEpIHtcbiAgICAgICAgaG1hYy51cGRhdGUoYnVmZmVyKTtcbiAgICB9XG4gICAgLy8gSGFzaCBpbiBpbmZvIGlmIGl0IGV4aXN0cy5cbiAgICBpZiAoaW5mbykge1xuICAgICAgICBobWFjLnVwZGF0ZShpbmZvKTtcbiAgICB9XG4gICAgLy8gSGFzaCBpbiB0aGUgY291bnRlci5cbiAgICBobWFjLnVwZGF0ZShjb3VudGVyKTtcbiAgICAvLyBPdXRwdXQgcmVzdWx0IHRvIGJ1ZmZlciBhbmQgY2xlYW4gSE1BQyBpbnN0YW5jZS5cbiAgICBobWFjLmZpbmlzaChidWZmZXIpO1xuICAgIC8vIEluY3JlbWVudCBjb3VudGVyIGluc2lkZSB0eXBlZCBhcnJheSwgdGhpcyB3b3JrcyBwcm9wZXJseS5cbiAgICBjb3VudGVyWzBdKys7XG59XG52YXIgaGtkZlNhbHQgPSBuZXcgVWludDhBcnJheShleHBvcnRzLmRpZ2VzdExlbmd0aCk7IC8vIEZpbGxlZCB3aXRoIHplcm9lcy5cbmZ1bmN0aW9uIGhrZGYoa2V5LCBzYWx0LCBpbmZvLCBsZW5ndGgpIHtcbiAgICBpZiAoc2FsdCA9PT0gdm9pZCAwKSB7IHNhbHQgPSBoa2RmU2FsdDsgfVxuICAgIGlmIChsZW5ndGggPT09IHZvaWQgMCkgeyBsZW5ndGggPSAzMjsgfVxuICAgIHZhciBjb3VudGVyID0gbmV3IFVpbnQ4QXJyYXkoWzFdKTtcbiAgICAvLyBIS0RGLUV4dHJhY3QgdXNlcyBzYWx0IGFzIEhNQUMga2V5LCBhbmQga2V5IGFzIGRhdGEuXG4gICAgdmFyIG9rbSA9IGhtYWMoc2FsdCwga2V5KTtcbiAgICAvLyBJbml0aWFsaXplIEhNQUMgZm9yIGV4cGFuZGluZyB3aXRoIGV4dHJhY3RlZCBrZXkuXG4gICAgLy8gRW5zdXJlIG5vIGNvbGxpc2lvbnMgd2l0aCBgaG1hY2AgZnVuY3Rpb24uXG4gICAgdmFyIGhtYWNfID0gbmV3IEhNQUMob2ttKTtcbiAgICAvLyBBbGxvY2F0ZSBidWZmZXIuXG4gICAgdmFyIGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGhtYWNfLmRpZ2VzdExlbmd0aCk7XG4gICAgdmFyIGJ1ZnBvcyA9IGJ1ZmZlci5sZW5ndGg7XG4gICAgdmFyIG91dCA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoYnVmcG9zID09PSBidWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgICBmaWxsQnVmZmVyKGJ1ZmZlciwgaG1hY18sIGluZm8sIGNvdW50ZXIpO1xuICAgICAgICAgICAgYnVmcG9zID0gMDtcbiAgICAgICAgfVxuICAgICAgICBvdXRbaV0gPSBidWZmZXJbYnVmcG9zKytdO1xuICAgIH1cbiAgICBobWFjXy5jbGVhbigpO1xuICAgIGJ1ZmZlci5maWxsKDApO1xuICAgIGNvdW50ZXIuZmlsbCgwKTtcbiAgICByZXR1cm4gb3V0O1xufVxuZXhwb3J0cy5oa2RmID0gaGtkZjtcbi8vIERlcml2ZXMgYSBrZXkgZnJvbSBwYXNzd29yZCBhbmQgc2FsdCB1c2luZyBQQktERjItSE1BQy1TSEEyNTZcbi8vIHdpdGggdGhlIGdpdmVuIG51bWJlciBvZiBpdGVyYXRpb25zLlxuLy9cbi8vIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmV0dXJuZWQgaXMgZXF1YWwgdG8gZGtMZW4uXG4vL1xuLy8gKEZvciBiZXR0ZXIgc2VjdXJpdHksIGF2b2lkIGRrTGVuIGdyZWF0ZXIgdGhhbiBoYXNoIGxlbmd0aCAtIDMyIGJ5dGVzKS5cbmZ1bmN0aW9uIHBia2RmMihwYXNzd29yZCwgc2FsdCwgaXRlcmF0aW9ucywgZGtMZW4pIHtcbiAgICB2YXIgcHJmID0gbmV3IEhNQUMocGFzc3dvcmQpO1xuICAgIHZhciBsZW4gPSBwcmYuZGlnZXN0TGVuZ3RoO1xuICAgIHZhciBjdHIgPSBuZXcgVWludDhBcnJheSg0KTtcbiAgICB2YXIgdCA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgdmFyIHUgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIHZhciBkayA9IG5ldyBVaW50OEFycmF5KGRrTGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSAqIGxlbiA8IGRrTGVuOyBpKyspIHtcbiAgICAgICAgdmFyIGMgPSBpICsgMTtcbiAgICAgICAgY3RyWzBdID0gKGMgPj4+IDI0KSAmIDB4ZmY7XG4gICAgICAgIGN0clsxXSA9IChjID4+PiAxNikgJiAweGZmO1xuICAgICAgICBjdHJbMl0gPSAoYyA+Pj4gOCkgJiAweGZmO1xuICAgICAgICBjdHJbM10gPSAoYyA+Pj4gMCkgJiAweGZmO1xuICAgICAgICBwcmYucmVzZXQoKTtcbiAgICAgICAgcHJmLnVwZGF0ZShzYWx0KTtcbiAgICAgICAgcHJmLnVwZGF0ZShjdHIpO1xuICAgICAgICBwcmYuZmluaXNoKHUpO1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKSB7XG4gICAgICAgICAgICB0W2pdID0gdVtqXTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBqID0gMjsgaiA8PSBpdGVyYXRpb25zOyBqKyspIHtcbiAgICAgICAgICAgIHByZi5yZXNldCgpO1xuICAgICAgICAgICAgcHJmLnVwZGF0ZSh1KS5maW5pc2godSk7XG4gICAgICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgICAgICAgdFtrXSBePSB1W2tdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbGVuICYmIGkgKiBsZW4gKyBqIDwgZGtMZW47IGorKykge1xuICAgICAgICAgICAgZGtbaSAqIGxlbiArIGpdID0gdFtqXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHRbaV0gPSB1W2ldID0gMDtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHtcbiAgICAgICAgY3RyW2ldID0gMDtcbiAgICB9XG4gICAgcHJmLmNsZWFuKCk7XG4gICAgcmV0dXJuIGRrO1xufVxuZXhwb3J0cy5wYmtkZjIgPSBwYmtkZjI7XG59KTtcbiIsIlwidXNlIHN0cmljdFwiO1xuY29uc3QgcGVxID0gbmV3IFVpbnQzMkFycmF5KDB4MTAwMDApO1xuY29uc3QgbXllcnNfMzIgPSAoYSwgYikgPT4ge1xuICBjb25zdCBuID0gYS5sZW5ndGg7XG4gIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgY29uc3QgbHN0ID0gMSA8PCAobiAtIDEpO1xuICBsZXQgcHYgPSAtMTtcbiAgbGV0IG12ID0gMDtcbiAgbGV0IHNjID0gbjtcbiAgbGV0IGkgPSBuO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcGVxW2EuY2hhckNvZGVBdChpKV0gfD0gMSA8PCBpO1xuICB9XG4gIGZvciAoaSA9IDA7IGkgPCBtOyBpKyspIHtcbiAgICBsZXQgZXEgPSBwZXFbYi5jaGFyQ29kZUF0KGkpXTtcbiAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgZXEgfD0gKChlcSAmIHB2KSArIHB2KSBeIHB2O1xuICAgIG12IHw9IH4oZXEgfCBwdik7XG4gICAgcHYgJj0gZXE7XG4gICAgaWYgKG12ICYgbHN0KSB7XG4gICAgICBzYysrO1xuICAgIH1cbiAgICBpZiAocHYgJiBsc3QpIHtcbiAgICAgIHNjLS07XG4gICAgfVxuICAgIG12ID0gKG12IDw8IDEpIHwgMTtcbiAgICBwdiA9IChwdiA8PCAxKSB8IH4oeHYgfCBtdik7XG4gICAgbXYgJj0geHY7XG4gIH1cbiAgaSA9IG47XG4gIHdoaWxlIChpLS0pIHtcbiAgICBwZXFbYS5jaGFyQ29kZUF0KGkpXSA9IDA7XG4gIH1cbiAgcmV0dXJuIHNjO1xufTtcblxuY29uc3QgbXllcnNfeCA9IChhLCBiKSA9PiB7XG4gIGNvbnN0IG4gPSBhLmxlbmd0aDtcbiAgY29uc3QgbSA9IGIubGVuZ3RoO1xuICBjb25zdCBtaGMgPSBbXTtcbiAgY29uc3QgcGhjID0gW107XG4gIGNvbnN0IGhzaXplID0gTWF0aC5jZWlsKG4gLyAzMik7XG4gIGNvbnN0IHZzaXplID0gTWF0aC5jZWlsKG0gLyAzMik7XG4gIGxldCBzY29yZSA9IG07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaHNpemU7IGkrKykge1xuICAgIHBoY1tpXSA9IC0xO1xuICAgIG1oY1tpXSA9IDA7XG4gIH1cbiAgbGV0IGogPSAwO1xuICBmb3IgKDsgaiA8IHZzaXplIC0gMTsgaisrKSB7XG4gICAgbGV0IG12ID0gMDtcbiAgICBsZXQgcHYgPSAtMTtcbiAgICBjb25zdCBzdGFydCA9IGogKiAzMjtcbiAgICBjb25zdCBlbmQgPSBNYXRoLm1pbigzMiwgbSkgKyBzdGFydDtcbiAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCBlbmQ7IGsrKykge1xuICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gfD0gMSA8PCBrO1xuICAgIH1cbiAgICBzY29yZSA9IG07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICAgIGNvbnN0IGVxID0gcGVxW2EuY2hhckNvZGVBdChpKV07XG4gICAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgIGNvbnN0IHh2ID0gZXEgfCBtdjtcbiAgICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICAgIGxldCBtaCA9IHB2ICYgeGg7XG4gICAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgICBwaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICB9XG4gICAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgICBtaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgICB9XG4gICAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgICAgbWggPSAobWggPDwgMSkgfCBtYjtcbiAgICAgIHB2ID0gbWggfCB+KHh2IHwgcGgpO1xuICAgICAgbXYgPSBwaCAmIHh2O1xuICAgIH1cbiAgICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCBlbmQ7IGsrKykge1xuICAgICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICAgIH1cbiAgfVxuICBsZXQgbXYgPSAwO1xuICBsZXQgcHYgPSAtMTtcbiAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gIGNvbnN0IGVuZCA9IE1hdGgubWluKDMyLCBtIC0gc3RhcnQpICsgc3RhcnQ7XG4gIGZvciAobGV0IGsgPSBzdGFydDsgayA8IGVuZDsgaysrKSB7XG4gICAgcGVxW2IuY2hhckNvZGVBdChrKV0gfD0gMSA8PCBrO1xuICB9XG4gIHNjb3JlID0gbTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyBpKyspIHtcbiAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgIGNvbnN0IHBiID0gKHBoY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgY29uc3QgbWIgPSAobWhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgY29uc3QgeGggPSAoKCgoZXEgfCBtYikgJiBwdikgKyBwdikgXiBwdikgfCBlcSB8IG1iO1xuICAgIGxldCBwaCA9IG12IHwgfih4aCB8IHB2KTtcbiAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgIHNjb3JlICs9IChwaCA+Pj4gKG0gLSAxKSkgJiAxO1xuICAgIHNjb3JlIC09IChtaCA+Pj4gKG0gLSAxKSkgJiAxO1xuICAgIGlmICgocGggPj4+IDMxKSBeIHBiKSB7XG4gICAgICBwaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgfVxuICAgIGlmICgobWggPj4+IDMxKSBeIG1iKSB7XG4gICAgICBtaGNbKGkgLyAzMikgfCAwXSBePSAxIDw8IGk7XG4gICAgfVxuICAgIHBoID0gKHBoIDw8IDEpIHwgcGI7XG4gICAgbWggPSAobWggPDwgMSkgfCBtYjtcbiAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICBtdiA9IHBoICYgeHY7XG4gIH1cbiAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICBwZXFbYi5jaGFyQ29kZUF0KGspXSA9IDA7XG4gIH1cbiAgcmV0dXJuIHNjb3JlO1xufTtcblxuY29uc3QgZGlzdGFuY2UgPSAoYSwgYikgPT4ge1xuICBpZiAoYS5sZW5ndGggPiBiLmxlbmd0aCkge1xuICAgIGNvbnN0IHRtcCA9IGI7XG4gICAgYiA9IGE7XG4gICAgYSA9IHRtcDtcbiAgfVxuICBpZiAoYS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gYi5sZW5ndGg7XG4gIH1cbiAgaWYgKGEubGVuZ3RoIDw9IDMyKSB7XG4gICAgcmV0dXJuIG15ZXJzXzMyKGEsIGIpO1xuICB9XG4gIHJldHVybiBteWVyc194KGEsIGIpO1xufTtcblxuY29uc3QgY2xvc2VzdCA9IChzdHIsIGFycikgPT4ge1xuICBsZXQgbWluX2Rpc3RhbmNlID0gSW5maW5pdHk7XG4gIGxldCBtaW5faW5kZXggPSAwO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGRpc3QgPSBkaXN0YW5jZShzdHIsIGFycltpXSk7XG4gICAgaWYgKGRpc3QgPCBtaW5fZGlzdGFuY2UpIHtcbiAgICAgIG1pbl9kaXN0YW5jZSA9IGRpc3Q7XG4gICAgICBtaW5faW5kZXggPSBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYXJyW21pbl9pbmRleF07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY2xvc2VzdCwgZGlzdGFuY2Vcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuLy8gUmVmZXJlbmNlOiBodHRwczovL3d3dy5nZWVrc2ZvcmdlZWtzLm9yZy9qYXJvLWFuZC1qYXJvLXdpbmtsZXItc2ltaWxhcml0eS9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBleHBvcnRzLmphcm8gPSB2b2lkIDA7XG4vKipcbiAqXG4gKiBAcGFyYW0gc3RyMSBTdHJpbmcgMSBmb3IgY29tcGFyZVxuICogQHBhcmFtIHN0cjIgU3RyaW5nIDIgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBvcHRpb25zIHRvIGNvbnRyb2wgY2FzZSBzZW5zaXRpdmUgb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucykge1xuICAgIC8vIEV4aXQgZWFybHkgaWYgZWl0aGVyIGFyZSBlbXB0eS5cbiAgICBpZiAoc3RyMS5sZW5ndGggPT09IDAgfHwgc3RyMi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvbnZlcnQgdG8gdXBwZXIgaWYgY2FzZS1zZW5zaXRpdmUgaXMgZmFsc2UuXG4gICAgaWYgKG9wdGlvbnMgJiYgIW9wdGlvbnMuY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBzdHIxID0gc3RyMS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICBzdHIyID0gc3RyMi50b1VwcGVyQ2FzZSgpO1xuICAgIH1cbiAgICAvLyBFeGFjdCBtYXRjaFxuICAgIGlmIChzdHIxID09PSBzdHIyKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICAvLyBOdW1iZXIgb2YgbWF0Y2hlc1xuICAgIHZhciBtID0gMDtcbiAgICAvLyBMZW5ndGggb2YgdHdvIFN0cmluZ3NcbiAgICB2YXIgbGVuMSA9IHN0cjEubGVuZ3RoO1xuICAgIHZhciBsZW4yID0gc3RyMi5sZW5ndGg7XG4gICAgLy8gTWF4aW11bSBkaXN0YW5jZVxuICAgIHZhciB3aW5kb3cgPSBNYXRoLmZsb29yKE1hdGgubWF4KGxlbjEsIGxlbjIpIC8gMikgLSAxO1xuICAgIC8vIEhhc2ggZm9yIG1hdGNoZXNcbiAgICB2YXIgc3RyMUhhc2ggPSBuZXcgQXJyYXkobGVuMSk7XG4gICAgdmFyIHN0cjJIYXNoID0gbmV3IEFycmF5KGxlbjIpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgICAgIGZvciAodmFyIGogPSBNYXRoLm1heCgwLCBpIC0gd2luZG93KTsgaiA8PSBNYXRoLm1pbihsZW4yLCBpICsgd2luZG93ICsgMSk7IGorKykge1xuICAgICAgICAgICAgaWYgKCFzdHIxSGFzaFtpXSAmJiAhc3RyMkhhc2hbal0gJiYgc3RyMVtpXSA9PT0gc3RyMltqXSkge1xuICAgICAgICAgICAgICAgICsrbTtcbiAgICAgICAgICAgICAgICBzdHIxSGFzaFtpXSA9IHN0cjJIYXNoW2pdID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBFeGl0IGVhcmx5IGlmIG5vIG1hdGNoZXMgd2VyZSBmb3VuZC5cbiAgICBpZiAobSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgLy8gQ291bnQgdGhlIHRyYW5zcG9zaXRpb25zLlxuICAgIHZhciB0ID0gMDtcbiAgICB2YXIgcG9pbnQgPSAwO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuMTsgaSsrKSB7XG4gICAgICAgIGlmIChzdHIxSGFzaFtpXSkge1xuICAgICAgICAgICAgd2hpbGUgKCFzdHIySGFzaFtwb2ludF0pIHtcbiAgICAgICAgICAgICAgICBwb2ludCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHN0cjEuY2hhckF0KGkpICE9PSBzdHIyLmNoYXJBdChwb2ludCsrKSkge1xuICAgICAgICAgICAgICAgIHQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0IC89IDI7XG4gICAgcmV0dXJuIChtIC8gbGVuMSArIG0gLyBsZW4yICsgKG0gLSB0KSAvIG0pIC8gMztcbn1cbmV4cG9ydHMuamFybyA9IGphcm87XG4vKipcbiAqXG4gKiBAcGFyYW0gc3RyMSBTdHJpbmcgMSBmb3IgY29tcGFyZVxuICogQHBhcmFtIHN0cjIgU3RyaW5nIDIgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBvcHRpb25zIHRvIGNvbnRyb2wgY2FzZSBzZW5zaXRpdmUgb3Igbm90XG4gKi9cbmZ1bmN0aW9uIGphcm9XaW5rbGVyKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBKYXJvIERpc3RhbmNlXG4gICAgdmFyIGphcm9EaXN0ID0gamFybyhzdHIxLCBzdHIyLCBvcHRpb25zKTtcbiAgICAvLyBTYW1lIHByZWZpeCBsZW5ndGgsIG1heGl1bSBpcyA0XG4gICAgdmFyIHByZWZpeCA9IDA7XG4gICAgaWYgKGphcm9EaXN0ID4gMC43KSB7XG4gICAgICAgIHZhciBtaW5JbmRleCA9IE1hdGgubWluKHN0cjEubGVuZ3RoLCBzdHIyLmxlbmd0aCk7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgd2hpbGUgKHN0cjFbaV0gPT09IHN0cjJbaV0gJiYgaSA8IDQgJiYgaSA8IG1pbkluZGV4KSB7XG4gICAgICAgICAgICArK3ByZWZpeDtcbiAgICAgICAgICAgIGkrKztcbiAgICAgICAgfVxuICAgICAgICBqYXJvRGlzdCArPSAwLjEgKiBwcmVmaXggKiAoMSAtIGphcm9EaXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIGphcm9EaXN0O1xufVxuZXhwb3J0cy5qYXJvV2lua2xlciA9IGphcm9XaW5rbGVyO1xuIiwiZXhwb3J0IGNvbnN0IGpzb25TZGZNb25vbWVyTGliRGljdCA9IHtcbiAgICAnbW9ub21lclR5cGUnOiBudWxsLFxuICAgICdzbWlsZXMnOiBudWxsLFxuICAgICduYW1lJzogJ01vbm9tZXJOYW1lJyxcbiAgICAnYXV0aG9yJzogbnVsbCxcbiAgICAnbW9sZmlsZSc6ICdtb2xlY3VsZScsXG4gICAgJ25hdHVyYWxBbmFsb2cnOiAnTW9ub21lck5hdHVyYWxBbmFsb2dDb2RlJyxcbiAgICAncmdyb3Vwcyc6ICdNb25vbWVyQ2FwcycsXG4gICAgJ2NyZWF0ZURhdGUnOiBudWxsLFxuICAgICdpZCc6IG51bGwsXG4gICAgJ3BvbHltZXJUeXBlJzogJ01vbm9tZXJUeXBlJyxcbiAgICAnc3ltYm9sJzogJ01vbm9tZXJDb2RlJ1xufTtcbmV4cG9ydCBjb25zdCBSR1JPVVBfRklFTEQgPSAncmdyb3Vwcyc7XG5leHBvcnQgY29uc3QgQ0FQX0dST1VQX1NNSUxFUyA9ICdjYXBHcm91cFNtaWxlcyc7XG5leHBvcnQgY29uc3QgUkdST1VQX0FMVEVSX0lEID0gJ2FsdGVybmF0ZUlkJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfTkFNRSA9ICdjYXBHcm91cE5hbWUnO1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9MQUJFTCA9ICdsYWJlbCc7XG5leHBvcnQgY29uc3QgTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBTREZfTU9OT01FUl9OQU1FID0gJ01vbm9tZXJOYW1lJztcbi8vIHJhbmdlIG9mIGhleCBudWJlcnMgdXNlZCBpbiBQZXBTZWEgbGlicmFyeSB0byBlbmRvZGUgbW9ub21lcnNcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NSU4gPSAweDEwMDtcbmV4cG9ydCBjb25zdCBNT05PTUVSX0VOQ09ERV9NQVggPSAweDQwQTtcbiIsImNsYXNzIENlbGwge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRJID0gMDtcbiAgICAgICAgdGhpcy5wYXJlbnRKID0gMDtcbiAgICB9XG59XG47XG5leHBvcnQgY2xhc3MgQWxpZ25lZCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBzY29yZV8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLnNjb3JlID0gc2NvcmVfO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZUFsaWdubWVudCB7XG4gICAgY29uc3RydWN0b3Ioc2VxMV8sIHNlcTJfLCBnYXBfLCBhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICB0aGlzLnNlcTEgPSAnJztcbiAgICAgICAgdGhpcy5zZXEyID0gJyc7XG4gICAgICAgIHRoaXMuZ2FwID0gMTtcbiAgICAgICAgdGhpcy5sZW4xID0gMDtcbiAgICAgICAgdGhpcy5sZW4yID0gMDtcbiAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgdGhpcy5kcEdyaWQgPSBbXTtcbiAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHt9O1xuICAgICAgICB0aGlzLkJMT1NVTTQ1ID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgMCwgLTEsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAzLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTIsIC0xLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCA2LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTIsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgMiwgNywgLTMsIDAsIDIsIC0xLCAwLCAtNCwgLTMsIDAsIC0zLCAtNCwgLTEsIDAsIC0xLCAtNCwgLTIsIC0zLCA1LCAxLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0zLCAxMiwgLTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTQsIC0xLCAtMSwgLTUsIC0zLCAtMSwgLTIsIC0zLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNiwgMiwgLTIsIDEsIC0yLCAtMiwgMSwgMCwgLTQsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMywgMCwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTMsIDIsIDYsIC0yLCAwLCAtMywgLTIsIDEsIC0yLCAtMywgMCwgMCwgLTEsIC0zLCAtMiwgLTMsIDEsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA3LCAtMiwgLTQsIC0zLCAtMiwgLTIsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgMCwgLTMsIDEsIDAsIC0yLCAxMCwgLTMsIC0yLCAtMSwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMywgMCwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtNCwgLTMsIC0yLCAtMywgLTQsIC0zLCA1LCAyLCAtMywgMiwgMCwgLTIsIC0yLCAtMSwgLTIsIDAsIDMsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtMywgLTIsIC0yLCAtMiwgLTMsIC0yLCAyLCA1LCAtMywgMiwgMSwgLTMsIC0zLCAtMSwgLTIsIDAsIDEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgMCwgLTMsIDEsIDEsIC0yLCAtMSwgLTMsIC0zLCA1LCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTIsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIDAsIDIsIDIsIC0xLCA2LCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMSwgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC00LCAtMiwgLTQsIC0zLCAtMywgLTIsIDAsIDEsIC0zLCAwLCA4LCAtMywgLTIsIC0xLCAxLCAzLCAwLCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC00LCAtMSwgMCwgLTIsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDksIC0xLCAtMSwgLTMsIC0zLCAtMywgLTIsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgMCwgMCwgLTEsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTEsIDQsIDIsIC00LCAtMiwgLTEsIDAsIDAsIDAsIC01XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMiwgNSwgLTMsIC0xLCAwLCAwLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTQsIC00LCAtNSwgLTIsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTIsIC0yLCAxLCAtMywgLTQsIC0zLCAxNSwgMywgLTMsIC00LCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0yLCAtMiwgLTMsIC0xLCAtMiwgLTMsIDIsIDAsIDAsIC0xLCAwLCAzLCAtMywgLTIsIC0xLCAzLCA4LCAtMSwgLTIsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTMsIC0xLCAtMywgLTMsIC0zLCAtMywgMywgMSwgLTIsIDEsIDAsIC0zLCAtMSwgMCwgLTMsIC0xLCA1LCAtMywgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA0LCA1LCAtMiwgMCwgMSwgLTEsIDAsIC0zLCAtMywgMCwgLTIsIC0zLCAtMiwgMCwgMCwgLTQsIC0yLCAtMywgNCwgMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDQsIDQsIC0yLCAwLCAtMywgLTIsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMiwgLTIsIC0zLCAyLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTUwID0gW1s1LCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDcsIC0xLCAtMiwgLTQsIDEsIDAsIC0zLCAwLCAtNCwgLTMsIDMsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMywgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCA3LCAyLCAtMiwgMCwgMCwgMCwgMSwgLTMsIC00LCAwLCAtMiwgLTQsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCA0LCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMiwgOCwgLTQsIDAsIDIsIC0xLCAtMSwgLTQsIC00LCAtMSwgLTQsIC01LCAtMSwgMCwgLTEsIC01LCAtMywgLTQsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMiwgLTQsIDEzLCAtMywgLTMsIC0zLCAtMywgLTIsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMywgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA3LCAyLCAtMiwgMSwgLTMsIC0yLCAyLCAwLCAtNCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTMsIDAsIC00LCAtMywgMSwgLTIsIC0zLCAtMSwgLTEsIC0xLCAtMywgLTIsIC0zLCAxLCA1LCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtMSwgLTMsIC0yLCAtMywgOCwgLTIsIC00LCAtNCwgLTIsIC0zLCAtNCwgLTIsIDAsIC0yLCAtMywgLTMsIC00LCAtMSwgLTIsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMSwgMCwgLTIsIDEwLCAtNCwgLTMsIDAsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTMsIDIsIC00LCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTMsIC00LCAtMiwgLTMsIC00LCAtNCwgLTQsIDUsIDIsIC0zLCAyLCAwLCAtMywgLTMsIC0xLCAtMywgLTEsIDQsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTQsIC0zLCAyLCA1LCAtMywgMywgMSwgLTQsIC0zLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDMsIDAsIC0xLCAtMywgMiwgMSwgLTIsIDAsIC0zLCAtMywgNiwgLTIsIC00LCAtMSwgMCwgLTEsIC0zLCAtMiwgLTMsIDAsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTQsIC0yLCAwLCAtMiwgLTMsIC0xLCAyLCAzLCAtMiwgNywgMCwgLTMsIC0yLCAtMSwgLTEsIDAsIDEsIC0zLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTIsIC00LCAtMywgLTQsIC0xLCAwLCAxLCAtNCwgMCwgOCwgLTQsIC0zLCAtMiwgMSwgNCwgLTEsIC00LCAtNCwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0yLCAtMSwgLTQsIC0xLCAtMSwgLTIsIC0yLCAtMywgLTQsIC0xLCAtMywgLTQsIDEwLCAtMSwgLTEsIC00LCAtMywgLTMsIC0yLCAtMSwgLTIsIC01XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIC0xLCAwLCAtMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0xLCA1LCAyLCAtNCwgLTIsIC0yLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAyLCA1LCAtMywgLTIsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTUsIC01LCAtMSwgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtNCwgLTMsIDE1LCAyLCAtMywgLTUsIC0yLCAtMywgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgMCwgNCwgLTMsIC0yLCAtMiwgMiwgOCwgLTEsIC0zLCAtMiwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC00LCAtMSwgLTMsIC0zLCAtNCwgLTQsIDQsIDEsIC0zLCAxLCAtMSwgLTMsIC0yLCAwLCAtMywgLTEsIDUsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDQsIDUsIC0zLCAwLCAxLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0yLCAwLCAwLCAtNSwgLTMsIC00LCA1LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTEsIC00LCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIDAsIC0zLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU02MiA9IFtbNCwgLTEsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgMCwgLTMsIC0yLCAwLCAtMiwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMSwgNSwgMCwgLTIsIC0zLCAxLCAwLCAtMiwgMCwgLTMsIC0yLCAyLCAtMSwgLTMsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTMsIC0xLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAwLCA2LCAxLCAtMywgMCwgMCwgMCwgMSwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAxLCAwLCAtNCwgLTIsIC0zLCAzLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgMSwgNiwgLTMsIDAsIDIsIC0xLCAtMSwgLTMsIC00LCAtMSwgLTMsIC0zLCAtMSwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgOSwgLTMsIC00LCAtMywgLTMsIC0xLCAtMSwgLTMsIC0xLCAtMiwgLTMsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTMsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0xLCAxLCAwLCAwLCAtMywgNSwgMiwgLTIsIDAsIC0zLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMiwgMCwgMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMiwgLTQsIDIsIDUsIC0yLCAwLCAtMywgLTMsIDEsIC0yLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMSwgLTMsIC0yLCAtMiwgNiwgLTIsIC00LCAtNCwgLTIsIC0zLCAtMywgLTIsIDAsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDEsIC0xLCAtMywgMCwgMCwgLTIsIDgsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTIsIC0xLCAtMiwgLTIsIDIsIC0zLCAwLCAwLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtMSwgLTMsIC0zLCAtNCwgLTMsIDQsIDIsIC0zLCAxLCAwLCAtMywgLTIsIC0xLCAtMywgLTEsIDMsIC0zLCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0zLCAtNCwgLTEsIC0yLCAtMywgLTQsIC0zLCAyLCA0LCAtMiwgMiwgMCwgLTMsIC0yLCAtMSwgLTIsIC0xLCAxLCAtNCwgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDIsIDAsIC0xLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTIsIDUsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAwLCAxLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTIsIC0zLCAtMSwgMCwgLTIsIC0zLCAtMiwgMSwgMiwgLTEsIDUsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgMSwgLTMsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC0zLCAtMiwgLTMsIC0zLCAtMywgLTEsIDAsIDAsIC0zLCAwLCA2LCAtNCwgLTIsIC0yLCAxLCAzLCAtMSwgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0xLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtNCwgNywgLTEsIC0xLCAtNCwgLTMsIC0yLCAtMiwgLTEsIC0yLCAtNF0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0yLCAwLCAtMSwgLTIsIC0xLCA0LCAxLCAtMywgLTIsIC0yLCAwLCAwLCAwLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDEsIDUsIC0yLCAtMiwgMCwgLTEsIC0xLCAwLCAtNF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAtNCwgLTQsIC0yLCAtMiwgLTMsIC0yLCAtMiwgLTMsIC0yLCAtMywgLTEsIDEsIC00LCAtMywgLTIsIDExLCAyLCAtMywgLTQsIC0zLCAtMiwgLTRdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTIsIC0zLCAtMiwgLTEsIC0yLCAtMywgMiwgLTEsIC0xLCAtMiwgLTEsIDMsIC0zLCAtMiwgLTIsIDIsIDcsIC0xLCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgLTMsIC0zLCAzLCAxLCAtMiwgMSwgLTEsIC0yLCAtMiwgMCwgLTMsIC0xLCA0LCAtMywgLTIsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0xLCAzLCA0LCAtMywgMCwgMSwgLTEsIDAsIC0zLCAtNCwgMCwgLTMsIC0zLCAtMiwgMCwgLTEsIC00LCAtMywgLTMsIDQsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCAzLCA0LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTMsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMiwgMSwgNCwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIDAsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIDFdXTtcbiAgICAgICAgdGhpcy5CTE9TVU04MCA9IFtbNywgLTMsIC0zLCAtMywgLTEsIC0yLCAtMiwgMCwgLTMsIC0zLCAtMywgLTEsIC0yLCAtNCwgLTEsIDIsIDAsIC01LCAtNCwgLTEsIC0zLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMywgOSwgLTEsIC0zLCAtNiwgMSwgLTEsIC00LCAwLCAtNSwgLTQsIDMsIC0zLCAtNSwgLTMsIC0yLCAtMiwgLTUsIC00LCAtNCwgLTIsIDAsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0xLCA5LCAyLCAtNSwgMCwgLTEsIC0xLCAxLCAtNiwgLTYsIDAsIC00LCAtNiwgLTQsIDEsIDAsIC03LCAtNCwgLTUsIDUsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtMywgMiwgMTAsIC03LCAtMSwgMiwgLTMsIC0yLCAtNywgLTcsIC0yLCAtNiwgLTYsIC0zLCAtMSwgLTIsIC04LCAtNiwgLTYsIDYsIDEsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC02LCAtNSwgLTcsIDEzLCAtNSwgLTcsIC02LCAtNywgLTIsIC0zLCAtNiwgLTMsIC00LCAtNiwgLTIsIC0yLCAtNSwgLTUsIC0yLCAtNiwgLTcsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTIsIDEsIDAsIC0xLCAtNSwgOSwgMywgLTQsIDEsIC01LCAtNCwgMiwgLTEsIC01LCAtMywgLTEsIC0xLCAtNCwgLTMsIC00LCAtMSwgNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTEsIC0xLCAyLCAtNywgMywgOCwgLTQsIDAsIC02LCAtNiwgMSwgLTQsIC02LCAtMiwgLTEsIC0yLCAtNiwgLTUsIC00LCAxLCA2LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC00LCAtMSwgLTMsIC02LCAtNCwgLTQsIDksIC00LCAtNywgLTcsIC0zLCAtNSwgLTYsIC01LCAtMSwgLTMsIC02LCAtNiwgLTYsIC0yLCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMywgMCwgMSwgLTIsIC03LCAxLCAwLCAtNCwgMTIsIC02LCAtNSwgLTEsIC00LCAtMiwgLTQsIC0yLCAtMywgLTQsIDMsIC01LCAtMSwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTUsIC02LCAtNywgLTIsIC01LCAtNiwgLTcsIC02LCA3LCAyLCAtNSwgMiwgLTEsIC01LCAtNCwgLTIsIC01LCAtMywgNCwgLTYsIC02LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTYsIC03LCAtMywgLTQsIC02LCAtNywgLTUsIDIsIDYsIC00LCAzLCAwLCAtNSwgLTQsIC0zLCAtNCwgLTIsIDEsIC03LCAtNSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTIsIC02LCAyLCAxLCAtMywgLTEsIC01LCAtNCwgOCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNiwgLTQsIC00LCAtMSwgMSwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTMsIC00LCAtNiwgLTMsIC0xLCAtNCwgLTUsIC00LCAyLCAzLCAtMywgOSwgMCwgLTQsIC0zLCAtMSwgLTMsIC0zLCAxLCAtNSwgLTMsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNiwgLTYsIC00LCAtNSwgLTYsIC02LCAtMiwgLTEsIDAsIC01LCAwLCAxMCwgLTYsIC00LCAtNCwgMCwgNCwgLTIsIC02LCAtNiwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC00LCAtMywgLTYsIC0zLCAtMiwgLTUsIC00LCAtNSwgLTUsIC0yLCAtNCwgLTYsIDEyLCAtMiwgLTMsIC03LCAtNiwgLTQsIC00LCAtMiwgLTMsIC04XSxcbiAgICAgICAgICAgIFsyLCAtMiwgMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMiwgLTQsIC00LCAtMSwgLTMsIC00LCAtMiwgNywgMiwgLTYsIC0zLCAtMywgMCwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0yLCAtMiwgLTEsIC0yLCAtMywgLTMsIC0yLCAtMywgLTEsIC0xLCAtNCwgLTMsIDIsIDgsIC01LCAtMywgMCwgLTEsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTcsIC04LCAtNSwgLTQsIC02LCAtNiwgLTQsIC01LCAtNCwgLTYsIC0zLCAwLCAtNywgLTYsIC01LCAxNiwgMywgLTUsIC04LCAtNSwgLTUsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTQsIC00LCAtNiwgLTUsIC0zLCAtNSwgLTYsIDMsIC0zLCAtMiwgLTQsIC0zLCA0LCAtNiwgLTMsIC0zLCAzLCAxMSwgLTMsIC01LCAtNCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC01LCAtNiwgLTIsIC00LCAtNCwgLTYsIC01LCA0LCAxLCAtNCwgMSwgLTIsIC00LCAtMywgMCwgLTUsIC0zLCA3LCAtNiwgLTQsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0yLCA1LCA2LCAtNiwgLTEsIDEsIC0yLCAtMSwgLTYsIC03LCAtMSwgLTUsIC02LCAtNCwgMCwgLTEsIC04LCAtNSwgLTYsIDYsIDAsIC0zLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAxLCAtNywgNSwgNiwgLTQsIDAsIC02LCAtNSwgMSwgLTMsIC02LCAtMiwgLTEsIC0yLCAtNSwgLTQsIC00LCAwLCA2LCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMSwgLTUsIC0zLCAtMiwgLTMsIC0xLCAtMiwgLThdLFxuICAgICAgICAgICAgWy04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTkwID0gW1s1LCAtMiwgLTIsIC0zLCAtMSwgLTEsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMSwgMSwgMCwgLTQsIC0zLCAtMSwgLTIsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCA2LCAtMSwgLTMsIC01LCAxLCAtMSwgLTMsIDAsIC00LCAtMywgMiwgLTIsIC00LCAtMywgLTEsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDcsIDEsIC00LCAwLCAtMSwgLTEsIDAsIC00LCAtNCwgMCwgLTMsIC00LCAtMywgMCwgMCwgLTUsIC0zLCAtNCwgNCwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC0zLCAxLCA3LCAtNSwgLTEsIDEsIC0yLCAtMiwgLTUsIC01LCAtMSwgLTQsIC01LCAtMywgLTEsIC0yLCAtNiwgLTQsIC01LCA0LCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTQsIC01LCA5LCAtNCwgLTYsIC00LCAtNSwgLTIsIC0yLCAtNCwgLTIsIC0zLCAtNCwgLTIsIC0yLCAtNCwgLTQsIC0yLCAtNCwgLTUsIC0zLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIC0xLCAtNCwgNywgMiwgLTMsIDEsIC00LCAtMywgMSwgMCwgLTQsIC0yLCAtMSwgLTEsIC0zLCAtMywgLTMsIC0xLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDEsIC02LCAyLCA2LCAtMywgLTEsIC00LCAtNCwgMCwgLTMsIC01LCAtMiwgLTEsIC0xLCAtNSwgLTQsIC0zLCAwLCA0LCAtMiwgLTZdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIDYsIC0zLCAtNSwgLTUsIC0yLCAtNCwgLTUsIC0zLCAtMSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgMCwgMCwgLTIsIC01LCAxLCAtMSwgLTMsIDgsIC00LCAtNCwgLTEsIC0zLCAtMiwgLTMsIC0yLCAtMiwgLTMsIDEsIC00LCAtMSwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgLTIsIC00LCAtNCwgLTUsIC00LCA1LCAxLCAtNCwgMSwgLTEsIC00LCAtMywgLTEsIC00LCAtMiwgMywgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC01LCAtMiwgLTMsIC00LCAtNSwgLTQsIDEsIDUsIC0zLCAyLCAwLCAtNCwgLTMsIC0yLCAtMywgLTIsIDAsIC01LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC00LCAxLCAwLCAtMiwgLTEsIC00LCAtMywgNiwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNSwgLTMsIC0zLCAtMSwgMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIC0zLCAtNCwgLTIsIDAsIC0zLCAtNCwgLTMsIDEsIDIsIC0yLCA3LCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0yLCAwLCAtNCwgLTIsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNCwgLTUsIC0zLCAtNCwgLTUsIC01LCAtMiwgLTEsIDAsIC00LCAtMSwgNywgLTQsIC0zLCAtMywgMCwgMywgLTIsIC00LCAtNCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgLTMsIC0zLCAtMywgLTQsIC0yLCAtMiwgLTMsIC0zLCAtNCwgLTQsIC0yLCAtMywgLTQsIDgsIC0yLCAtMiwgLTUsIC00LCAtMywgLTMsIC0yLCAtMiwgLTZdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTMsIC0yLCA1LCAxLCAtNCwgLTMsIC0yLCAwLCAtMSwgLTEsIC02XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTEsIC0zLCAtMiwgLTEsIC0yLCAtMSwgLTEsIC0zLCAtMiwgMSwgNiwgLTQsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTUsIC02LCAtNCwgLTMsIC01LCAtNCwgLTMsIC00LCAtMywgLTUsIC0yLCAwLCAtNSwgLTQsIC00LCAxMSwgMiwgLTMsIC02LCAtNCwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIC0zLCAtNCwgLTQsIC0zLCAtNCwgLTUsIDEsIC0yLCAtMiwgLTMsIC0yLCAzLCAtNCwgLTMsIC0yLCAyLCA4LCAtMywgLTQsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC01LCAtMiwgLTMsIC0zLCAtNSwgLTQsIDMsIDAsIC0zLCAwLCAtMiwgLTMsIC0yLCAtMSwgLTMsIC0zLCA1LCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0yLCA0LCA0LCAtNCwgLTEsIDAsIC0yLCAtMSwgLTUsIC01LCAtMSwgLTQsIC00LCAtMywgMCwgLTEsIC02LCAtNCwgLTQsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIDAsIC0xLCAwLCAtNSwgNCwgNCwgLTMsIDAsIC00LCAtNCwgMSwgLTIsIC00LCAtMiwgLTEsIC0xLCAtNCwgLTMsIC0zLCAwLCA0LCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgMV1dO1xuICAgICAgICB0aGlzLk5VQ0xFT1RJREVTID0gW1sxLCAtMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgMSwgLTEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIDEsIC0xXSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAxXV07XG4gICAgICAgIHRoaXMuUEFNMzAgPSBbWzYsIC03LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0yLCAtNywgLTUsIC02LCAtNywgLTUsIC04LCAtMiwgMCwgLTEsIC0xMywgLTgsIC0yLCAtMywgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy03LCA4LCAtNiwgLTEwLCAtOCwgLTIsIC05LCAtOSwgLTIsIC01LCAtOCwgMCwgLTQsIC05LCAtNCwgLTMsIC02LCAtMiwgLTEwLCAtOCwgLTcsIC00LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTYsIDgsIDIsIC0xMSwgLTMsIC0yLCAtMywgMCwgLTUsIC03LCAtMSwgLTksIC05LCAtNiwgMCwgLTIsIC04LCAtNCwgLTgsIDYsIC0zLCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTEwLCAyLCA4LCAtMTQsIC0yLCAyLCAtMywgLTQsIC03LCAtMTIsIC00LCAtMTEsIC0xNSwgLTgsIC00LCAtNSwgLTE1LCAtMTEsIC04LCA2LCAxLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC0xMSwgLTE0LCAxMCwgLTE0LCAtMTQsIC05LCAtNywgLTYsIC0xNSwgLTE0LCAtMTMsIC0xMywgLTgsIC0zLCAtOCwgLTE1LCAtNCwgLTYsIC0xMiwgLTE0LCAtOSwgLTE3XSxcbiAgICAgICAgICAgIFstNCwgLTIsIC0zLCAtMiwgLTE0LCA4LCAxLCAtNywgMSwgLTgsIC01LCAtMywgLTQsIC0xMywgLTMsIC01LCAtNSwgLTEzLCAtMTIsIC03LCAtMywgNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC05LCAtMiwgMiwgLTE0LCAxLCA4LCAtNCwgLTUsIC01LCAtOSwgLTQsIC03LCAtMTQsIC01LCAtNCwgLTYsIC0xNywgLTgsIC02LCAxLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0zLCAtMywgLTksIC03LCAtNCwgNiwgLTksIC0xMSwgLTEwLCAtNywgLTgsIC05LCAtNiwgLTIsIC02LCAtMTUsIC0xNCwgLTUsIC0zLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTcsIC0yLCAwLCAtNCwgLTcsIDEsIC01LCAtOSwgOSwgLTksIC02LCAtNiwgLTEwLCAtNiwgLTQsIC02LCAtNywgLTcsIC0zLCAtNiwgLTEsIC0xLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNSwgLTUsIC01LCAtNywgLTYsIC04LCAtNSwgLTExLCAtOSwgOCwgLTEsIC02LCAtMSwgLTIsIC04LCAtNywgLTIsIC0xNCwgLTYsIDIsIC02LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTYsIC04LCAtNywgLTEyLCAtMTUsIC01LCAtOSwgLTEwLCAtNiwgLTEsIDcsIC04LCAxLCAtMywgLTcsIC04LCAtNywgLTYsIC03LCAtMiwgLTksIC03LCAtNiwgLTE3XSxcbiAgICAgICAgICAgIFstNywgMCwgLTEsIC00LCAtMTQsIC0zLCAtNCwgLTcsIC02LCAtNiwgLTgsIDcsIC0yLCAtMTQsIC02LCAtNCwgLTMsIC0xMiwgLTksIC05LCAtMiwgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNCwgLTksIC0xMSwgLTEzLCAtNCwgLTcsIC04LCAtMTAsIC0xLCAxLCAtMiwgMTEsIC00LCAtOCwgLTUsIC00LCAtMTMsIC0xMSwgLTEsIC0xMCwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy04LCAtOSwgLTksIC0xNSwgLTEzLCAtMTMsIC0xNCwgLTksIC02LCAtMiwgLTMsIC0xNCwgLTQsIDksIC0xMCwgLTYsIC05LCAtNCwgMiwgLTgsIC0xMCwgLTEzLCAtOCwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC02LCAtOCwgLTgsIC0zLCAtNSwgLTYsIC00LCAtOCwgLTcsIC02LCAtOCwgLTEwLCA4LCAtMiwgLTQsIC0xNCwgLTEzLCAtNiwgLTcsIC00LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFswLCAtMywgMCwgLTQsIC0zLCAtNSwgLTQsIC0yLCAtNiwgLTcsIC04LCAtNCwgLTUsIC02LCAtMiwgNiwgMCwgLTUsIC03LCAtNiwgLTEsIC01LCAtMywgLTE3XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC0yLCAtNSwgLTgsIC01LCAtNiwgLTYsIC03LCAtMiwgLTcsIC0zLCAtNCwgLTksIC00LCAwLCA3LCAtMTMsIC02LCAtMywgLTMsIC02LCAtNCwgLTE3XSxcbiAgICAgICAgICAgIFstMTMsIC0yLCAtOCwgLTE1LCAtMTUsIC0xMywgLTE3LCAtMTUsIC03LCAtMTQsIC02LCAtMTIsIC0xMywgLTQsIC0xNCwgLTUsIC0xMywgMTMsIC01LCAtMTUsIC0xMCwgLTE0LCAtMTEsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC0xMCwgLTQsIC0xMSwgLTQsIC0xMiwgLTgsIC0xNCwgLTMsIC02LCAtNywgLTksIC0xMSwgMiwgLTEzLCAtNywgLTYsIC01LCAxMCwgLTcsIC02LCAtOSwgLTcsIC0xN10sXG4gICAgICAgICAgICBbLTIsIC04LCAtOCwgLTgsIC02LCAtNywgLTYsIC01LCAtNiwgMiwgLTIsIC05LCAtMSwgLTgsIC02LCAtNiwgLTMsIC0xNSwgLTcsIDcsIC04LCAtNiwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC03LCA2LCA2LCAtMTIsIC0zLCAxLCAtMywgLTEsIC02LCAtOSwgLTIsIC0xMCwgLTEwLCAtNywgLTEsIC0zLCAtMTAsIC02LCAtOCwgNiwgMCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgMSwgLTE0LCA2LCA2LCAtNSwgLTEsIC02LCAtNywgLTQsIC01LCAtMTMsIC00LCAtNSwgLTYsIC0xNCwgLTksIC02LCAwLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTYsIC0zLCAtNSwgLTksIC01LCAtNSwgLTUsIC01LCAtNSwgLTYsIC01LCAtNSwgLTgsIC01LCAtMywgLTQsIC0xMSwgLTcsIC01LCAtNSwgLTUsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAxXV07XG4gICAgICAgIHRoaXMuUEFNNzAgPSBbWzUsIC00LCAtMiwgLTEsIC00LCAtMiwgLTEsIDAsIC00LCAtMiwgLTQsIC00LCAtMywgLTYsIDAsIDEsIDEsIC05LCAtNSwgLTEsIC0xLCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDgsIC0zLCAtNiwgLTUsIDAsIC01LCAtNiwgMCwgLTMsIC02LCAyLCAtMiwgLTcsIC0yLCAtMSwgLTQsIDAsIC03LCAtNSwgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIDYsIDMsIC03LCAtMSwgMCwgLTEsIDEsIC0zLCAtNSwgMCwgLTUsIC02LCAtMywgMSwgMCwgLTYsIC0zLCAtNSwgNSwgLTEsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNiwgMywgNiwgLTksIDAsIDMsIC0xLCAtMSwgLTUsIC04LCAtMiwgLTcsIC0xMCwgLTQsIC0xLCAtMiwgLTEwLCAtNywgLTUsIDUsIDIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNSwgLTcsIC05LCA5LCAtOSwgLTksIC02LCAtNSwgLTQsIC0xMCwgLTksIC05LCAtOCwgLTUsIC0xLCAtNSwgLTExLCAtMiwgLTQsIC04LCAtOSwgLTYsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIDAsIC0xLCAwLCAtOSwgNywgMiwgLTQsIDIsIC01LCAtMywgLTEsIC0yLCAtOSwgLTEsIC0zLCAtMywgLTgsIC04LCAtNCwgLTEsIDUsIC0yLCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgMCwgMywgLTksIDIsIDYsIC0yLCAtMiwgLTQsIC02LCAtMiwgLTQsIC05LCAtMywgLTIsIC0zLCAtMTEsIC02LCAtNCwgMiwgNSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMCwgLTYsIC0xLCAtMSwgLTYsIC00LCAtMiwgNiwgLTYsIC02LCAtNywgLTUsIC02LCAtNywgLTMsIDAsIC0zLCAtMTAsIC05LCAtMywgLTEsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgMCwgMSwgLTEsIC01LCAyLCAtMiwgLTYsIDgsIC02LCAtNCwgLTMsIC02LCAtNCwgLTIsIC0zLCAtNCwgLTUsIC0xLCAtNCwgMCwgMSwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTUsIC00LCAtNSwgLTQsIC02LCAtNiwgNywgMSwgLTQsIDEsIDAsIC01LCAtNCwgLTEsIC05LCAtNCwgMywgLTQsIC00LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNCwgLTYsIC01LCAtOCwgLTEwLCAtMywgLTYsIC03LCAtNCwgMSwgNiwgLTUsIDIsIC0xLCAtNSwgLTYsIC00LCAtNCwgLTQsIDAsIC02LCAtNCwgLTQsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIDIsIDAsIC0yLCAtOSwgLTEsIC0yLCAtNSwgLTMsIC00LCAtNSwgNiwgMCwgLTksIC00LCAtMiwgLTEsIC03LCAtNywgLTYsIC0xLCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTMsIC0yLCAtNSwgLTcsIC05LCAtMiwgLTQsIC02LCAtNiwgMSwgMiwgMCwgMTAsIC0yLCAtNSwgLTMsIC0yLCAtOCwgLTcsIDAsIC02LCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTYsIC03LCAtNiwgLTEwLCAtOCwgLTksIC05LCAtNywgLTQsIDAsIC0xLCAtOSwgLTIsIDgsIC03LCAtNCwgLTYsIC0yLCA0LCAtNSwgLTcsIC05LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFswLCAtMiwgLTMsIC00LCAtNSwgLTEsIC0zLCAtMywgLTIsIC01LCAtNSwgLTQsIC01LCAtNywgNywgMCwgLTIsIC05LCAtOSwgLTMsIC00LCAtMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIC0xLCAtMSwgLTMsIC0yLCAwLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAwLCA1LCAyLCAtMywgLTUsIC0zLCAwLCAtMiwgLTEsIC0xMV0sXG4gICAgICAgICAgICBbMSwgLTQsIDAsIC0yLCAtNSwgLTMsIC0zLCAtMywgLTQsIC0xLCAtNCwgLTEsIC0yLCAtNiwgLTIsIDIsIDYsIC04LCAtNCwgLTEsIC0xLCAtMywgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTksIDAsIC02LCAtMTAsIC0xMSwgLTgsIC0xMSwgLTEwLCAtNSwgLTksIC00LCAtNywgLTgsIC0yLCAtOSwgLTMsIC04LCAxMywgLTMsIC0xMCwgLTcsIC0xMCwgLTcsIC0xMV0sXG4gICAgICAgICAgICBbLTUsIC03LCAtMywgLTcsIC0yLCAtOCwgLTYsIC05LCAtMSwgLTQsIC00LCAtNywgLTcsIDQsIC05LCAtNSwgLTQsIC0zLCA5LCAtNSwgLTQsIC03LCAtNSwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTUsIC01LCAtNSwgLTQsIC00LCAtNCwgLTMsIC00LCAzLCAwLCAtNiwgMCwgLTUsIC0zLCAtMywgLTEsIC0xMCwgLTUsIDYsIC01LCAtNCwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC00LCA1LCA1LCAtOCwgLTEsIDIsIC0xLCAwLCAtNCwgLTYsIC0xLCAtNiwgLTcsIC00LCAwLCAtMSwgLTcsIC00LCAtNSwgNSwgMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMSwgMiwgLTksIDUsIDUsIC0zLCAxLCAtNCwgLTQsIC0yLCAtMywgLTksIC0yLCAtMiwgLTMsIC0xMCwgLTcsIC00LCAxLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0yLCAtMywgLTYsIC0yLCAtMywgLTMsIC0zLCAtMywgLTQsIC0zLCAtMywgLTUsIC0zLCAtMSwgLTIsIC03LCAtNSwgLTIsIC0yLCAtMywgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0yNTAgPSBbWzIsIC0yLCAwLCAwLCAtMiwgMCwgMCwgMSwgLTEsIC0xLCAtMiwgLTEsIC0xLCAtMywgMSwgMSwgMSwgLTYsIC0zLCAwLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTIsIDYsIDAsIC0xLCAtNCwgMSwgLTEsIC0zLCAyLCAtMiwgLTMsIDMsIDAsIC00LCAwLCAwLCAtMSwgMiwgLTQsIC0yLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAyLCAyLCAtNCwgMSwgMSwgMCwgMiwgLTIsIC0zLCAxLCAtMiwgLTMsIDAsIDEsIDAsIC00LCAtMiwgLTIsIDIsIDEsIDAsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgNCwgLTUsIDIsIDMsIDEsIDEsIC0yLCAtNCwgMCwgLTMsIC02LCAtMSwgMCwgMCwgLTcsIC00LCAtMiwgMywgMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMiwgLTQsIC00LCAtNSwgMTIsIC01LCAtNSwgLTMsIC0zLCAtMiwgLTYsIC01LCAtNSwgLTQsIC0zLCAwLCAtMiwgLTgsIDAsIC0yLCAtNCwgLTUsIC0zLCAtOF0sXG4gICAgICAgICAgICBbMCwgMSwgMSwgMiwgLTUsIDQsIDIsIC0xLCAzLCAtMiwgLTIsIDEsIC0xLCAtNSwgMCwgLTEsIC0xLCAtNSwgLTQsIC0yLCAxLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAxLCAzLCAtNSwgMiwgNCwgMCwgMSwgLTIsIC0zLCAwLCAtMiwgLTUsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzEsIC0zLCAwLCAxLCAtMywgLTEsIDAsIDUsIC0yLCAtMywgLTQsIC0yLCAtMywgLTUsIDAsIDEsIDAsIC03LCAtNSwgLTEsIDAsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIDIsIDIsIDEsIC0zLCAzLCAxLCAtMiwgNiwgLTIsIC0yLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgLTMsIDAsIC0yLCAxLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMywgLTIsIDUsIDIsIC0yLCAyLCAxLCAtMiwgLTEsIDAsIC01LCAtMSwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTMsIC00LCAtNiwgLTIsIC0zLCAtNCwgLTIsIDIsIDYsIC0zLCA0LCAyLCAtMywgLTMsIC0yLCAtMiwgLTEsIDIsIC0zLCAtMywgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMywgMSwgMCwgLTUsIDEsIDAsIC0yLCAwLCAtMiwgLTMsIDUsIDAsIC01LCAtMSwgMCwgMCwgLTMsIC00LCAtMiwgMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTIsIC0zLCAtNSwgLTEsIC0yLCAtMywgLTIsIDIsIDQsIDAsIDYsIDAsIC0yLCAtMiwgLTEsIC00LCAtMiwgMiwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNCwgLTMsIC02LCAtNCwgLTUsIC01LCAtNSwgLTIsIDEsIDIsIC01LCAwLCA5LCAtNSwgLTMsIC0zLCAwLCA3LCAtMSwgLTQsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWzEsIDAsIDAsIC0xLCAtMywgMCwgLTEsIDAsIDAsIC0yLCAtMywgLTEsIC0yLCAtNSwgNiwgMSwgMCwgLTYsIC01LCAtMSwgLTEsIDAsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMSwgMCwgMCwgLTEsIDAsIDEsIC0xLCAtMSwgLTMsIDAsIC0yLCAtMywgMSwgMiwgMSwgLTIsIC0zLCAtMSwgMCwgMCwgMCwgLThdLFxuICAgICAgICAgICAgWzEsIC0xLCAwLCAwLCAtMiwgLTEsIDAsIDAsIC0xLCAwLCAtMiwgMCwgLTEsIC0zLCAwLCAxLCAzLCAtNSwgLTMsIDAsIDAsIC0xLCAwLCAtOF0sXG4gICAgICAgICAgICBbLTYsIDIsIC00LCAtNywgLTgsIC01LCAtNywgLTcsIC0zLCAtNSwgLTIsIC0zLCAtNCwgMCwgLTYsIC0yLCAtNSwgMTcsIDAsIC02LCAtNSwgLTYsIC00LCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMiwgLTQsIDAsIC00LCAtNCwgLTUsIDAsIC0xLCAtMSwgLTQsIC0yLCA3LCAtNSwgLTMsIC0zLCAwLCAxMCwgLTIsIC0zLCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTIsIDQsIDIsIC0yLCAyLCAtMSwgLTEsIC0xLCAwLCAtNiwgLTIsIDQsIC0yLCAtMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMSwgMiwgMywgLTQsIDEsIDMsIDAsIDEsIC0yLCAtMywgMSwgLTIsIC00LCAtMSwgMCwgMCwgLTUsIC0zLCAtMiwgMywgMiwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAwLCAxLCAzLCAtNSwgMywgMywgMCwgMiwgLTIsIC0zLCAwLCAtMiwgLTUsIDAsIDAsIC0xLCAtNiwgLTQsIC0yLCAyLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAwLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuU0NITkVJREVSID0gW1sxMS42LCAtMi43LCA5LjcsIC0xLjcsIC0yLjcsIC02LjQsIC0zLjksIC01LjYsIDUuMSwgLTUuMCwgMy42LCAtNC4yLCAtNi4zLCAtMTMuMCwgLTcuMSwgLTExLjUsIDAuNCwgLTYuMCwgLTEuOSwgLTUuMywgLTguNSwgLTExLjIsIC04LjksIC0xMC44LCAyLjEsIDAuMCwgMS40LCAwLjIsIC0xMC4yLCAtMTMuNSwgLTEzLjAsIC0xMi41LCAtMi42LCAtOC41LCAtNS4wLCAtOC4xLCAtNi4zLCAtOS45LCAtNy41LCAtOS4wLCAtNy4xLCAtMTAuMiwgLTguMiwgLTkuMiwgLTguMiwgLTEyLjUsIC0xMS4xLCAtMTEuNCwgLTUwLjAsIC0xNC44LCAtNTAuMCwgLTEzLjgsIC03LjMsIC0xMC4xLCAtOC40LCAtOS4xLCAtNTAuMCwgLTEzLjAsIC0xMy41LCAtMTIuNCwgLTEwLjcsIC0xOC4xLCAtMTEuOCwgLTE3LjIsXSxcbiAgICAgICAgICAgIFstMi43LCAxMy4wLCAtMy4zLCAxMC45LCAtMy41LCAtMC40LCAtMy4zLCAtMS44LCAtNS40LCA0LjYsIC01LjUsIDMuMCwgLTEwLjIsIC03LjksIC05LjksIC05LjYsIC01LjAsIDAuNSwgLTUuNSwgLTEuMCwgLTEwLjMsIC04LjEsIC05LjQsIC05LjYsIC04LjEsIC01LjAsIC03LjMsIC02LjMsIC0xMy40LCAtMTEuMywgLTE0LjQsIC0xMi45LCAtNi4zLCAwLjgsIC02LjQsIC0xLjEsIC03LjQsIC01LjAsIC02LjIsIC02LjUsIC01LjYsIC0xLjYsIC00LjcsIC0zLjAsIC0xMC44LCAtOC43LCAtMTEuOSwgLTEwLjAsIC01MC4wLCAtNi4yLCAtNTAuMCwgLTcuNSwgLTYuMywgLTQuMywgLTYuMiwgLTUuNCwgLTUwLjAsIC03LjAsIC0xNi4zLCAtOC4yLCAtMTMuMiwgLTEyLjMsIC0xMy4xLCAtMTMuMyxdLFxuICAgICAgICAgICAgWzkuNywgLTMuMywgMTEuNiwgLTIuOCwgLTQuNSwgLTYuNywgLTMuMSwgLTYuOSwgMy4zLCAtNS41LCA0LjgsIC01LjEsIC04LjksIC0xMy4yLCAtNS43LCAtMTIuNiwgLTEuNSwgLTYuMSwgLTAuNiwgLTYuMSwgLTEwLjAsIC0xMS44LCAtOC42LCAtMTEuOSwgMS4yLCAwLjUsIDIuMiwgMC4xLCAtMTEuOCwgLTE0LjAsIC0xMS45LCAtMTMuNCwgLTQuOSwgLTkuMSwgLTMuNCwgLTguOSwgLTguMCwgLTEwLjAsIC03LjIsIC0xMC4wLCAtOS4xLCAtMTAuMiwgLTcuMSwgLTkuOSwgLTEwLjEsIC0xMy4wLCAtMTAuNiwgLTEyLjcsIC01MC4wLCAtMTQuOSwgLTUwLjAsIC0xNC40LCAtOC45LCAtMTAuOCwgLTguOSwgLTEwLjQsIC01MC4wLCAtMTMuMSwgLTExLjgsIC0xMy4wLCAtMTIuNCwgLTE5LjQsIC0xMS41LCAtMTcuOCxdLFxuICAgICAgICAgICAgWy0xLjcsIDEwLjksIC0yLjgsIDEyLjksIC0yLjcsIC0yLjIsIC0yLjgsIDAuMiwgLTQuOCwgMi45LCAtNS4yLCA1LjIsIC05LjEsIC05LjUsIC05LjAsIC03LjAsIC00LjAsIC0xLjAsIC01LjAsIDEuMCwgLTkuMCwgLTguOCwgLTguOSwgLTcuNywgLTcuMCwgLTYuOCwgLTcuMSwgLTQuMywgLTEyLjQsIC0xMi45LCAtMTMuOSwgLTEwLjAsIC00LjksIC0wLjcsIC01LjYsIDEuNCwgLTYuMCwgLTYuNSwgLTYuMiwgLTQuOCwgLTUuMSwgLTMuMiwgLTUuMCwgLTEuMiwgLTkuOCwgLTkuOSwgLTExLjMsIC04LjIsIC01MC4wLCAtNy42LCAtNTAuMCwgLTUuMSwgLTUuNSwgLTUuOCwgLTUuOSwgLTQuMiwgLTUwLjAsIC04LjMsIC0xNS41LCAtNS45LCAtMTEuNiwgLTE0LjIsIC0xMi4wLCAtMTEuNixdLFxuICAgICAgICAgICAgWy0yLjcsIC0zLjUsIC00LjUsIC0yLjcsIDExLjcsIDkuMCwgMTAuNiwgOS42LCAtMy4yLCAtMC43LCAtNS4xLCAtMC40LCAwLjcsIC00LjYsIC0wLjQsIC0zLjYsIC00LjgsIC04LjksIC02LjUsIC03LjgsIC0xLjQsIC00LjEsIC0yLjksIC0zLjMsIC04LjAsIC05LjEsIC04LjAsIC04LjIsIC02LjAsIC05LjMsIC03LjcsIC04LjUsIC02LjQsIC0xMC4xLCAtNy41LCAtOC42LCAyLjgsIC0wLjcsIDAuOSwgMC4xLCAtNS45LCAtNy4zLCAtNi41LCAtNi41LCAtMC40LCAtMy45LCAtMi42LCAtMy4xLCAtNTAuMCwgLTE0LjYsIC01MC4wLCAtMTIuNiwgMi45LCAwLjEsIDEuOCwgMS4wLCAtNTAuMCwgLTkuMiwgLTEzLjYsIC03LjcsIC00LjgsIC0xMi4yLCAtNi4yLCAtMTEuMCxdLFxuICAgICAgICAgICAgWy02LjQsIC0wLjQsIC02LjcsIC0yLjIsIDkuMCwgMTIuMywgOS44LCA5LjYsIC03LjEsIDIuNCwgLTcuMiwgMC4zLCAtMi45LCAtMS4yLCAtMy4wLCAtMy4zLCAtNy42LCAtNi43LCAtOC4xLCAtNy45LCAtNC45LCAtMS45LCAtNC41LCAtMy44LCAtOS41LCAtNy44LCAtOS4zLCAtOC45LCAtOS40LCAtNy4xLCAtOS4wLCAtOS4wLCAtOS40LCAtNy41LCAtOS4zLCAtOS4yLCAtMC43LCAyLjYsIDAuMiwgLTAuMSwgLTguMCwgLTQuNiwgLTcuNywgLTYuMSwgLTMuNiwgLTEuMCwgLTQuMSwgLTMuMSwgLTUwLjAsIC0xMS42LCAtNTAuMCwgLTExLjYsIDAuMiwgMi4zLCAwLjQsIDAuNSwgLTUwLjAsIC02LjUsIC0xNS4zLCAtNy44LCAtOC40LCAtOS41LCAtOC4zLCAtMTEuMSxdLFxuICAgICAgICAgICAgWy0zLjksIC0zLjMsIC0zLjEsIC0yLjgsIDEwLjYsIDkuOCwgMTIuMiwgOS44LCAtNC45LCAwLjEsIC0zLjYsIC0wLjIsIC0xLjcsIC00LjEsIDAuOSwgLTMuNSwgLTUuOSwgLTguOSwgLTUuNiwgLTguNSwgLTMuOSwgLTMuOSwgLTIuMiwgLTQuNSwgLTcuMywgLTcuNSwgLTYuNCwgLTguNSwgLTcuMSwgLTguMiwgLTYuNywgLTcuOCwgLTcuOSwgLTkuMSwgLTcuMSwgLTkuNCwgMC45LCAtMC4yLCAyLjUsIC0wLjMsIC02LjksIC02LjUsIC01LjUsIC02LjgsIC0xLjcsIC0zLjQsIC0xLjcsIC0yLjgsIC01MC4wLCAtMTMuMCwgLTUwLjAsIC0xMS41LCAxLjUsIDAuNywgMi43LCAwLjYsIC01MC4wLCAtOC45LCAtMTIuMSwgLTcuNCwgLTYuMSwgLTExLjUsIC01LjQsIC0xMC40LF0sXG4gICAgICAgICAgICBbLTUuNiwgLTEuOCwgLTYuOSwgMC4yLCA5LjYsIDkuNiwgOS44LCAxMS42LCAtNi42LCAwLjksIC03LjIsIDIuNSwgLTIuMywgLTMuNCwgLTIuMywgLTAuNiwgLTYuNSwgLTguMiwgLTguMCwgLTYuMywgLTMuNywgLTMuNSwgLTMuOSwgLTEuNiwgLTkuOSwgLTguOSwgLTkuNiwgLTcuMCwgLTguNiwgLTguOSwgLTguOCwgLTYuOCwgLTguNiwgLTguMiwgLTguOCwgLTYuOCwgMC4zLCAwLjEsIDAuMiwgMi40LCAtNy40LCAtNi4yLCAtNi45LCAtNC40LCAtMi45LCAtMi45LCAtMy41LCAtMC45LCAtNTAuMCwgLTEyLjIsIC01MC4wLCAtMTAuMSwgMS4yLCAwLjYsIDEuMiwgMi40LCAtNTAuMCwgLTcuNiwgLTE2LjEsIC01LjgsIC03LjIsIC0xMC44LCAtNy40LCAtOS4wLF0sXG4gICAgICAgICAgICBbNS4xLCAtNS40LCAzLjMsIC00LjgsIC0zLjIsIC03LjEsIC00LjksIC02LjYsIDEzLjMsIC0yLjgsIDExLjIsIC0xLjksIC01LjcsIC0xMi41LCAtNy4yLCAtMTEuNiwgLTAuNywgLTQuOCwgLTMuMSwgLTQuMywgLTEwLjAsIC0xMS42LCAtOC44LCAtMTEuNywgMTAuNSwgNy43LCA5LjEsIDguNSwgLTkuOCwgLTEyLjcsIC0xMS43LCAtMTEuOCwgLTYuMywgLTExLjQsIC04LjgsIC0xMS4wLCAtNy41LCAtMTAuMywgLTguMywgLTkuOSwgLTEuOSwgLTYuNywgLTQuMSwgLTYuNCwgLTcuOSwgLTEyLjUsIC0xMS40LCAtMTEuNywgLTUwLjAsIC0xNC4wLCAtNTAuMCwgLTEzLjIsIC04LjUsIC0xMC40LCAtOS4xLCAtOS42LCAtNTAuMCwgLTkuOCwgLTcuNywgLTguOCwgLTEwLjMsIC0xNy45LCAtMTEuOCwgLTE2LjAsXSxcbiAgICAgICAgICAgIFstNS4wLCA0LjYsIC01LjUsIDIuOSwgLTAuNywgMi40LCAwLjEsIDAuOSwgLTIuOCwgMTIuOCwgLTIuNiwgMTEuMCwgLTguNCwgLTYuMywgLTguMywgLTcuNywgLTYuMSwgLTIuOSwgLTYuNSwgLTQuMiwgLTguNSwgLTUuOSwgLTcuNSwgLTcuNywgLTUuNSwgLTIuNCwgLTUuNSwgLTQuMSwgLTEyLjksIC0xMC4zLCAtMTIuNywgLTExLjMsIC03LjQsIC0zLjEsIC03LjQsIC00LjksIC00LjQsIC0xLjgsIC0zLjUsIC0zLjUsIC0xLjYsIDMuMCwgLTAuOCwgMC45LCAtOC40LCAtNi4zLCAtOS42LCAtNy4zLCAtNTAuMCwgLTkuMCwgLTUwLjAsIC05LjcsIC0yLjMsIC0wLjIsIC0xLjIsIC0xLjUsIC01MC4wLCAtMC43LCAtMTMuMywgLTIuMCwgLTExLjgsIC0xMS45LCAtMTIuMywgLTEyLjcsXSxcbiAgICAgICAgICAgIFszLjYsIC01LjUsIDQuOCwgLTUuMiwgLTUuMSwgLTcuMiwgLTMuNiwgLTcuMiwgMTEuMiwgLTIuNiwgMTMuNCwgLTIuMSwgLTcuNywgLTEyLjUsIC01LjMsIC0xMS45LCAtMi4yLCAtNC40LCAtMS45LCAtNC44LCAtMTAuMiwgLTExLjUsIC04LjEsIC0xMi4wLCA5LjMsIDguMiwgMTAuMCwgOC4wLCAtMTAuOCwgLTExLjksIC0xMC43LCAtMTIuNCwgLTguMiwgLTExLjgsIC02LjksIC0xMS41LCAtOC40LCAtOS45LCAtNy4xLCAtMTAuNiwgLTQuNywgLTYuOCwgLTEuMiwgLTcuMCwgLTkuOCwgLTExLjYsIC05LjYsIC0xMi4xLCAtNTAuMCwgLTE0LjEsIC01MC4wLCAtMTIuNywgLTEwLjAsIC0xMC44LCAtOC44LCAtMTAuNSwgLTUwLjAsIC05LjIsIC00LjIsIC05LjMsIC0xMS4wLCAtMTguMiwgLTExLjEsIC0xNi4xLF0sXG4gICAgICAgICAgICBbLTQuMiwgMy4wLCAtNS4xLCA1LjIsIC0wLjQsIDAuMywgLTAuMiwgMi41LCAtMS45LCAxMS4wLCAtMi4xLCAxMy4yLCAtNy42LCAtOC41LCAtOC4wLCAtNS4zLCAtNS42LCAtNC41LCAtNi44LCAtMi40LCAtNy44LCAtNy45LCAtNy45LCAtNi4yLCAtNS43LCAtNS4xLCAtNS40LCAtMi4xLCAtMTIuNCwgLTEyLjMsIC0xMy4xLCAtMTAuMSwgLTYuNiwgLTQuNCwgLTYuOSwgLTIuNiwgLTMuNiwgLTMuOCwgLTMuNywgLTIuMCwgLTEuNCwgMC44LCAtMC45LCAzLjAsIC04LjIsIC04LjEsIC05LjIsIC01LjgsIC01MC4wLCAtMTAuMSwgLTUwLjAsIC03LjQsIC0xLjcsIC0yLjAsIC0xLjUsIC0wLjUsIC01MC4wLCAtMi4xLCAtMTIuNiwgLTAuNCwgLTExLjYsIC0xMy45LCAtMTEuNCwgLTExLjEsXSxcbiAgICAgICAgICAgIFstNi4zLCAtMTAuMiwgLTguOSwgLTkuMSwgMC43LCAtMi45LCAtMS43LCAtMi4zLCAtNS43LCAtOC40LCAtNy43LCAtNy42LCAxMy4yLCA5LjYsIDMuNSwgOS43LCAtOC43LCAtMTIuNCwgLTEwLjcsIC0xMC43LCAtNy44LCAtMTAuMiwgLTguOCwgLTkuNiwgLTkuNSwgLTExLjksIC0xMC45LCAtMTAuNSwgMi4zLCAtMC40LCAtMC4yLCAtMC4zLCAtOS43LCAtMTUuNSwgLTExLjQsIC0xMy43LCAtMy4wLCAtNi40LCAtNC4xLCAtNS40LCAtOS42LCAtMTEuOSwgLTEwLjUsIC0xMS44LCA2LjIsIDMuMywgMy43LCAzLjYsIC01MC4wLCAtMTMuNiwgLTUwLjAsIC0xMS45LCAtNS42LCAtOC44LCAtNy4yLCAtOC45LCAtNTAuMCwgLTEyLjQsIC0xNC4xLCAtMTEuNiwgMi44LCAtNi40LCAwLjUsIC01LjIsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuOSwgLTEzLjIsIC05LjUsIC00LjYsIC0xLjIsIC00LjEsIC0zLjQsIC0xMi41LCAtNi4zLCAtMTIuNSwgLTguNSwgOS42LCAxMi43LCAwLjIsIDEwLjUsIC0xMi40LCAtMTEuNiwgLTEzLjIsIC0xMi4wLCAtMTIuNCwgLTEwLjEsIC0xMS42LCAtMTIuMCwgLTE1LjEsIC0xMy4xLCAtMTQuMywgLTEzLjQsIC0xLjQsIDEuNCwgLTEuNiwgLTAuNSwgLTE0LjksIC0xNC4zLCAtMTUuMiwgLTE2LjgsIC03LjcsIC00LjcsIC02LjMsIC02LjYsIC0xNC42LCAtMTAuOCwgLTEyLjgsIC0xMy4wLCAyLjMsIDYuMCwgMi41LCAzLjYsIC01MC4wLCAtMTEuMiwgLTUwLjAsIC0xMS45LCAtMTAuNSwgLTkuMiwgLTEwLjUsIC0xMC41LCAtNTAuMCwgLTEwLjMsIC0xNi4yLCAtMTEuMywgLTEuNywgLTMuNywgLTIuNSwgLTUuNCxdLFxuICAgICAgICAgICAgWy03LjEsIC05LjksIC01LjcsIC05LjAsIC0wLjQsIC0zLjAsIDAuOSwgLTIuMywgLTcuMiwgLTguMywgLTUuMywgLTguMCwgMy41LCAwLjIsIDE0LjMsIDEuMCwgLTcuMywgLTExLjIsIC02LjksIC05LjcsIC04LjUsIC0xMC4yLCAtNy43LCAtOS44LCAtMTAuMCwgLTEwLjQsIC04LjQsIC0xMC4yLCAxLjAsIC0wLjYsIDEuNywgLTAuNSwgLTExLjEsIC0xNC44LCAtOS43LCAtMTQuNSwgLTMuNywgLTUuOCwgLTMuMSwgLTUuNiwgLTEwLjQsIC0xMS41LCAtOC4yLCAtMTEuMSwgMC42LCAtMS42LCAxLjYsIC0xLjEsIC01MC4wLCAtMTIuNCwgLTUwLjAsIC0xMS41LCAtNS41LCAtOC4wLCAtNC45LCAtNy4yLCAtNTAuMCwgLTEyLjQsIC0xMC4zLCAtMTEuNiwgMC43LCAtNi44LCAyLjQsIC02LjAsXSxcbiAgICAgICAgICAgIFstMTEuNSwgLTkuNiwgLTEyLjYsIC03LjAsIC0zLjYsIC0zLjMsIC0zLjUsIC0wLjYsIC0xMS42LCAtNy43LCAtMTEuOSwgLTUuMywgOS43LCAxMC41LCAxLjAsIDEyLjYsIC0xMi4wLCAtMTIuMiwgLTEyLjUsIC05LjcsIC0xMS4xLCAtMTEuMiwgLTExLjksIC05LjQsIC0xMi45LCAtMTQuMywgLTE0LjAsIC0xMS45LCAtMS4wLCAtMC40LCAtMS42LCAxLjIsIC0xMy45LCAtMTUuNCwgLTEzLjcsIC0xMi42LCAtNi4yLCAtNi43LCAtNi4zLCAtNC40LCAtMTMuMCwgLTEyLjIsIC0xMy4wLCAtMTAuNCwgMi45LCAzLjgsIDIuNSwgNS44LCAtNTAuMCwgLTEyLjUsIC01MC4wLCAtMTAuMiwgLTkuNiwgLTkuNywgLTkuNiwgLTguMywgLTUwLjAsIC0xMS42LCAtMTUuNCwgLTkuNCwgLTEuMSwgLTUuNCwgLTEuNiwgLTMuMyxdLFxuICAgICAgICAgICAgWzAuNCwgLTUuMCwgLTEuNSwgLTQuMCwgLTQuOCwgLTcuNiwgLTUuOSwgLTYuNSwgLTAuNywgLTYuMSwgLTIuMiwgLTUuNiwgLTguNywgLTEyLjQsIC03LjMsIC0xMi4wLCAxMi44LCAyLjMsIDEwLjIsIDMuMCwgMC4wLCAtMy40LCAtMC43LCAtMy4yLCAyLjUsIC0wLjgsIDAuOSwgMC4yLCAtMy4wLCAtNy4yLCAtNS43LCAtNi4xLCAtMC4yLCAtNi42LCAtMS44LCAtNi4wLCAtNS4zLCAtOC4yLCAtNS43LCAtNy42LCAtNi43LCAtOS42LCAtNy41LCAtOS4zLCAtNy4xLCAtMTAuNSwgLTkuNiwgLTkuNCwgLTUwLjAsIC04LjEsIC01MC4wLCAtNy4yLCAtNC4zLCAtNi44LCAtNS43LCAtNi4zLCAtNTAuMCwgLTkuNSwgLTkuNiwgLTguOSwgLTYuMiwgLTEyLjgsIC02LjgsIC0xMS44LF0sXG4gICAgICAgICAgICBbLTYuMCwgMC41LCAtNi4xLCAtMS4wLCAtOC45LCAtNi43LCAtOC45LCAtOC4yLCAtNC44LCAtMi45LCAtNC40LCAtNC41LCAtMTIuNCwgLTExLjYsIC0xMS4yLCAtMTIuMiwgMi4zLCAxNC42LCAxLjksIDEyLjksIC01LjUsIC0yLjYsIC00LjEsIC00LjcsIC0xLjIsIDMuMCwgLTEuMSwgMS42LCAtOC4wLCAtNC43LCAtOC43LCAtNi4wLCAtOC4yLCAtNC43LCAtNy44LCAtNi43LCAtMTAuMCwgLTguMywgLTguOSwgLTkuOSwgLTEwLjgsIC03LjEsIC0xMC4wLCAtOS4yLCAtMTEuNiwgLTEwLjEsIC0xMi4zLCAtMTEuOSwgLTUwLjAsIDIuMiwgLTUwLjAsIDAuOSwgLTcuOSwgLTUuOSwgLTcuNCwgLTYuOSwgLTUwLjAsIC00LjYsIC0xMS42LCAtNS42LCAtOS43LCAtNS45LCAtOS45LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEuOSwgLTUuNSwgLTAuNiwgLTUuMCwgLTYuNSwgLTguMSwgLTUuNiwgLTguMCwgLTMuMSwgLTYuNSwgLTEuOSwgLTYuOCwgLTEwLjcsIC0xMy4yLCAtNi45LCAtMTIuNSwgMTAuMiwgMS45LCAxMS45LCAyLjEsIC0yLjMsIC00LjEsIC0wLjUsIC00LjYsIC0wLjEsIC0wLjksIDIuNCwgLTAuOCwgLTUuMSwgLTYuOSwgLTQuOCwgLTYuNywgLTIuMywgLTcuMSwgLTAuOCwgLTcuMiwgLTcuMiwgLTguMCwgLTUuNiwgLTguNSwgLTkuNCwgLTkuNywgLTcuMiwgLTkuOCwgLTkuMiwgLTExLjEsIC05LjUsIC0xMC43LCAtNTAuMCwgLTguNywgLTUwLjAsIC04LjYsIC02LjEsIC03LjUsIC01LjUsIC03LjcsIC01MC4wLCAtMTAuNCwgLTcuNywgLTEwLjAsIC03LjMsIC0xMy42LCAtNi40LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy01LjMsIC0xLjAsIC02LjEsIDEuMCwgLTcuOCwgLTcuOSwgLTguNSwgLTYuMywgLTQuMywgLTQuMiwgLTQuOCwgLTIuNCwgLTEwLjcsIC0xMi4wLCAtOS43LCAtOS43LCAzLjAsIDEyLjksIDIuMSwgMTQuNywgLTQuOSwgLTMuOCwgLTQuMCwgLTIuNCwgLTEuMCwgMC44LCAtMS4zLCAzLjQsIC03LjYsIC01LjcsIC04LjEsIC0zLjUsIC02LjgsIC01LjgsIC03LjIsIC00LjIsIC04LjksIC0xMC4yLCAtOC40LCAtOC4yLCAtOS45LCAtOC40LCAtOS43LCAtNi40LCAtMTEuMSwgLTExLjEsIC0xMS44LCAtMTAuMCwgLTUwLjAsIDAuNCwgLTUwLjAsIDIuNiwgLTcuMiwgLTcuMCwgLTcuNCwgLTUuMSwgLTUwLjAsIC01LjcsIC05LjgsIC0zLjIsIC04LjQsIC03LjQsIC04LjksIC01LjksXSxcbiAgICAgICAgICAgIFstOC41LCAtMTAuMywgLTEwLjAsIC05LjAsIC0xLjQsIC00LjksIC0zLjksIC0zLjcsIC0xMC4wLCAtOC41LCAtMTAuMiwgLTcuOCwgLTcuOCwgLTEyLjQsIC04LjUsIC0xMS4xLCAwLjAsIC01LjUsIC0yLjMsIC00LjksIDEyLjYsIDEwLjAsIDExLjEsIDEwLjUsIC02LjAsIC04LjMsIC02LjksIC03LjUsIC0yLjIsIC03LjQsIC01LjMsIC01LjksIC04LjksIC0xMi41LCAtOS40LCAtMTEuNiwgLTAuNywgLTMuOSwgLTIuMywgLTMuMCwgLTkuMSwgLTkuOCwgLTkuMiwgLTkuNSwgLTUuNiwgLTkuMCwgLTguMCwgLTguNSwgLTUwLjAsIC0xNS4zLCAtNTAuMCwgLTE0LjEsIDIuMywgLTEuNCwgMC4zLCAtMC41LCAtNTAuMCwgLTEzLjYsIC0xNC4zLCAtMTEuNSwgLTUuMywgLTEzLjcsIC02LjEsIC0xMi43LF0sXG4gICAgICAgICAgICBbLTExLjIsIC04LjEsIC0xMS44LCAtOC44LCAtNC4xLCAtMS45LCAtMy45LCAtMy41LCAtMTEuNiwgLTUuOSwgLTExLjUsIC03LjksIC0xMC4yLCAtMTAuMSwgLTEwLjIsIC0xMS4yLCAtMy40LCAtMi42LCAtNC4xLCAtMy44LCAxMC4wLCAxMy4xLCAxMC43LCAxMC42LCAtOC4xLCAtNS4yLCAtOC4wLCAtNi43LCAtNi4xLCAtMy43LCAtNy41LCAtNS42LCAtMTEuMSwgLTEwLjMsIC0xMC42LCAtMTEuOSwgLTMuMiwgLTEuMCwgLTIuMiwgLTIuOCwgLTEwLjUsIC04LjEsIC05LjQsIC05LjUsIC04LjMsIC02LjksIC05LjQsIC04LjgsIC01MC4wLCAtMTEuMywgLTUwLjAsIC0xMi44LCAtMC42LCAyLjIsIC0wLjMsIDAuMSwgLTUwLjAsIC0xMC4xLCAtMTcuNSwgLTExLjEsIC04LjYsIC05LjksIC04LjYsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTguOSwgLTkuNCwgLTguNiwgLTguOSwgLTIuOSwgLTQuNSwgLTIuMiwgLTMuOSwgLTguOCwgLTcuNSwgLTguMSwgLTcuOSwgLTguOCwgLTExLjYsIC03LjcsIC0xMS45LCAtMC43LCAtNC4xLCAtMC41LCAtNC4wLCAxMS4xLCAxMC43LCAxMy4yLCAxMC40LCAtNS43LCAtNS44LCAtMy41LCAtNi4xLCAtMy42LCAtNi41LCAtMy4zLCAtNS41LCAtOS40LCAtMTEuMCwgLTguNywgLTExLjIsIC0xLjgsIC0yLjcsIDAuNywgLTMuMCwgLTkuMSwgLTguMiwgLTcuMywgLTkuNCwgLTcuMiwgLTguMiwgLTcuMiwgLTguMiwgLTUwLjAsIC0xMy4yLCAtNTAuMCwgLTEzLjMsIDAuNSwgLTAuOSwgMS44LCAtMC42LCAtNTAuMCwgLTExLjQsIC0xMS4xLCAtMTAuNSwgLTYuMSwgLTEyLjksIC01LjAsIC0xMS45LF0sXG4gICAgICAgICAgICBbLTEwLjgsIC05LjYsIC0xMS45LCAtNy43LCAtMy4zLCAtMy44LCAtNC41LCAtMS42LCAtMTEuNywgLTcuNywgLTEyLjAsIC02LjIsIC05LjYsIC0xMi4wLCAtOS44LCAtOS40LCAtMy4yLCAtNC43LCAtNC42LCAtMi40LCAxMC41LCAxMC42LCAxMC40LCAxMi42LCAtOC4yLCAtNy45LCAtOS4wLCAtNC43LCAtNi4xLCAtNi4wLCAtNy41LCAtMi45LCAtMTAuOSwgLTEyLjIsIC0xMS4yLCAtMTAuOSwgLTIuNCwgLTIuOSwgLTIuNywgLTAuOSwgLTEwLjQsIC05LjcsIC0xMC4yLCAtOC4wLCAtOC40LCAtOS4xLCAtOS4zLCAtNi41LCAtNTAuMCwgLTEzLjMsIC01MC4wLCAtMTEuMCwgLTAuMCwgLTAuNCwgLTAuNCwgMi4zLCAtNTAuMCwgLTEwLjksIC0xNy4yLCAtOC4zLCAtOC4zLCAtMTIuNywgLTcuOCwgLTkuMyxdLFxuICAgICAgICAgICAgWzIuMSwgLTguMSwgMS4yLCAtNy4wLCAtOC4wLCAtOS41LCAtNy4zLCAtOS45LCAxMC41LCAtNS41LCA5LjMsIC01LjcsIC05LjUsIC0xNS4xLCAtMTAuMCwgLTEyLjksIDIuNSwgLTEuMiwgLTAuMSwgLTEuMCwgLTYuMCwgLTguMSwgLTUuNywgLTguMiwgMTMuOCwgMTEuMywgMTEuOCwgMTIuMSwgLTYuMCwgLTkuMSwgLTkuMCwgLTkuNSwgLTguOSwgLTEzLjQsIC0xMC4wLCAtMTMuMSwgLTkuOSwgLTExLjcsIC05LjgsIC0xMi44LCAtNS45LCAtOS40LCAtNi41LCAtOC4xLCAtMTAuNywgLTE0LjAsIC0xMy4zLCAtMTMuOSwgLTUwLjAsIC0xMS45LCAtNTAuMCwgLTkuNywgLTguOSwgLTEwLjgsIC05LjAsIC0xMS4xLCAtNTAuMCwgLTYuNSwgLTUuMywgLTYuMywgLTEwLjUsIC0xNi4yLCAtMTAuNCwgLTE1LjIsXSxcbiAgICAgICAgICAgIFswLjAsIC01LjAsIDAuNSwgLTYuOCwgLTkuMSwgLTcuOCwgLTcuNSwgLTguOSwgNy43LCAtMi40LCA4LjIsIC01LjEsIC0xMS45LCAtMTMuMSwgLTEwLjQsIC0xNC4zLCAtMC44LCAzLjAsIC0wLjksIDAuOCwgLTguMywgLTUuMiwgLTUuOCwgLTcuOSwgMTEuMywgMTUuMCwgMTEuMiwgMTIuOCwgLTkuNywgLTUuMywgLTkuMiwgLTcuOCwgLTExLjcsIC0xMC42LCAtMTAuMSwgLTEyLjIsIC0xMS43LCAtOC44LCAtOC45LCAtMTEuOCwgLTkuMywgLTUuMCwgLTguMCwgLTguMiwgLTEzLjYsIC0xMS40LCAtMTIuOCwgLTEzLjAsIC01MC4wLCAtNy4yLCAtNTAuMCwgLTguNCwgLTExLjAsIC03LjcsIC04LjcsIC0xMC4yLCAtNTAuMCwgLTEuNSwgLTcuMSwgLTQuOSwgLTExLjIsIC0xMS42LCAtMTEuNiwgLTE1LjAsXSxcbiAgICAgICAgICAgIFsxLjQsIC03LjMsIDIuMiwgLTcuMSwgLTguMCwgLTkuMywgLTYuNCwgLTkuNiwgOS4xLCAtNS41LCAxMC4wLCAtNS40LCAtMTAuOSwgLTE0LjMsIC04LjQsIC0xNC4wLCAwLjksIC0xLjEsIDIuNCwgLTEuMywgLTYuOSwgLTguMCwgLTMuNSwgLTkuMCwgMTEuOCwgMTEuMiwgMTMuNCwgMTEuNCwgLTcuMywgLTguOCwgLTYuNSwgLTguNSwgLTEwLjAsIC0xMi41LCAtNy44LCAtMTIuNSwgLTkuNiwgLTExLjAsIC03LjEsIC0xMC43LCAtNy45LCAtOC4wLCAtNC4zLCAtOS40LCAtMTEuNCwgLTEyLjMsIC0xMC45LCAtMTIuOSwgLTUwLjAsIC0xMS44LCAtNTAuMCwgLTExLjIsIC05LjQsIC05LjgsIC03LjMsIC0xMC41LCAtNTAuMCwgLTYuMiwgLTIuMiwgLTYuNywgLTkuOCwgLTE1LjIsIC04LjUsIC0xNC45LF0sXG4gICAgICAgICAgICBbMC4yLCAtNi4zLCAwLjEsIC00LjMsIC04LjIsIC04LjksIC04LjUsIC03LjAsIDguNSwgLTQuMSwgOC4wLCAtMi4xLCAtMTAuNSwgLTEzLjQsIC0xMC4yLCAtMTEuOSwgMC4yLCAxLjYsIC0wLjgsIDMuNCwgLTcuNSwgLTYuNywgLTYuMSwgLTQuNywgMTIuMSwgMTIuOCwgMTEuNCwgMTQuNywgLTguNywgLTcuNCwgLTkuNCwgLTUuMywgLTkuOSwgLTExLjgsIC0xMC41LCAtMTAuMywgLTkuOSwgLTEwLjEsIC05LjMsIC05LjMsIC04LjEsIC03LjIsIC04LjAsIC01LjIsIC0xMi4wLCAtMTIuMSwgLTEyLjYsIC0xMC45LCAtNTAuMCwgLTcuOSwgLTUwLjAsIC01LjMsIC05LjMsIC04LjgsIC04LjksIC03LjAsIC01MC4wLCAtMy42LCAtNy4xLCAtMS4yLCAtMTAuMiwgLTEyLjcsIC05LjksIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xMy40LCAtMTEuOCwgLTEyLjQsIC02LjAsIC05LjQsIC03LjEsIC04LjYsIC05LjgsIC0xMi45LCAtMTAuOCwgLTEyLjQsIDIuMywgLTEuNCwgMS4wLCAtMS4wLCAtMy4wLCAtOC4wLCAtNS4xLCAtNy42LCAtMi4yLCAtNi4xLCAtMy42LCAtNi4xLCAtNi4wLCAtOS43LCAtNy4zLCAtOC43LCAxMS4yLCA3LjksIDguOSwgOC4xLCAtMTIuMSwgLTE3LjQsIC0xMy4yLCAtMTYuOCwgLTYuMywgLTkuNSwgLTcuNSwgLTguOCwgLTEyLjcsIC0xNS4yLCAtMTMuMSwgLTE0LjIsIDAuMCwgLTMuMSwgLTEuOCwgLTMuMSwgLTUwLjAsIC0xMC43LCAtNTAuMCwgLTkuMywgLTQuNiwgLTguOSwgLTUuOSwgLTguMywgLTUwLjAsIC0xMi44LCAtOS42LCAtMTAuNiwgOS41LCAtMy4yLCA4LjIsIC0yLjgsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTExLjMsIC0xNC4wLCAtMTIuOSwgLTkuMywgLTcuMSwgLTguMiwgLTguOSwgLTEyLjcsIC0xMC4zLCAtMTEuOSwgLTEyLjMsIC0wLjQsIDEuNCwgLTAuNiwgLTAuNCwgLTcuMiwgLTQuNywgLTYuOSwgLTUuNywgLTcuNCwgLTMuNywgLTYuNSwgLTYuMCwgLTkuMSwgLTUuMywgLTguOCwgLTcuNCwgNy45LCAxMS45LCA3LjgsIDkuMywgLTE1LjIsIC0xNS4xLCAtMTQuNiwgLTE3LjIsIC05LjcsIC03LjMsIC04LjIsIC05LjIsIC0xNS4wLCAtMTIuOCwgLTE0LjEsIC0xNC45LCAtMi44LCAwLjIsIC0yLjksIC0yLjMsIC01MC4wLCAtNy40LCAtNTAuMCwgLTguNywgLTkuNCwgLTcuMywgLTkuNCwgLTkuNCwgLTUwLjAsIC04LjAsIC0xMS45LCAtOS43LCA2LjUsIDAuNSwgNi40LCAtMS44LF0sXG4gICAgICAgICAgICBbLTEzLjAsIC0xNC40LCAtMTEuOSwgLTEzLjksIC03LjcsIC05LjAsIC02LjcsIC04LjgsIC0xMS43LCAtMTIuNywgLTEwLjcsIC0xMy4xLCAtMC4yLCAtMS42LCAxLjcsIC0xLjYsIC01LjcsIC04LjcsIC00LjgsIC04LjEsIC01LjMsIC03LjUsIC0zLjMsIC03LjUsIC05LjAsIC05LjIsIC02LjUsIC05LjQsIDguOSwgNy44LCAxMC4xLCA3LjgsIC0xNC4zLCAtMTcuNywgLTEzLjAsIC0xNy44LCAtOC4wLCAtOS40LCAtNi4yLCAtOS4yLCAtMTUuMSwgLTE0LjksIC0xMi4yLCAtMTQuOSwgLTEuOCwgLTMuMiwgLTAuOCwgLTMuMiwgLTUwLjAsIC0xMC44LCAtNTAuMCwgLTkuOSwgLTcuMywgLTkuNiwgLTYuNCwgLTkuNCwgLTUwLjAsIC0xMi4zLCAtOC43LCAtMTEuMywgNy42LCAtMy4zLCA4LjcsIC0yLjksXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTEyLjksIC0xMy40LCAtMTAuMCwgLTguNSwgLTkuMCwgLTcuOCwgLTYuOCwgLTExLjgsIC0xMS4zLCAtMTIuNCwgLTEwLjEsIC0wLjMsIC0wLjUsIC0wLjUsIDEuMiwgLTYuMSwgLTYuMCwgLTYuNywgLTMuNSwgLTUuOSwgLTUuNiwgLTUuNSwgLTIuOSwgLTkuNSwgLTcuOCwgLTguNSwgLTUuMywgOC4xLCA5LjMsIDcuOCwgMTEuOCwgLTE0LjQsIC0xNS43LCAtMTQuNSwgLTE0LjYsIC04LjQsIC04LjcsIC03LjksIC03LjEsIC0xNC4zLCAtMTMuOCwgLTEzLjgsIC0xMi4zLCAtMi40LCAtMi4yLCAtMi45LCAtMC4yLCAtNTAuMCwgLTguOSwgLTUwLjAsIC03LjEsIC04LjEsIC05LjEsIC04LjcsIC02LjYsIC01MC4wLCAtOS43LCAtMTEuNCwgLTguMCwgNi44LCAtMS44LCA2LjksIDAuNCxdLFxuICAgICAgICAgICAgWy0yLjYsIC02LjMsIC00LjksIC00LjksIC02LjQsIC05LjQsIC03LjksIC04LjYsIC02LjMsIC03LjQsIC04LjIsIC02LjYsIC05LjcsIC0xNC45LCAtMTEuMSwgLTEzLjksIC0wLjIsIC04LjIsIC0yLjMsIC02LjgsIC04LjksIC0xMS4xLCAtOS40LCAtMTAuOSwgLTguOSwgLTExLjcsIC0xMC4wLCAtOS45LCAtMTIuMSwgLTE1LjIsIC0xNC4zLCAtMTQuNCwgMTEuMSwgMi45LCA5LjIsIDMuNSwgLTMuMCwgLTcuMCwgLTQuMywgLTYuMiwgLTIuMiwgLTYuNiwgLTMuNywgLTUuNywgLTYuMCwgLTEwLjQsIC04LjYsIC05LjUsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xMy45LCAtNy44LCAtMTAuNSwgLTguNywgLTkuNiwgLTUwLjAsIC0xNi41LCAtMTcuMSwgLTE0LjgsIC0xMi4xLCAtMTguOSwgLTEyLjQsIC0xNy40LF0sXG4gICAgICAgICAgICBbLTguNSwgMC44LCAtOS4xLCAtMC43LCAtMTAuMSwgLTcuNSwgLTkuMSwgLTguMiwgLTExLjQsIC0zLjEsIC0xMS44LCAtNC40LCAtMTUuNSwgLTE0LjMsIC0xNC44LCAtMTUuNCwgLTYuNiwgLTQuNywgLTcuMSwgLTUuOCwgLTEyLjUsIC0xMC4zLCAtMTEuMCwgLTEyLjIsIC0xMy40LCAtMTAuNiwgLTEyLjUsIC0xMS44LCAtMTcuNCwgLTE1LjEsIC0xNy43LCAtMTUuNywgMi45LCAxMi41LCAzLjEsIDEwLjMsIC03LjcsIC01LjIsIC02LjIsIC03LjMsIC01LjQsIC0xLjcsIC01LjQsIC0zLjcsIC0xMS42LCAtOS4xLCAtMTMuMCwgLTEwLjgsIC01MC4wLCAtMTAuMywgLTUwLjAsIC0xMS4yLCAtOS44LCAtOC4zLCAtOS4xLCAtOS43LCAtNTAuMCwgLTEyLjcsIC0yMC42LCAtMTMuMSwgLTE2LjAsIC0xNi42LCAtMTcuMCwgLTE4LjQsXSxcbiAgICAgICAgICAgIFstNS4wLCAtNi40LCAtMy40LCAtNS42LCAtNy41LCAtOS4zLCAtNy4xLCAtOC44LCAtOC44LCAtNy40LCAtNi45LCAtNi45LCAtMTEuNCwgLTE1LjIsIC05LjcsIC0xMy43LCAtMS44LCAtNy44LCAtMC44LCAtNy4yLCAtOS40LCAtMTAuNiwgLTguNywgLTExLjIsIC0xMC4wLCAtMTAuMSwgLTcuOCwgLTEwLjUsIC0xMy4yLCAtMTQuNiwgLTEzLjAsIC0xNC41LCA5LjIsIDMuMSwgMTAuOCwgMy4wLCAtNC41LCAtNi43LCAtMi43LCAtNi43LCAtNS4wLCAtNi44LCAtMi41LCAtNi43LCAtNy41LCAtMTAuNCwgLTcuNCwgLTEwLjIsIC01MC4wLCAtMTUuNSwgLTUwLjAsIC0xNC4yLCAtOC45LCAtMTAuMiwgLTguNSwgLTEwLjAsIC01MC4wLCAtMTUuNiwgLTE1LjMsIC0xNS41LCAtMTMuMCwgLTE4LjgsIC0xMi42LCAtMTguMyxdLFxuICAgICAgICAgICAgWy04LjEsIC0xLjEsIC04LjksIDEuNCwgLTguNiwgLTkuMiwgLTkuNCwgLTYuOCwgLTExLjAsIC00LjksIC0xMS41LCAtMi42LCAtMTMuNywgLTE2LjgsIC0xNC41LCAtMTIuNiwgLTYuMCwgLTYuNywgLTcuMiwgLTQuMiwgLTExLjYsIC0xMS45LCAtMTEuMiwgLTEwLjksIC0xMy4xLCAtMTIuMiwgLTEyLjUsIC0xMC4zLCAtMTYuOCwgLTE3LjIsIC0xNy44LCAtMTQuNiwgMy41LCAxMC4zLCAzLjAsIDEyLjQsIC02LjksIC03LjUsIC02LjgsIC00LjksIC01LjQsIC00LjIsIC01LjQsIC0xLjMsIC0xMC44LCAtMTEuNSwgLTEyLjQsIC04LjIsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC04LjksIC05LjIsIC0xMC4wLCAtOS40LCAtNy45LCAtNTAuMCwgLTE0LjMsIC0xOS45LCAtMTEuNCwgLTE2LjIsIC0xOS4yLCAtMTUuOCwgLTE1LjksXSxcbiAgICAgICAgICAgIFstNi4zLCAtNy40LCAtOC4wLCAtNi4wLCAyLjgsIC0wLjcsIDAuOSwgMC4zLCAtNy41LCAtNC40LCAtOC40LCAtMy42LCAtMy4wLCAtNy43LCAtMy43LCAtNi4yLCAtNS4zLCAtMTAuMCwgLTcuMiwgLTguOSwgLTAuNywgLTMuMiwgLTEuOCwgLTIuNCwgLTkuOSwgLTExLjcsIC05LjYsIC05LjksIC02LjMsIC05LjcsIC04LjAsIC04LjQsIC0zLjAsIC03LjcsIC00LjUsIC02LjksIDExLjMsIDguMiwgOS40LCA5LjEsIC0xLjAsIC0zLjMsIC0xLjgsIC0yLjQsIDEuNSwgLTIuMSwgLTAuNCwgLTEuMSwgLTUwLjAsIC0xNC41LCAtNTAuMCwgLTEyLjksIDIuOCwgLTAuMCwgMS40LCAwLjcsIC01MC4wLCAtOC43LCAtMTQuMSwgLTcuNSwgLTUuMiwgLTEyLjUsIC02LjUsIC0xMC43LF0sXG4gICAgICAgICAgICBbLTkuOSwgLTUuMCwgLTEwLjAsIC02LjUsIC0wLjcsIDIuNiwgLTAuMiwgMC4xLCAtMTAuMywgLTEuOCwgLTkuOSwgLTMuOCwgLTYuNCwgLTQuNywgLTUuOCwgLTYuNywgLTguMiwgLTguMywgLTguMCwgLTEwLjIsIC0zLjksIC0xLjAsIC0yLjcsIC0yLjksIC0xMS43LCAtOC44LCAtMTEuMCwgLTEwLjEsIC05LjUsIC03LjMsIC05LjQsIC04LjcsIC03LjAsIC01LjIsIC02LjcsIC03LjUsIDguMiwgMTEuNiwgOC44LCA5LjEsIC0zLjcsIC0wLjksIC0zLjEsIC0zLjAsIC0yLjAsIDEuMiwgLTIuMywgLTEuMywgLTUwLjAsIC0xMi4xLCAtNTAuMCwgLTEyLjYsIDAuMSwgMi41LCAwLjcsIDAuNiwgLTUwLjAsIC02LjAsIC0xNC44LCAtNy41LCAtOC42LCAtOS40LCAtOC41LCAtMTEuMixdLFxuICAgICAgICAgICAgWy03LjUsIC02LjIsIC03LjIsIC02LjIsIDAuOSwgMC4yLCAyLjUsIDAuMiwgLTguMywgLTMuNSwgLTcuMSwgLTMuNywgLTQuMSwgLTYuMywgLTMuMSwgLTYuMywgLTUuNywgLTguOSwgLTUuNiwgLTguNCwgLTIuMywgLTIuMiwgMC43LCAtMi43LCAtOS44LCAtOC45LCAtNy4xLCAtOS4zLCAtNy41LCAtOC4yLCAtNi4yLCAtNy45LCAtNC4zLCAtNi4yLCAtMi43LCAtNi44LCA5LjQsIDguOCwgMTIuMSwgOC44LCAtMi4xLCAtMi4wLCAwLjEsIC0yLjQsIDAuMCwgLTEuMSwgMS4zLCAtMC44LCAtNTAuMCwgLTExLjksIC01MC4wLCAtMTIuNiwgMS4yLCAwLjcsIDMuNSwgMC44LCAtNTAuMCwgLTcuMSwgLTEyLjQsIC03LjEsIC03LjEsIC0xMC42LCAtNS4wLCAtMTAuNixdLFxuICAgICAgICAgICAgWy05LjAsIC02LjUsIC0xMC4wLCAtNC44LCAwLjEsIC0wLjEsIC0wLjMsIDIuNCwgLTkuOSwgLTMuNSwgLTEwLjYsIC0yLjAsIC01LjQsIC02LjYsIC01LjYsIC00LjQsIC03LjYsIC05LjksIC04LjUsIC04LjIsIC0zLjAsIC0yLjgsIC0zLjAsIC0wLjksIC0xMi44LCAtMTEuOCwgLTEwLjcsIC05LjMsIC04LjgsIC05LjIsIC05LjIsIC03LjEsIC02LjIsIC03LjMsIC02LjcsIC00LjksIDkuMSwgOS4xLCA4LjgsIDExLjIsIC0zLjEsIC0zLjAsIC0zLjMsIC0xLjAsIC0xLjEsIC0xLjQsIC0yLjAsIDEuMiwgLTUwLjAsIC0xMi44LCAtNTAuMCwgLTEwLjksIDAuOCwgMC41LCAwLjcsIDIuMywgLTUwLjAsIC03LjUsIC0xNi41LCAtNS45LCAtNy44LCAtMTEuMSwgLTcuOCwgLTkuMCxdLFxuICAgICAgICAgICAgWy03LjEsIC01LjYsIC05LjEsIC01LjEsIC01LjksIC04LjAsIC02LjksIC03LjQsIC0xLjksIC0xLjYsIC00LjcsIC0xLjQsIC05LjYsIC0xNC42LCAtMTAuNCwgLTEzLjAsIC02LjcsIC0xMC44LCAtOS40LCAtOS45LCAtOS4xLCAtMTAuNSwgLTkuMSwgLTEwLjQsIC01LjksIC05LjMsIC03LjksIC04LjEsIC0xMi43LCAtMTUuMCwgLTE1LjEsIC0xNC4zLCAtMi4yLCAtNS40LCAtNS4wLCAtNS40LCAtMS4wLCAtMy43LCAtMi4xLCAtMy4xLCAxMi44LCA5LjYsIDExLjEsIDEwLjEsIC00LjgsIC05LjQsIC04LjEsIC04LjYsIC01MC4wLCAtMTguMywgLTUwLjAsIC0xNS40LCAtNS45LCAtNy41LCAtNi42LCAtNy4xLCAtNTAuMCwgLTkuNSwgLTExLjcsIC04LjQsIC0xMi41LCAtMTcuMywgLTEzLjIsIC0xNS40LF0sXG4gICAgICAgICAgICBbLTEwLjIsIC0xLjYsIC0xMC4yLCAtMy4yLCAtNy4zLCAtNC42LCAtNi41LCAtNi4yLCAtNi43LCAzLjAsIC02LjgsIDAuOCwgLTExLjksIC0xMC44LCAtMTEuNSwgLTEyLjIsIC05LjYsIC03LjEsIC05LjcsIC04LjQsIC05LjgsIC04LjEsIC04LjIsIC05LjcsIC05LjQsIC01LjAsIC04LjAsIC03LjIsIC0xNS4yLCAtMTIuOCwgLTE0LjksIC0xMy44LCAtNi42LCAtMS43LCAtNi44LCAtNC4yLCAtMy4zLCAtMC45LCAtMi4wLCAtMy4wLCA5LjYsIDEyLjgsIDkuNywgMTAuNSwgLTguNSwgLTUuNiwgLTkuMywgLTcuOCwgLTUwLjAsIC0xMi43LCAtNTAuMCwgLTEzLjgsIC02LjgsIC01LjEsIC01LjMsIC02LjUsIC01MC4wLCAtNC4xLCAtMTIuOCwgLTUuOCwgLTE0LjQsIC0xNC4xLCAtMTMuNiwgLTE0LjgsXSxcbiAgICAgICAgICAgIFstOC4yLCAtNC43LCAtNy4xLCAtNS4wLCAtNi41LCAtNy43LCAtNS41LCAtNi45LCAtNC4xLCAtMC44LCAtMS4yLCAtMC45LCAtMTAuNSwgLTEyLjgsIC04LjIsIC0xMy4wLCAtNy41LCAtMTAuMCwgLTcuMiwgLTkuNywgLTkuMiwgLTkuNCwgLTcuMywgLTEwLjIsIC02LjUsIC04LjAsIC00LjMsIC04LjAsIC0xMy4xLCAtMTQuMSwgLTEyLjIsIC0xMy44LCAtMy43LCAtNS40LCAtMi41LCAtNS40LCAtMS44LCAtMy4xLCAwLjEsIC0zLjMsIDExLjEsIDkuNywgMTIuOSwgOS44LCAtNS41LCAtOC4xLCAtNS40LCAtNy44LCAtNTAuMCwgLTE2LjQsIC01MC4wLCAtMTQuOCwgLTUuOSwgLTcuMSwgLTQuNywgLTcuMiwgLTUwLjAsIC04LjQsIC02LjQsIC04LjEsIC0xMi4xLCAtMTYuMiwgLTEwLjMsIC0xNS44LF0sXG4gICAgICAgICAgICBbLTkuMiwgLTMuMCwgLTkuOSwgLTEuMiwgLTYuNSwgLTYuMSwgLTYuOCwgLTQuNCwgLTYuNCwgMC45LCAtNy4wLCAzLjAsIC0xMS44LCAtMTMuMCwgLTExLjEsIC0xMC40LCAtOS4zLCAtOS4yLCAtOS44LCAtNi40LCAtOS41LCAtOS41LCAtOS40LCAtOC4wLCAtOC4xLCAtOC4yLCAtOS40LCAtNS4yLCAtMTQuMiwgLTE0LjksIC0xNC45LCAtMTIuMywgLTUuNywgLTMuNywgLTYuNywgLTEuMywgLTIuNCwgLTMuMCwgLTIuNCwgLTEuMCwgMTAuMSwgMTAuNSwgOS44LCAxMy4xLCAtNy4yLCAtOC4wLCAtOC40LCAtNS4wLCAtNTAuMCwgLTE0LjcsIC01MC4wLCAtMTEuNCwgLTYuMywgLTYuNywgLTUuOCwgLTUuMCwgLTUwLjAsIC02LjEsIC0xMy40LCAtMy42LCAtMTMuMCwgLTE2LjAsIC0xMy43LCAtMTMuMyxdLFxuICAgICAgICAgICAgWy04LjIsIC0xMC44LCAtMTAuMSwgLTkuOCwgLTAuNCwgLTMuNiwgLTEuNywgLTIuOSwgLTcuOSwgLTguNCwgLTkuOCwgLTguMiwgNi4yLCAyLjMsIDAuNiwgMi45LCAtNy4xLCAtMTEuNiwgLTkuMiwgLTExLjEsIC01LjYsIC04LjMsIC03LjIsIC04LjQsIC0xMC43LCAtMTMuNiwgLTExLjQsIC0xMi4wLCAwLjAsIC0yLjgsIC0xLjgsIC0yLjQsIC02LjAsIC0xMS42LCAtNy41LCAtMTAuOCwgMS41LCAtMi4wLCAwLjAsIC0xLjEsIC00LjgsIC04LjUsIC01LjUsIC03LjIsIDExLjksIDguNiwgMTAuMCwgOS4wLCAtNTAuMCwgLTE0LjIsIC01MC4wLCAtMTIuOCwgLTQuMSwgLTcuNCwgLTUuNywgLTYuNSwgLTUwLjAsIC0xMS4wLCAtMTQuMywgLTkuOSwgMS40LCAtNy45LCAtMC43LCAtNi44LF0sXG4gICAgICAgICAgICBbLTEyLjUsIC04LjcsIC0xMy4wLCAtOS45LCAtMy45LCAtMS4wLCAtMy40LCAtMi45LCAtMTIuNSwgLTYuMywgLTExLjYsIC04LjEsIDMuMywgNi4wLCAtMS42LCAzLjgsIC0xMC41LCAtMTAuMSwgLTExLjEsIC0xMS4xLCAtOS4wLCAtNi45LCAtOC4yLCAtOS4xLCAtMTQuMCwgLTExLjQsIC0xMi4zLCAtMTIuMSwgLTMuMSwgMC4yLCAtMy4yLCAtMi4yLCAtMTAuNCwgLTkuMSwgLTEwLjQsIC0xMS41LCAtMi4xLCAxLjIsIC0xLjEsIC0xLjQsIC05LjQsIC01LjYsIC04LjEsIC04LjAsIDguNiwgMTIuNCwgOC42LCA5LjUsIC01MC4wLCAtMTAuNCwgLTUwLjAsIC0xMS42LCAtNy4yLCAtNS43LCAtNy41LCAtNy40LCAtNTAuMCwgLTguNiwgLTE1LjcsIC05LjcsIC0zLjAsIC0zLjcsIC0zLjIsIC01LjksXSxcbiAgICAgICAgICAgIFstMTEuMSwgLTExLjksIC0xMC42LCAtMTEuMywgLTIuNiwgLTQuMSwgLTEuNywgLTMuNSwgLTExLjQsIC05LjYsIC05LjYsIC05LjIsIDMuNywgMi41LCAxLjYsIDIuNSwgLTkuNiwgLTEyLjMsIC05LjUsIC0xMS44LCAtOC4wLCAtOS40LCAtNy4yLCAtOS4zLCAtMTMuMywgLTEyLjgsIC0xMC45LCAtMTIuNiwgLTEuOCwgLTIuOSwgLTAuOCwgLTIuOSwgLTguNiwgLTEzLjAsIC03LjQsIC0xMi40LCAtMC40LCAtMi4zLCAxLjMsIC0yLjAsIC04LjEsIC05LjMsIC01LjQsIC04LjQsIDEwLjAsIDguNiwgMTEuNCwgOC45LCAtNTAuMCwgLTEzLjcsIC01MC4wLCAtMTMuMiwgLTYuMSwgLTguMSwgLTUuNSwgLTcuNSwgLTUwLjAsIC0xMS4zLCAtMTIuNywgLTEwLjEsIC0xLjYsIC03LjgsIC0wLjMsIC03LjIsXSxcbiAgICAgICAgICAgIFstMTEuNCwgLTEwLjAsIC0xMi43LCAtOC4yLCAtMy4xLCAtMy4xLCAtMi44LCAtMC45LCAtMTEuNywgLTcuMywgLTEyLjEsIC01LjgsIDMuNiwgMy42LCAtMS4xLCA1LjgsIC05LjQsIC0xMS45LCAtMTAuNywgLTEwLjAsIC04LjUsIC04LjgsIC04LjIsIC02LjUsIC0xMy45LCAtMTMuMCwgLTEyLjksIC0xMC45LCAtMy4xLCAtMi4zLCAtMy4yLCAtMC4yLCAtOS41LCAtMTAuOCwgLTEwLjIsIC04LjIsIC0xLjEsIC0xLjMsIC0wLjgsIDEuMiwgLTguNiwgLTcuOCwgLTcuOCwgLTUuMCwgOS4wLCA5LjUsIDguOSwgMTIuMCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTEwLjMsIC02LjIsIC03LjAsIC03LjEsIC01LjQsIC01MC4wLCAtOS4zLCAtMTQuMCwgLTguMiwgLTIuNCwgLTYuMywgLTIuNCwgLTMuOSxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMzLjMsIC01MC4wLCAzMC42LCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI5LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTE0LjgsIC02LjIsIC0xNC45LCAtNy42LCAtMTQuNiwgLTExLjYsIC0xMy4wLCAtMTIuMiwgLTE0LjAsIC05LjAsIC0xNC4xLCAtMTAuMSwgLTEzLjYsIC0xMS4yLCAtMTIuNCwgLTEyLjUsIC04LjEsIDIuMiwgLTguNywgMC40LCAtMTUuMywgLTExLjMsIC0xMy4yLCAtMTMuMywgLTExLjksIC03LjIsIC0xMS44LCAtNy45LCAtMTAuNywgLTcuNCwgLTEwLjgsIC04LjksIC0xNS41LCAtMTAuMywgLTE1LjUsIC0xMi41LCAtMTQuNSwgLTEyLjEsIC0xMS45LCAtMTIuOCwgLTE4LjMsIC0xMi43LCAtMTYuNCwgLTE0LjcsIC0xNC4yLCAtMTAuNCwgLTEzLjcsIC0xMy4wLCAtNTAuMCwgMTUuMSwgLTUwLjAsIDEzLjMsIC05LjksIC01LjgsIC04LjksIC03LjYsIC01MC4wLCAtMS41LCAtNy44LCAtMy4wLCAtOC4xLCAzLjYsIC05LjQsIDIuMCxdLFxuICAgICAgICAgICAgWy01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDMwLjYsIC01MC4wLCAzNS4yLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLF0sXG4gICAgICAgICAgICBbLTEzLjgsIC03LjUsIC0xNC40LCAtNS4xLCAtMTIuNiwgLTExLjYsIC0xMS41LCAtMTAuMSwgLTEzLjIsIC05LjcsIC0xMi43LCAtNy40LCAtMTEuOSwgLTExLjksIC0xMS41LCAtMTAuMiwgLTcuMiwgMC45LCAtOC42LCAyLjYsIC0xNC4xLCAtMTIuOCwgLTEzLjMsIC0xMS4wLCAtOS43LCAtOC40LCAtMTEuMiwgLTUuMywgLTkuMywgLTguNywgLTkuOSwgLTcuMSwgLTEzLjksIC0xMS4yLCAtMTQuMiwgLTguOSwgLTEyLjksIC0xMi42LCAtMTIuNiwgLTEwLjksIC0xNS40LCAtMTMuOCwgLTE0LjgsIC0xMS40LCAtMTIuOCwgLTExLjYsIC0xMy4yLCAtMTAuMywgLTUwLjAsIDEzLjMsIC01MC4wLCAxNS4yLCAtOC42LCAtNy4wLCAtOC40LCAtNC44LCAtNTAuMCwgLTMuMCwgLTcuMSwgLTAuMSwgLTcuMywgMi4zLCAtOC43LCAzLjksXSxcbiAgICAgICAgICAgIFstNy4zLCAtNi4zLCAtOC45LCAtNS41LCAyLjksIDAuMiwgMS41LCAxLjIsIC04LjUsIC0yLjMsIC0xMC4wLCAtMS43LCAtNS42LCAtMTAuNSwgLTUuNSwgLTkuNiwgLTQuMywgLTcuOSwgLTYuMSwgLTcuMiwgMi4zLCAtMC42LCAwLjUsIC0wLjAsIC04LjksIC0xMS4wLCAtOS40LCAtOS4zLCAtNC42LCAtOS40LCAtNy4zLCAtOC4xLCAtNy44LCAtOS44LCAtOC45LCAtOS4yLCAyLjgsIDAuMSwgMS4yLCAwLjgsIC01LjksIC02LjgsIC01LjksIC02LjMsIC00LjEsIC03LjIsIC02LjEsIC02LjIsIC01MC4wLCAtOS45LCAtNTAuMCwgLTguNiwgMTIuNSwgOS40LCAxMS4wLCA5LjgsIC01MC4wLCAtNC44LCAtOC43LCAtMy41LCAtMC4wLCAtOC42LCAtMi4xLCAtNy4wLF0sXG4gICAgICAgICAgICBbLTEwLjEsIC00LjMsIC0xMC44LCAtNS44LCAwLjEsIDIuMywgMC43LCAwLjYsIC0xMC40LCAtMC4yLCAtMTAuOCwgLTIuMCwgLTguOCwgLTkuMiwgLTguMCwgLTkuNywgLTYuOCwgLTUuOSwgLTcuNSwgLTcuMCwgLTEuNCwgMi4yLCAtMC45LCAtMC40LCAtMTAuOCwgLTcuNywgLTkuOCwgLTguOCwgLTguOSwgLTcuMywgLTkuNiwgLTkuMSwgLTEwLjUsIC04LjMsIC0xMC4yLCAtMTAuMCwgLTAuMCwgMi41LCAwLjcsIDAuNSwgLTcuNSwgLTUuMSwgLTcuMSwgLTYuNywgLTcuNCwgLTUuNywgLTguMSwgLTcuMCwgLTUwLjAsIC01LjgsIC01MC4wLCAtNy4wLCA5LjQsIDEyLjcsIDEwLjEsIDEwLjAsIC01MC4wLCAtMS41LCAtMTEuMywgLTMuMywgLTUuNCwgLTQuMiwgLTUuNiwgLTYuOCxdLFxuICAgICAgICAgICAgWy04LjQsIC02LjIsIC04LjksIC01LjksIDEuOCwgMC40LCAyLjcsIDEuMiwgLTkuMSwgLTEuMiwgLTguOCwgLTEuNSwgLTcuMiwgLTEwLjUsIC00LjksIC05LjYsIC01LjcsIC03LjQsIC01LjUsIC03LjQsIDAuMywgLTAuMywgMS44LCAtMC40LCAtOS4wLCAtOC43LCAtNy4zLCAtOC45LCAtNS45LCAtOS40LCAtNi40LCAtOC43LCAtOC43LCAtOS4xLCAtOC41LCAtOS40LCAxLjQsIDAuNywgMy41LCAwLjcsIC02LjYsIC01LjMsIC00LjcsIC01LjgsIC01LjcsIC03LjUsIC01LjUsIC03LjEsIC01MC4wLCAtOC45LCAtNTAuMCwgLTguNCwgMTEuMCwgMTAuMSwgMTMuMiwgMTAuMiwgLTUwLjAsIC00LjIsIC02LjEsIC0zLjYsIC0zLjUsIC04LjQsIC0xLjIsIC02LjgsXSxcbiAgICAgICAgICAgIFstOS4xLCAtNS40LCAtMTAuNCwgLTQuMiwgMS4wLCAwLjUsIDAuNiwgMi40LCAtOS42LCAtMS41LCAtMTAuNSwgLTAuNSwgLTguOSwgLTEwLjUsIC03LjIsIC04LjMsIC02LjMsIC02LjksIC03LjcsIC01LjEsIC0wLjUsIDAuMSwgLTAuNiwgMi4zLCAtMTEuMSwgLTEwLjIsIC0xMC41LCAtNy4wLCAtOC4zLCAtOS40LCAtOS40LCAtNi42LCAtOS42LCAtOS43LCAtMTAuMCwgLTcuOSwgMC43LCAwLjYsIDAuOCwgMi4zLCAtNy4xLCAtNi41LCAtNy4yLCAtNS4wLCAtNi41LCAtNy40LCAtNy41LCAtNS40LCAtNTAuMCwgLTcuNiwgLTUwLjAsIC00LjgsIDkuOCwgMTAuMCwgMTAuMiwgMTIuMSwgLTUwLjAsIC0zLjEsIC0xMS40LCAtMC43LCAtNC42LCAtNi42LCAtNC45LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIDI4LjUsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTcuMCwgLTEzLjEsIC04LjMsIC05LjIsIC02LjUsIC04LjksIC03LjYsIC05LjgsIC0wLjcsIC05LjIsIC0yLjEsIC0xMi40LCAtMTAuMywgLTEyLjQsIC0xMS42LCAtOS41LCAtNC42LCAtMTAuNCwgLTUuNywgLTEzLjYsIC0xMC4xLCAtMTEuNCwgLTEwLjksIC02LjUsIC0xLjUsIC02LjIsIC0zLjYsIC0xMi44LCAtOC4wLCAtMTIuMywgLTkuNywgLTE2LjUsIC0xMi43LCAtMTUuNiwgLTE0LjMsIC04LjcsIC02LjAsIC03LjEsIC03LjUsIC05LjUsIC00LjEsIC04LjQsIC02LjEsIC0xMS4wLCAtOC42LCAtMTEuMywgLTkuMywgLTUwLjAsIC0xLjUsIC01MC4wLCAtMy4wLCAtNC44LCAtMS41LCAtNC4yLCAtMy4xLCAtNTAuMCwgMTYuNCwgLTUuMSwgMTQuMiwgLTEwLjEsIC00LjMsIC0xMC4wLCAtNS40LF0sXG4gICAgICAgICAgICBbLTEzLjUsIC0xNi4zLCAtMTEuOCwgLTE1LjUsIC0xMy42LCAtMTUuMywgLTEyLjEsIC0xNi4xLCAtNy43LCAtMTMuMywgLTQuMiwgLTEyLjYsIC0xNC4xLCAtMTYuMiwgLTEwLjMsIC0xNS40LCAtOS42LCAtMTEuNiwgLTcuNywgLTkuOCwgLTE0LjMsIC0xNy41LCAtMTEuMSwgLTE3LjIsIC01LjMsIC03LjEsIC0yLjIsIC03LjEsIC05LjYsIC0xMS45LCAtOC43LCAtMTEuNCwgLTE3LjEsIC0yMC42LCAtMTUuMywgLTE5LjksIC0xNC4xLCAtMTQuOCwgLTEyLjQsIC0xNi41LCAtMTEuNywgLTEyLjgsIC02LjQsIC0xMy40LCAtMTQuMywgLTE1LjcsIC0xMi43LCAtMTQuMCwgLTUwLjAsIC03LjgsIC01MC4wLCAtNy4xLCAtOC43LCAtMTEuMywgLTYuMSwgLTExLjQsIC01MC4wLCAtNS4xLCAxOC42LCAtNC44LCAtOC42LCAtOC4xLCAtNC41LCAtNy4zLF0sXG4gICAgICAgICAgICBbLTEyLjQsIC04LjIsIC0xMy4wLCAtNS45LCAtNy43LCAtNy44LCAtNy40LCAtNS44LCAtOC44LCAtMi4wLCAtOS4zLCAtMC40LCAtMTEuNiwgLTExLjMsIC0xMS42LCAtOS40LCAtOC45LCAtNS42LCAtMTAuMCwgLTMuMiwgLTExLjUsIC0xMS4xLCAtMTAuNSwgLTguMywgLTYuMywgLTQuOSwgLTYuNywgLTEuMiwgLTEwLjYsIC05LjcsIC0xMS4zLCAtOC4wLCAtMTQuOCwgLTEzLjEsIC0xNS41LCAtMTEuNCwgLTcuNSwgLTcuNSwgLTcuMSwgLTUuOSwgLTguNCwgLTUuOCwgLTguMSwgLTMuNiwgLTkuOSwgLTkuNywgLTEwLjEsIC04LjIsIC01MC4wLCAtMy4wLCAtNTAuMCwgLTAuMSwgLTMuNSwgLTMuMywgLTMuNiwgLTAuNywgLTUwLjAsIDE0LjIsIC00LjgsIDE2LjQsIC04LjksIC01LjgsIC04LjksIC0zLjQsXSxcbiAgICAgICAgICAgIFstMTAuNywgLTEzLjIsIC0xMi40LCAtMTEuNiwgLTQuOCwgLTguNCwgLTYuMSwgLTcuMiwgLTEwLjMsIC0xMS44LCAtMTEuMCwgLTExLjYsIDIuOCwgLTEuNywgMC43LCAtMS4xLCAtNi4yLCAtOS43LCAtNy4zLCAtOC40LCAtNS4zLCAtOC42LCAtNi4xLCAtOC4zLCAtMTAuNSwgLTExLjIsIC05LjgsIC0xMC4yLCA5LjUsIDYuNSwgNy42LCA2LjgsIC0xMi4xLCAtMTYuMCwgLTEzLjAsIC0xNi4yLCAtNS4yLCAtOC42LCAtNy4xLCAtNy44LCAtMTIuNSwgLTE0LjQsIC0xMi4xLCAtMTMuMCwgMS40LCAtMy4wLCAtMS42LCAtMi40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjMsIC0wLjAsIC01LjQsIC0zLjUsIC00LjYsIC01MC4wLCAtMTAuMSwgLTguNiwgLTguOSwgMTMuMiwgLTAuOSwgOS43LCAtMC4zLF0sXG4gICAgICAgICAgICBbLTE4LjEsIC0xMi4zLCAtMTkuNCwgLTE0LjIsIC0xMi4yLCAtOS41LCAtMTEuNSwgLTEwLjgsIC0xNy45LCAtMTEuOSwgLTE4LjIsIC0xMy45LCAtNi40LCAtMy43LCAtNi44LCAtNS40LCAtMTIuOCwgLTUuOSwgLTEzLjYsIC03LjQsIC0xMy43LCAtOS45LCAtMTIuOSwgLTEyLjcsIC0xNi4yLCAtMTEuNiwgLTE1LjIsIC0xMi43LCAtMy4yLCAwLjUsIC0zLjMsIC0xLjgsIC0xOC45LCAtMTYuNiwgLTE4LjgsIC0xOS4yLCAtMTIuNSwgLTkuNCwgLTEwLjYsIC0xMS4xLCAtMTcuMywgLTE0LjEsIC0xNi4yLCAtMTYuMCwgLTcuOSwgLTMuNywgLTcuOCwgLTYuMywgLTUwLjAsIDMuNiwgLTUwLjAsIDIuMywgLTguNiwgLTQuMiwgLTguNCwgLTYuNiwgLTUwLjAsIC00LjMsIC04LjEsIC01LjgsIC0wLjksIDE0LjIsIC0xLjgsIDExLjYsXSxcbiAgICAgICAgICAgIFstMTEuOCwgLTEzLjEsIC0xMS41LCAtMTIuMCwgLTYuMiwgLTguMywgLTUuNCwgLTcuNCwgLTExLjgsIC0xMi4zLCAtMTEuMSwgLTExLjQsIDAuNSwgLTIuNSwgMi40LCAtMS42LCAtNi44LCAtOS45LCAtNi40LCAtOC45LCAtNi4xLCAtOC42LCAtNS4wLCAtNy44LCAtMTAuNCwgLTExLjYsIC04LjUsIC05LjksIDguMiwgNi40LCA4LjcsIDYuOSwgLTEyLjQsIC0xNy4wLCAtMTIuNiwgLTE1LjgsIC02LjUsIC04LjUsIC01LjAsIC03LjgsIC0xMy4yLCAtMTMuNiwgLTEwLjMsIC0xMy43LCAtMC43LCAtMy4yLCAtMC4zLCAtMi40LCAtNTAuMCwgLTkuNCwgLTUwLjAsIC04LjcsIC0yLjEsIC01LjYsIC0xLjIsIC00LjksIC01MC4wLCAtMTAuMCwgLTQuNSwgLTguOSwgOS43LCAtMS44LCAxMS4zLCAtMC45LF0sXG4gICAgICAgICAgICBbLTE3LjIsIC0xMy4zLCAtMTcuOCwgLTExLjYsIC0xMS4wLCAtMTEuMSwgLTEwLjQsIC05LjAsIC0xNi4wLCAtMTIuNywgLTE2LjEsIC0xMS4xLCAtNS4yLCAtNS40LCAtNi4wLCAtMy4zLCAtMTEuOCwgLTcuMywgLTEzLjMsIC01LjksIC0xMi43LCAtMTEuOSwgLTExLjksIC05LjMsIC0xNS4yLCAtMTUuMCwgLTE0LjksIC0xMS4wLCAtMi44LCAtMS44LCAtMi45LCAwLjQsIC0xNy40LCAtMTguNCwgLTE4LjMsIC0xNS45LCAtMTAuNywgLTExLjIsIC0xMC42LCAtOS4wLCAtMTUuNCwgLTE0LjgsIC0xNS44LCAtMTMuMywgLTYuOCwgLTUuOSwgLTcuMiwgLTMuOSwgLTUwLjAsIDIuMCwgLTUwLjAsIDMuOSwgLTcuMCwgLTYuOCwgLTYuOCwgLTMuOSwgLTUwLjAsIC01LjQsIC03LjMsIC0zLjQsIC0wLjMsIDExLjYsIC0wLjksIDE0LjEsXV07XG4gICAgICAgIHRoaXMuVFJBTlMgPSBbWzUsIDAsIDAsIDRdLFxuICAgICAgICAgICAgWzAsIDUsIDQsIDBdLFxuICAgICAgICAgICAgWzAsIDQsIDUsIDBdLFxuICAgICAgICAgICAgWzQsIDAsIDAsIDVdXTtcbiAgICAgICAgdGhpcy5DT05CTE8gPSB7ICdBJzogMCwgJ1InOiAxLCAnTic6IDIsICdEJzogMywgJ0MnOiA0LCAnUSc6IDUsICdFJzogNiwgJ0cnOiA3LCAnSCc6IDgsICdJJzogOSwgJ0wnOiAxMCwgJ0snOiAxMSwgJ00nOiAxMiwgJ0YnOiAxMywgJ1AnOiAxNCwgJ1MnOiAxNSwgJ1QnOiAxNiwgJ1cnOiAxNywgJ1knOiAxOCwgJ1YnOiAxOSwgJ0InOiAyMCwgJ1onOiAyMSwgJ1gnOiAyMiwgJyonOiAyMyB9O1xuICAgICAgICB0aGlzLkNPTk5VQ0wgPSB7ICdBJzogMCwgJ1QnOiAxLCAnQyc6IDIsICdHJzogMyB9O1xuICAgICAgICB0aGlzLkNPTlNDSE4gPSB7ICdBQUEnOiAwLCAnQUFDJzogMSwgJ0FBRyc6IDIsICdBQVQnOiAzLCAnQUNBJzogNCwgJ0FDQyc6IDUsICdBQ0cnOiA2LCAnQUNUJzogNywgJ0FHQSc6IDgsICdBR0MnOiA5LCAnQUdHJzogMTAsICdBR1QnOiAxMSwgJ0FUQSc6IDEyLCAnQVRDJzogMTMsICdBVEcnOiAxNCwgJ0FUVCc6IDE1LCAnQ0FBJzogMTYsICdDQUMnOiAxNywgJ0NBRyc6IDE4LCAnQ0FUJzogMTksICdDQ0EnOiAyMCwgJ0NDQyc6IDIxLCAnQ0NHJzogMjIsICdDQ1QnOiAyMywgJ0NHQSc6IDI0LCAnQ0dDJzogMjUsICdDR0cnOiAyNiwgJ0NHVCc6IDI3LCAnQ1RBJzogMjgsICdDVEMnOiAyOSwgJ0NURyc6IDMwLCAnQ1RUJzogMzEsICdHQUEnOiAzMiwgJ0dBQyc6IDMzLCAnR0FHJzogMzQsICdHQVQnOiAzNSwgJ0dDQSc6IDM2LCAnR0NDJzogMzcsICdHQ0cnOiAzOCwgJ0dDVCc6IDM5LCAnR0dBJzogNDAsICdHR0MnOiA0MSwgJ0dHRyc6IDQyLCAnR0dUJzogNDMsICdHVEEnOiA0NCwgJ0dUQyc6IDQ1LCAnR1RHJzogNDYsICdHVFQnOiA0NywgJ1RBQSc6IDQ4LCAnVEFDJzogNDksICdUQUcnOiA1MCwgJ1RBVCc6IDUxLCAnVENBJzogNTIsICdUQ0MnOiA1MywgJ1RDRyc6IDU0LCAnVENUJzogNTUsICdUR0EnOiA1NiwgJ1RHQyc6IDU3LCAnVEdHJzogNTgsICdUR1QnOiA1OSwgJ1RUQSc6IDYwLCAnVFRDJzogNjEsICdUVEcnOiA2MiwgJ1RUVCc6IDYzIH07XG4gICAgICAgIHRoaXMuc2V0TWV0aG9kKGFsaWduR3JpZF8pO1xuICAgICAgICB0aGlzLnNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pO1xuICAgICAgICB0aGlzLnNldEdhcChnYXBfKTtcbiAgICB9XG4gICAgZmlsbE5lZWRsZW1hbigpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldWzBdLnBhcmVudEogPSAwO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMjsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS52YWx1ZSA9IC1pICogdGhpcy5nYXA7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFswXVtpXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEogPSBpIC0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmaWxsT25lKGksIGopIHtcbiAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPSBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSwgTWF0aC5tYXgodGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXAsIHRoaXMuZHBHcmlkW2ldW2ogLSAxXS52YWx1ZSAtIHRoaXMuZ2FwKSk7XG4gICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9PSB0aGlzLmRwR3JpZFtpIC0gMV1baiAtIDFdLnZhbHVlICsgdGhpcy5zY29yZXNbaSAtIDFdW2ogLSAxXSkge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqXS52YWx1ZSAtIHRoaXMuZ2FwKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gajtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IGogLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdyaWRGcm9tTmFtZShwYXRoKSB7XG4gICAgICAgIHN3aXRjaCAocGF0aCkge1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNDUnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU00NTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU02Mic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTYyO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNODAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU04MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTkwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNOTA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU0zMCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTMwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNNzAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5QQU03MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTI1MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTI1MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ05VQ0xFT1RJREVTJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuTlVDTEVPVElERVM7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OTlVDTDtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVFJBTlMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5UUkFOUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdTQ0hORUlERVInOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5TQ0hORUlERVI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OU0NITjtcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAzO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBjb25zdHJ1Y3RSZXN1bHQoaSwgaikge1xuICAgICAgICBsZXQgcmVzMSA9IFwiXCIsIHJlczIgPSBcIlwiLCBnYXBTID0gXCJcIjtcbiAgICAgICAgbGV0IHRvdGFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zdGVwOyBpKyspIHtcbiAgICAgICAgICAgIGdhcFMgKz0gJ3wnO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChpID4gMCB8fCBqID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPT0gaSkge1xuICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPT0gaikge1xuICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChpIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMxID0gdGhpcy5zZXExLnN1YnN0cigoaSAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSBnYXBTICsgcmVzMTtcbiAgICAgICAgICAgICAgICBpZiAoaiAtIDEgPj0gMClcbiAgICAgICAgICAgICAgICAgICAgcmVzMiA9IHRoaXMuc2VxMi5zdWJzdHIoKGogLSAxKSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKSArIHJlczI7XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gZ2FwUyArIHJlczI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgdGVtcEkgPSBpO1xuICAgICAgICAgICAgaSA9IHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEk7XG4gICAgICAgICAgICBqID0gdGhpcy5kcEdyaWRbdGVtcEldW2pdLnBhcmVudEo7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBbGlnbmVkKHJlczEsIHJlczIsIHRvdGFsKTtcbiAgICB9XG4gICAgZmlsbFNjb3JlcygpIHtcbiAgICAgICAgdGhpcy5zY29yZXMgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5zY29yZXMucHVzaChbXSk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zY29yZXNbaV0ucHVzaCh0aGlzLmFsaWduR3JpZFt0aGlzLmNvbm5lY3Rpb25zW3RoaXMuc2VxMS5zdWJzdHIoaSAqIHRoaXMuc3RlcCwgdGhpcy5zdGVwKV1dW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXEyLnN1YnN0cihqICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHR5cGVSZWMoKSB7XG4gICAgICAgIGlmICgvW0FUR0NdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMikpXG4gICAgICAgICAgICByZXR1cm4gXCJOVUNMRU9USURFU1wiO1xuICAgICAgICBpZiAoL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTEpICYmIC9bQVJORENRRUdISUxLTUZQU1RXWVZCWlgqXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIkJMT1NVTTYyXCI7XG4gICAgICAgIHRocm93IEVycm9yKFwiQ2FuJ3QgcmVjb2duaXplIHNlcXVlbmNlIHR5cGVcIik7XG4gICAgfVxuICAgIG5lZWRsZW1hbld1bmNoKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsTmVlZGxlbWFuKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQodGhpcy5sZW4xLCB0aGlzLmxlbjIpO1xuICAgIH1cbiAgICBzbWl0aFdhdGVybWFuKCkge1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMSArIDE7IGkrKykge1xuICAgICAgICAgICAgbGV0IHJvdyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmxlbjIgKyAxOyBqKyspXG4gICAgICAgICAgICAgICAgcm93LnB1c2gobmV3IENlbGwoKSk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZC5wdXNoKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGJlc3RWYWwgPSAwO1xuICAgICAgICBsZXQgYmVzdEkgPSAwLCBiZXN0SiA9IDA7XG4gICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSB0aGlzLmxlbjI7IGorKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsbE9uZShpLCBqKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPD0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SV1bdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50Sl0udmFsdWUgPT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA+IGJlc3RWYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgYmVzdFZhbCA9IHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBiZXN0SSA9IGk7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RKID0gajtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3RydWN0UmVzdWx0KGJlc3RJLCBiZXN0Sik7XG4gICAgfVxuICAgIHNldFNlcXVlbmNlcyhzZXExXywgc2VxMl8pIHtcbiAgICAgICAgdGhpcy5zZXExID0gc2VxMV87XG4gICAgICAgIHRoaXMuc2VxMiA9IHNlcTJfO1xuICAgICAgICB0aGlzLmxlbjEgPSB0aGlzLnNlcTEubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmxlbjIgPSB0aGlzLnNlcTIubGVuZ3RoIC8gdGhpcy5zdGVwO1xuICAgICAgICB0aGlzLmZpbGxTY29yZXMoKTtcbiAgICB9XG4gICAgc2V0R2FwKGdhcF8pIHtcbiAgICAgICAgdGhpcy5nYXAgPSBnYXBfO1xuICAgIH1cbiAgICBzZXRNZXRob2QoYWxpZ25HcmlkXyA9IFwiXCIpIHtcbiAgICAgICAgaWYgKGFsaWduR3JpZF8gPT0gXCJBVVRPXCIpIHtcbiAgICAgICAgICAgIGFsaWduR3JpZF8gPSB0aGlzLnR5cGVSZWMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdyaWRGcm9tTmFtZShhbGlnbkdyaWRfKTtcbiAgICB9XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hY3JvTW9sKG1vbm9tZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBjb25zdCBtb2R1bGVSZGtpdCA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0NoZW06Z2V0UmRLaXRNb2R1bGUnKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb25vbWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVyc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbCA9IG1vZHVsZVJka2l0LmdldF9tb2wobW9ub21lcnNbaV1bal1bJ21vbGZpbGUnXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IG1vbC5nZXRfdjNLbW9sYmxvY2soKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2V0SW5kaWNlcyhtb25vbWVyc1tpXVtqXSwgYSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcnNbaV1bal1bJ2luZGljZXMnXSA9IGluZGljZXM7XG4gICAgICAgICAgICAgICAgbW9ub21lcnNbaV1bal1bJ21vbGZpbGUnXSA9IHlpZWxkIHJvdGF0ZUJhY2tib25lVjMwMDAoYSwgaW5kaWNlcyk7XG4gICAgICAgICAgICAgICAgbW9sID09PSBudWxsIHx8IG1vbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbW9sLmRlbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gobGlua1YzMDAwKG1vbm9tZXJzW2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGdldEluZGljZXMobW9ub21lciwgbW9sVjMwMDApIHtcbiAgICBjb25zdCBtb2xmaWxlID0gbW9ub21lcltcIm1vbGZpbGVcIl07XG4gICAgbGV0IGluZGV4U3RhcnQgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFJHUCcsIDApICsgODtcbiAgICBsZXQgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4U3RhcnQpO1xuICAgIGNvbnN0IGluZGljZXNEYXRhID0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhTdGFydCwgaW5kZXhFbmQpLnJlcGxhY2VBbGwoJyAgJywgJyAnKS5yZXBsYWNlQWxsKCcgICcsICcgJyk7XG4gICAgbGV0IHBhcnNlZERhdGEgPSBpbmRpY2VzRGF0YS5zcGxpdCgnICcpO1xuICAgIGNvbnN0IHJlbUZpcnN0ID0gcGFyc2VkRGF0YVsyXSA9PSAnMScgPyBwYXJzZUludChwYXJzZWREYXRhWzFdKSA6IHBhcnNlSW50KHBhcnNlZERhdGFbM10pO1xuICAgIGNvbnN0IHJlbUxhc3QgPSBwYXJzZWREYXRhWzJdID09ICcyJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgbnVtYmVycyA9IGV4dHJhY3RBdG9tc0JvbmRzTnVtYmVyc1YzMDAwKG1vbFYzMDAwKTtcbiAgICBsZXQgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBCT05EJyk7IC8vIFYzMDAwIGluZGV4IGZvciBib25kc1xuICAgIGluZGV4Qm9uZHMgPSBtb2xWMzAwMC5pbmRleE9mKCdcXG4nLCBpbmRleEJvbmRzKTtcbiAgICBpbmRleFN0YXJ0ID0gaW5kZXhCb25kcztcbiAgICBpbmRleEVuZCA9IGluZGV4Qm9uZHM7XG4gICAgbGV0IGZpcnN0ID0gMDtcbiAgICBsZXQgbGFzdCA9IDA7XG4gICAgbGV0IHJlbUJvbmRGaXJzdCA9IDA7XG4gICAgbGV0IHJlbUJvbmRMYXN0ID0gMDtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IG51bWJlcnMubmJvbmQ7IGorKykge1xuICAgICAgICBpZiAoZmlyc3QgPT0gMCB8fCBsYXN0ID09IDApIHtcbiAgICAgICAgICAgIGluZGV4U3RhcnQgPSBtb2xWMzAwMC5pbmRleE9mKCdWMzAnLCBpbmRleFN0YXJ0KSArIDQ7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4U3RhcnQpO1xuICAgICAgICAgICAgY29uc3QgYm9uZERhdGEgPSBtb2xWMzAwMC5zdWJzdHJpbmcoaW5kZXhTdGFydCwgaW5kZXhFbmQpLnJlcGxhY2VBbGwoJyAgJywgJyAnKS5yZXBsYWNlQWxsKCcgICcsICcgJyk7XG4gICAgICAgICAgICBwYXJzZWREYXRhID0gYm9uZERhdGEuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGlmIChwYXJzZUludChwYXJzZWREYXRhWzJdKSA9PSByZW1GaXJzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZEZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzNdKSA9PSByZW1GaXJzdCkge1xuICAgICAgICAgICAgICAgIGZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZEZpcnN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzJdKSA9PSByZW1MYXN0KSB7XG4gICAgICAgICAgICAgICAgbGFzdCA9IHBhcnNlSW50KHBhcnNlZERhdGFbM10pO1xuICAgICAgICAgICAgICAgIHJlbUJvbmRMYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChwYXJzZUludChwYXJzZWREYXRhWzNdKSA9PSByZW1MYXN0KSB7XG4gICAgICAgICAgICAgICAgbGFzdCA9IHBhcnNlSW50KHBhcnNlZERhdGFbMl0pO1xuICAgICAgICAgICAgICAgIHJlbUJvbmRMYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVswXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgZmlyc3QsIGxhc3QsIHJlbUZpcnN0LCByZW1MYXN0LCByZW1Cb25kRmlyc3QsIHJlbUJvbmRMYXN0IH07XG59XG5mdW5jdGlvbiByb3RhdGVCYWNrYm9uZVYzMDAwKG1vbEJsb2NrLCBpbmRpY2VzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jayk7XG4gICAgICAgIGNvbnN0IG5hdG9tID0gY29vcmRpbmF0ZXMuYXRvbUluZGV4Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBpbmRpY2VzWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gaW5kaWNlc1snbGFzdCddO1xuICAgICAgICBjb25zdCB4Q2VudGVyID0gKGNvb3JkaW5hdGVzLnhbbGFzdF0gKyBjb29yZGluYXRlcy54W2ZpcnN0XSkgLyAyO1xuICAgICAgICBjb25zdCB5Q2VudGVyID0gKGNvb3JkaW5hdGVzLnlbbGFzdF0gKyBjb29yZGluYXRlcy55W2ZpcnN0XSkgLyAyO1xuICAgICAgICAvL3BsYWNlIHRvIGNlbnRlclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geENlbnRlcjtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnlbaV0gLT0geUNlbnRlcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYW5nbGUgPSAwO1xuICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueVtmaXJzdF0gPiBjb29yZGluYXRlcy55W2xhc3RdID8gTWF0aC5QSSAvIDIgOiAzICogTWF0aC5QSSAvIDI7XG4gICAgICAgIGVsc2UgaWYgKGNvb3JkaW5hdGVzLnlbZmlyc3RdID09IDApXG4gICAgICAgICAgICBhbmdsZSA9IGNvb3JkaW5hdGVzLnhbZmlyc3RdID4gY29vcmRpbmF0ZXMueFtsYXN0XSA/IE1hdGguUEkgOiAwO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRlcml2YXRpdmUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSAvIGNvb3JkaW5hdGVzLnhbZmlyc3RdO1xuICAgICAgICAgICAgaWYgKGNvb3JkaW5hdGVzLnhbZmlyc3RdIDwgY29vcmRpbmF0ZXMueFtsYXN0XSlcbiAgICAgICAgICAgICAgICBhbmdsZSA9IGRlcml2YXRpdmUgPiAwID8gTWF0aC5QSSAtIE1hdGguYXRhbihkZXJpdmF0aXZlKSA6IE1hdGguYXRhbihkZXJpdmF0aXZlKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBhbmdsZSA9IGRlcml2YXRpdmUgPiAwID8gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5QSSAtIE1hdGguYXRhbihkZXJpdmF0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb3MgPSBNYXRoLmNvcyhhbmdsZSk7XG4gICAgICAgIGNvbnN0IHNpbiA9IE1hdGguc2luKGFuZ2xlKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB4QWRkID0gY29vcmRpbmF0ZXMueFtpXTtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gPSB4QWRkICogY29zIC0gY29vcmRpbmF0ZXMueVtpXSAqIHNpbjtcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnlbaV0gPSB4QWRkICogc2luICsgY29vcmRpbmF0ZXMueVtpXSAqIGNvcztcbiAgICAgICAgfVxuICAgICAgICAvL3BsYWNlIHRvIHJpZ2h0XG4gICAgICAgIGNvbnN0IHhTaGlmdCA9IGNvb3JkaW5hdGVzLnhbZmlyc3RdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspXG4gICAgICAgICAgICBjb29yZGluYXRlcy54W2ldIC09IHhTaGlmdDtcbiAgICAgICAgLy9yZXdyaXRlIG1vbEJsb2NrXG4gICAgICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KTtcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXhFbmQpO1xuICAgICAgICAgICAgbW9sQmxvY2sgPSBtb2xCbG9jay5zbGljZSgwLCBpbmRleCkgK1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gKyAnICcgKyBjb29yZGluYXRlcy55W2ldICtcbiAgICAgICAgICAgICAgICBtb2xCbG9jay5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vbEJsb2NrO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21EYXRhVjMwMDAobW9sQmxvY2spIHtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spO1xuICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgIGxldCBpbmRleEVuZCA9IGluZGV4O1xuICAgIGNvbnN0IGluZGV4ZXMgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBjb25zdCB0eXBlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHggPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBjb25zdCB5ID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJzLm5hdG9tOyBpKyspIHtcbiAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIGluZGV4ZXNbaV0gPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIHR5cGVzW2ldID0gbW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgIHhbaV0gPSBwYXJzZUZsb2F0KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeVtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgfVxuICAgIHJldHVybiB7IGF0b21JbmRleDogaW5kZXhlcywgYXRvbVR5cGU6IHR5cGVzLCB4OiB4LCB5OiB5IH07XG59XG5mdW5jdGlvbiBsaW5rVjMwMDAobW9ub21lcnMpIHtcbiAgICBsZXQgbWFjcm9Nb2xCbG9jayA9ICdcXG5EYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcXG5cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJyAgMCAgMCAgMCAgMCAgMCAgMCAgICAgICAgICAgIDk5OSBWMzAwMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIENUQUJcXG4nO1xuICAgIGxldCBhdG9tQmxvY2sgPSAnJztcbiAgICBsZXQgYm9uZEJsb2NrID0gJyc7XG4gICAgbGV0IGNvbGxlY3Rpb25CbG9jayA9ICcnO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBbXTtcbiAgICBsZXQgbmF0b20gPSAwO1xuICAgIGxldCBuYm9uZCA9IDA7XG4gICAgbGV0IHhTaGlmdCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtb25vbWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgbW9sZmlsZSA9IG1vbm9tZXJzW2ldWydtb2xmaWxlJ107XG4gICAgICAgIGNvbnN0IGZpcnN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnZmlyc3QnXTtcbiAgICAgICAgY29uc3QgbGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ2xhc3QnXTtcbiAgICAgICAgY29uc3QgcmVtRmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1GaXJzdCddO1xuICAgICAgICBjb25zdCByZW1MYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsncmVtTGFzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kRmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1Cb25kRmlyc3QnXTtcbiAgICAgICAgY29uc3QgcmVtQm9uZExhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1Cb25kTGFzdCddO1xuICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5yZXBsYWNlQWxsKCcoLVxcbk0gIFYzMCAnLCAnKCcpXG4gICAgICAgICAgICAucmVwbGFjZUFsbCgnLVxcbk0gIFYzMCAnLCAnJykucmVwbGFjZUFsbCgnICknLCAnKScpO1xuICAgICAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sZmlsZSk7XG4gICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gZXh0cmFjdEF0b21EYXRhVjMwMDAobW9sZmlsZSk7XG4gICAgICAgIGxldCBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQVRPTScpOyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgY29vcmRpbmF0ZXNcbiAgICAgICAgaW5kZXhBdG9tcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhBdG9tcyk7XG4gICAgICAgIGxldCBpbmRleCA9IGluZGV4QXRvbXM7XG4gICAgICAgIGxldCBpbmRleEVuZCA9IGluZGV4QXRvbXM7XG4gICAgICAgIGNvbnN0IHRvdGFsU2hpZnQgPSB4U2hpZnQgLSBjb29yZGluYXRlcy54W2ZpcnN0IC0gMV07XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYXRvbTsgaisrKSB7XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUZpcnN0ICYmIGNvb3JkaW5hdGVzLmF0b21JbmRleFtqXSAhPSByZW1MYXN0KSB7IC8vfHwgaSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGF0b20gbnVtYmVyXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgbGV0IGF0b21OdW1iZXIgPSBwYXJzZUludChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgKz0gbmF0b207XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIC8vcmV3cml0ZSBjb29yZGluYXRlc1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgbGV0IGNvb3JkaW5hdGUgPSBNYXRoLnJvdW5kKDEwMDAwICogKHBhcnNlRmxvYXQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSkgKyB0b3RhbFNoaWZ0KSkgLyAxMDAwMDtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBjb29yZGluYXRlICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvb3JkaW5hdGUgPSBNYXRoLnJvdW5kKDEwMDAwICogKHBhcnNlRmxvYXQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSkpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAnLCBpbmRleCkgLSAxO1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4QXRvbXNFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBFTkQgQVRPTScpO1xuICAgICAgICBhdG9tQmxvY2sgKz0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhBdG9tcyArIDEsIGluZGV4QXRvbXNFbmQpO1xuICAgICAgICBsZXQgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgICAgIGluZGV4Qm9uZHMgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgICAgICBpbmRleCA9IGluZGV4Qm9uZHM7XG4gICAgICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICAgICAgbGV0IGJvbmROdW1iZXIgPSAwO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG51bWJlcnMubmJvbmQ7IGorKykge1xuICAgICAgICAgICAgLy9yZXdyaXRlIGJvbmQgbnVtYmVyXG4gICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgYm9uZE51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgaWYgKGJvbmROdW1iZXIgPT0gcmVtQm9uZEZpcnN0IHx8IGJvbmROdW1iZXIgPT0gcmVtQm9uZExhc3QpIHtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleCAtPSA3O1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYm9uZE51bWJlciA9IChib25kTnVtYmVyID4gcmVtQm9uZEZpcnN0ICYmIGJvbmROdW1iZXIgPiByZW1Cb25kTGFzdCkgPyBib25kTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAxIDogYm9uZE51bWJlcjtcbiAgICAgICAgICAgIGJvbmROdW1iZXIgKz0gbmJvbmQ7XG4gICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBib25kTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBwYWlyIGluIGJvbmRcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICAgICAgbGV0IGF0b21OdW1iZXIgPSBwYXJzZUludChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYXRvbU51bWJlciA+IHJlbUZpcnN0IHx8IGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAxIDogYXRvbU51bWJlcjtcbiAgICAgICAgICAgIGF0b21OdW1iZXIgKz0gbmF0b207XG4gICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IE1hdGgubWluKG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXgpLCBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluZGV4Qm9uZEVuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBCT05EJyk7XG4gICAgICAgIGJvbmRCbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEJvbmRzICsgMSwgaW5kZXhCb25kRW5kKTtcbiAgICAgICAgLy9sZXQgaW5kZXhDb2xsZWN0aW9uID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyk7IC8vIFYzMDAwIGluZGV4IGZvciBjb2xsZWN0aW9uc1xuICAgICAgICAvLyB3aGlsZSAoaW5kZXhDb2xsZWN0aW9uICE9IC0xKSB7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uICs9IDI4O1xuICAgICAgICAvLyAgIGNvbnN0IGNvbGxlY3Rpb25FbmQgPSBtb2xmaWxlLmluZGV4T2YoJyknLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyAgIGNvbnN0IGNvbGxlY3Rpb25FbnRyaWVzID0gbW9sZmlsZS5zdWJzdHJpbmcoaW5kZXhDb2xsZWN0aW9uLCBjb2xsZWN0aW9uRW5kKS5zcGxpdCgnICcpLnNsaWNlKDEpO1xuICAgICAgICAvLyAgIGNvbGxlY3Rpb25FbnRyaWVzLmZvckVhY2goKGU6IHN0cmluZykgPT4ge1xuICAgICAgICAvLyAgICAgY29sbGVjdGlvbi5wdXNoKHBhcnNlSW50KGUpICsgbmF0b20pO1xuICAgICAgICAvLyAgIH0pO1xuICAgICAgICAvLyAgIGluZGV4Q29sbGVjdGlvbiA9IGNvbGxlY3Rpb25FbmQ7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJywgaW5kZXhDb2xsZWN0aW9uKTtcbiAgICAgICAgLy8gfVxuICAgICAgICBuYXRvbSArPSBudW1iZXJzLm5hdG9tIC0gMjtcbiAgICAgICAgbmJvbmQgKz0gbnVtYmVycy5uYm9uZCAtIDI7XG4gICAgICAgIHhTaGlmdCArPSBjb29yZGluYXRlcy54W2xhc3RdIC0gY29vcmRpbmF0ZXMueFtmaXJzdF0gKyAxO1xuICAgICAgICBpZiAoaSA9PSBtb25vbWVycy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBuYXRvbSsrO1xuICAgICAgICAgICAgY29uc3Qgc2hpZnQgPSB4U2hpZnQgKyAwLjI7XG4gICAgICAgICAgICBhdG9tQmxvY2sgKz0gJ00gIFYzMCAnICsgbmF0b20gKyAnIE8gJyArIHNoaWZ0ICsgJyAwIDAuMDAwMDAwIDBcXG4nO1xuICAgICAgICB9XG4gICAgICAgIG5ib25kKys7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0VGVybWluYWwgPSAobGFzdCA+IHJlbUZpcnN0ICYmIGxhc3QgPiByZW1MYXN0KSA/IGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMikgLSAzIDpcbiAgICAgICAgICAgICAgICAobGFzdCA+IHJlbUZpcnN0IHx8IGxhc3QgPiByZW1MYXN0KSA/IGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMikgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDE7XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBuYXRvbSArICdcXG4nO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDEgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IG1vbm9tZXJzW2kgKyAxXVsnaW5kaWNlcyddO1xuICAgICAgICAgICAgY29uc3QgbmV4dEZpcnN0ID0gbmV4dFsnZmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1GaXJzdCA9IG5leHRbJ3JlbUZpcnN0J107XG4gICAgICAgICAgICBjb25zdCBuZXh0UmVtTGFzdCA9IG5leHRbJ3JlbUxhc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IGxlZnRUZXJtaW5hbCA9IChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgJiYgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAyIDpcbiAgICAgICAgICAgICAgICAobmV4dEZpcnN0ID4gbmV4dFJlbUZpcnN0IHx8IG5leHRGaXJzdCA+IG5leHRSZW1MYXN0KSA/IG5leHRGaXJzdCArIG5hdG9tIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIG5leHRGaXJzdCArIG5hdG9tO1xuICAgICAgICAgICAgYm9uZEJsb2NrICs9ICdNICBWMzAgJyArIG5ib25kICsgJyAxICcgKyByaWdodFRlcm1pbmFsICsgJyAnICsgbGVmdFRlcm1pbmFsICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gY29uc3QgZW50cmllcyA9IDQ7XG4gICAgLy8gY29uc3QgY29sbE51bWJlciA9IE1hdGguY2VpbChjb2xsZWN0aW9uLmxlbmd0aCAvIGVudHJpZXMpO1xuICAgIC8vIGNvbGxlY3Rpb25CbG9jayArPSAnTSAgVjMwIE1ETFYzMC9TVEVBQlMgQVRPTVM9KCcgKyBjb2xsZWN0aW9uLmxlbmd0aCArICcgLVxcbic7XG4gICAgLy8gZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsTnVtYmVyOyBpKyspIHtcbiAgICAvLyAgIGNvbGxlY3Rpb25CbG9jayArPSAnTSAgVjMwICc7XG4gICAgLy8gICBjb25zdCBlbnRyaWVzQ3VycmVudCA9IGkgKyAxID09IGNvbGxOdW1iZXIgPyBjb2xsZWN0aW9uLmxlbmd0aCAtIChjb2xsTnVtYmVyIC0gMSkqZW50cmllcyA6IGVudHJpZXM7XG4gICAgLy8gICBmb3IgKGxldCBqID0gMDsgaiA8IGVudHJpZXNDdXJyZW50OyBqKyspIHtcbiAgICAvLyAgICAgY29sbGVjdGlvbkJsb2NrICs9IChqICsgMSA9PSBlbnRyaWVzQ3VycmVudCkgP1xuICAgIC8vICAgICAgIChpID09IGNvbGxOdW1iZXIgLSAxID8gY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcpXFxuJyA6IGNvbGxlY3Rpb25bZW50cmllcyppICsgal0gKyAnIC1cXG4nKSA6XG4gICAgLy8gICAgICAgY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgJztcbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgLy9nZW5lcmF0ZSBmaWxlXG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIENPVU5UUyAnICsgbmF0b20gKyAnICcgKyBuYm9uZCArICcgMCAwIDBcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBCRUdJTiBBVE9NXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9IGF0b21CbG9jaztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBCRUdJTiBCT05EXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9IGJvbmRCbG9jaztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIEJPTkRcXG4nO1xuICAgIC8vbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIENPTExFQ1RJT05cXG4nO1xuICAgIC8vbWFjcm9Nb2xCbG9jayArPSBjb2xsZWN0aW9uQmxvY2s7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgRU5EIENPTExFQ1RJT05cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ1RBQlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgRU5EXFxuJztcbiAgICByZXR1cm4gbWFjcm9Nb2xCbG9jaztcbn1cbmZ1bmN0aW9uIGV4dHJhY3RBdG9tc0JvbmRzTnVtYmVyc1YzMDAwKG1vbEJsb2NrKSB7XG4gICAgbW9sQmxvY2sgPSBtb2xCbG9jay5yZXBsYWNlQWxsKCdcXHInLCAnJyk7IC8vZXF1YWxpemUgb2xkIGFuZCBuZXcgc2RmIHN0YW5kYXJkc1xuICAgIGxldCBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ0NPVU5UUycpICsgNzsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGFuZCBib25kcyBudW1iZXJcbiAgICBsZXQgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGF0b21zTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIGluZGV4ID0gaW5kZXhFbmQgKyAxO1xuICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICBjb25zdCBib25kc051bWJlciA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICByZXR1cm4geyBuYXRvbTogYXRvbXNOdW1iZXIsIG5ib25kOiBib25kc051bWJlciB9O1xufVxuIiwiaW1wb3J0ICogYXMgQyBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgQW1pbm9hY2lkc1BhbGV0dGVzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXNQYWxldHRlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9udWNsZW90aWRlcyc7XG5pbXBvcnQgeyBVbmtub3duU2VxUGFsZXR0ZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bic7XG5pbXBvcnQgeyBXZWJMb2dvIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvd2ViLWxvZ28nO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IHByaW50TGVmdE9yQ2VudGVyZWQsIERyYXdTdHlsZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyJztcbmNvbnN0IHVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuY29uc3QgbW9ub21lclRvU2hvcnRGdW5jdGlvbiA9IFdlYkxvZ28ubW9ub21lclRvU2hvcnQ7XG5jb25zdCBnYXBSZW5kZXJlciA9IDU7XG5mdW5jdGlvbiBnZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKSB7XG4gICAgc3dpdGNoIChwYWxldHRlVHlwZSkge1xuICAgICAgICBjYXNlICdQVCc6XG4gICAgICAgICAgICByZXR1cm4gQW1pbm9hY2lkc1BhbGV0dGVzLkdyb2tHcm91cHM7XG4gICAgICAgIGNhc2UgJ05UJzpcbiAgICAgICAgICAgIHJldHVybiBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgY2FzZSAnRE5BJzpcbiAgICAgICAgICAgIHJldHVybiBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgY2FzZSAnUk5BJzpcbiAgICAgICAgICAgIHJldHVybiBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbTtcbiAgICAgICAgLy8gb3RoZXJcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBVbmtub3duU2VxUGFsZXR0ZXMuQ29sb3I7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0VXBkYXRlZFdpZHRoKGdyaWQsIGcsIHgsIHcpIHtcbiAgICByZXR1cm4gZ3JpZCA/IE1hdGgubWluKGdyaWQuY2FudmFzLndpZHRoIC0geCwgdykgOiBnLmNhbnZhcy53aWR0aCAtIHg7XG59XG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc1NlcXVlbmNlKHN1YlBhcnRzKSB7XG4gICAgY29uc3Qgc2ltcGxpZmllZCA9ICFzdWJQYXJ0cy5zb21lKChhbWlubywgaW5kZXgpID0+IGFtaW5vLmxlbmd0aCA+IDEgJiZcbiAgICAgICAgaW5kZXggIT0gMCAmJlxuICAgICAgICBpbmRleCAhPSBzdWJQYXJ0cy5sZW5ndGggLSAxKTtcbiAgICBjb25zdCB0ZXh0ID0gW107XG4gICAgY29uc3QgZ2FwID0gc2ltcGxpZmllZCA/ICcnIDogJyAnO1xuICAgIHN1YlBhcnRzLmZvckVhY2goKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoaW5kZXggPCBzdWJQYXJ0cy5sZW5ndGgpXG4gICAgICAgICAgICBhbWlubyArPSBgJHthbWlubyA/ICcnIDogJy0nfSR7Z2FwfWA7XG4gICAgICAgIHRleHQucHVzaChhbWlubyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIFt0ZXh0LCBzaW1wbGlmaWVkXTtcbn1cbmV4cG9ydCBjbGFzcyBNYWNyb21vbGVjdWxlU2VxdWVuY2VDZWxsUmVuZGVyZXIgZXh0ZW5kcyBERy5HcmlkQ2VsbFJlbmRlcmVyIHtcbiAgICBnZXQgbmFtZSgpIHsgcmV0dXJuICdzZXF1ZW5jZSc7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiAnc2VxdWVuY2UnOyB9XG4gICAgZ2V0IGRlZmF1bHRIZWlnaHQoKSB7IHJldHVybiAzMDsgfVxuICAgIGdldCBkZWZhdWx0V2lkdGgoKSB7IHJldHVybiAyMzA7IH1cbiAgICBvbk1vdXNlTW92ZShncmlkQ2VsbCwgZSkge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkKSAhPT0gJ1NFUS5NU0EnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoV29yZHNTdW0gPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tc3VtLW1heExlbmd0aFdvcmRzJ107XG4gICAgICAgIGNvbnN0IG1heEluZGV4ID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcFsnYmlvLW1heEluZGV4J107XG4gICAgICAgIGNvbnN0IGFyZ3NYID0gZS5vZmZzZXRYIC0gZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0ICsgKGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCAtIGdyaWRDZWxsLmJvdW5kcy54KTtcbiAgICAgICAgbGV0IGxlZnQgPSAwO1xuICAgICAgICBsZXQgcmlnaHQgPSBtYXhJbmRleDtcbiAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7XG4gICAgICAgIG1heExlbmd0aFdvcmRzU3VtW21heEluZGV4ICsgMV0gPSBhcmdzWCArIDE7XG4gICAgICAgIGxldCBtaWQgPSAwO1xuICAgICAgICBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVswXSkge1xuICAgICAgICAgICAgd2hpbGUgKCFmb3VuZCkge1xuICAgICAgICAgICAgICAgIG1pZCA9IE1hdGguZmxvb3IoKHJpZ2h0ICsgbGVmdCkgLyAyKTtcbiAgICAgICAgICAgICAgICBpZiAoYXJnc1ggPj0gbWF4TGVuZ3RoV29yZHNTdW1bbWlkXSAmJiBhcmdzWCA8PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkO1xuICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZ3NYIDwgbWF4TGVuZ3RoV29yZHNTdW1bbWlkXSkge1xuICAgICAgICAgICAgICAgICAgICByaWdodCA9IG1pZCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGFyZ3NYID4gbWF4TGVuZ3RoV29yZHNTdW1bbWlkICsgMV0pIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGVmdCA9IChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVtsZWZ0XSkgPyBsZWZ0ICsgMSA6IGxlZnQ7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IChfYSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnc2VwYXJhdG9yJykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKCdzZXBhcmF0b3InLCBzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhncmlkQ2VsbC5jZWxsLnZhbHVlKTtcbiAgICAgICAgKCgoKF9jID0gKF9iID0gc3ViUGFydHNbbGVmdF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5sZW5ndGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDApID4gMCkpID8gdWkudG9vbHRpcC5zaG93KHVpLmRpdihzdWJQYXJ0c1tsZWZ0XSksIGUueCArIDE2LCBlLnkgKyAxNikgOiB1aS50b29sdGlwLmhpZGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICogQG1lbWJlcm9mIEFsaWduZWRTZXF1ZW5jZUNlbGxSZW5kZXJlclxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWRSb3cgIT09IC0xID8gZ3JpZENlbGwuZ3JpZCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBncmlkQ2VsbC5jZWxsO1xuICAgICAgICBjb25zdCBwYWxldHRlVHlwZSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhDLlRBR1MuQUxQSEFCRVQpO1xuICAgICAgICBjb25zdCBtaW5EaXN0YW5jZVJlbmRlcmVyID0gNTA7XG4gICAgICAgIHcgPSBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdyk7XG4gICAgICAgIGcuc2F2ZSgpO1xuICAgICAgICBnLmJlZ2luUGF0aCgpO1xuICAgICAgICBnLnJlY3QoeCwgeSwgdywgaCk7XG4gICAgICAgIGcuY2xpcCgpO1xuICAgICAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICAvL1RPRE86IGNhbiB0aGlzIGJlIHJlcGxhY2VkL21lcmdlZCB3aXRoIHNwbGl0U2VxdWVuY2U/XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gZ2V0UGFsZXR0ZUJ5VHlwZShwYWxldHRlVHlwZSk7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IChfYSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnc2VwYXJhdG9yJykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBjb25zdCBzcGxpdExpbWl0ID0gZ3JpZENlbGwuYm91bmRzLndpZHRoIC8gNTtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXJGdW5jID0gV2ViTG9nby5nZXRTcGxpdHRlcih1bml0cywgc2VwYXJhdG9yLCBncmlkQ2VsbC5ib3VuZHMud2lkdGggLyA1KTtcbiAgICAgICAgY29uc3QgbWF4TGVuZ3RoT2ZNb25vbWVyID0gODtcbiAgICAgICAgbGV0IG1heExlbmd0aFdvcmRzID0ge307XG4gICAgICAgIGlmIChncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicpICE9PSBzcGxpdExpbWl0LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIGxldCBzYW1wbGVzID0gMDtcbiAgICAgICAgICAgIHdoaWxlIChzYW1wbGVzIDwgTWF0aC5taW4oZ3JpZENlbGwuY2VsbC5jb2x1bW4ubGVuZ3RoLCAxMDApKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbHVtbiA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldChzYW1wbGVzKTtcbiAgICAgICAgICAgICAgICBsZXQgc3ViUGFydHMgPSBzcGxpdHRlckZ1bmMoY29sdW1uKTtcbiAgICAgICAgICAgICAgICBzdWJQYXJ0cy5mb3JFYWNoKChhbWlubywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRleHRTaXplID0gbW9ub21lclRvU2hvcnRGdW5jdGlvbihhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKS5sZW5ndGggKiA3ICsgZ2FwUmVuZGVyZXI7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0U2l6ZSA+ICgoX2EgPSBtYXhMZW5ndGhXb3Jkc1tpbmRleF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1tpbmRleF0gPSB0ZXh0U2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAoKF9iID0gbWF4TGVuZ3RoV29yZHNbJ2Jpby1tYXhJbmRleCddKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4TGVuZ3RoV29yZHNbJ2Jpby1tYXhJbmRleCddID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBzYW1wbGVzICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgbWluTGVuZ3RoID0gMyAqIDc7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J107IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChtYXhMZW5ndGhXb3Jkc1tpXSA8IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1tpXSA9IG1pbkxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgbWF4TGVuZ3RoV29yZFN1bSA9IHt9O1xuICAgICAgICAgICAgbWF4TGVuZ3RoV29yZFN1bVswXSA9IG1heExlbmd0aFdvcmRzWzBdO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gbWF4TGVuZ3RoV29yZHNbJ2Jpby1tYXhJbmRleCddOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3JkU3VtW2ldID0gbWF4TGVuZ3RoV29yZFN1bVtpIC0gMV0gKyBtYXhMZW5ndGhXb3Jkc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXAgPSB7XG4gICAgICAgICAgICAgICAgJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnOiBtYXhMZW5ndGhXb3JkU3VtLFxuICAgICAgICAgICAgICAgICdiaW8tbWF4SW5kZXgnOiBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10sXG4gICAgICAgICAgICAgICAgJ2Jpby1tYXhMZW5ndGhXb3Jkcyc6IG1heExlbmd0aFdvcmRzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4uc2V0VGFnKCcuY2FsY3VsYXRlZENlbGxSZW5kZXInLCBzcGxpdExpbWl0LnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWF4TGVuZ3RoV29yZHMgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhjZWxsLnZhbHVlKTtcbiAgICAgICAgbGV0IHgxID0geDtcbiAgICAgICAgbGV0IGNvbG9yID0gdW5kZWZpbmVkQ29sb3I7XG4gICAgICAgIGxldCBkcmF3U3R5bGUgPSBEcmF3U3R5bGUuY2xhc3NpYztcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnYWxpZ25lZCcpLmluY2x1ZGVzKCdNU0EnKSAmJiBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoJ3VuaXRzJykgPT09ICdzZXBhcmF0b3InKSB7XG4gICAgICAgICAgICBkcmF3U3R5bGUgPSBEcmF3U3R5bGUuTVNBO1xuICAgICAgICB9XG4gICAgICAgIHN1YlBhcnRzLmV2ZXJ5KChhbWlubywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbG9yID0gcGFsZXR0ZS5nZXQoYW1pbm8pO1xuICAgICAgICAgICAgZy5maWxsU3R5bGUgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgICAgIGxldCBsYXN0ID0gaW5kZXggPT09IHN1YlBhcnRzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICB4MSA9IHByaW50TGVmdE9yQ2VudGVyZWQoeDEsIHksIHcsIGgsIGcsIG1vbm9tZXJUb1Nob3J0RnVuY3Rpb24oYW1pbm8sIG1heExlbmd0aE9mTW9ub21lciksIGNvbG9yLCAwLCB0cnVlLCAxLjAsIHNlcGFyYXRvciwgbGFzdCwgZHJhd1N0eWxlLCBtYXhMZW5ndGhXb3JkcywgaW5kZXgsIGdyaWRDZWxsKTtcbiAgICAgICAgICAgIHJldHVybiB4MSAtIG1pbkRpc3RhbmNlUmVuZGVyZXIgLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpIDw9IGdyaWRDZWxsLmJvdW5kcy53aWR0aDtcbiAgICAgICAgfSk7XG4gICAgICAgIGcucmVzdG9yZSgpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1vbm9tZXJDZWxsUmVuZGVyZXIgZXh0ZW5kcyBERy5HcmlkQ2VsbFJlbmRlcmVyIHtcbiAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1PTk9NRVI7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NT05PTUVSOyB9XG4gICAgZ2V0IGRlZmF1bHRIZWlnaHQoKSB7IHJldHVybiAxNTsgfVxuICAgIGdldCBkZWZhdWx0V2lkdGgoKSB7IHJldHVybiAzMDsgfVxuICAgIC8qKlxuICAgICAqIENlbGwgcmVuZGVyZXIgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHcgd2lkdGggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGggaGVpZ2h0IG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGx9IGdyaWRDZWxsIEdyaWQgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsU3R5bGV9IGNlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgX2NlbGxTdHlsZSkge1xuICAgICAgICBnLmZvbnQgPSBgMTJweCBtb25vc3BhY2VgO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBjb25zdCBwYWxldHRlID0gZ2V0UGFsZXR0ZUJ5VHlwZShncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoQy5UQUdTLkFMUEhBQkVUKSk7XG4gICAgICAgIGNvbnN0IHMgPSBncmlkQ2VsbC5jZWxsLnZhbHVlIHx8ICctJztcbiAgICAgICAgY29uc3QgY29sb3IgPSBwYWxldHRlLmdldChzKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSBjb2xvcjtcbiAgICAgICAgZy5maWxsVGV4dChzLCB4ICsgKHcgLyAyKSwgeSArIChoIC8gMiksIHcpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ01hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ1InOyB9XG4gICAgZ2V0IGNlbGxUeXBlKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTUFDUk9NT0xFQ1VMRV9ESUZGRVJFTkNFOyB9XG4gICAgZ2V0IGRlZmF1bHRIZWlnaHQoKSB7IHJldHVybiAzMDsgfVxuICAgIGdldCBkZWZhdWx0V2lkdGgoKSB7IHJldHVybiAyMzA7IH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBjZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRGlmZmVyZW5jZUNlbGxSZW5kZXJlclxuICAgICAqL1xuICAgIHJlbmRlcihnLCB4LCB5LCB3LCBoLCBncmlkQ2VsbCwgX2NlbGxTdHlsZSkge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGdyaWQgPSBncmlkQ2VsbC5ncmlkO1xuICAgICAgICBjb25zdCBjZWxsID0gZ3JpZENlbGwuY2VsbDtcbiAgICAgICAgY29uc3QgcyA9IChfYSA9IGNlbGwudmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBncmlkQ2VsbC50YWJsZUNvbHVtbi50YWdzW0MuVEFHUy5TRVBBUkFUT1JdO1xuICAgICAgICBjb25zdCB1bml0cyA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgICAgIHcgPSBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdyk7XG4gICAgICAgIGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyhnLCB4LCB5LCB3LCBoLCBzLCB1bml0cywgc2VwYXJhdG9yKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGcsIHgsIHksIHcsIGgsIHMsIHVuaXRzLCBzZXBhcmF0b3IsIGZ1bGxTdHJpbmdMZW5ndGgpIHtcbiAgICAvL1RPRE86IGNhbiB0aGlzIGJlIHJlcGxhY2VkL21lcmdlZCB3aXRoIHNwbGl0U2VxdWVuY2U/XG4gICAgY29uc3QgW3MxLCBzMl0gPSBzLnNwbGl0KCcjJyk7XG4gICAgY29uc3Qgc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIGNvbnN0IHN1YlBhcnRzMSA9IHNwbGl0dGVyKHMxKTtcbiAgICBjb25zdCBzdWJQYXJ0czIgPSBzcGxpdHRlcihzMik7XG4gICAgY29uc3QgdGV4dFNpemUxID0gZy5tZWFzdXJlVGV4dChwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMxKS5qb2luKCcnKSk7XG4gICAgY29uc3QgdGV4dFNpemUyID0gZy5tZWFzdXJlVGV4dChwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMyKS5qb2luKCcnKSk7XG4gICAgY29uc3QgdGV4dFdpZHRoID0gTWF0aC5tYXgodGV4dFNpemUxLndpZHRoLCB0ZXh0U2l6ZTIud2lkdGgpO1xuICAgIGlmIChmdWxsU3RyaW5nTGVuZ3RoKSB7XG4gICAgICAgIHcgPSB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNDtcbiAgICAgICAgZy5jYW52YXMud2lkdGggPSB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNDtcbiAgICB9XG4gICAgbGV0IHVwZGF0ZWRYID0gTWF0aC5tYXgoeCwgeCArICh3IC0gKHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0KSkgLyAyKTtcbiAgICAvLyAyOCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBvbiB0b3Agb2YgZWFjaCBvdGhlciArIHNwYWNlXG4gICAgY29uc3QgdXBkYXRlZFkgPSBNYXRoLm1heCh5LCB5ICsgKGggLSAyOCkgLyAyKTtcbiAgICBnLnNhdmUoKTtcbiAgICBnLmJlZ2luUGF0aCgpO1xuICAgIGcucmVjdCh4LCB5LCBmdWxsU3RyaW5nTGVuZ3RoID8gdGV4dFdpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQgOiB3LCBoKTtcbiAgICBnLmNsaXAoKTtcbiAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgIGcudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgbGV0IHBhbGV0dGUgPSBVbmtub3duU2VxUGFsZXR0ZXMuQ29sb3I7XG4gICAgaWYgKHVuaXRzICE9ICdIRUxNJylcbiAgICAgICAgcGFsZXR0ZSA9IGdldFBhbGV0dGVCeVR5cGUodW5pdHMuc3Vic3RyaW5nKHVuaXRzLmxlbmd0aCAtIDIpKTtcbiAgICBjb25zdCB2U2hpZnQgPSA3O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ViUGFydHMxLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGFtaW5vMSA9IHN1YlBhcnRzMVtpXTtcbiAgICAgICAgY29uc3QgYW1pbm8yID0gc3ViUGFydHMyW2ldO1xuICAgICAgICBjb25zdCBjb2xvcjEgPSBwYWxldHRlLmdldChhbWlubzEpO1xuICAgICAgICBpZiAoYW1pbm8xICE9IGFtaW5vMikge1xuICAgICAgICAgICAgY29uc3QgY29sb3IyID0gcGFsZXR0ZS5nZXQoYW1pbm8yKTtcbiAgICAgICAgICAgIGNvbnN0IHN1YlgwID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFkgLSB2U2hpZnQsIHcsIGgsIGcsIGFtaW5vMSwgY29sb3IxLCAwLCB0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHN1YlgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFkgKyB2U2hpZnQsIHcsIGgsIGcsIGFtaW5vMiwgY29sb3IyLCAwLCB0cnVlKTtcbiAgICAgICAgICAgIHVwZGF0ZWRYID0gTWF0aC5tYXgoc3ViWDEsIHN1YlgwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICB1cGRhdGVkWCA9IHByaW50TGVmdE9yQ2VudGVyZWQodXBkYXRlZFgsIHVwZGF0ZWRZLCB3LCBoLCBnLCBhbWlubzEsIGNvbG9yMSwgMCwgdHJ1ZSwgMC41KTtcbiAgICAgICAgdXBkYXRlZFggKz0gNDtcbiAgICB9XG4gICAgZy5yZXN0b3JlKCk7XG59XG4iLCJleHBvcnQgdmFyIENPTFVNTlNfTkFNRVM7XG4oZnVuY3Rpb24gKENPTFVNTlNfTkFNRVMpIHtcbiAgICBDT0xVTU5TX05BTUVTW1wiU1BMSVRfQ09MXCJdID0gXCJ+c3BsaXRcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiQUNUSVZJVFlcIl0gPSBcIn5hY3Rpdml0eVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWV9TQ0FMRURcIl0gPSBcImFjdGl2aXR5X3NjYWxlZFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBTElHTkVEX1NFUVVFTkNFXCJdID0gXCJ+YWxpZ25lZF9zZXF1ZW5jZVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBTUlOT19BQ0lEX1JFU0lEVUVcIl0gPSBcIkFBUlwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBfVkFMVUVcIl0gPSBcInBWYWx1ZVwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJNRUFOX0RJRkZFUkVOQ0VcIl0gPSBcIk1lYW4gZGlmZmVyZW5jZVwiO1xufSkoQ09MVU1OU19OQU1FUyB8fCAoQ09MVU1OU19OQU1FUyA9IHt9KSk7XG5leHBvcnQgdmFyIFRBR1M7XG4oZnVuY3Rpb24gKFRBR1MpIHtcbiAgICBUQUdTW1wiQUFSXCJdID0gXCJBQVJcIjtcbiAgICBUQUdTW1wiUE9TSVRJT05cIl0gPSBcIlBvc1wiO1xuICAgIFRBR1NbXCJTRVBBUkFUT1JcIl0gPSBcInNlcGFyYXRvclwiO1xuICAgIFRBR1NbXCJTRUxFQ1RJT05cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIFRBR1NbXCJBTFBIQUJFVFwiXSA9IFwiYWxwaGFiZXRcIjtcbiAgICBUQUdTW1wiQUxJR05FRFwiXSA9IFwiYWxpZ25lZFwiO1xufSkoVEFHUyB8fCAoVEFHUyA9IHt9KSk7XG5leHBvcnQgdmFyIFNFTV9UWVBFUztcbihmdW5jdGlvbiAoU0VNX1RZUEVTKSB7XG4gICAgU0VNX1RZUEVTW1wiTU9OT01FUlwiXSA9IFwiTW9ub21lclwiO1xuICAgIFNFTV9UWVBFU1tcIk1BQ1JPTU9MRUNVTEVfRElGRkVSRU5DRVwiXSA9IFwiTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VcIjtcbiAgICBTRU1fVFlQRVNbXCJBQ1RJVklUWVwiXSA9IFwiYWN0aXZpdHlcIjtcbiAgICBTRU1fVFlQRVNbXCJBQ1RJVklUWV9TQ0FMRURcIl0gPSBcImFjdGl2aXR5U2NhbGVkXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRVwiXSA9IFwiTWFjcm9tb2xlY3VsZVwiO1xufSkoU0VNX1RZUEVTIHx8IChTRU1fVFlQRVMgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IE1TQSA9ICdNU0EnO1xuZXhwb3J0IGNvbnN0IFNUQVRTID0gJ3N0YXRzJztcbmV4cG9ydCBjb25zdCBFTUJFRERJTkdfU1RBVFVTID0gJ2VtYmVkZGluZ1N0YXR1cyc7XG5leHBvcnQgY29uc3QgUEVQVElERVNfQU5BTFlTSVMgPSAnaXNQZXB0aWRlc0FuYWx5c2lzJztcbmV4cG9ydCB2YXIgRkxBR1M7XG4oZnVuY3Rpb24gKEZMQUdTKSB7XG4gICAgRkxBR1NbXCJDRUxMX0NIQU5HSU5HXCJdID0gXCJpc0NlbGxDaGFuZ2luZ1wiO1xufSkoRkxBR1MgfHwgKEZMQUdTID0ge30pKTtcbmV4cG9ydCBjb25zdCBhYXJHcm91cHMgPSB7XG4gICAgJ1InOiAnUEMnLCAnSCc6ICdQQycsICdLJzogJ1BDJyxcbiAgICAnRCc6ICdOQycsICdFJzogJ05DJyxcbiAgICAnUyc6ICdVJywgJ1QnOiAnVScsICdOJzogJ1UnLCAnUSc6ICdVJyxcbiAgICAnQyc6ICdTQycsICdVJzogJ1NDJywgJ0cnOiAnU0MnLCAnUCc6ICdTQycsXG4gICAgJ0EnOiAnSCcsICdWJzogJ0gnLCAnSSc6ICdIJywgJ0wnOiAnSCcsICdNJzogJ0gnLCAnRic6ICdIJywgJ1knOiAnSCcsICdXJzogJ0gnLFxuICAgICctJzogJy0nLFxufTtcbmV4cG9ydCBjb25zdCBncm91cERlc2NyaXB0aW9uID0ge1xuICAgICdQQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ1Bvc2l0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ1InLCAnSCcsICdLJ10gfSxcbiAgICAnTkMnOiB7ICdkZXNjcmlwdGlvbic6ICdOZWdhdGl2ZSBBbWlubyBBY2lkcywgd2l0aCBFbGVjdHJpY2FsbHkgQ2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydEJywgJ0UnXSB9LFxuICAgICdVJzogeyAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBQb2xhciBVbmNoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUycsICdUJywgJ04nLCAnUSddIH0sXG4gICAgJ1NDJzogeyAnZGVzY3JpcHRpb24nOiAnU3BlY2lhbCBDYXNlcycsICdhbWlub0FjaWRzJzogWydDJywgJ1UnLCAnRycsICdQJ10gfSxcbiAgICAnSCc6IHtcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ0FtaW5vIEFjaWRzIHdpdGggSHlkcm9waG9iaWMgU2lkZSBDaGFpbicsXG4gICAgICAgICdhbWlub0FjaWRzJzogWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSxcbiAgICB9LFxuICAgICctJzogeyAnZGVzY3JpcHRpb24nOiAnVW5rbm93biBBbWlubyBBY2lkJywgJ2FtaW5vQWNpZHMnOiBbJy0nXSB9LFxufTtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICQgZnJvbSAnY2FzaC1kb20nO1xuaW1wb3J0IHsgTm90YXRpb25Db252ZXJ0ZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyJztcbmxldCBjb252ZXJ0RGlhbG9nID0gbnVsbDtcbmxldCBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuLyoqXG4gKiBDb252ZXJ0cyBub3RhdGlvbnMgb2YgYSBNYWNyb21vbGVjdWxlIGNvbHVtblxuICpcbiAqIEBwYXJhbSB7REcuY29sdW1ufSBjb2wgQ29sdW1uIHdpdGggJ01hY3JvbW9sZWN1bGUnIHNlbWFudGljIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnQoY29sKSB7XG4gICAgY29uc3QgY29udmVydGVyID0gbmV3IE5vdGF0aW9uQ29udmVydGVyKGNvbCk7XG4gICAgY29uc3QgY3VycmVudE5vdGF0aW9uID0gY29udmVydGVyLm5vdGF0aW9uO1xuICAgIC8vVE9ETzogcmVhZCBhbGwgbm90YXRpb25zXG4gICAgY29uc3Qgbm90YXRpb25zID0gW1xuICAgICAgICBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sXG4gICAgICAgIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLFxuICAgICAgICBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXG4gICAgXTtcbiAgICBjb25zdCBzZXBhcmF0b3JBcnJheSA9IFsnLScsICcuJywgJy8nXTtcbiAgICBjb25zdCBmaWx0ZXJlZE5vdGF0aW9ucyA9IG5vdGF0aW9ucy5maWx0ZXIoKGUpID0+IGUgIT09IGN1cnJlbnROb3RhdGlvbik7XG4gICAgY29uc3QgdGFyZ2V0Tm90YXRpb25JbnB1dCA9IHVpLmNob2ljZUlucHV0KCdDb252ZXJ0IHRvJywgZmlsdGVyZWROb3RhdGlvbnNbMF0sIGZpbHRlcmVkTm90YXRpb25zKTtcbiAgICBjb25zdCBzZXBhcmF0b3JJbnB1dCA9IHVpLmNob2ljZUlucHV0KCdTZXBhcmF0b3InLCBzZXBhcmF0b3JBcnJheVswXSwgc2VwYXJhdG9yQXJyYXkpO1xuICAgIC8vIGhpZGUgdGhlIHNlcGFyYXRvciBpbnB1dCBmb3Igbm9uLVNFUEFSQVRPUiB0YXJnZXQgbm90YXRpb25zXG4gICAgY29uc3QgdG9nZ2xlU2VwYXJhdG9yID0gKCkgPT4ge1xuICAgICAgICBpZiAodGFyZ2V0Tm90YXRpb25JbnB1dC52YWx1ZSAhPT0gXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pXG4gICAgICAgICAgICAkKHNlcGFyYXRvcklucHV0LnJvb3QpLmhpZGUoKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgJChzZXBhcmF0b3JJbnB1dC5yb290KS5zaG93KCk7XG4gICAgfTtcbiAgICAvLyBzZXQgY29ycmVjdCB2aXNpYmlsaXR5IG9uIGluaXRcbiAgICB0b2dnbGVTZXBhcmF0b3IoKTtcbiAgICB0YXJnZXROb3RhdGlvbklucHV0Lm9uQ2hhbmdlZCgoKSA9PiB7XG4gICAgICAgIHRvZ2dsZVNlcGFyYXRvcigpO1xuICAgIH0pO1xuICAgIGlmIChjb252ZXJ0RGlhbG9nID09IG51bGwpIHtcbiAgICAgICAgY29udmVydERpYWxvZyA9IHVpLmRpYWxvZygnQ29udmVydCBzZXF1ZW5jZSBub3RhdGlvbicpXG4gICAgICAgICAgICAuYWRkKHVpLmRpdihbXG4gICAgICAgICAgICB1aS5kaXZUZXh0KCdDdXJyZW50IG5vdGF0aW9uOiAnICsgY3VycmVudE5vdGF0aW9uLCB7XG4gICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3RleHQtYWxpZ24nOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAnZm9udC1zaXplJzogJzE0cHgnLFxuICAgICAgICAgICAgICAgICAgICAncGFkZGluZyc6ICc1cHgnLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFyZ2V0Tm90YXRpb25JbnB1dC5yb290LFxuICAgICAgICAgICAgc2VwYXJhdG9ySW5wdXQucm9vdFxuICAgICAgICBdKSlcbiAgICAgICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gdGFyZ2V0Tm90YXRpb25JbnB1dC52YWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNlcGFyYXRvcklucHV0LnZhbHVlO1xuICAgICAgICAgICAgeWllbGQgY29udmVydERvKGNvbCwgdGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcik7XG4gICAgICAgIH0pKVxuICAgICAgICAgICAgLnNob3coeyB4OiAzNTAsIHk6IDEwMCB9KTtcbiAgICAgICAgY29udmVydERpYWxvZ1N1YnMucHVzaChjb252ZXJ0RGlhbG9nLm9uQ2xvc2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29udmVydERpYWxvZ1N1YnMuZm9yRWFjaCgocykgPT4geyBzLnVuc3Vic2NyaWJlKCk7IH0pO1xuICAgICAgICAgICAgY29udmVydERpYWxvZ1N1YnMgPSBbXTtcbiAgICAgICAgICAgIGNvbnZlcnREaWFsb2cgPSBudWxsO1xuICAgICAgICB9KSk7XG4gICAgfVxufVxuLyoqIENyZWF0ZXMgYSBuZXcgY29sdW1uIHdpdGggY29udmVydGVkIHNlcXVlbmNlcyBhbmQgZGV0ZWN0cyBpdHMgc2VtYW50aWMgdHlwZSAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnREbyhzcmNDb2wsIHRhcmdldE5vdGF0aW9uLCBzZXBhcmF0b3IpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgTm90YXRpb25Db252ZXJ0ZXIoc3JjQ29sKTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gY29udmVydGVyLmNvbnZlcnQodGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcik7XG4gICAgICAgIHNyY0NvbC5kYXRhRnJhbWUuY29sdW1ucy5hZGQobmV3Q29sdW1uKTtcbiAgICAgICAgLy8gY2FsbCB0byBjYWxjdWxhdGUgJ2NlbGwucmVuZGVyZXInIHRhZ1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhzcmNDb2wuZGF0YUZyYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9KTtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IEZhc3RhRmlsZUhhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvZmFzdGEtaGFuZGxlcic7XG4vL0B0cy1pZ25vcmVcbmltcG9ydCBBaW9saSBmcm9tICdAYmlvd2FzbS9haW9saSc7XG5pbXBvcnQgeyBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3NlcXVlbmNlLWVuY29kZXInO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuLyoqXG4gKiBDb252ZXJ0cyBhcnJheSBvZiBzZXF1ZW5jZXMgaW50byBzaW1wbGUgZmFzdGEgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nW119IHNlcXVlbmNlcyBJbnB1dCBsaXN0IG9mIHNlcXVlbmNlcy5cbiAqIEByZXR1cm4ge3N0cmluZ30gRmFzdGEtZm9ybWF0dGVkIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gX3N0cmluZ3NUb0Zhc3RhKHNlcXVlbmNlcykge1xuICAgIHJldHVybiBzZXF1ZW5jZXMucmVkdWNlKChhLCB2LCBpKSA9PiBhICsgYD5zYW1wbGUke2kgKyAxfVxcbiR7dn1cXG5gLCAnJyk7XG59XG4vKipcbiAqIFJ1bnMgQWlvbGkgZW52aXJvbm1lbnQgd2l0aCBrYWxpZ24gdG9vbC5cbiAqXG4gKiBAcGFyYW0ge0RHLkNvbHVtbn0gc3JjQ29sIENvbHVtbiB3aXRoIHNlcXVlbmNlcy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNBbGlnbmVkIFdoZXRoZXIgdGhlIGNvbHVtbiBpcyBhbGlnbmVkLlxuICogQHBhcmFtIHtzdHJpbmd9IHVuVXNlZE5hbWVcbiAqIEByZXR1cm4ge1Byb21pc2U8REcuQ29sdW1uPn0gQWxpZ25lZCBzZXF1ZW5jZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5LYWxpZ24oc3JjQ29sLCBpc0FsaWduZWQgPSBmYWxzZSwgdW5Vc2VkTmFtZSA9ICcnKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgbGV0IHNlcXVlbmNlcyA9IHNyY0NvbC50b0xpc3QoKTtcbiAgICAgICAgaWYgKGlzQWxpZ25lZClcbiAgICAgICAgICAgIHNlcXVlbmNlcyA9IHNlcXVlbmNlcy5tYXAoKHYsIF8pID0+IEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuY2xlYW4odikucmVwbGFjZSgvXFwtL2csICcnKSk7XG4gICAgICAgIGNvbnN0IGZhc3RhID0gX3N0cmluZ3NUb0Zhc3RhKHNlcXVlbmNlcyk7XG4gICAgICAgIGNvbnN0IENMSSA9IHlpZWxkIG5ldyBBaW9saSh7XG4gICAgICAgICAgICB0b29sOiAna2FsaWduJyxcbiAgICAgICAgICAgIHZlcnNpb246ICczLjMuMScsXG4gICAgICAgICAgICByZWluaXQ6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zb2xlLmxvZyhbJ2Zhc3RhLmxlbmd0aCA9JywgZmFzdGEubGVuZ3RoXSk7XG4gICAgICAgIHlpZWxkIENMSS5mcy53cml0ZUZpbGUoJ2lucHV0LmZhJywgZmFzdGEpO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSB5aWVsZCBDTEkuZXhlYygna2FsaWduIGlucHV0LmZhIC1mIGZhc3RhIC1vIHJlc3VsdC5mYXN0YScpO1xuICAgICAgICBjb25zb2xlLndhcm4ob3V0cHV0KTtcbiAgICAgICAgY29uc3QgYnVmID0geWllbGQgQ0xJLmNhdCgncmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGlmICghYnVmKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBrYWxpZ24gb3V0cHV0IG5vIHJlc3VsdGApO1xuICAgICAgICBjb25zdCBmZmggPSBuZXcgRmFzdGFGaWxlSGFuZGxlcihidWYpO1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gZmZoLnNlcXVlbmNlc0FycmF5OyAvLyBhcnJheSBvZiBzZXF1ZW5jZXMgZXh0cmFjdGVkIGZyb20gRkFTVEFcbiAgICAgICAgY29uc3QgdGd0Q29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKHVuVXNlZE5hbWUsIGFsaWduZWQpO1xuICAgICAgICAvLyB1bml0c1xuICAgICAgICBjb25zdCBzcmNVbml0cyA9IHNyY0NvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIC8vYWxpZ25lZFxuICAgICAgICBjb25zdCBzcmNBbGlnbmVkID0gc3JjQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkKTtcbiAgICAgICAgY29uc3QgdGd0QWxpZ25lZCA9IHNyY0FsaWduZWQgKyAnLk1TQSc7XG4gICAgICAgIC8vYWxwaGFiZXRcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXQgPSBzcmNDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0KTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBzcmNVbml0cyk7XG4gICAgICAgIHRndENvbC5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCwgdGd0QWxpZ25lZCk7XG4gICAgICAgIHRndENvbC5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcbiAgICAgICAgdGd0Q29sLnNlbVR5cGUgPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEU7XG4gICAgICAgIHJldHVybiB0Z3RDb2w7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gdGVzdE1TQUVub3VnaE1lbW9yeShjb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBzZXF1ZW5jZXNDb3VudCA9IGNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGRlbHRhID0gc2VxdWVuY2VzQ291bnQgLyAxMDA7XG4gICAgICAgIGZvciAobGV0IGkgPSBkZWx0YTsgaSA8IHNlcXVlbmNlc0NvdW50OyBpICs9IGRlbHRhKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIHJ1bkthbGlnbihERy5Db2x1bW4uZnJvbVN0cmluZ3MoY29sLm5hbWUsIGNvbC50b0xpc3QoKS5zbGljZSgwLCBNYXRoLnJvdW5kKGkpKSkpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBydW5LYWxpZ24gc3VjY2VlZGVkIG9uICR7aX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBydW5LYWxpZ24gZmFpbGVkIG9uICR7aX0gd2l0aCAnJHtlcnJvcn0nYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgeyBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvc2ltaWxhcml0eS1tZXRyaWNzJztcbmltcG9ydCB7IEF2YWlsYWJsZU1ldHJpY3MgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzJztcbmltcG9ydCB7IFRBR1MgfSBmcm9tICcuLi91dGlscy9jb25zdGFudHMnO1xuaW1wb3J0IHsgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyJztcbmV4cG9ydCBmdW5jdGlvbiBnZXREaXN0YW5jZXMoY29sLCBzZXEpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBzdHJpbmdBcnJheSA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VzID0gbmV3IEFycmF5KHN0cmluZ0FycmF5Lmxlbmd0aCkuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJpbmdBcnJheS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBzdHJpbmdBcnJheVtpXSA/IEF2YWlsYWJsZU1ldHJpY3NbJ1N0cmluZyddWydMZXZlbnNodGVpbiddKHN0cmluZ0FycmF5W2ldLCBzZXEpIDogbnVsbDtcbiAgICAgICAgICAgIGRpc3RhbmNlc1tpXSA9IGRpc3RhbmNlID8gZGlzdGFuY2UgLyBNYXRoLm1heChzdHJpbmdBcnJheVtpXS5sZW5ndGgsIHNlcS5sZW5ndGgpIDogbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlzdGFuY2VzO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbWlsYXJpdGllc01hcml4KGRpbSwgc2VxQ29sLCBkZiwgY29sTmFtZSwgc2ltQXJyKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgZGlzdGFuY2VzID0gbmV3IEFycmF5KHNpbUFyci5sZW5ndGgpLmZpbGwobnVsbCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IGRpbSAtIDE7ICsraSkge1xuICAgICAgICAgICAgY29uc3Qgc2VxID0gc2VxQ29sLmdldChpKTtcbiAgICAgICAgICAgIGRmLnJvd3MucmVtb3ZlQXQoMCwgMSwgZmFsc2UpO1xuICAgICAgICAgICAgZGlzdGFuY2VzW2ldID0gKHlpZWxkIGdldERpc3RhbmNlcyhkZi5jb2woY29sTmFtZSksIHNlcSkpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlzdGFuY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRpc3RhbmNlc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgIGRpc3RhbmNlc1tpXVtqXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNpbUFycltpXSA9IERHLkNvbHVtbi5mcm9tTGlzdChERy5DT0xVTU5fVFlQRS5GTE9BVCwgJ2Rpc3RhbmNlcycsIGRpc3RhbmNlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNpbUFycjtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUb29sdGlwRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCB0b29sdGlwRWxlbWVudCA9IHVpLmRpdkgoW10pO1xuICAgIGNvbnN0IGNvbHVtbk5hbWVzID0gdWkuZGl2VihbXG4gICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lKSxcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuYWN0aXZpdHlDb2wubmFtZSksXG4gICAgXSk7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuZm9udFdlaWdodCA9ICdib2xkJztcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZChjb2x1bW5OYW1lcyk7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBjb25zdCBhY3Rpdml0eSA9IHVpLmRpdlRleHQocGFyYW1zLmFjdGl2aXR5Q29sLmdldChtb2xJZHgpLnRvRml4ZWQoMikpO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdsZWZ0JztcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMzBweCc7XG4gICAgICAgIHRvb2x0aXBFbGVtZW50LmFwcGVuZCh1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KSksXG4gICAgICAgICAgICBhY3Rpdml0eSxcbiAgICAgICAgXSkpO1xuICAgIH0pO1xuICAgIHJldHVybiB0b29sdGlwRWxlbWVudDtcbn1cbmZ1bmN0aW9uIG1vbGVjdWxlSW5mbyhkZiwgaWR4LCBzZXFDb2xOYW1lKSB7XG4gICAgbGV0IGRpY3QgPSB7fTtcbiAgICBmb3IgKGxldCBjb2wgb2YgZGYuY29sdW1ucykge1xuICAgICAgICBpZiAoY29sLm5hbWUgIT09IHNlcUNvbE5hbWUpIHtcbiAgICAgICAgICAgIGRpY3RbY29sLm5hbWVdID0gZGYuZ2V0KGNvbC5uYW1lLCBpZHgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1aS50YWJsZUZyb21NYXAoZGljdCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvcFBhbmVsRWxlbWVudChwYXJhbXMpIHtcbiAgICBjb25zdCBwcm9wUGFuZWwgPSB1aS5kaXYoKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdlRleHQocGFyYW1zLnNlcUNvbC5uYW1lLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJyB9IH0pKTtcbiAgICBjb25zdCBzZXF1ZW5jZXNBcnJheSA9IG5ldyBBcnJheSgyKTtcbiAgICBjb25zdCBhY3Rpdml0aWVzQXJyYXkgPSBuZXcgQXJyYXkoMik7XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGlkeCkgPT4ge1xuICAgICAgICBzZXF1ZW5jZXNBcnJheVtpZHhdID0gcGFyYW1zLnNlcUNvbC5nZXQobW9sSWR4KTtcbiAgICAgICAgYWN0aXZpdGllc0FycmF5W2lkeF0gPSBwYXJhbXMuYWN0aXZpdHlDb2wuZ2V0KG1vbElkeCk7XG4gICAgfSk7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNhbnZhcy5oZWlnaHQgPSAzMDtcbiAgICBjb25zdCB1bml0cyA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgIGNvbnN0IHNlcGFyYXRvciA9IHBhcmFtcy5zZXFDb2wuZ2V0VGFnKFRBR1MuU0VQQVJBVE9SKTtcbiAgICBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMoY29udGV4dCwgMCwgMCwgMCwgMzAsIHNlcXVlbmNlc0FycmF5LmpvaW4oJyMnKSwgdW5pdHMsIHNlcGFyYXRvciwgdHJ1ZSk7XG4gICAgcHJvcFBhbmVsLmFwcGVuZCh1aS5kaXYoY2FudmFzLCB7IHN0eWxlOiB7IHdpZHRoOiAnMzAwcHgnLCBvdmVyZmxvdzogJ3Njcm9sbCcgfSB9KSk7XG4gICAgZnVuY3Rpb24gYWRkRmlsZWRUb1Byb3BQYW5lbChuYW1lLCB2YWx1ZSkge1xuICAgICAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dChgJHtuYW1lfTogYCwgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcsIHBhZGRpbmdSaWdodDogJzVweCcgfSB9KSxcbiAgICAgICAgICAgIHVpLmRpdlRleHQodmFsdWUudG9GaXhlZCgyKSlcbiAgICAgICAgXSwgeyBzdHlsZTogeyBwYWRkaW5nVG9wOiAnNXB4JyB9IH0pKTtcbiAgICB9XG4gICAgYWRkRmlsZWRUb1Byb3BQYW5lbCgnQWN0aXZpdHkgZGVsdGEnLCBNYXRoLmFicyhhY3Rpdml0aWVzQXJyYXlbMF0gLSBhY3Rpdml0aWVzQXJyYXlbMV0pKTtcbiAgICBhZGRGaWxlZFRvUHJvcFBhbmVsKCdDbGlmZicsIHBhcmFtcy5zYWxpKTtcbiAgICByZXR1cm4gcHJvcFBhbmVsO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgcmVkdWNlRGltZW5zaW5hbGl0eVdpdGhOb3JtYWxpemF0aW9uIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvc2VxdWVuY2Utc3BhY2UnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2Uoc3BhY2VQYXJhbXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBjb2RlIGRlcHJlY2F0ZWQgc2luY2Ugc2VxQ29sIGlzIGVuY29kZWRcbiAgICAgICAgLyogICAgbGV0IHByZXBhcmVkRGF0YTogYW55O1xuICAgICAgICAgIGlmICghKHNwYWNlUGFyYW1zLnNlcUNvbCEudGFnc1tERy5UQUdTLlVOSVRTXSA9PT0gJ0hFTE0nKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VwID0gc3BhY2VQYXJhbXMuc2VxQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgY29uc3Qgc2VwRmluYWwgPSBzZXAgPyBzZXAgPT09ICcuJyA/ICdcXFxcXFwuJyA6IHNlcCA6ICctJztcbiAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChzZXBGaW5hbCwgJ2cnKTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzWydTdHJpbmcnXSkuaW5jbHVkZXMoc3BhY2VQYXJhbXMuc2ltaWxhcml0eU1ldHJpYykpXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCkubWFwKCh2OiBzdHJpbmcpID0+IHYucmVwbGFjZShyZWdleCwgJycpKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpO1xuICAgICAgICAgIH0gICovXG4gICAgICAgIGNvbnN0IHNlcXVlbmNlU3BhY2VSZXN1bHQgPSB5aWVsZCByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24oc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLCBzcGFjZVBhcmFtcy5tZXRob2ROYW1lLCBzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljLCBzcGFjZVBhcmFtcy5vcHRpb25zKTtcbiAgICAgICAgY29uc3QgY29scyA9IHNwYWNlUGFyYW1zLmVtYmVkQXhlc05hbWVzLm1hcCgobmFtZSwgaW5kZXgpID0+IERHLkNvbHVtbi5mcm9tRmxvYXQzMkFycmF5KG5hbWUsIHNlcXVlbmNlU3BhY2VSZXN1bHQuZW1iZWRkaW5nW2luZGV4XSkpO1xuICAgICAgICByZXR1cm4geyBkaXN0YW5jZTogc2VxdWVuY2VTcGFjZVJlc3VsdC5kaXN0YW5jZSwgY29vcmRpbmF0ZXM6IG5ldyBERy5Db2x1bW5MaXN0KGNvbHMpIH07XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1iZWRkaW5nQ29sc05hbWVzKGRmKSB7XG4gICAgY29uc3QgYXhlcyA9IFsnRW1iZWRfWCcsICdFbWJlZF9ZJ107XG4gICAgY29uc3QgY29sTmFtZUluZCA9IGRmLmNvbHVtbnMubmFtZXMoKS5maWx0ZXIoKGl0KSA9PiBpdC5pbmNsdWRlcyhheGVzWzBdKSkubGVuZ3RoICsgMTtcbiAgICByZXR1cm4gYXhlcy5tYXAoKGl0KSA9PiBgJHtpdH1fJHtjb2xOYW1lSW5kfWApO1xufVxuIiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB7IENBUF9HUk9VUF9OQU1FLCBDQVBfR1JPVVBfU01JTEVTLCBqc29uU2RmTW9ub21lckxpYkRpY3QsIE1PTk9NRVJfRU5DT0RFX01BWCwgTU9OT01FUl9FTkNPREVfTUlOLCBNT05PTUVSX1NZTUJPTCwgUkdST1VQX0FMVEVSX0lELCBSR1JPVVBfRklFTEQsIFJHUk9VUF9MQUJFTCwgU0RGX01PTk9NRVJfTkFNRSB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX0ZJTEVOQU1FID0gJy9zYW1wbGVzL0hFTE1Db3JlTGlicmFyeS5qc29uJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX01PTk9NRVJfU1lNQk9MID0gJ3N5bWJvbCc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0xJQl9NT0xGSUxFID0gJ21vbGZpbGUnO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9GSUVMRFMgPSBbJ3N5bWJvbCcsICdtb2xmaWxlJywgJ3Jncm91cHMnLCAnbmFtZSddO1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZU1vbm9tZXJzKGNvbCkge1xuICAgIGxldCBlbmNvZGVTeW1ib2wgPSBNT05PTUVSX0VOQ09ERV9NSU47XG4gICAgY29uc3QgbW9ub21lclN5bWJvbERpY3QgPSB7fTtcbiAgICBjb25zdCB1bml0cyA9IGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1Muc2VwYXJhdG9yKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IGVuY29kZWRTdHJpbmdBcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGxldCBlbmNvZGVkTW9ub21lclN0ciA9ICcnO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhjb2wuZ2V0KGkpKTtcbiAgICAgICAgbW9ub21lcnMuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtb25vbWVyU3ltYm9sRGljdFttXSkge1xuICAgICAgICAgICAgICAgIGlmIChlbmNvZGVTeW1ib2wgPiBNT05PTUVSX0VOQ09ERV9NQVgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcihgTm90IGVub3VnaCBzeW1ib2xzIHRvIGVuY29kZSBtb25vbWVyc2ApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9ub21lclN5bWJvbERpY3RbbV0gPSBlbmNvZGVTeW1ib2w7XG4gICAgICAgICAgICAgICAgZW5jb2RlU3ltYm9sKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmNvZGVkTW9ub21lclN0ciArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChtb25vbWVyU3ltYm9sRGljdFttXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlbmNvZGVkU3RyaW5nQXJyYXkucHVzaChlbmNvZGVkTW9ub21lclN0cik7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2VuY29kZWRNb2xlY3VsZXMnLCBlbmNvZGVkU3RyaW5nQXJyYXkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNlcShjb2wsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wudGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjb2wuZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IG1vbm9tZXJzRGljdCA9IGNyZWF0ZU1vbW9tZXJzTW9sRGljdChtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgY29uc3QgbW9sRmlsZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbC5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBtYWNyb01vbGVjdWxlID0gY29sLmdldChpKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnMgPSBzcGxpdHRlckZ1bmMobWFjcm9Nb2xlY3VsZSk7XG4gICAgICAgIGNvbnN0IG1vbEZpbGVzRm9yU2VxID0gW107XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9ub21lcnMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyc1tqXSkge1xuICAgICAgICAgICAgICAgIGlmICghbW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkge1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYE1vbm9tZXIgJHttb25vbWVyc1tqXX0gaXMgbWlzc2luZyBpbiBIRUxNIGxpYnJhcnkuIFN0cnVjdHVyZSBjYW5ub3QgYmUgY3JlYXRlZGApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9sRmlsZXNGb3JTZXEucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbW9sRmlsZXMucHVzaChtb2xGaWxlc0ZvclNlcSk7XG4gICAgfVxuICAgIHJldHVybiBtb2xGaWxlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2xmaWxlc0Zyb21TaW5nbGVTZXEoY2VsbCwgbW9ub21lcnNMaWJPYmplY3QpIHtcbiAgICBjb25zdCB1bml0cyA9IGNlbGwuY29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgY29uc3Qgc2VwID0gY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IG1vbm9tZXJzRGljdCA9IGNyZWF0ZU1vbW9tZXJzTW9sRGljdChtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgY29uc3QgbW9sRmlsZXMgPSBbXTtcbiAgICBjb25zdCBtYWNyb01vbGVjdWxlID0gY2VsbC52YWx1ZTtcbiAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICBjb25zdCBtb2xGaWxlc0ZvclNlcSA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9ub21lcnMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pIHtcbiAgICAgICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYE1vbm9tZXIgJHttb25vbWVyc1tqXX0gaXMgbWlzc2luZyBpbiBIRUxNIGxpYnJhcnkuIFN0cnVjdHVyZSBjYW5ub3QgYmUgY3JlYXRlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9sRmlsZXNGb3JTZXEucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW9sRmlsZXMucHVzaChtb2xGaWxlc0ZvclNlcSk7XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vbW9tZXJzTW9sRGljdChsaWIpIHtcbiAgICBjb25zdCBkaWN0ID0ge307XG4gICAgbGliLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgIGlmIChpdFsncG9seW1lclR5cGUnXSA9PT0gJ1BFUFRJREUnKSB7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyT2JqZWN0ID0ge307XG4gICAgICAgICAgICBIRUxNX0NPUkVfRklFTERTLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgbW9ub21lck9iamVjdFtmaWVsZF0gPSBpdFtmaWVsZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpY3RbaXRbSEVMTV9DT1JFX0xJQl9NT05PTUVSX1NZTUJPTF1dID0gbW9ub21lck9iamVjdDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkaWN0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUpzb25Nb25vbWVyTGliRnJvbVNkZih0YWJsZSkge1xuICAgIGNvbnN0IHJlc3VsdExpYiA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBtb25vbWVyID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGpzb25TZGZNb25vbWVyTGliRGljdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBNT05PTUVSX1NZTUJPTCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJTeW1ib2wgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IG1vbm9tZXJTeW1ib2wgPT09ICcuJyA/IHRhYmxlLmdldChTREZfTU9OT01FUl9OQU1FLCBpKSA6IG1vbm9tZXJTeW1ib2w7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChrZXkgPT09IFJHUk9VUF9GSUVMRCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJncm91cHMgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqc29uUmdyb3VwcyA9IFtdO1xuICAgICAgICAgICAgICAgIHJncm91cHMuZm9yRWFjaCgoZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZ3JvdXAgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWx0QXRvbSA9IGcuc3Vic3RyaW5nKGcubGFzdEluZGV4T2YoJ10nKSArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYWRpY2FsTnVtID0gZy5tYXRjaCgvXFxbUihcXGQrKVxcXS8pWzFdO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbQ0FQX0dST1VQX1NNSUxFU10gPSBhbHRBdG9tID09PSAnSCcgPyBgWyo6JHtyYWRpY2FsTnVtfV1bSF1gIDogYE9bKjoke3JhZGljYWxOdW19XWA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfQUxURVJfSURdID0gYWx0QXRvbSA9PT0gJ0gnID8gYFIke3JhZGljYWxOdW19LUhgIDogYFIke3JhZGljYWxOdW19LU9IYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW0NBUF9HUk9VUF9OQU1FXSA9IGFsdEF0b20gPT09ICdIJyA/IGBIYCA6IGBPSGA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfTEFCRUxdID0gYFIke3JhZGljYWxOdW19YDtcbiAgICAgICAgICAgICAgICAgICAganNvblJncm91cHMucHVzaChyZ3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IGpzb25SZ3JvdXBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldKVxuICAgICAgICAgICAgICAgICAgICBtb25vbWVyW2tleV0gPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0TGliLnB1c2gobW9ub21lcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRMaWI7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgVmRSZWdpb25UeXBlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZkLXJlZ2lvbnMnO1xuY29uc3QgdnJ0ID0gVmRSZWdpb25UeXBlO1xuLy8gUG9zaXRpb25zIG9mIHJlZ2lvbnMgZm9yIG51bWJlcmluZyBzY2hlbWVzXG4vLyBodHRwOi8vd3d3LmJpb2luZi5vcmcudWsvYWJzL2luZm8uaHRtbFxuLy8gY29uc3QgaW1ndFJlZ2lvbnM6IFZkUmVnaW9uW10gPSBbXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnTGlnaHQnLCAxLCAnMScsICcyNicpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIxJywgJ0hlYXZ5JywgMSwgJzEnLCAnMjYnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdMaWdodCcsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjEnLCAnSGVhdnknLCAyLCAnMjcnLCAnMzgnKSwgLy8gMjctMzJcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjInLCAnTGlnaHQnLCAzLCAnMzknLCAnNTUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdIZWF2eScsIDMsICczOScsICc1NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0xpZ2h0JywgNCwgJzU2JywgJzY1JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMicsICdIZWF2eScsIDQsICc1NicsICc2NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdMaWdodCcsIDUsICc2NicsICcxMDQnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdIZWF2eScsIDUsICc2NicsICcxMDQnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdMaWdodCcsIDYsICcxMDUnLCAnMTE3JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdIZWF2eScsIDYsICcxMDUnLCAnMTE3JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0xpZ2h0JywgNywgJzExOCcsIG51bGwvKjEyNyovKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSNCcsICdIZWF2eScsIDcsICcxMTgnLCBudWxsLyoxMjgqLyksXG4vLyBdO1xuLyoqIFZpZXdlciB3aXRoIHRhYnMgYmFzZWQgb24gZGVzY3JpcHRpb24gb2YgY2hhaW4gcmVnaW9ucy5cbiAqICBVc2VkIHRvIGRlZmluZSByZWdpb25zIG9mIGFuIGltbXVub2dsb2J1bGluIExDLlxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb25zVmlld2VyIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvLyBwcml2YXRlIHJlZ2lvbnNEZjogREcuRGF0YUZyYW1lO1xuICAgICAgICB0aGlzLnJlZ2lvbnNGZyA9IG51bGw7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc1RWOiBERy5UYWJsZVZpZXc7XG4gICAgICAgIHRoaXMucmVnaW9uc1Jvb3QgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGFuZWxOb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWdpb25zID0gW107XG4gICAgICAgIC8vICNyZWdpb24gLS0gSGFuZGxlIGNvbnRyb2xzJyBldmVudHMgLS1cbiAgICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgIC8vI3JlZ2lvbiAtLSBWaWV3IC0tXG4gICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgIHRoaXMubWFpbkxheW91dCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgLy8gVG8gcHJldmVudCBhbWJpZ3VvdXMgbnVtYmVyaW5nIHNjaGVtZSBpbiBNTEJcbiAgICAgICAgdGhpcy5yZWdpb25UeXBlcyA9IHRoaXMuc3RyaW5nTGlzdCgncmVnaW9uVHlwZXMnLCBbdnJ0LkNEUl0sIHsgY2hvaWNlczogT2JqZWN0LnZhbHVlcyh2cnQpLmZpbHRlcigodCkgPT4gdCAhPSB2cnQuVW5rbm93bikgfSk7XG4gICAgICAgIHRoaXMuY2hhaW5zID0gdGhpcy5zdHJpbmdMaXN0KCdjaGFpbnMnLCBbJ0hlYXZ5JywgJ0xpZ2h0J10sIHsgY2hvaWNlczogWydIZWF2eScsICdMaWdodCddIH0pO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXggPSB0aGlzLnN0cmluZygnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCcsICdjaGFpbiBzZXF1ZW5jZScpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uV2lkdGggPSB0aGlzLmZsb2F0KCdwb3NpdGlvbldpZHRoJywgMTYpO1xuICAgIH1cbiAgICBnZXQgZGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFGcmFtZTtcbiAgICB9XG4gICAgLy8gVE9ETzogLm9uVGFibGVBdHRhY2hlZCBpcyBub3QgY2FsbGluZyBvbiBkYXRhRnJhbWUgc2V0LCBvblByb3BlcnR5Q2hhbmdlZCAgYWxzbyBub3QgY2FsbGluZ1xuICAgIHNldERmKHZhbHVlLCByZWdpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdWZFJlZ2lvbnNWaWV3ZXIuc2V0RGYoKScpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgdGhpcy5yZWdpb25zID0gcmVnaW9ucztcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIC8vI3JlZ2lvbiByZWdpb25zREYgd2l0aCBmaWx0ZXJcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHRoaXMucmVnaW9ucyk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNEZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3cubmFtZSA9PSAnQ0RSMScpO1xuICAgICAgICAgICAgLy8gLy8gVG8gYXZhaWxhYmxlIG9wdGlvbnMgL1xuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRmcgPSAoYXdhaXQgdGhpcy5yZWdpb25zRGYucGxvdC5mcm9tVHlwZShERy5WSUVXRVIuRklMVEVSUywge1xuICAgICAgICAgICAgLy8gICAvLyBjb2x1bW5OYW1lczogWyduYW1lJyxdLFxuICAgICAgICAgICAgLy8gICBzaG93RmlsdGVyQ291bnRzSW5kaWNhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dIZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBzaG93U2VhcmNoQm94OiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgZmlsdGVyczogW1xuICAgICAgICAgICAgLy8gICAgIHt0eXBlOiBERy5GSUxURVJfVFlQRS5DQVRFR09SSUNBTCwgY29sdW1uOiAndHlwZScsIGxhYmVsOiAnUmVnaW9uIG5hbWUnLCBzaG93SGlzdG9ncmFtOiBmYWxzZX0sXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICduYW1lJywgbGFiZWw6ICdSZWdpb24gdHlwZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgXSxcbiAgICAgICAgICAgIC8vICAgdGl0bGU6ICdSZWdpb25zIGZpbHRlcicsXG4gICAgICAgICAgICAvLyAgIHNob3dUaXRsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vICAgZGVzY3JpcHRpb246ICdGaWx0ZXIgZm9yIHJlZ2lvbnMgb2YgbXVsdGlwbGUgYWxpZ25tZW50IGJ5IElNR1Qgbm9tZW5jbGF0dXJlJyxcbiAgICAgICAgICAgIC8vICAgc29tZVByb3BlcnR5OiAnSGVsbG8nLFxuICAgICAgICAgICAgLy8gfSkpIGFzIERHLkZpbHRlckdyb3VwO1xuICAgICAgICAgICAgLy8jZW5kcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5tbGJWaWV3LmRvY2tNYW5hZ2VyLmRvY2sodGhpcy5yZWdpb25zRmcucm9vdCwgREcuRE9DS19UWVBFLkxFRlQsIHJvb3ROb2RlLCAnRmlsdGVyIHJlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godWkub25TaXplQ2hhbmdlZCh0aGlzLnJvb3QpLnN1YnNjcmliZSh0aGlzLnJvb3RPblNpemVDaGFuZ2VkLmJpbmQodGhpcykpKTtcbiAgICAgICAgICAgIC8vIHJ4anMuZnJvbUV2ZW50KHRoaXMucm9vdCwgJ21vdXNlbW92ZScpLnN1YnNjcmliZSh0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmluaXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgICAgICAgb25Qcm9wZXJ0eUNoYW5nZWQ6IHsgZ2V0OiAoKSA9PiBzdXBlci5vblByb3BlcnR5Q2hhbmdlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgX3N1cGVyLm9uUHJvcGVydHlDaGFuZ2VkLmNhbGwodGhpcywgcHJvcGVydHkpO1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlZ2lvblR5cGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjaGFpbnMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NraXBFbXB0eVBvc2l0aW9ucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZm9yIChsZXQgY2hhaW5JID0gMDsgY2hhaW5JIDwgdGhpcy5jaGFpbnMubGVuZ3RoOyBjaGFpbkkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGNoYWluOiBzdHJpbmcgPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0uc2V0T3B0aW9ucyh7c2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9uc30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmNhbGNTaXplKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uV2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb3BlbihtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsTm9kZSA9IG1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJvb3QsIERHLkRPQ0tfVFlQRS5UT1AsIG51bGwsICdSZWdpb25zJywgMC4yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNob3cobWxiVmlldykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJncykge1xuICAgICAgICB0aGlzLmNhbGNTaXplKCk7XG4gICAgfVxuICAgIGRlc3Ryb3lWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8gVE9ETzogVW5zdWJzY3JpYmUgZnJvbSBhbmQgcmVtb3ZlIGFsbCB2aWV3IGVsZW1lbnRzXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBWZFJlZ2lvbnNWaWV3ZXIuZGVzdHJveVZpZXcoIG1haW5MYXlvdXQgPSAkeyF0aGlzLm1haW5MYXlvdXQgPyAnbm9uZScgOiAndmFsdWUnfSApYCk7XG4gICAgICAgICAgICBpZiAodGhpcy5tYWluTGF5b3V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJvb3QucmVtb3ZlQ2hpbGQodGhpcy5ob3N0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGJ1aWxkVmlldygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBzdGFydCcpO1xuICAgICAgICAgICAgY29uc3QgY29sTmFtZXMgPSBPYmplY3QuYXNzaWduKHt9LCAuLi50aGlzLmNoYWlucy5tYXAoKGNoYWluKSA9PiAoeyBbY2hhaW5dOiBgJHtjaGFpbn0gJHt0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXh9YCB9KSkpO1xuICAgICAgICAgICAgY29uc3QgcmVnaW9uc0ZpbHRlcmVkID0gdGhpcy5yZWdpb25zLmZpbHRlcigocikgPT4gdGhpcy5yZWdpb25UeXBlcy5pbmNsdWRlcyhyLnR5cGUpKTtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyTGlzdCA9IEFycmF5LmZyb20obmV3IFNldChyZWdpb25zRmlsdGVyZWQubWFwKChyKSA9PiByLm9yZGVyKSkpLnNvcnQoKTtcbiAgICAgICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IG9yZGVyTGlzdC5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnaW9uQ2hhaW5zID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFpbiBvZiB0aGlzLmNoYWlucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpb24gPSByZWdpb25zRmlsdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChyKSA9PiByLm9yZGVyID09IG9yZGVyTGlzdFtvcmRlckldICYmIHIuY2hhaW4gPT0gY2hhaW4pO1xuICAgICAgICAgICAgICAgICAgICByZWdpb25DaGFpbnNbY2hhaW5dID0gKHlpZWxkIHRoaXMuZGF0YUZyYW1lLnBsb3QuZnJvbVR5cGUoJ1dlYkxvZ28nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbHVtbk5hbWU6IGNvbE5hbWVzW2NoYWluXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25OYW1lOiByZWdpb24ucG9zaXRpb25TdGFydE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvbkVuZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXhXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBFbXB0eVBvc2l0aW9uczogdGhpcy5za2lwRW1wdHlQb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbldpZHRoOiB0aGlzLnBvc2l0aW9uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2ViTG9nbyBjcmVhdGlvbiBmaXJlcyBvblJvb3RTaXplQ2hhbmdlZCBldmVudCBldmVuIGJlZm9yZSBjb250cm9sIGJlaW5nIGFkZGVkIHRvIHRoaXMubG9nb3NcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ29zW29yZGVySV0gPSByZWdpb25DaGFpbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB1aS50YWJsZUZyb21NYXAoKVxuICAgICAgICAgICAgLy8gREcuSHRtbFRhYmxlLmNyZWF0ZSgpXG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSB1aS50YWJsZSh0aGlzLmNoYWlucywgKGNoYWluKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY2hhaW4gbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgLi4uKG9yZGVyTGlzdC5sZW5ndGggPiAwID8gW3VpLmRpdihjaGFpbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgtOTBkZWcpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJzEycHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcyNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSldIDogW10pLFxuICAgICAgICAgICAgICAgICAgICAvLyBMaXN0IHdpdGggY29udHJvbHMgZm9yIHJlZ2lvbnNcbiAgICAgICAgICAgICAgICAgICAgLi4uWy4uLkFycmF5KG9yZGVyTGlzdC5sZW5ndGgpLmtleXMoKV0ubWFwKChvcmRlckkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdsID0gdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdsLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzRGl2ID0gdWkuZGl2KFt3bC5yb290XSAvKmAke2NoYWlufSAke3JlZ2lvbnNGaWx0ZXJlZFtySV19YCovLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzRGl2O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICAgICAgfSwgWycnLCAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4gcmVnaW9uc0ZpbHRlcmVkLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSB0aGlzLmNoYWluc1swXSkubmFtZSB8fCAnTmFtZScpXSk7XG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQuY2xhc3NOYW1lID0gJ21sYi12ZC1yZWdpb25zLXZpZXdlci10YWJsZTInO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJhY2tncm91bmQgPSAnI0VFRUVGRic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snO1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSBgI2ZmYmIke01hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KS50b1N0cmluZygxNil9YDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmJveCh0aGlzLm1haW5MYXlvdXQsIHsgLypzdHlsZToge2JhY2tncm91bmRDb2xvcjogY29sb3J9Ki99KTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLm92ZXJmbG93WCA9ICdhdXRvJztcbiAgICAgICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBlbmQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBjb25zdCBsb2dvSGVpZ2h0ID0gKHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSA1NCkgLyB0aGlzLmNoYWlucy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IE1hdGgubWluKGxvZ29IZWlnaHQsIE1hdGgubWF4KC4uLnRoaXMubG9nb3MubWFwKCh3bERpY3QpID0+IE1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMod2xEaWN0KS5tYXAoKHdsKSA9PiB3bC5tYXhIZWlnaHQpKSkpKTtcbiAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgdGhpcy5sb2dvcy5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhaW4gPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0ucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vI2VuZHJlZ2lvbiAtLSBWaWV3IC0tXG4gICAgb25Nb3VzZU1vdmVSb290KGUpIHtcbiAgICAgICAgLy8gdWkudG9vbHRpcC5zaG93KCd0ZXh0JywgZS54ICsgOCwgZS55ICsgOCwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgb25Nb3VzZU1vdmVSb290LiggeDogJHtlLnh9LCB5OiAke2UueX0gKWApO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi4vdXRpbHMvYXRvbWljLXdvcmtzJztcbi8qKlxuICogM0QgcmVwcmVzZW50YXRpb24gd2lkZ2V0IG9mIG1hY3JvbW9sZWN1bGUuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtERy5DZWxsfSBtYWNyb01vbGVjdWxlIG1hY3JvbW9sZWN1bGUgY2VsbC5cbiAqIEBwYXJhbSB7YW55W119IG1vbm9tZXJzTGliT2JqZWN0XG4gKiBAcmV0dXJuIHtQcm9taXNlPERHLldpZGdldD59IFdpZGdldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcHJlc2VudGF0aW9uc1dpZGdldChtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHBpID0gREcuVGFza0JhclByb2dyZXNzSW5kaWNhdG9yLmNyZWF0ZSgnQ3JlYXRpbmcgM0QgdmlldycpO1xuICAgICAgICBsZXQgd2lkZ2V0SG9zdDtcbiAgICAgICAgbGV0IG1vbEJsb2NrM0QgPSAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXRvbWljQ29kZXMgPSBnZXRNb2xmaWxlc0Zyb21TaW5nbGVTZXEobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2xCbG9jazJEID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSAoeWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQmlvOkVtYmVkJywgeyBtb2xCbG9jazJEIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBtb2xCbG9jazNEID0gbW9sQmxvY2szRC5yZXBsYWNlQWxsKCdcXFxcbicsICdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdCbG9iID0gbmV3IEJsb2IoW21vbEJsb2NrM0RdLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZ2xIb3N0ID0gdWkuZGl2KFtdLCB7IGNsYXNzZXM6ICdkNC1uZ2wtdmlld2VyJywgaWQ6ICduZ2wtM2QtaG9zdCcgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhZ2UgPSBuZXcgTkdMLlN0YWdlKG5nbEhvc3QsIHsgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnIH0pO1xuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHN0YWdlLmxvYWRGaWxlKHN0cmluZ0Jsb2IsIHsgZXh0OiAnc2RmJyB9KS50aGVuKGZ1bmN0aW9uIChjb21wKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YWdlLnNldFNpemUoMzAwLCAzMDApO1xuICAgICAgICAgICAgICAgICAgICBjb21wLmFkZFJlcHJlc2VudGF0aW9uKCdiYWxsK3N0aWNrJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYXV0b1ZpZXcoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBza2V0Y2ggPSBncm9rLmNoZW0uc3ZnTW9sKG1vbEJsb2NrM0QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gdWkuZGl2SChbc2tldGNoXSk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdihbcGFuZWwsIG5nbEhvc3RdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHdpZGdldEhvc3QgPSB1aS5kaXZUZXh0KCdDb3VsZG5cXCd0IGdldCBwZXB0aWRlIHN0cnVjdHVyZScpO1xuICAgICAgICB9XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHdpZGdldEhvc3QpO1xuICAgIH0pO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSAkOyIsIm1vZHVsZS5leHBvcnRzID0gREc7IiwibW9kdWxlLmV4cG9ydHMgPSBncm9rOyIsIm1vZHVsZS5leHBvcnRzID0gcnhqczsiLCJtb2R1bGUuZXhwb3J0cyA9IHVpOyIsIm1vZHVsZS5leHBvcnRzID0gd3U7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyY1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHNjcmlwdFVybCA9IHNjcmlwdHNbc2NyaXB0cy5sZW5ndGggLSAxXS5zcmNcblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gZG9jdW1lbnQuYmFzZVVSSSB8fCBzZWxmLmxvY2F0aW9uLmhyZWY7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0XCJwYWNrYWdlXCI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbi8qIERvIG5vdCBjaGFuZ2UgdGhlc2UgaW1wb3J0IGxpbmVzIHRvIG1hdGNoIGV4dGVybmFsIG1vZHVsZXMgaW4gd2VicGFjayBjb25maWd1cmF0aW9uICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuZXhwb3J0IGNvbnN0IF9wYWNrYWdlID0gbmV3IERHLlBhY2thZ2UoKTtcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyLCBNb25vbWVyQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgeyBWZFJlZ2lvbnNWaWV3ZXIgfSBmcm9tICcuL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXInO1xuaW1wb3J0IHsgcnVuS2FsaWduIH0gZnJvbSAnLi91dGlscy9tdWx0aXBsZS1zZXF1ZW5jZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgU2VxdWVuY2VBbGlnbm1lbnQgfSBmcm9tICcuL3NlcV9hbGlnbic7XG5pbXBvcnQgeyBnZXRFbWJlZGRpbmdDb2xzTmFtZXMsIHNlcXVlbmNlU3BhY2UgfSBmcm9tICcuL3V0aWxzL3NlcXVlbmNlLXNwYWNlJztcbmltcG9ydCB7IGdldEFjdGl2aXR5Q2xpZmZzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdmlld2Vycy9hY3Rpdml0eS1jbGlmZnMnO1xuaW1wb3J0IHsgY3JlYXRlUHJvcFBhbmVsRWxlbWVudCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGdldFNpbWlsYXJpdGllc01hcml4IH0gZnJvbSAnLi91dGlscy9zZXF1ZW5jZS1hY3Rpdml0eS1jbGlmZnMnO1xuaW1wb3J0IHsgY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmLCBlbmNvZGVNb25vbWVycywgZ2V0TW9sZmlsZXNGcm9tU2VxLCBIRUxNX0NPUkVfTElCX0ZJTEVOQU1FIH0gZnJvbSAnLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBnZXRNYWNyb01vbCB9IGZyb20gJy4vdXRpbHMvYXRvbWljLXdvcmtzJztcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciB9IGZyb20gJy4vdXRpbHMvY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQgeyBjb252ZXJ0IH0gZnJvbSAnLi91dGlscy9jb252ZXJ0JztcbmltcG9ydCB7IHJlcHJlc2VudGF0aW9uc1dpZGdldCB9IGZyb20gJy4vd2lkZ2V0cy9yZXByZXNlbnRhdGlvbnMnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHsgRmFzdGFGaWxlSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5pbXBvcnQgeyBzcGxpdEFsaWduZWRTZXF1ZW5jZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuL3V0aWxzL2NvbnN0YW50cyc7XG4vL3RhZ3M6IGluaXRcbmV4cG9ydCBmdW5jdGlvbiBpbml0QmlvKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgfSk7XG59XG4vL25hbWU6IGZhc3RhU2VxdWVuY2VDZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IHNlcXVlbmNlXG4vL21ldGEuY29sdW1uVGFnczogcXVhbGl0eT1NYWNyb21vbGVjdWxlLCB1bml0cz1mYXN0YVxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBmYXN0YVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9c2VwYXJhdG9yXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlcigpO1xufVxuZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucyA9IFtdLCBhbGxvd2VkQWxwaGFiZXRzID0gW10pIHtcbiAgICBjb25zdCBbcmVzLCBtc2ddID0gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMsIGFsbG93ZWRBbHBoYWJldHMpO1xuICAgIGlmICghcmVzKVxuICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcobXNnKTtcbiAgICByZXR1cm4gcmVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSW5wdXRDb2x1bW4oY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGxldCByZXMgPSB0cnVlO1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBjb25zdCB1aCA9IG5ldyBVbml0c0hhbmRsZXIoY29sKTtcbiAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcobmFtZSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgc2VtYW50aWMgdHlwZScpO1xuICAgICAgICByZXMgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IG5vdGF0aW9uID0gdWgubm90YXRpb247XG4gICAgICAgIGlmIChhbGxvd2VkTm90YXRpb25zLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICFhbGxvd2VkTm90YXRpb25zLnNvbWUoKG4pID0+IG5vdGF0aW9uLnRvVXBwZXJDYXNlKCkgPT0gKG4udG9VcHBlckNhc2UoKSkpKSB7XG4gICAgICAgICAgICBjb25zdCBub3RhdGlvbkFkZCA9IGFsbG93ZWROb3RhdGlvbnMubGVuZ3RoID09IDAgPyAnYW55IG5vdGF0aW9uJyA6XG4gICAgICAgICAgICAgICAgKGBub3RhdGlvbiR7YWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPiAxID8gJ3MnIDogJyd9ICR7YWxsb3dlZE5vdGF0aW9ucy5tYXAoKG4pID0+IGBcIiR7bn1cImApLmpvaW4oJywgJyl9IGApO1xuICAgICAgICAgICAgbXNnID0gYCR7bmFtZX0gKyAnIGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHdpdGggbm90YXRpb24gJHtub3RhdGlvbkFkZH0uYDtcbiAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF1aC5pc0hlbG0oKSkge1xuICAgICAgICAgICAgLy8gYWxwaGFiZXQgaXMgbm90IHNwZWNpZmllZCBmb3IgJ2hlbG0nIG5vdGF0aW9uXG4gICAgICAgICAgICBjb25zdCBhbHBoYWJldCA9IHVoLmFscGhhYmV0O1xuICAgICAgICAgICAgaWYgKGFsbG93ZWRBbHBoYWJldHMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgICAgICFhbGxvd2VkQWxwaGFiZXRzLnNvbWUoKGEpID0+IGFscGhhYmV0LnRvVXBwZXJDYXNlKCkgPT0gKGEudG9VcHBlckNhc2UoKSkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWxwaGFiZXRBZGQgPSBhbGxvd2VkQWxwaGFiZXRzLmxlbmd0aCA9PSAwID8gJ2FueSBhbHBoYWJldCcgOlxuICAgICAgICAgICAgICAgICAgICAoYGFscGhhYmV0JHthbGxvd2VkQWxwaGFiZXRzLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gJHthbGxvd2VkQWxwaGFiZXRzLm1hcCgoYSkgPT4gYFwiJHthfVwiYCkuam9pbignLCAnKX0uYCk7XG4gICAgICAgICAgICAgICAgbXNnID0gYCR7bmFtZX0gKyAnIGFuYWx5c2lzIGlzIGFsbG93ZWQgZm9yIE1hY3JvbW9sZWN1bGVzIHdpdGggYWxwaGFiZXQgJHthbHBoYWJldEFkZH0uYDtcbiAgICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW3JlcywgbXNnXTtcbn1cbi8vbmFtZTogc2VxdWVuY2VBbGlnbm1lbnRcbi8vaW5wdXQ6IHN0cmluZyBhbGlnblR5cGUge2Nob2ljZXM6IFsnTG9jYWwgYWxpZ25tZW50JywgJ0dsb2JhbCBhbGlnbm1lbnQnXX1cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4vL2lucHV0OiBzdHJpbmcgYWxpZ25UYWJsZSB7Y2hvaWNlczogWydBVVRPJywgJ05VQ0xFT1RJREVTJywgJ0JMT1NVTTQ1JywgJ0JMT1NVTTUwJywnQkxPU1VNNjInLCdCTE9TVU04MCcsJ0JMT1NVTTkwJywnUEFNMzAnLCdQQU03MCcsJ1BBTTI1MCcsJ1NDSE5FSURFUicsJ1RSQU5TJ119XG4vL2lucHV0OiBkb3VibGUgZ2FwXG4vL2lucHV0OiBzdHJpbmcgc2VxMVxuLy9pbnB1dDogc3RyaW5nIHNlcTJcbi8vb3V0cHV0OiBvYmplY3QgcmVzXG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VBbGlnbm1lbnQoYWxpZ25UeXBlLCBhbGlnblRhYmxlLCBnYXAsIHNlcTEsIHNlcTIpIHtcbiAgICBjb25zdCB0b0FsaWduID0gbmV3IFNlcXVlbmNlQWxpZ25tZW50KHNlcTEsIHNlcTIsIGdhcCwgYWxpZ25UYWJsZSk7XG4gICAgY29uc3QgcmVzID0gYWxpZ25UeXBlID09ICdMb2NhbCBhbGlnbm1lbnQnID8gdG9BbGlnbi5zbWl0aFdhdGVybWFuKCkgOiB0b0FsaWduLm5lZWRsZW1hbld1bmNoKCk7XG4gICAgcmV0dXJuIHJlcztcbn1cbi8vbmFtZTogV2ViTG9nb1xuLy9kZXNjcmlwdGlvbjogV2ViTG9nbyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB3ZWJMb2dvVmlld2VyKCkge1xuICAgIHJldHVybiBuZXcgV2ViTG9nbygpO1xufVxuLy9uYW1lOiBWZFJlZ2lvbnNcbi8vZGVzY3JpcHRpb246IFYtRG9tYWluIHJlZ2lvbnMgdmlld2VyXG4vL3RhZ3M6IHZpZXdlciwgcGFuZWxcbi8vb3V0cHV0OiB2aWV3ZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gdmRSZWdpb25WaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBWZFJlZ2lvbnNWaWV3ZXIoKTtcbn1cbi8vdG9wLW1lbnU6IEJpbyB8IFNlcXVlbmNlIEFjdGl2aXR5IENsaWZmcy4uLlxuLy9uYW1lOiBTZXF1ZW5jZSBBY3Rpdml0eSBDbGlmZnNcbi8vZGVzY3JpcHRpb246IGRldGVjdCBhY3Rpdml0eSBjbGlmZnNcbi8vaW5wdXQ6IGRhdGFmcmFtZSB0YWJsZSBbSW5wdXQgZGF0YSB0YWJsZV1cbi8vaW5wdXQ6IGNvbHVtbiBtYWNyb01vbGVjdWxlIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuLy9pbnB1dDogY29sdW1uIGFjdGl2aXRpZXNcbi8vaW5wdXQ6IGRvdWJsZSBzaW1pbGFyaXR5ID0gODAgW1NpbWlsYXJpdHkgY3V0b2ZmXVxuLy9pbnB1dDogc3RyaW5nIG1ldGhvZE5hbWUgeyBjaG9pY2VzOltcIlVNQVBcIiwgXCJ0LVNORVwiLCBcIlNQRVwiXSB9XG5leHBvcnQgZnVuY3Rpb24gYWN0aXZpdHlDbGlmZnMoZGYsIG1hY3JvTW9sZWN1bGUsIGFjdGl2aXRpZXMsIHNpbWlsYXJpdHksIG1ldGhvZE5hbWUpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnQWN0aXZpdHkgQ2xpZmZzJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVuY29kZWRDb2wgPSBlbmNvZGVNb25vbWVycyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgaWYgKCFlbmNvZGVkQ29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBheGVzTmFtZXMgPSBnZXRFbWJlZGRpbmdDb2xzTmFtZXMoZGYpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgJ1NQRSc6IHsgY3ljbGVzOiAyMDAwLCBsYW1iZGE6IDEuMCwgZGxhbWJkYTogMC4wMDA1IH0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB7XG4gICAgICAgICAgICAndW5pdHMnOiBtYWNyb01vbGVjdWxlLnRhZ3NbJ3VuaXRzJ10sXG4gICAgICAgICAgICAnYWxpZ25lZCc6IG1hY3JvTW9sZWN1bGUudGFnc1snYWxpZ25lZCddLFxuICAgICAgICAgICAgJ3NlcGFyYXRvcic6IG1hY3JvTW9sZWN1bGUudGFnc1snc2VwYXJhdG9yJ10sXG4gICAgICAgICAgICAnYWxwaGFiZXQnOiBtYWNyb01vbGVjdWxlLnRhZ3NbJ2FscGhhYmV0J10sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHNwID0geWllbGQgZ2V0QWN0aXZpdHlDbGlmZnMoZGYsIG1hY3JvTW9sZWN1bGUsIGVuY29kZWRDb2wsIGF4ZXNOYW1lcywgJ0FjdGl2aXR5IGNsaWZmcycsIGFjdGl2aXRpZXMsIHNpbWlsYXJpdHksICdMZXZlbnNodGVpbicsIG1ldGhvZE5hbWUsIERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSwgdGFncywgc2VxdWVuY2VTcGFjZSwgZ2V0U2ltaWxhcml0aWVzTWFyaXgsIGNyZWF0ZVRvb2x0aXBFbGVtZW50LCBjcmVhdGVQcm9wUGFuZWxFbGVtZW50LCBvcHRpb25zW21ldGhvZE5hbWVdKTtcbiAgICAgICAgcmV0dXJuIHNwO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2VxdWVuY2UgU3BhY2UuLi5cbi8vbmFtZTogU2VxdWVuY2UgU3BhY2Vcbi8vaW5wdXQ6IGRhdGFmcmFtZSB0YWJsZVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbi8vaW5wdXQ6IHN0cmluZyBtZXRob2ROYW1lIHsgY2hvaWNlczpbXCJVTUFQXCIsIFwidC1TTkVcIiwgXCJTUEVcIl0gfVxuLy9pbnB1dDogc3RyaW5nIHNpbWlsYXJpdHlNZXRyaWMgeyBjaG9pY2VzOltcIkxldmVuc2h0ZWluXCIsIFwiVGFuaW1vdG9cIl0gfVxuLy9pbnB1dDogYm9vbCBwbG90RW1iZWRkaW5ncyA9IHRydWVcbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZVNwYWNlVG9wTWVudSh0YWJsZSwgbWFjcm9Nb2xlY3VsZSwgbWV0aG9kTmFtZSwgc2ltaWxhcml0eU1ldHJpYyA9ICdMZXZlbnNodGVpbicsIHBsb3RFbWJlZGRpbmdzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKCFjaGVja0lucHV0Q29sdW1uVWkobWFjcm9Nb2xlY3VsZSwgJ0FjdGl2aXR5IENsaWZmcycpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbmNvZGVkQ29sID0gZW5jb2RlTW9ub21lcnMobWFjcm9Nb2xlY3VsZSk7XG4gICAgICAgIGlmICghZW5jb2RlZENvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW1iZWRDb2xzTmFtZXMgPSBnZXRFbWJlZGRpbmdDb2xzTmFtZXModGFibGUpO1xuICAgICAgICBjb25zdCB3aXRob3V0RW1wdHlWYWx1ZXMgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW2VuY29kZWRDb2xdKS5jbG9uZSgpO1xuICAgICAgICBjb25zdCBlbXB0eVZhbHNJZHhzID0gcmVtb3ZlRW1wdHlTdHJpbmdSb3dzKHdpdGhvdXRFbXB0eVZhbHVlcywgZW5jb2RlZENvbCk7XG4gICAgICAgIGNvbnN0IGNoZW1TcGFjZVBhcmFtcyA9IHtcbiAgICAgICAgICAgIHNlcUNvbDogd2l0aG91dEVtcHR5VmFsdWVzLmNvbChlbmNvZGVkQ29sLm5hbWUpLFxuICAgICAgICAgICAgbWV0aG9kTmFtZTogbWV0aG9kTmFtZSxcbiAgICAgICAgICAgIHNpbWlsYXJpdHlNZXRyaWM6IHNpbWlsYXJpdHlNZXRyaWMsXG4gICAgICAgICAgICBlbWJlZEF4ZXNOYW1lczogZW1iZWRDb2xzTmFtZXNcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2VxdWVuY2VTcGFjZVJlcyA9IHlpZWxkIHNlcXVlbmNlU3BhY2UoY2hlbVNwYWNlUGFyYW1zKTtcbiAgICAgICAgY29uc3QgZW1iZWRkaW5ncyA9IHNlcXVlbmNlU3BhY2VSZXMuY29vcmRpbmF0ZXM7XG4gICAgICAgIGZvciAoY29uc3QgY29sIG9mIGVtYmVkZGluZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZXMgPSBjb2wudG9MaXN0KCk7XG4gICAgICAgICAgICBlbXB0eVZhbHNJZHhzLmZvckVhY2goKGluZCkgPT4gbGlzdFZhbHVlcy5zcGxpY2UoaW5kLCAwLCBudWxsKSk7XG4gICAgICAgICAgICB0YWJsZS5jb2x1bW5zLmFkZChERy5Db2x1bW4uZnJvbUxpc3QoJ2RvdWJsZScsIGNvbC5uYW1lLCBsaXN0VmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNwO1xuICAgICAgICBpZiAocGxvdEVtYmVkZGluZ3MpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiBncm9rLnNoZWxsLnZpZXdzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHYubmFtZSA9PT0gdGFibGUubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgc3AgPSB2LnNjYXR0ZXJQbG90KHsgeDogZW1iZWRDb2xzTmFtZXNbMF0sIHk6IGVtYmVkQ29sc05hbWVzWzFdLCB0aXRsZTogJ1NlcXVlbmNlIHNwYWNlJyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG47XG4vL3RvcC1tZW51OiBCaW8gfCBUbyBBdG9taWMgTGV2ZWwuLi5cbi8vbmFtZTogVG8gQXRvbWljIExldmVsXG4vL2Rlc2NyaXB0aW9uOiByZXR1cm5zIG1vbGZpbGVzIGZvciBlYWNoIG1vbm9tZXIgZnJvbSBIRUxNIGxpYnJhcnlcbi8vaW5wdXQ6IGRhdGFmcmFtZSBkZiBbSW5wdXQgZGF0YSB0YWJsZV1cbi8vaW5wdXQ6IGNvbHVtbiBtYWNyb01vbGVjdWxlIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHRvQXRvbWljTGV2ZWwoZGYsIG1hY3JvTW9sZWN1bGUpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoREcuRnVuYy5maW5kKHsgcGFja2FnZTogJ0NoZW0nLCBuYW1lOiAnZ2V0UmRLaXRNb2R1bGUnIH0pLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKCdUcmFuc2Zvcm1hdGlvbiB0byBhdG9taWMgbGV2ZWwgcmVxdWlyZXMgcGFja2FnZSBcIkNoZW1cIiBpbnN0YWxsZWQuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjaGVja0lucHV0Q29sdW1uVWkobWFjcm9Nb2xlY3VsZSwgJ1RvIEF0b21pYyBMZXZlbCcpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBtb25vbWVyc0xpYkZpbGUgPSB5aWVsZCBfcGFja2FnZS5maWxlcy5yZWFkQXNUZXh0KEhFTE1fQ09SRV9MSUJfRklMRU5BTUUpO1xuICAgICAgICBjb25zdCBtb25vbWVyc0xpYk9iamVjdCA9IEpTT04ucGFyc2UobW9ub21lcnNMaWJGaWxlKTtcbiAgICAgICAgY29uc3QgYXRvbWljQ29kZXMgPSBnZXRNb2xmaWxlc0Zyb21TZXEobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBnZXRNYWNyb01vbChhdG9taWNDb2Rlcyk7XG4gICAgICAgIGNvbnN0IGNvbCA9IERHLkNvbHVtbi5mcm9tU3RyaW5ncygncmVnZW5lcmF0ZWQnLCByZXN1bHQpO1xuICAgICAgICBjb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTU9MRUNVTEU7XG4gICAgICAgIGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdID0gJ21vbGJsb2NrJztcbiAgICAgICAgZGYuY29sdW1ucy5hZGQoY29sLCB0cnVlKTtcbiAgICAgICAgeWllbGQgZ3Jvay5kYXRhLmRldGVjdFNlbWFudGljVHlwZXMoZGYpO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgTVNBLi4uXG4vL25hbWU6IE1TQVxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG4vL2lucHV0OiBjb2x1bW4gc2VxdWVuY2UgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlLCB1bml0czogWydmYXN0YSddLCBhbHBoYWJldDogWydETkEnLCAnUk5BJywgJ1BUJ10gfVxuLy9vdXRwdXQ6IGNvbHVtbiByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBtdWx0aXBsZVNlcXVlbmNlQWxpZ25tZW50QW55KHRhYmxlLCBjb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBmdW5jID0gREcuRnVuYy5maW5kKHsgcGFja2FnZTogJ0JpbycsIG5hbWU6ICdtdWx0aXBsZVNlcXVlbmNlQWxpZ25tZW50QW55JyB9KVswXTtcbiAgICAgICAgaWYgKCFjaGVja0lucHV0Q29sdW1uVWkoY29sLCAnTVNBJywgWydmYXN0YSddLCBbJ0ROQScsICdSTkEnLCAnUFQnXSkpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY29uc3QgdW5Vc2VkTmFtZSA9IHRhYmxlLmNvbHVtbnMuZ2V0VW51c2VkTmFtZShgbXNhKCR7Y29sLm5hbWV9KWApO1xuICAgICAgICBjb25zdCBtc2FDb2wgPSB5aWVsZCBydW5LYWxpZ24oY29sLCBmYWxzZSwgdW5Vc2VkTmFtZSk7XG4gICAgICAgIHRhYmxlLmNvbHVtbnMuYWRkKG1zYUNvbCk7XG4gICAgICAgIC8vIFRoaXMgY2FsbCBpcyByZXF1aXJlZCB0byBlbmFibGUgY2VsbCByZW5kZXJlciBhY3RpdmF0aW9uXG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKHRhYmxlKTtcbiAgICAgICAgLy8gY29uc3QgdHY6IERHLlRhYmxlVmlldyA9IGdyb2suc2hlbGwudHY7XG4gICAgICAgIC8vIHR2LmdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICByZXR1cm4gbXNhQ29sO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBNU0Fcbi8vdGFnczogYmlvLCBwYW5lbFxuLy9pbnB1dDogY29sdW1uIHNlcXVlbmNlIHsgc2VtVHlwZTogTWFjcm9tb2xlY3VsZSB9XG4vL291dHB1dDogY29sdW1uIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHBhbmVsTVNBKGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHJldHVybiBtdWx0aXBsZVNlcXVlbmNlQWxpZ25tZW50QW55KGNvbC5kYXRhRnJhbWUsIGNvbCk7XG4gICAgfSk7XG59XG4vL25hbWU6IENvbXBvc2l0aW9uIEFuYWx5c2lzXG4vL3RvcC1tZW51OiBCaW8gfCBDb21wb3NpdGlvbiBBbmFseXNpc1xuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBjb21wb3NpdGlvbkFuYWx5c2lzKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIEhpZ2hlciBwcmlvcml0eSBmb3IgY29sdW1ucyB3aXRoIE1TQSBkYXRhIHRvIHNob3cgd2l0aCBXZWJMb2dvLlxuICAgICAgICBjb25zdCB0diA9IGdyb2suc2hlbGwudHY7XG4gICAgICAgIGNvbnN0IGRmID0gdHYuZGF0YUZyYW1lO1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgY29uc3QgY29sTGlzdCA9IGRmLmNvbHVtbnMudG9MaXN0KCkuZmlsdGVyKChjb2wpID0+IHtcbiAgICAgICAgICAgIGlmIChjb2wuc2VtVHlwZSAhPSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgY29sVUggPSBuZXcgVW5pdHNIYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICAvLyBUT0RPOiBwcmV2ZW50IGZvciBjeWNsaWMsIGJyYW5jaGVkIG9yIG11bHRpcGxlIGNoYWlucyBpbiBIZWxtXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZXIgPSAoY29sKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdDb21wb3NpdGlvbicpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHdsVmlld2VyID0gdHYuYWRkVmlld2VyKCdXZWJMb2dvJywgeyBzZXF1ZW5jZUNvbHVtbk5hbWU6IGNvbC5uYW1lIH0pO1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC50di5kb2NrTWFuYWdlci5kb2NrKHdsVmlld2VyLCBERy5ET0NLX1RZUEUuRE9XTiwgbnVsbCwgJ0NvbXBvc2l0aW9uIGFuYWx5c2lzJywgMC4yNSk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgY29sID0gbnVsbDtcbiAgICAgICAgaWYgKGNvbExpc3QubGVuZ3RoID09IDApIHtcbiAgICAgICAgICAgIGdyb2suc2hlbGwuZXJyb3IoJ0N1cnJlbnQgdGFibGUgZG9lcyBub3QgY29udGFpbiBzZXF1ZW5jZXMnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChjb2xMaXN0Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbExpc3ROYW1lcyA9IGNvbExpc3QubWFwKChjb2wpID0+IGNvbC5uYW1lKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbElucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ0NvbHVtbicsIGNvbExpc3ROYW1lc1swXSwgY29sTGlzdE5hbWVzKTtcbiAgICAgICAgICAgIHVpLmRpYWxvZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdSLUdyb3VwcyBBbmFseXNpcycsXG4gICAgICAgICAgICAgICAgaGVscFVybDogJy9oZWxwL2RvbWFpbnMvYmlvL21hY3JvbW9sZWN1bGVzLm1kI2NvbXBvc2l0aW9uLWFuYWx5c2lzJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYWRkKHVpLmRpdihbXG4gICAgICAgICAgICAgICAgY29sSW5wdXQsXG4gICAgICAgICAgICBdKSlcbiAgICAgICAgICAgICAgICAub25PSygoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbCA9IChfYSA9IGNvbExpc3QuZmluZCgoY29sKSA9PiBjb2wubmFtZSA9PSBjb2xJbnB1dC52YWx1ZSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKGNvbClcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgaGFuZGxlcihjb2wpO1xuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNob3coKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbCA9IGNvbExpc3RbMF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHlpZWxkIGhhbmRsZXIoY29sKTtcbiAgICB9KTtcbn1cbi8vdG9wLW1lbnU6IEJpbyB8IFNkZiB0byBKc29uIGxpYi4uLlxuLy9uYW1lOiBzZGZUb0pzb25MaWJcbi8vaW5wdXQ6IGRhdGFmcmFtZSB0YWJsZVxuZXhwb3J0IGZ1bmN0aW9uIHNkZlRvSnNvbkxpYih0YWJsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGpzb25Nb25vbWVyTGlicmFyeSA9IGNyZWF0ZUpzb25Nb25vbWVyTGliRnJvbVNkZih0YWJsZSk7XG4gICAgfSk7XG59XG4vL25hbWU6IFJlcHJlc2VudGF0aW9uc1xuLy90YWdzOiBwYW5lbCwgd2lkZ2V0c1xuLy9pbnB1dDogY2VsbCBtYWNyb01vbGVjdWxlIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuLy9vdXRwdXQ6IHdpZGdldCByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBwZXB0aWRlTW9sZWN1bGUobWFjcm9Nb2xlY3VsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliRmlsZSA9IHlpZWxkIF9wYWNrYWdlLmZpbGVzLnJlYWRBc1RleHQoSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliT2JqZWN0ID0gSlNPTi5wYXJzZShtb25vbWVyc0xpYkZpbGUpO1xuICAgICAgICByZXR1cm4gcmVwcmVzZW50YXRpb25zV2lkZ2V0KG1hY3JvTW9sZWN1bGUsIG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICB9KTtcbn1cbi8vbmFtZTogaW1wb3J0RmFzdGFcbi8vZGVzY3JpcHRpb246IE9wZW5zIEZBU1RBIGZpbGVcbi8vdGFnczogZmlsZS1oYW5kbGVyXG4vL21ldGEuZXh0OiBmYXN0YSwgZm5hLCBmZm4sIGZhYSwgZnJuLCBmYSwgZnN0XG4vL2lucHV0OiBzdHJpbmcgZmlsZUNvbnRlbnRcbi8vb3V0cHV0OiBsaXN0IHRhYmxlc1xuZXhwb3J0IGZ1bmN0aW9uIGltcG9ydEZhc3RhKGZpbGVDb250ZW50KSB7XG4gICAgY29uc3QgZmZoID0gbmV3IEZhc3RhRmlsZUhhbmRsZXIoZmlsZUNvbnRlbnQpO1xuICAgIHJldHVybiBmZmguaW1wb3J0RmFzdGEoKTtcbn1cbi8vbmFtZTogQmlvIHwgQ29udmVydCAuLi5cbi8vZnJpZW5kbHktbmFtZTogQmlvIHwgQ29udmVydFxuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRQYW5lbChjb2wpIHtcbiAgICBjb252ZXJ0KGNvbCk7XG59XG4vL25hbWU6IG1vbm9tZXJDZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IE1vbm9tZXJcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gbW9ub21lckNlbGxSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gbmV3IE1vbm9tZXJDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogdGVzdERldGVjdE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IHN0cmluZyBwYXRoIHtjaG9pY2VzOiBbJ0RlbW86RmlsZXMvJywgJ1N5c3RlbTpBcHBEYXRhLyddfVxuLy9vdXRwdXQ6IGRhdGFmcmFtZSByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZShwYXRoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdUZXN0IGRldGVjdE1hY3JvbW9sZWN1bGUuLi4nKTtcbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB5aWVsZCBncm9rLmRhcGkuZmlsZXMubGlzdChwYXRoLCB0cnVlLCAnJyk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBmaWxlTGlzdFRvVGVzdCA9IGZpbGVMaXN0LmZpbHRlcigoZmkpID0+IGZpLmZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpO1xuICAgICAgICBsZXQgcmVhZHlDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVJbmZvIG9mIGZpbGVMaXN0VG9UZXN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzdiA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5yZWFkQXNUZXh0KHBhdGggKyBmaWxlSW5mby5mdWxsUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGYgPSBERy5EYXRhRnJhbWUuZnJvbUNzdihjc3YpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VtVHlwZSA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0JpbzpkZXRlY3RNYWNyb21vbGVjdWxlJywgeyBjb2w6IGNvbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLndhcm4oYGZpbGU6ICR7ZmlsZUluZm8ucGF0aH0sIGNvbHVtbjogJHtjb2wubmFtZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGBzZW1UeXBlOiAke3NlbVR5cGV9LCB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKCdmaWxlOiBcIicgKyBmaWxlSW5mby5wYXRoICsgJ1wiLCBzZW1UeXBlOiBcIicgKyBzZW1UeXBlICsgJ1wiLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3VuaXRzOiBcIicgKyBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpICsgJ1wiJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZGV0ZWN0ZWQnLCBjb2x1bW46IGNvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ2ZpbGU6ICcgKyBmaWxlSW5mby5wYXRoICsgJywgZXJyb3I6ICcgKyBleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVJbmZvLnBhdGgsIHJlc3VsdDogJ2Vycm9yJywgY29sdW1uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWFkeUNvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcGkudXBkYXRlKDEwMCAqIHJlYWR5Q291bnQgLyBmaWxlTGlzdFRvVGVzdC5sZW5ndGgsIGBUZXN0ICR7ZmlsZUluZm8uZmlsZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3Jvay5zaGVsbC5pbmZvKCdUZXN0IERlbW86RmlsZXMgZm9yIGRldGVjdE1hY3JvbW9sZWN1bGUgZmluaXNoZWQuJyk7XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHJlcyk7XG4gICAgICAgIHJlc0RmLm5hbWUgPSBgZGF0YXNldHNfZGV0ZWN0TWFjcm9tb2xlY3VsZV8ke3BhdGh9YDtcbiAgICAgICAgcmV0dXJuIHJlc0RmO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBTcGxpdCB0byBtb25vbWVyc1xuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VG9Nb25vbWVycyhjb2wpIHtcbiAgICBpZiAoIWNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCkuaW5jbHVkZXMoQy5NU0EpKVxuICAgICAgICByZXR1cm4gZ3Jvay5zaGVsbC5lcnJvcignU3BsaXR0aW5nIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYWxpZ25lZCBzZXF1ZW5jZXMnKTtcbiAgICBjb25zdCB0ZW1wRGYgPSBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoY29sKTtcbiAgICBjb25zdCBvcmlnaW5hbERmID0gY29sLmRhdGFGcmFtZTtcbiAgICBmb3IgKGNvbnN0IHRlbXBDb2wgb2YgdGVtcERmLmNvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sID0gb3JpZ2luYWxEZi5jb2x1bW5zLmFkZCh0ZW1wQ29sKTtcbiAgICAgICAgbmV3Q29sLnNlbVR5cGUgPSBDLlNFTV9UWVBFUy5NT05PTUVSO1xuICAgICAgICBuZXdDb2wuc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgQy5TRU1fVFlQRVMuTU9OT01FUik7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoQy5UQUdTLkFMUEhBQkVULCBjb2wuZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgIH1cbiAgICBncm9rLnNoZWxsLnR2LmdyaWQuaW52YWxpZGF0ZSgpO1xufVxuLy9uYW1lOiBCaW86IGdldEhlbG1Nb25vbWVyc1xuLy9pbnB1dDogY29sdW1uIGNvbCB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxtTW9ub21lcnMoc2VxQ29sKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKHNlcUNvbCwgMSwgV2ViTG9nby5zcGxpdHRlckFzSGVsbSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0YXRzLmZyZXEpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9
|