@nlabs/reaktor 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/data/files.js +3 -3
- package/lib/data/subscription.js +5 -5
- package/lib/data/users.js +6 -6
- package/lib/types/auth.d.ts +1 -1
- package/lib/types/users.d.ts +2 -2
- package/package.json +1 -1
package/lib/data/files.js
CHANGED
|
@@ -85,7 +85,7 @@ var addFile = function addFile(context) {
|
|
|
85
85
|
var item = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
86
86
|
var database = context.database,
|
|
87
87
|
sessionId = context.userId,
|
|
88
|
-
|
|
88
|
+
userAccess = context.userAccess;
|
|
89
89
|
var description = item.description,
|
|
90
90
|
fileId = item.fileId,
|
|
91
91
|
fileType = item.fileType,
|
|
@@ -142,7 +142,7 @@ var addFile = function addFile(context) {
|
|
|
142
142
|
|
|
143
143
|
var formatDesc = (0, _utils.parseString)(description, 500); // Only allow file uploads to premium users
|
|
144
144
|
|
|
145
|
-
if (!isImage &&
|
|
145
|
+
if (!isImage && userAccess !== 2) {
|
|
146
146
|
throw new _graphqlErrors.UserError('account_restriction');
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -460,4 +460,4 @@ var decodeBase64 = function decodeBase64(dataString) {
|
|
|
460
460
|
};
|
|
461
461
|
|
|
462
462
|
exports.decodeBase64 = decodeBase64;
|
|
463
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2ZpbGVzLnRzIl0sIm5hbWVzIjpbInlvdXR1YmUiLCJnb29nbGUiLCJhdXRoIiwiQ29uZmlnIiwiZ2V0IiwidmVyc2lvbiIsInJlcXVlc3QiLCJkZWZhdWx0cyIsImVuY29kaW5nIiwiYWRkRmlsZSIsImNvbnRleHQiLCJpdGVtIiwiZGF0YWJhc2UiLCJzZXNzaW9uSWQiLCJ1c2VySWQiLCJ1c2VyVHlwZSIsImRlc2NyaXB0aW9uIiwiZmlsZUlkIiwiZmlsZVR5cGUiLCJuYW1lIiwidXJsIiwiZm9ybWF0RmlsZUlkIiwiaXNVcmwiLCJmb3JtYXROYW1lIiwiZm9ybWF0VHlwZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwibmFtZUFyciIsInNwbGl0IiwiZXh0IiwibGVuZ3RoIiwiaXNJbWFnZSIsImZvcm1hdERlc2MiLCJVc2VyRXJyb3IiLCJzYXZlVG9EYiIsImluc2VydCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJmaWxlIiwiZXJyb3IiLCJ1cGxvYWRGaWxlIiwiYnVmIiwidXBsb2FkVHlwZSIsIm5vdyIsIkRhdGUiLCJyZXNpemVkSW1hZ2UiLCJfa2V5IiwiYWRkZWQiLCJtb2RpZmllZCIsInVyaSIsImJvZHkiLCJCdWZmZXIiLCJiYXNlNjQiLCJidWZmZXIiLCJFcnJvciIsImdldEdpcGh5VHJlbmRzIiwibGltaXQiLCJnaWZVcmwiLCJyZXMiLCJqc29uIiwiZGF0YSIsIm1hcCIsImdpZkltYWdlIiwiaWQiLCJpbWFnZXMiLCJvcmlnaW5hbCIsImZpeGVkX2hlaWdodF9zbWFsbCIsInRodW1iIiwidHlwZSIsImdldEdpcGh5U2VhcmNoIiwiZm9ybWF0UXVlcnkiLCJlbmNvZGVVUkkiLCJmZXRjaCIsImdldFlvdVR1YmVUcmVuZHMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInZpZGVvcyIsImxpc3QiLCJjaGFydCIsIm1heFJlc3VsdHMiLCJwYXJ0IiwicmVnaW9uQ29kZSIsImNvbnNvbGUiLCJtZXNzYWdlIiwiaXRlbXMiLCJzbmlwcGV0IiwidGh1bWJuYWlscyIsImhpZ2giLCJnZXRZb3VUdWJlU2VhcmNoIiwic2VhcmNoIiwicSIsImdldFBhdGhVc2VyRmlsZXMiLCJmaWxlbmFtZSIsImdldFVybFVzZXJGaWxlcyIsImRpciIsImNyZWF0ZUZpbGUiLCJkYiIsInVwZGF0ZWRGaWxlIiwibGlua0ZpbGVzIiwiZmlsZXMiLCJwb3N0SWQiLCJhbGwiLCJ1cGRhdGVGaWxlcyIsImVkZ2VDb2xsZWN0aW9uIiwiaW5FZGdlcyIsImVkZ2VzIiwiZWRnZSIsImVkZ2VLZXkiLCJlbmNvZGVCYXNlNjQiLCJ0b1N0cmluZyIsImRlY29kZUJhc2U2NCIsImRhdGFTdHJpbmciLCJnZXREYXRhIiwic3RyIiwibWF0Y2giLCJtYXRjaGVzIiwiZGVjb2RlVVJJQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOzs7O0FBSUEsSUFBTUEsT0FBTyxHQUFHQyxtQkFBT0QsT0FBUCxDQUFlO0FBQUNFLEVBQUFBLElBQUksRUFBRUMsZUFBT0MsR0FBUCxDQUFXLFlBQVgsQ0FBUDtBQUFpQ0MsRUFBQUEsT0FBTyxFQUFFO0FBQTFDLENBQWYsQ0FBaEI7O0FBQ0FDLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQjtBQUFDQyxFQUFBQSxRQUFRLEVBQUU7QUFBWCxDQUFqQixFLENBRUE7QUFFQTs7QUFDTyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxPQUFELEVBQWlFO0FBQUEsTUFBM0NDLElBQTJDLHVFQUExQixFQUEwQjtBQUFBLE1BQy9FQyxRQUQrRSxHQUN0Q0YsT0FEc0MsQ0FDL0VFLFFBRCtFO0FBQUEsTUFDN0RDLFNBRDZELEdBQ3RDSCxPQURzQyxDQUNyRUksTUFEcUU7QUFB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cic7XG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlSWQsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQge2dvb2dsZX0gZnJvbSAnZ29vZ2xlYXBpcyc7XG5pbXBvcnQge1VzZXJFcnJvcn0gZnJvbSAnZ3JhcGhxbC1lcnJvcnMnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0ICogYXMgcmVxdWVzdCBmcm9tICdyZXF1ZXN0LXByb21pc2UnO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICd0eXBlcy9hdXRoJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0ZpbGVUeXBlfSBmcm9tICcuLi90eXBlcy9maWxlcyc7XG5pbXBvcnQge3VzZURifSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge3Jlc2l6ZVNhdmVJbWFnZX0gZnJvbSAnLi9pbWFnZXMnO1xuaW1wb3J0IHtjcmVhdGVQb3N0RWRnZX0gZnJvbSAnLi9wb3N0cyc7XG5cbi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5jb25zdCB5b3V0dWJlID0gZ29vZ2xlLnlvdXR1YmUoe2F1dGg6IENvbmZpZy5nZXQoJ2dvb2dsZS5rZXknKSwgdmVyc2lvbjogJ3YzJ30pO1xucmVxdWVzdC5kZWZhdWx0cyh7ZW5jb2Rpbmc6IG51bGx9KTtcblxuLy8gY29uc3QgZXZlbnRDYXRlZ29yeTogc3RyaW5nID0gJ2ZpbGVzJztcblxuLy8gVXBsb2FkIGZpbGVcbmV4cG9ydCBjb25zdCBhZGRGaWxlID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IEZpbGVUeXBlID0ge30pOiBQcm9taXNlPEZpbGVUeXBlPiA9PiB7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJUeXBlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBmaWxlSWQsXG4gICAgZmlsZVR5cGUsXG4gICAgbmFtZSxcbiAgICB1cmxcbiAgfSA9IGl0ZW07XG5cbiAgLy8gSWRcbiAgY29uc3QgZm9ybWF0RmlsZUlkOiBzdHJpbmcgPSBmaWxlSWQgPyBwYXJzZUlkKGZpbGVJZCkgOiBjcmVhdGVIYXNoKGBmaWxlLSR7c2Vzc2lvbklkfWApO1xuXG4gIC8vIE5hbWVcbiAgY29uc3QgaXNVcmw6IGJvb2xlYW4gPSBpc0VtcHR5KHVybCk7XG5cbiAgLy8gSWYgbm8gbmFtZSwgZ2V0IGl0IGZyb20gdXJsIHBhdGhcbiAgbGV0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKG5hbWUsIDE2MCk7XG4gIGxldCBmb3JtYXRUeXBlOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhmaWxlVHlwZSwgMTYpO1xuXG4gIGlmKGZvcm1hdE5hbWUgPT09ICcnICYmIGlzVXJsKSB7XG4gICAgZm9ybWF0TmFtZSA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCcvJykgKyAxKTtcbiAgfVxuXG4gIGlmKGZvcm1hdFR5cGUgPT09ICcnKSB7XG4gICAgY29uc3QgbmFtZUFycjogc3RyaW5nW10gPSBmb3JtYXROYW1lLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZXh0OiBzdHJpbmcgPSBuYW1lQXJyW25hbWVBcnIubGVuZ3RoIC0gMV07XG5cbiAgICBzd2l0Y2goZXh0KSB7XG4gICAgICBjYXNlICdqcGVnJzpcbiAgICAgIGNhc2UgJ2pwZyc6XG4gICAgICAgIGZvcm1hdFR5cGUgPSAnaW1hZ2UvanBlZyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncG5nJzpcbiAgICAgICAgZm9ybWF0VHlwZSA9ICdpbWFnZS9wbmcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ppcCc6XG4gICAgICAgIGZvcm1hdFR5cGUgPSAnYXBwbGljYXRpb24vemlwJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBsZXQgaXNJbWFnZTogYm9vbGVhbjtcblxuICBzd2l0Y2goZm9ybWF0VHlwZSkge1xuICAgIGNhc2UgJ2ltYWdlL2pwZWcnOlxuICAgIGNhc2UgJ2ltYWdlL3BuZyc6XG4gICAgICBpc0ltYWdlID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBpc0ltYWdlID0gZmFsc2U7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIC8vIERlc2NyaXB0aW9uXG4gIGNvbnN0IGZvcm1hdERlc2M6IHN0cmluZyA9IHBhcnNlU3RyaW5nKGRlc2NyaXB0aW9uLCA1MDApO1xuXG4gIC8vIE9ubHkgYWxsb3cgZmlsZSB1cGxvYWRzIHRvIHByZW1pdW0gdXNlcnNcbiAgaWYoIWlzSW1hZ2UgJiYgdXNlclR5cGUgIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgVXNlckVycm9yKCdhY2NvdW50X3Jlc3RyaWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBzYXZlVG9EYiA9IChpbnNlcnQ6IEZpbGVUeXBlKSA9PiB7XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChmaWxlID0ge30pID0+IGZpbGUpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHVwbG9hZEZpbGUgPSAoYnVmOiBCdWZmZXIsIHVwbG9hZFR5cGU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAgIC8vIElmIGltYWdlLCByZXNpemUgYW5kIGNyZWF0ZSBhIHRodW1ibmFpbFxuICAgIGlmKGlzSW1hZ2UpIHtcbiAgICAgIHJldHVybiByZXNpemVTYXZlSW1hZ2UoY29udGV4dCwgZm9ybWF0RmlsZUlkLCBidWYsIHVwbG9hZFR5cGUpXG4gICAgICAgIC50aGVuKChyZXNpemVkSW1hZ2U6IEZpbGVUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5zZXJ0OiBGaWxlVHlwZSA9IHtcbiAgICAgICAgICAgIC4uLnJlc2l6ZWRJbWFnZSxcbiAgICAgICAgICAgIF9rZXk6IGZvcm1hdEZpbGVJZCxcbiAgICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICAgICAgICAgIGZpbGVUeXBlOiBmb3JtYXRUeXBlLFxuICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4gc2F2ZVRvRGIoaW5zZXJ0KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGluc2VydDogRmlsZVR5cGUgPSB7XG4gICAgICBfa2V5OiBmb3JtYXRGaWxlSWQsXG4gICAgICBhZGRlZDogbm93LFxuICAgICAgZGVzY3JpcHRpb246IGZvcm1hdERlc2MsXG4gICAgICBmaWxlVHlwZTogZm9ybWF0VHlwZSxcbiAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNhdmVUb0RiKGluc2VydCk7XG4gIH07XG5cbiAgLy8gSWYgZmlsZSBpcyBhIHVybCBwYXRoLCBkb3dubG9hZCB0aGUgZmlsZSBhbmQgc2F2ZVxuICBpZihpc1VybCkge1xuICAgIHJldHVybiByZXF1ZXN0LmdldCh7ZW5jb2Rpbmc6IG51bGwsIHVyaTogdXJsfSlcbiAgICAgIC50aGVuKChib2R5KSA9PiB1cGxvYWRGaWxlKG5ldyBCdWZmZXIoYm9keSwgJ2JpbmFyeScpLCBmb3JtYXRUeXBlKSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBVc2VyRXJyb3IoJ2ZpbGVfcmVxdWVzdCcpO1xuICAgICAgfSk7XG4gIH0gZWxzZSBpZihpdGVtLmJhc2U2NCAhPT0gJycpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IG5ldyBCdWZmZXIoaXRlbS5iYXNlNjQpO1xuICAgIHJldHVybiB1cGxvYWRGaWxlKGJ1ZmZlciwgZm9ybWF0VHlwZSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdmaWxlX3JlcXVpcmVkJyk7XG59O1xuXG4vLyBHaXBoeVxuZXhwb3J0IGNvbnN0IGdldEdpcGh5VHJlbmRzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgY29uc3QgZ2lmVXJsOiBzdHJpbmcgPSBgaHR0cDovL2FwaS5naXBoeS5jb20vdjEvZ2lmcy90cmVuZGluZz9hcGlfa2V5PSR7Q29uZmlnLmdldCgnZ2lwaHkua2V5Jyl9JmxpbWl0PSR7bGltaXR9YDtcblxuICByZXR1cm4gaHR0cEdldChnaWZVcmwpXG4gICAgLnRoZW4oKHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4oKGpzb24pID0+IGpzb24uZGF0YS5tYXAoKGdpZkltYWdlID0ge2lkOiBudWxsLCBpbWFnZXM6IG51bGx9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICBpbWFnZXM6IHtcbiAgICAgICAgICBvcmlnaW5hbDoge3VybCA9ICcnfSA9IHt9LFxuICAgICAgICAgIGZpeGVkX2hlaWdodF9zbWFsbDoge3VybDogdGh1bWIgPSAnJ30gPSB7fVxuICAgICAgICB9ID0ge31cbiAgICAgIH0gPSBnaWZJbWFnZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIHRodW1iLFxuICAgICAgICB0eXBlOiAnZ2lwaHknLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdpcGh5U2VhcmNoID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHF1ZXJ5OiBzdHJpbmcsIGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgY29uc3QgZm9ybWF0UXVlcnk6IHN0cmluZyA9IGVuY29kZVVSSShxdWVyeSk7XG4gIGNvbnN0IGdpZlVybDogc3RyaW5nID0gYGh0dHA6Ly9hcGkuZ2lwaHkuY29tL3YxL2dpZnMvc2VhcmNoP3E9JHtmb3JtYXRRdWVyeX0mYXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGZldGNoKGdpZlVybClcbiAgICAudGhlbigocmVzOiBSZXNwb25zZSkgPT4gcmVzLmpzb24oKSlcbiAgICAudGhlbigoanNvbikgPT4ganNvbi5kYXRhLm1hcCgoZ2lmSW1hZ2UgPSB7aWQ6IG51bGwsIGltYWdlczogbnVsbH0pID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGltYWdlczoge1xuICAgICAgICAgIG9yaWdpbmFsOiB7dXJsID0gJyd9ID0ge30sXG4gICAgICAgICAgZml4ZWRfaGVpZ2h0X3NtYWxsOiB7dXJsOiB0aHVtYiA9ICcnfSA9IHt9XG4gICAgICAgIH0gPSB7fVxuICAgICAgfSA9IGdpZkltYWdlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgdGh1bWIsXG4gICAgICAgIHR5cGU6ICdnaXBoeScsXG4gICAgICAgIHVybFxuICAgICAgfTtcbiAgICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0WW91VHViZVRyZW5kcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgeW91dHViZS52aWRlb3MubGlzdCh7XG4gICAgICBjaGFydDogJ21vc3RQb3B1bGFyJyxcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogJ3NuaXBwZXQnLFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGEuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICB0eXBlOiAneW91dHViZScsXG4gICAgICAgICAgdXJsOiBgaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2l0ZW0uaWR9YFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUuc2VhcmNoLmxpc3Qoe1xuICAgICAgbWF4UmVzdWx0czogbGltaXQsXG4gICAgICBwYXJ0OiAnc25pcHBldCcsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHE6IHF1ZXJ5LFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3Qge2l0ZW1zfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBpdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgdGh1bWI6IGl0ZW0uc25pcHBldC50aHVtYm5haWxzLmhpZ2gudXJsLFxuICAgICAgICAgIHR5cGU6ICd5b3V0dWJlJyxcbiAgICAgICAgICB1cmw6IGBodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7aXRlbS5pZH1gXG4gICAgICAgIH0pKTtcblxuICAgICAgICByZXNvbHZlKGxpc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuLy8gRmlsZXNcbmV4cG9ydCBjb25zdCBnZXRQYXRoVXNlckZpbGVzID0gKHVzZXJJZDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nID0+IGB1c2Vycy8ke3VzZXJJZH0vZmlsZXMvJHtmaWxlbmFtZX1gO1xuXG5leHBvcnQgY29uc3QgZ2V0VXJsVXNlckZpbGVzID0gKHVzZXJJZDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCBkaXI6IHN0cmluZyA9ICdmaWxlcycsIHR5cGU6IHN0cmluZyA9ICdwcm9maWxlJyk6IHN0cmluZyA9PiB7XG4gIGlmKGZpbGVuYW1lKSB7XG4gICAgcmV0dXJuIGBodHRwczovL2JveC4ke0NvbmZpZy5nZXQoJ2FwcC51cmwnKX0vdXNlcnMvJHt1c2VySWR9LyR7ZGlyfS8ke2ZpbGVuYW1lfWA7XG4gIH1cblxuICBpZih0eXBlID09PSAncHJvZmlsZScpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS9kZWZhdWx0cy91c2VyX2JrLmpwZ2A7XG4gIH1cblxuICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS9kZWZhdWx0cy91c2VyX3doLmpwZ2A7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsZSA9IChkYjogRGF0YWJhc2UsIGZpbGU6IEZpbGVUeXBlKTogUHJvbWlzZTxGaWxlVHlwZT4gPT4ge1xuICBjb25zdCB7ZmlsZUlkfSA9IGZpbGU7XG4gIGNvbnN0IGluc2VydDogYW55ID0ge1xuICAgIF9rZXk6IGZpbGVJZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKVxuICB9O1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2ZpbGVJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSB7fVxuICAgIElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRGaWxlOiBGaWxlVHlwZSA9IHt9KSA9PiB1cGRhdGVkRmlsZSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbGlua0ZpbGVzID0gKGRiOiBEYXRhYmFzZSwgZmlsZXM6IEZpbGVUeXBlW10sIHBvc3RJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+XG4gIFByb21pc2UuYWxsKFxuICAgIGZpbGVzLm1hcCgoZmlsZTogRmlsZVR5cGUpID0+IGNyZWF0ZUZpbGUoZGIsIGZpbGUpXG4gICAgICAudGhlbigoZmlsZTogRmlsZVR5cGUpID0+IGNyZWF0ZVBvc3RFZGdlKGRiLCBmaWxlLCBwb3N0SWQpKSlcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZpbGVzID0gKGRiOiBEYXRhYmFzZSwgcG9zdElkOiBzdHJpbmcsIGZpbGVzOiBGaWxlVHlwZVtdKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSBkYi5lZGdlQ29sbGVjdGlvbignaXNQb3N0ZWQnKTtcblxuICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uaW5FZGdlcyhwb3N0SWQpXG4gICAgLnRoZW4oKGVkZ2VzKSA9PiB7XG4gICAgICBpZihlZGdlcy5sZW5ndGgpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGxpbmtlZCBlZGdlc1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAgICAgZWRnZXMubWFwKChlZGdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogZWRnZUtleX0gPSBlZGdlO1xuICAgICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBSRU1PVkUge19rZXk6JHtlZGdlS2V5fX0gSU4gaXNQb3N0ZWRgO1xuXG4gICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KS5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIExpbmsgZmlsZXNcbiAgICAgICAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhkYiwgZmlsZXMsIHBvc3RJZCkudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlsZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIExpbmsgZmlsZXNcbiAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhkYiwgZmlsZXMsIHBvc3RJZCkudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsZXM7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jb2RlQmFzZTY0ID0gKGJ1ZmZlcjogQnVmZmVyKTogc3RyaW5nID0+IG5ldyBCdWZmZXIoYnVmZmVyKS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbmV4cG9ydCBjb25zdCBkZWNvZGVCYXNlNjQgPSAoZGF0YVN0cmluZzogc3RyaW5nKTogb2JqZWN0ID0+IHtcbiAgY29uc3QgZ2V0RGF0YSA9IChzdHI6IHN0cmluZykgPT4gc3RyLm1hdGNoKC9eZGF0YTooW0EtWmEtei0rXFwvXSspO2Jhc2U2NCwoLispJC8pIHx8IFtdO1xuICAvLyBjb25zdCBnZXREYXRhID0gKGJhc2U2NDogc3RyaW5nKSA9PiBiYXNlNjQuc3Vic3RyKGJhc2U2NC5pbmRleE9mKCcsJykgKyAxKTtcbiAgbGV0IG1hdGNoZXMgPSBnZXREYXRhKGRhdGFTdHJpbmcpO1xuXG4gIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgLy8gSWYgaW52YWxpZCBtYWtlIHN1cmUgd2UgZG9uJ3QgbmVlZCB0byBkZWNvZGVcbiAgICBtYXRjaGVzID0gZ2V0RGF0YShkZWNvZGVVUklDb21wb25lbnQoZGF0YVN0cmluZykpO1xuXG4gICAgLy8gQ2hlY2sgaXQgYWdhaW4uXG4gICAgaWYobWF0Y2hlcy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IEVycm9yKCdJbnZhbGlkIGlucHV0IHN0cmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3IEJ1ZmZlcihtYXRjaGVzWzJdLCAnYmFzZTY0JyksXG4gICAgdHlwZTogbWF0Y2hlc1sxXVxuICB9O1xufTtcbiJdfQ==
|
|
463
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL2ZpbGVzLnRzIl0sIm5hbWVzIjpbInlvdXR1YmUiLCJnb29nbGUiLCJhdXRoIiwiQ29uZmlnIiwiZ2V0IiwidmVyc2lvbiIsInJlcXVlc3QiLCJkZWZhdWx0cyIsImVuY29kaW5nIiwiYWRkRmlsZSIsImNvbnRleHQiLCJpdGVtIiwiZGF0YWJhc2UiLCJzZXNzaW9uSWQiLCJ1c2VySWQiLCJ1c2VyQWNjZXNzIiwiZGVzY3JpcHRpb24iLCJmaWxlSWQiLCJmaWxlVHlwZSIsIm5hbWUiLCJ1cmwiLCJmb3JtYXRGaWxlSWQiLCJpc1VybCIsImZvcm1hdE5hbWUiLCJmb3JtYXRUeXBlIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJuYW1lQXJyIiwic3BsaXQiLCJleHQiLCJsZW5ndGgiLCJpc0ltYWdlIiwiZm9ybWF0RGVzYyIsIlVzZXJFcnJvciIsInNhdmVUb0RiIiwiaW5zZXJ0IiwiYXFsUXJ5IiwiYXFsIiwicXVlcnkiLCJ0aGVuIiwiY3Vyc29yIiwibmV4dCIsImZpbGUiLCJlcnJvciIsInVwbG9hZEZpbGUiLCJidWYiLCJ1cGxvYWRUeXBlIiwibm93IiwiRGF0ZSIsInJlc2l6ZWRJbWFnZSIsIl9rZXkiLCJhZGRlZCIsIm1vZGlmaWVkIiwidXJpIiwiYm9keSIsIkJ1ZmZlciIsImJhc2U2NCIsImJ1ZmZlciIsIkVycm9yIiwiZ2V0R2lwaHlUcmVuZHMiLCJsaW1pdCIsImdpZlVybCIsInJlcyIsImpzb24iLCJkYXRhIiwibWFwIiwiZ2lmSW1hZ2UiLCJpZCIsImltYWdlcyIsIm9yaWdpbmFsIiwiZml4ZWRfaGVpZ2h0X3NtYWxsIiwidGh1bWIiLCJ0eXBlIiwiZ2V0R2lwaHlTZWFyY2giLCJmb3JtYXRRdWVyeSIsImVuY29kZVVSSSIsImZldGNoIiwiZ2V0WW91VHViZVRyZW5kcyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwidmlkZW9zIiwibGlzdCIsImNoYXJ0IiwibWF4UmVzdWx0cyIsInBhcnQiLCJyZWdpb25Db2RlIiwiY29uc29sZSIsIm1lc3NhZ2UiLCJpdGVtcyIsInNuaXBwZXQiLCJ0aHVtYm5haWxzIiwiaGlnaCIsImdldFlvdVR1YmVTZWFyY2giLCJzZWFyY2giLCJxIiwiZ2V0UGF0aFVzZXJGaWxlcyIsImZpbGVuYW1lIiwiZ2V0VXJsVXNlckZpbGVzIiwiZGlyIiwiY3JlYXRlRmlsZSIsImRiIiwidXBkYXRlZEZpbGUiLCJsaW5rRmlsZXMiLCJmaWxlcyIsInBvc3RJZCIsImFsbCIsInVwZGF0ZUZpbGVzIiwiZWRnZUNvbGxlY3Rpb24iLCJpbkVkZ2VzIiwiZWRnZXMiLCJlZGdlIiwiZWRnZUtleSIsImVuY29kZUJhc2U2NCIsInRvU3RyaW5nIiwiZGVjb2RlQmFzZTY0IiwiZGF0YVN0cmluZyIsImdldERhdGEiLCJzdHIiLCJtYXRjaCIsIm1hdGNoZXMiLCJkZWNvZGVVUklDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFFQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7QUFJQSxJQUFNQSxPQUFPLEdBQUdDLG1CQUFPRCxPQUFQLENBQWU7QUFBQ0UsRUFBQUEsSUFBSSxFQUFFQyxlQUFPQyxHQUFQLENBQVcsWUFBWCxDQUFQO0FBQWlDQyxFQUFBQSxPQUFPLEVBQUU7QUFBMUMsQ0FBZixDQUFoQjs7QUFDQUMsT0FBTyxDQUFDQyxRQUFSLENBQWlCO0FBQUNDLEVBQUFBLFFBQVEsRUFBRTtBQUFYLENBQWpCLEUsQ0FFQTtBQUVBOztBQUNPLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLE9BQUQsRUFBaUU7QUFBQSxNQUEzQ0MsSUFBMkMsdUVBQTFCLEVBQTBCO0FBQUEsTUFDL0VDLFFBRCtFLEdBQ3BDRixPQURvQyxDQUMvRUUsUUFEK0U7QUFBQSxNQUM3REMsU0FENkQsR0FDcENILE9BRG9DLENBQ3JFSSxNQURxRTtB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dGVyJztcbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VJZCwgcGFyc2VTdHJpbmd9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2V9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcbmltcG9ydCB7Z29vZ2xlfSBmcm9tICdnb29nbGVhcGlzJztcbmltcG9ydCB7VXNlckVycm9yfSBmcm9tICdncmFwaHFsLWVycm9ycyc7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgKiBhcyByZXF1ZXN0IGZyb20gJ3JlcXVlc3QtcHJvbWlzZSc7XG5pbXBvcnQge0FwaUNvbnRleHR9IGZyb20gJ3R5cGVzL2F1dGgnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7RmlsZVR5cGV9IGZyb20gJy4uL3R5cGVzL2ZpbGVzJztcbmltcG9ydCB7dXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7cmVzaXplU2F2ZUltYWdlfSBmcm9tICcuL2ltYWdlcyc7XG5pbXBvcnQge2NyZWF0ZVBvc3RFZGdlfSBmcm9tICcuL3Bvc3RzJztcblxuLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmNvbnN0IHlvdXR1YmUgPSBnb29nbGUueW91dHViZSh7YXV0aDogQ29uZmlnLmdldCgnZ29vZ2xlLmtleScpLCB2ZXJzaW9uOiAndjMnfSk7XG5yZXF1ZXN0LmRlZmF1bHRzKHtlbmNvZGluZzogbnVsbH0pO1xuXG4vLyBjb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnZmlsZXMnO1xuXG4vLyBVcGxvYWQgZmlsZVxuZXhwb3J0IGNvbnN0IGFkZEZpbGUgPSAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogRmlsZVR5cGUgPSB7fSk6IFByb21pc2U8RmlsZVR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc30gPSBjb250ZXh0O1xuICBjb25zdCB7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgZmlsZUlkLFxuICAgIGZpbGVUeXBlLFxuICAgIG5hbWUsXG4gICAgdXJsXG4gIH0gPSBpdGVtO1xuXG4gIC8vIElkXG4gIGNvbnN0IGZvcm1hdEZpbGVJZDogc3RyaW5nID0gZmlsZUlkID8gcGFyc2VJZChmaWxlSWQpIDogY3JlYXRlSGFzaChgZmlsZS0ke3Nlc3Npb25JZH1gKTtcblxuICAvLyBOYW1lXG4gIGNvbnN0IGlzVXJsOiBib29sZWFuID0gaXNFbXB0eSh1cmwpO1xuXG4gIC8vIElmIG5vIG5hbWUsIGdldCBpdCBmcm9tIHVybCBwYXRoXG4gIGxldCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhuYW1lLCAxNjApO1xuICBsZXQgZm9ybWF0VHlwZTogc3RyaW5nID0gcGFyc2VTdHJpbmcoZmlsZVR5cGUsIDE2KTtcblxuICBpZihmb3JtYXROYW1lID09PSAnJyAmJiBpc1VybCkge1xuICAgIGZvcm1hdE5hbWUgPSB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignLycpICsgMSk7XG4gIH1cblxuICBpZihmb3JtYXRUeXBlID09PSAnJykge1xuICAgIGNvbnN0IG5hbWVBcnI6IHN0cmluZ1tdID0gZm9ybWF0TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGV4dDogc3RyaW5nID0gbmFtZUFycltuYW1lQXJyLmxlbmd0aCAtIDFdO1xuXG4gICAgc3dpdGNoKGV4dCkge1xuICAgICAgY2FzZSAnanBlZyc6XG4gICAgICBjYXNlICdqcGcnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2ltYWdlL2pwZWcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BuZyc6XG4gICAgICAgIGZvcm1hdFR5cGUgPSAnaW1hZ2UvcG5nJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd6aXAnOlxuICAgICAgICBmb3JtYXRUeXBlID0gJ2FwcGxpY2F0aW9uL3ppcCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgbGV0IGlzSW1hZ2U6IGJvb2xlYW47XG5cbiAgc3dpdGNoKGZvcm1hdFR5cGUpIHtcbiAgICBjYXNlICdpbWFnZS9qcGVnJzpcbiAgICBjYXNlICdpbWFnZS9wbmcnOlxuICAgICAgaXNJbWFnZSA9IHRydWU7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgaXNJbWFnZSA9IGZhbHNlO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICAvLyBEZXNjcmlwdGlvblxuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKTtcblxuICAvLyBPbmx5IGFsbG93IGZpbGUgdXBsb2FkcyB0byBwcmVtaXVtIHVzZXJzXG4gIGlmKCFpc0ltYWdlICYmIHVzZXJBY2Nlc3MgIT09IDIpIHtcbiAgICB0aHJvdyBuZXcgVXNlckVycm9yKCdhY2NvdW50X3Jlc3RyaWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBzYXZlVG9EYiA9IChpbnNlcnQ6IEZpbGVUeXBlKSA9PiB7XG4gICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAgIC50aGVuKChmaWxlID0ge30pID0+IGZpbGUpXG4gICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHVwbG9hZEZpbGUgPSAoYnVmOiBCdWZmZXIsIHVwbG9hZFR5cGU6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcblxuICAgIC8vIElmIGltYWdlLCByZXNpemUgYW5kIGNyZWF0ZSBhIHRodW1ibmFpbFxuICAgIGlmKGlzSW1hZ2UpIHtcbiAgICAgIHJldHVybiByZXNpemVTYXZlSW1hZ2UoY29udGV4dCwgZm9ybWF0RmlsZUlkLCBidWYsIHVwbG9hZFR5cGUpXG4gICAgICAgIC50aGVuKChyZXNpemVkSW1hZ2U6IEZpbGVUeXBlKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5zZXJ0OiBGaWxlVHlwZSA9IHtcbiAgICAgICAgICAgIC4uLnJlc2l6ZWRJbWFnZSxcbiAgICAgICAgICAgIF9rZXk6IGZvcm1hdEZpbGVJZCxcbiAgICAgICAgICAgIGFkZGVkOiBub3csXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogZm9ybWF0RGVzYyxcbiAgICAgICAgICAgIGZpbGVUeXBlOiBmb3JtYXRUeXBlLFxuICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUsXG4gICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXR1cm4gc2F2ZVRvRGIoaW5zZXJ0KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGluc2VydDogRmlsZVR5cGUgPSB7XG4gICAgICBfa2V5OiBmb3JtYXRGaWxlSWQsXG4gICAgICBhZGRlZDogbm93LFxuICAgICAgZGVzY3JpcHRpb246IGZvcm1hdERlc2MsXG4gICAgICBmaWxlVHlwZTogZm9ybWF0VHlwZSxcbiAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICBuYW1lOiBmb3JtYXROYW1lLFxuICAgICAgdXNlcklkOiBzZXNzaW9uSWRcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNhdmVUb0RiKGluc2VydCk7XG4gIH07XG5cbiAgLy8gSWYgZmlsZSBpcyBhIHVybCBwYXRoLCBkb3dubG9hZCB0aGUgZmlsZSBhbmQgc2F2ZVxuICBpZihpc1VybCkge1xuICAgIHJldHVybiByZXF1ZXN0LmdldCh7ZW5jb2Rpbmc6IG51bGwsIHVyaTogdXJsfSlcbiAgICAgIC50aGVuKChib2R5KSA9PiB1cGxvYWRGaWxlKG5ldyBCdWZmZXIoYm9keSwgJ2JpbmFyeScpLCBmb3JtYXRUeXBlKSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBVc2VyRXJyb3IoJ2ZpbGVfcmVxdWVzdCcpO1xuICAgICAgfSk7XG4gIH0gZWxzZSBpZihpdGVtLmJhc2U2NCAhPT0gJycpIHtcbiAgICBjb25zdCBidWZmZXI6IEJ1ZmZlciA9IG5ldyBCdWZmZXIoaXRlbS5iYXNlNjQpO1xuICAgIHJldHVybiB1cGxvYWRGaWxlKGJ1ZmZlciwgZm9ybWF0VHlwZSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdmaWxlX3JlcXVpcmVkJyk7XG59O1xuXG4vLyBHaXBoeVxuZXhwb3J0IGNvbnN0IGdldEdpcGh5VHJlbmRzID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgY29uc3QgZ2lmVXJsOiBzdHJpbmcgPSBgaHR0cDovL2FwaS5naXBoeS5jb20vdjEvZ2lmcy90cmVuZGluZz9hcGlfa2V5PSR7Q29uZmlnLmdldCgnZ2lwaHkua2V5Jyl9JmxpbWl0PSR7bGltaXR9YDtcblxuICByZXR1cm4gaHR0cEdldChnaWZVcmwpXG4gICAgLnRoZW4oKHJlczogUmVzcG9uc2UpID0+IHJlcy5qc29uKCkpXG4gICAgLnRoZW4oKGpzb24pID0+IGpzb24uZGF0YS5tYXAoKGdpZkltYWdlID0ge2lkOiBudWxsLCBpbWFnZXM6IG51bGx9KSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkLFxuICAgICAgICBpbWFnZXM6IHtcbiAgICAgICAgICBvcmlnaW5hbDoge3VybCA9ICcnfSA9IHt9LFxuICAgICAgICAgIGZpeGVkX2hlaWdodF9zbWFsbDoge3VybDogdGh1bWIgPSAnJ30gPSB7fVxuICAgICAgICB9ID0ge31cbiAgICAgIH0gPSBnaWZJbWFnZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQsXG4gICAgICAgIHRodW1iLFxuICAgICAgICB0eXBlOiAnZ2lwaHknLFxuICAgICAgICB1cmxcbiAgICAgIH07XG4gICAgfSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEdpcGh5U2VhcmNoID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHF1ZXJ5OiBzdHJpbmcsIGxpbWl0OiBudW1iZXIgPSAzMCk6IFByb21pc2U8YW55W10+ID0+IHtcbiAgY29uc3QgZm9ybWF0UXVlcnk6IHN0cmluZyA9IGVuY29kZVVSSShxdWVyeSk7XG4gIGNvbnN0IGdpZlVybDogc3RyaW5nID0gYGh0dHA6Ly9hcGkuZ2lwaHkuY29tL3YxL2dpZnMvc2VhcmNoP3E9JHtmb3JtYXRRdWVyeX0mYXBpX2tleT0ke0NvbmZpZy5nZXQoJ2dpcGh5LmtleScpfSZsaW1pdD0ke2xpbWl0fWA7XG5cbiAgcmV0dXJuIGZldGNoKGdpZlVybClcbiAgICAudGhlbigocmVzOiBSZXNwb25zZSkgPT4gcmVzLmpzb24oKSlcbiAgICAudGhlbigoanNvbikgPT4ganNvbi5kYXRhLm1hcCgoZ2lmSW1hZ2UgPSB7aWQ6IG51bGwsIGltYWdlczogbnVsbH0pID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaWQsXG4gICAgICAgIGltYWdlczoge1xuICAgICAgICAgIG9yaWdpbmFsOiB7dXJsID0gJyd9ID0ge30sXG4gICAgICAgICAgZml4ZWRfaGVpZ2h0X3NtYWxsOiB7dXJsOiB0aHVtYiA9ICcnfSA9IHt9XG4gICAgICAgIH0gPSB7fVxuICAgICAgfSA9IGdpZkltYWdlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgdGh1bWIsXG4gICAgICAgIHR5cGU6ICdnaXBoeScsXG4gICAgICAgIHVybFxuICAgICAgfTtcbiAgICB9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0WW91VHViZVRyZW5kcyA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBsaW1pdDogbnVtYmVyID0gMzApOiBQcm9taXNlPGFueVtdPiA9PlxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgeW91dHViZS52aWRlb3MubGlzdCh7XG4gICAgICBjaGFydDogJ21vc3RQb3B1bGFyJyxcbiAgICAgIG1heFJlc3VsdHM6IGxpbWl0LFxuICAgICAgcGFydDogJ3NuaXBwZXQnLFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IGRhdGEuaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICAgIHRodW1iOiBpdGVtLnNuaXBwZXQudGh1bWJuYWlscy5oaWdoLnVybCxcbiAgICAgICAgICB0eXBlOiAneW91dHViZScsXG4gICAgICAgICAgdXJsOiBgaHR0cDovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8ke2l0ZW0uaWR9YFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgcmVzb2x2ZShsaXN0KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cblxuZXhwb3J0IGNvbnN0IGdldFlvdVR1YmVTZWFyY2ggPSAoY29udGV4dDogQXBpQ29udGV4dCwgcXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciA9IDMwKTogUHJvbWlzZTxhbnlbXT4gPT5cbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHlvdXR1YmUuc2VhcmNoLmxpc3Qoe1xuICAgICAgbWF4UmVzdWx0czogbGltaXQsXG4gICAgICBwYXJ0OiAnc25pcHBldCcsXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgIHE6IHF1ZXJ5LFxuICAgICAgcmVnaW9uQ29kZTogJ1VTJ1xuICAgIH0sIChlcnJvcjogRXJyb3IsIGRhdGE6IGFueSkgPT4ge1xuICAgICAgaWYoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoZXJyb3JbMF0ubWVzc2FnZSkpO1xuICAgICAgfSBlbHNlIGlmKGRhdGEpIHtcbiAgICAgICAgY29uc3Qge2l0ZW1zfSA9IGRhdGE7XG4gICAgICAgIGNvbnN0IGxpc3QgPSBpdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgaWQ6IGl0ZW0uaWQsXG4gICAgICAgICAgdGh1bWI6IGl0ZW0uc25pcHBldC50aHVtYm5haWxzLmhpZ2gudXJsLFxuICAgICAgICAgIHR5cGU6ICd5b3V0dWJlJyxcbiAgICAgICAgICB1cmw6IGBodHRwOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyR7aXRlbS5pZH1gXG4gICAgICAgIH0pKTtcblxuICAgICAgICByZXNvbHZlKGxpc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuLy8gRmlsZXNcbmV4cG9ydCBjb25zdCBnZXRQYXRoVXNlckZpbGVzID0gKHVzZXJJZDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogc3RyaW5nID0+IGB1c2Vycy8ke3VzZXJJZH0vZmlsZXMvJHtmaWxlbmFtZX1gO1xuXG5leHBvcnQgY29uc3QgZ2V0VXJsVXNlckZpbGVzID0gKHVzZXJJZDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCBkaXI6IHN0cmluZyA9ICdmaWxlcycsIHR5cGU6IHN0cmluZyA9ICdwcm9maWxlJyk6IHN0cmluZyA9PiB7XG4gIGlmKGZpbGVuYW1lKSB7XG4gICAgcmV0dXJuIGBodHRwczovL2JveC4ke0NvbmZpZy5nZXQoJ2FwcC51cmwnKX0vdXNlcnMvJHt1c2VySWR9LyR7ZGlyfS8ke2ZpbGVuYW1lfWA7XG4gIH1cblxuICBpZih0eXBlID09PSAncHJvZmlsZScpIHtcbiAgICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS9kZWZhdWx0cy91c2VyX2JrLmpwZ2A7XG4gIH1cblxuICByZXR1cm4gYGh0dHBzOi8vYm94LiR7Q29uZmlnLmdldCgnYXBwLnVybCcpfS9kZWZhdWx0cy91c2VyX3doLmpwZ2A7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmlsZSA9IChkYjogRGF0YWJhc2UsIGZpbGU6IEZpbGVUeXBlKTogUHJvbWlzZTxGaWxlVHlwZT4gPT4ge1xuICBjb25zdCB7ZmlsZUlkfSA9IGZpbGU7XG4gIGNvbnN0IGluc2VydDogYW55ID0ge1xuICAgIF9rZXk6IGZpbGVJZCxcbiAgICBhZGRlZDogRGF0ZS5ub3coKVxuICB9O1xuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBTRVJUIHtfa2V5OiAke2ZpbGVJZH19XG4gICAgSU5TRVJUICR7aW5zZXJ0fVxuICAgIFVQREFURSB7fVxuICAgIElOIGZpbGVzIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiBkYi5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVwZGF0ZWRGaWxlOiBGaWxlVHlwZSA9IHt9KSA9PiB1cGRhdGVkRmlsZSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgbGlua0ZpbGVzID0gKGRiOiBEYXRhYmFzZSwgZmlsZXM6IEZpbGVUeXBlW10sIHBvc3RJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+XG4gIFByb21pc2UuYWxsKFxuICAgIGZpbGVzLm1hcCgoZmlsZTogRmlsZVR5cGUpID0+IGNyZWF0ZUZpbGUoZGIsIGZpbGUpXG4gICAgICAudGhlbigoZmlsZTogRmlsZVR5cGUpID0+IGNyZWF0ZVBvc3RFZGdlKGRiLCBmaWxlLCBwb3N0SWQpKSlcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZUZpbGVzID0gKGRiOiBEYXRhYmFzZSwgcG9zdElkOiBzdHJpbmcsIGZpbGVzOiBGaWxlVHlwZVtdKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgY29uc3QgZWRnZUNvbGxlY3Rpb24gPSBkYi5lZGdlQ29sbGVjdGlvbignaXNQb3N0ZWQnKTtcblxuICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uaW5FZGdlcyhwb3N0SWQpXG4gICAgLnRoZW4oKGVkZ2VzKSA9PiB7XG4gICAgICBpZihlZGdlcy5sZW5ndGgpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGxpbmtlZCBlZGdlc1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAgICAgZWRnZXMubWFwKChlZGdlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7X2tleTogZWRnZUtleX0gPSBlZGdlO1xuICAgICAgICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBSRU1PVkUge19rZXk6JHtlZGdlS2V5fX0gSU4gaXNQb3N0ZWRgO1xuXG4gICAgICAgICAgICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KS5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSkpXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIC8vIExpbmsgZmlsZXNcbiAgICAgICAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhkYiwgZmlsZXMsIHBvc3RJZCkudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlsZXM7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYoZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgIC8vIExpbmsgZmlsZXNcbiAgICAgICAgcmV0dXJuIGxpbmtGaWxlcyhkYiwgZmlsZXMsIHBvc3RJZCkudGhlbigoKSA9PiBmaWxlcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsZXM7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZW5jb2RlQmFzZTY0ID0gKGJ1ZmZlcjogQnVmZmVyKTogc3RyaW5nID0+IG5ldyBCdWZmZXIoYnVmZmVyKS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbmV4cG9ydCBjb25zdCBkZWNvZGVCYXNlNjQgPSAoZGF0YVN0cmluZzogc3RyaW5nKTogb2JqZWN0ID0+IHtcbiAgY29uc3QgZ2V0RGF0YSA9IChzdHI6IHN0cmluZykgPT4gc3RyLm1hdGNoKC9eZGF0YTooW0EtWmEtei0rXFwvXSspO2Jhc2U2NCwoLispJC8pIHx8IFtdO1xuICAvLyBjb25zdCBnZXREYXRhID0gKGJhc2U2NDogc3RyaW5nKSA9PiBiYXNlNjQuc3Vic3RyKGJhc2U2NC5pbmRleE9mKCcsJykgKyAxKTtcbiAgbGV0IG1hdGNoZXMgPSBnZXREYXRhKGRhdGFTdHJpbmcpO1xuXG4gIGlmKG1hdGNoZXMubGVuZ3RoICE9PSAzKSB7XG4gICAgLy8gSWYgaW52YWxpZCBtYWtlIHN1cmUgd2UgZG9uJ3QgbmVlZCB0byBkZWNvZGVcbiAgICBtYXRjaGVzID0gZ2V0RGF0YShkZWNvZGVVUklDb21wb25lbnQoZGF0YVN0cmluZykpO1xuXG4gICAgLy8gQ2hlY2sgaXQgYWdhaW4uXG4gICAgaWYobWF0Y2hlcy5sZW5ndGggIT09IDMpIHtcbiAgICAgIHRocm93IEVycm9yKCdJbnZhbGlkIGlucHV0IHN0cmluZycpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3IEJ1ZmZlcihtYXRjaGVzWzJdLCAnYmFzZTY0JyksXG4gICAgdHlwZTogbWF0Y2hlc1sxXVxuICB9O1xufTtcbiJdfQ==
|
package/lib/data/subscription.js
CHANGED
|
@@ -111,8 +111,8 @@ var addPlan = function addPlan(context, item) {
|
|
|
111
111
|
var action = 'addPlan';
|
|
112
112
|
var database = context.database,
|
|
113
113
|
sessionId = context.userId,
|
|
114
|
-
|
|
115
|
-
var isAdmin =
|
|
114
|
+
userAccess = context.userAccess;
|
|
115
|
+
var isAdmin = userAccess > 2;
|
|
116
116
|
|
|
117
117
|
if (!isAdmin) {
|
|
118
118
|
return (0, _utils2.logException)({
|
|
@@ -189,8 +189,8 @@ var addSubscription = function addSubscription(context, item) {
|
|
|
189
189
|
var action = 'addSubscription';
|
|
190
190
|
var database = context.database,
|
|
191
191
|
sessionId = context.userId,
|
|
192
|
-
|
|
193
|
-
var isAdmin =
|
|
192
|
+
userAccess = context.userAccess;
|
|
193
|
+
var isAdmin = userAccess > 2;
|
|
194
194
|
|
|
195
195
|
if (!isAdmin) {
|
|
196
196
|
return (0, _utils2.logException)({
|
|
@@ -308,4 +308,4 @@ var deleteSubscription = function deleteSubscription(context, endDate) {
|
|
|
308
308
|
};
|
|
309
309
|
|
|
310
310
|
exports.deleteSubscription = deleteSubscription;
|
|
311
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3N1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiZ2V0UGxhbkxpc3QiLCJjb250ZXh0IiwiZnJvbSIsInRvIiwiYWN0aW9uIiwiZGF0YWJhc2UiLCJsaW1pdCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsImFsbCIsImxpc3QiLCJlcnJvciIsImNhdGVnb3J5IiwibGFiZWwiLCJQcm9taXNlIiwicmVqZWN0IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2Vzc2lvbklkIiwidXNlcklkIiwibmV4dCIsInN1YnNjcmlwdGlvbiIsImFkZFBsYW4iLCJpdGVtIiwidXNlclR5cGUiLCJpc0FkbWluIiwidmFsdWUiLCJub3ciLCJEYXRlIiwiZm9ybWF0SWQiLCJpZCIsInBsYW5JZCIsImFtb3VudCIsImN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJpbnRlcnZhbCIsImludGVydmFsQ291bnQiLCJuYW1lIiwiZm9ybWF0QW1vdW50IiwiZm9ybWF0SW50ZXJ2YWwiLCJ0b0xvd2VyQ2FzZSIsImZvcm1hdEludGVydmFsQ250IiwiZm9ybWF0TmFtZSIsImZvcm1hdERlc2MiLCJpbnNlcnQiLCJfa2V5IiwiYWRkZWQiLCJtb2RpZmllZCIsInBsYW4iLCJzdHJpcGVDbGllbnQiLCJzdHJpcGUiLCJDb25maWciLCJnZXQiLCJwbGFucyIsImNyZWF0ZSIsImludGVydmFsX2NvdW50IiwibWV0YWRhdGEiLCJzdGF0ZW1lbnRfZGVzY3JpcHRvciIsImFkZFN1YnNjcmlwdGlvbiIsInN1YnNjcmlwdGlvbklkIiwidGF4IiwidHJpYWxFbmQiLCJ0cmlhbFBlcmlvZCIsImZvcm1hdFBsYW5JZCIsImZvcm1hdFRheFBlcmNlbnQiLCJmb3JtYXRUcmlhbFBlcmlvZCIsImZvcm1hdFRyaWFsRW5kIiwiRGF0ZVRpbWUiLCJsb2NhbCIsInBsdXMiLCJkYXlzIiwidG9NaWxsaXMiLCJ1c2VyIiwiY2FuY2VsRGF0ZSIsInN1YnNjcmlwdGlvbnMiLCJjdXN0b21lciIsInN0cmlwZUN1c3RvbWVySWQiLCJpdGVtcyIsInRheF9wZXJjZW50IiwidHJpYWxfZW5kIiwiZGVsZXRlU3Vic2NyaXB0aW9uIiwiZW5kRGF0ZSIsImZvcm1hdEVuZERhdGUiLCJkZWwiLCJ0cmFuc2FjdGlvbklkIiwic3RyaXBlUmVzcG9uc2UiLCJjYW5jZWxsZWQiLCJjYW5jZWxfYXRfcGVyaW9kX2VuZCIsInVwZGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOztBQUdBOztBQUNBOztBQUVBOztBQUlBOztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxhQUFxQixHQUFHLGNBQTlCOztBQUVPLElBQU1DLFdBQVcsR0FBRyxTQUFkQSxXQUFjLENBQUNDLE9BQUQsRUFBb0Y7QUFBQSxNQUE5REMsSUFBOEQsdUVBQS9DLENBQStDO0FBQUEsTUFBNUNDLEVBQTRDLHVFQUEvQixFQUErQjtBQUM3RyxNQUFNQyxNQUFjLEdBQUcsU0FBdkI7QUFENkcsTUFFdEdDLFFBRnNHLEdBRTFGSixPQUYwRixDQUV0R0ksUUFGc0c7QUFHN0csTUFBTUMsS0FBb0IsR0FBRyxzQkFBU0osSUFBVCxFQUFlQyxFQUFmLENBQTdCO0FBQ0EsTUFBTUksTUFBYyxtQ0FDZEQsS0FBSyxDQUFDRSxHQURRLDBDQUFwQjtBQUtBLFNBQU8sbUJBQU1ILFFBQU4sRUFBZ0JJLEtBQWhCLENBQXNCRixNQUF0QixFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLEdBQVAsRUFBekI7QUFBQSxHQURELEVBRUpGLElBRkksQ0FFQztBQUFBLFFBQUNHLElBQUQsdUVBQVEsRUFBUjtBQUFBLFdBQWVBLElBQWY7QUFBQSxHQUZELFdBR0UsVUFBQ0MsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDVixNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDVyxNQUFBQSxRQUFRLEVBQUVoQixhQUZzQjtB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QVksQ0FBQ3lCLGFBQWIsQ0FDSlMsR0FESSxDQUNBOUQsWUFBWSxDQUFDK0QsYUFEYixFQUM0QjtBQUMvQi9ELE1BQUFBLFlBQVksRUFBRTZEO0FBRGlCLEtBRDVCLEVBSUoxRSxJQUpJLENBSUMsVUFBQzZFLGNBQUQsRUFBb0I7QUFDeEI7QUFDQSxVQUFHQSxjQUFjLENBQUNDLFNBQWYsSUFBNEJELGNBQWMsQ0FBQ0Usb0JBQTlDLEVBQW9FO0FBQ2xFLFlBQU1DLE1BQTJCLEdBQUc7QUFDbENmLFVBQUFBLFVBQVUsRUFBRVMsYUFEc0I7QUFFbENuQyxVQUFBQSxRQUFRLEVBQUVwQixHQUZ3QjtBQUdsQ0ksVUFBQUEsTUFBTSxFQUFFO0FBSDBCLFNBQXBDO0FBS0EsWUFBTTFCLE1BQWdCLE9BQUdDLGFBQUgsc0JBQXVCa0YsTUFBdkIsQ0FBdEI7QUFFQSxlQUFPLG1CQUFNckYsUUFBTixFQUFnQkksS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQztBQUFBLGlCQUFNLElBQU47QUFBQSxTQURELFdBRUUsVUFBQ0ksS0FBRDtBQUFBLGlCQUFrQixzQkFBUztBQUNoQ1YsWUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ1csWUFBQUEsUUFBUSxFQUFFaEIsYUFGc0I7QUFHaENpQixZQUFBQSxLQUFLLEVBQUU7QUFIeUIsV0FBVCxFQUl0QkYsS0FKc0IsRUFJZixFQUplLEVBSVhKLElBSlcsQ0FJTjtBQUFBLG1CQUFNLElBQU47QUFBQSxXQUpNLFdBSVksVUFBQ0ksS0FBRDtBQUFBLG1CQUFXRyxPQUFPLENBQUNDLE1BQVIsQ0FBZUosS0FBZixDQUFYO0FBQUEsV0FKWixDQUFsQjtBQUFBLFNBRkYsQ0FBUDtBQU9EOztBQUNELGFBQU8sS0FBUDtBQUNELEtBdkJJLENBQVA7QUF3QkQsR0E1QkksQ0FBUDtBQTZCRCxDQW5DTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQ2hhciwgcGFyc2VJZCwgcGFyc2VOdW0sIHBhcnNlVmFyQ2hhcn0gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCB7YXFsfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQge0RhdGVUaW1lfSBmcm9tICdsdXhvbic7XG5pbXBvcnQgKiBhcyBzdHJpcGUgZnJvbSAnc3RyaXBlJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQge0FyYW5nb0RCTGltaXR9IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiJztcbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge1BheW1lbnRJbnRlcnZhbCwgUGF5bWVudFBsYW4sIFBheW1lbnRTdWJzY3JpcHRpb259IGZyb20gJy4uL3R5cGVzL3BheW1lbnRzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge2dldFVzZXJ9IGZyb20gJy4vdXNlcnMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAnc3Vic2NyaXB0aW9uJztcblxuZXhwb3J0IGNvbnN0IGdldFBsYW5MaXN0ID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGZyb206IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IFByb21pc2U8UGF5bWVudFBsYW5bXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRMaXN0JztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0OiBBcmFuZ29EQkxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgcCBJTiBwbGFuc1xuICAgICAgJHtsaW1pdC5hcWx9XG4gICAgICBTT1JUIHAuYW1vdW50XG4gICAgICBSRVRVUk4gcGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAudGhlbigobGlzdCA9IFtdKSA9PiBsaXN0KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0SXRlbSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHMgSU4gc3Vic2NyaXB0aW9uc1xuICAgICAgRklMVEVSIHMudXNlcklkID09ICR7c2Vzc2lvbklkfSAmJiBzLmNhbmNlbGxlZCA+IDBcbiAgICAgIExFVCBwbGFuID0gRklSU1QoXG4gICAgICAgIEZPUiBwIElOIHBsYW5zXG4gICAgICAgIEZJTFRFUiBwLl9rZXkgPT0gcy5wbGFuSWRcbiAgICAgIClcbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiBNRVJHRShzLCB7cGxhbjogcGxhbn0pYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uID0ge30pID0+IHN1YnNjcmlwdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFBsYW4gPSAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogUGF5bWVudFBsYW4pOiBQcm9taXNlPFBheW1lbnRQbGFuPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2FkZFBsYW4nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkLCB1c2VyVHlwZX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gdXNlclR5cGUgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBwbGFuSWQ6IHN0cmluZyA9IGZvcm1hdElkID09PSAnJyA/IGNyZWF0ZUhhc2goYHRhZy0ke3Nlc3Npb25JZH1gKSA6IGZvcm1hdElkO1xuICBjb25zdCB7YW1vdW50LCBjdXJyZW5jeSA9ICdVU0QnLCBkZXNjcmlwdGlvbiwgaW50ZXJ2YWwsIGludGVydmFsQ291bnQsIG5hbWV9ID0gaXRlbTtcbiAgY29uc3QgZm9ybWF0QW1vdW50OiBudW1iZXIgPSBwYXJzZU51bShhbW91bnQpO1xuICBjb25zdCBmb3JtYXRJbnRlcnZhbDogUGF5bWVudEludGVydmFsID0gcGFyc2VDaGFyKGludGVydmFsLCA1KS50b0xvd2VyQ2FzZSgpIGFzIFBheW1lbnRJbnRlcnZhbDtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWxDbnQ6IG51bWJlciA9IHBhcnNlTnVtKGludGVydmFsQ291bnQsIDUpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIobmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDMyKTtcblxuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRQbGFuID0ge1xuICAgIF9rZXk6IHBsYW5JZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGFtb3VudDogZm9ybWF0QW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICAgIGRlc2NyaXB0aW9uOiBmb3JtYXREZXNjLFxuICAgIGludGVydmFsOiBmb3JtYXRJbnRlcnZhbCxcbiAgICBpbnRlcnZhbENvdW50OiBmb3JtYXRJbnRlcnZhbENudCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IGZvcm1hdE5hbWVcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChwbGFuOiBQYXltZW50UGxhbiA9IHt9KSA9PiB7XG4gICAgICAvLyBTdHJpcGVcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IHN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSk7XG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnBsYW5zXG4gICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgIGFtb3VudDogZm9ybWF0QW1vdW50ICogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5LFxuICAgICAgICAgIGlkOiBwbGFuSWQsXG4gICAgICAgICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgICAgICAgIGludGVydmFsX2NvdW50OiBmb3JtYXRJbnRlcnZhbENudCxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICBzdGF0ZW1lbnRfZGVzY3JpcHRvcjogZm9ybWF0RGVzY1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiBwbGFuKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW0pOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlclR5cGV9ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbjogYm9vbGVhbiA9IHVzZXJUeXBlID4gMjtcblxuICBpZighaXNBZG1pbikge1xuICAgIHJldHVybiBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpO1xuICB9XG5cbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCBmb3JtYXRJZDogc3RyaW5nID0gcGFyc2VJZChpdGVtLmlkKTtcbiAgY29uc3Qgc3Vic2NyaXB0aW9uSWQ6IHN0cmluZyA9IGZvcm1hdElkID09PSAnJyA/IGNyZWF0ZUhhc2goYHRhZy0ke3Nlc3Npb25JZH1gKSA6IGZvcm1hdElkO1xuICBjb25zdCB7cGxhbklkLCB0YXgsIHRyaWFsRW5kLCB0cmlhbFBlcmlvZH0gPSBpdGVtO1xuICBjb25zdCBmb3JtYXRQbGFuSWQ6IHN0cmluZyA9IHBhcnNlSWQocGxhbklkKTtcbiAgY29uc3QgZm9ybWF0VGF4UGVyY2VudDogbnVtYmVyID0gcGFyc2VOdW0odGF4KSB8fCAwO1xuICBjb25zdCBmb3JtYXRUcmlhbFBlcmlvZDogbnVtYmVyID0gcGFyc2VOdW0odGF4KSB8fCAwO1xuICBsZXQgZm9ybWF0VHJpYWxFbmQ6IG51bWJlciA9IHRyaWFsRW5kIHx8IERhdGUubm93KCk7XG5cbiAgaWYoZm9ybWF0VHJpYWxQZXJpb2QpIHtcbiAgICBmb3JtYXRUcmlhbEVuZCA9IERhdGVUaW1lLmxvY2FsKCkucGx1cyh7ZGF5czogdHJpYWxQZXJpb2R9KS50b01pbGxpcygpO1xuICB9XG5cbiAgcmV0dXJuIGdldFVzZXIoY29udGV4dCwgc2Vzc2lvbklkKVxuICAgIC50aGVuKCh1c2VyKSA9PiB7XG4gICAgICBjb25zdCBpbnNlcnQ6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgIF9rZXk6IHN1YnNjcmlwdGlvbklkLFxuICAgICAgICBhZGRlZDogbm93LFxuICAgICAgICBjYW5jZWxEYXRlOiAwLFxuICAgICAgICBtb2RpZmllZDogbm93LFxuICAgICAgICBwbGFuSWQ6IGZvcm1hdFBsYW5JZCxcbiAgICAgICAgdGF4OiBmb3JtYXRUYXhQZXJjZW50LFxuICAgICAgICB0cmlhbEVuZDogZm9ybWF0VHJpYWxFbmQsXG4gICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICB9O1xuICAgICAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgICAgIC50aGVuKChzdWJzY3JpcHRpb246IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7fSkgPT4ge1xuICAgICAgICAgIC8vIFN0cmlwZVxuICAgICAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IHN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSk7XG4gICAgICAgICAgcmV0dXJuIHN0cmlwZUNsaWVudC5zdWJzY3JpcHRpb25zXG4gICAgICAgICAgICAuY3JlYXRlKHtcbiAgICAgICAgICAgICAgY3VzdG9tZXI6IHVzZXIuc3RyaXBlQ3VzdG9tZXJJZCxcbiAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7cGxhbjogZm9ybWF0UGxhbklkfVxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIHVzZXJJZDogc2Vzc2lvbklkXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRheF9wZXJjZW50OiBmb3JtYXRUYXhQZXJjZW50ICogMTAwLFxuICAgICAgICAgICAgICB0cmlhbF9lbmQ6IGZvcm1hdFRyaWFsRW5kXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGVuZERhdGU6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGVTdWJzY3JpcHRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qgbm93OiBudW1iZXIgPSBEYXRlLm5vdygpO1xuICBjb25zdCBmb3JtYXRFbmREYXRlOiBudW1iZXIgPSBwYXJzZU51bShlbmREYXRlKSB8fCBub3c7XG5cbiAgcmV0dXJuIGdldFN1YnNjcmlwdGlvbihjb250ZXh0KVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24pID0+IHtcbiAgICAgIC8vIFN0cmlwZVxuICAgICAgY29uc3Qgc3RyaXBlQ2xpZW50ID0gc3RyaXBlKENvbmZpZy5nZXQoJ3N0cmlwZS50b2tlbicpKTtcbiAgICAgIHJldHVybiBzdHJpcGVDbGllbnQuc3Vic2NyaXB0aW9uc1xuICAgICAgICAuZGVsKHN1YnNjcmlwdGlvbi50cmFuc2FjdGlvbklkLCB7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uOiBmb3JtYXRFbmREYXRlXG4gICAgICAgIH0pXG4gICAgICAgIC50aGVuKChzdHJpcGVSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBjYW5jZWxsZWQgb24gU3RyaXBlIGJlZm9yZSB1cGRhdGluZyB0aGUgZGJcbiAgICAgICAgICBpZihzdHJpcGVSZXNwb25zZS5jYW5jZWxsZWQgfHwgc3RyaXBlUmVzcG9uc2UuY2FuY2VsX2F0X3BlcmlvZF9lbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZTogUGF5bWVudFN1YnNjcmlwdGlvbiA9IHtcbiAgICAgICAgICAgICAgY2FuY2VsRGF0ZTogZm9ybWF0RW5kRGF0ZSxcbiAgICAgICAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgICAgICAgcGxhbklkOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFIHMgV0lUSCAke3VwZGF0ZX0gSU4gc3Vic2NyaXB0aW9uc2A7XG5cbiAgICAgICAgICAgIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB0cnVlKVxuICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgICAgICAgICAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn07XG4iXX0=
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3N1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6WyJldmVudENhdGVnb3J5IiwiZ2V0UGxhbkxpc3QiLCJjb250ZXh0IiwiZnJvbSIsInRvIiwiYWN0aW9uIiwiZGF0YWJhc2UiLCJsaW1pdCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsImFsbCIsImxpc3QiLCJlcnJvciIsImNhdGVnb3J5IiwibGFiZWwiLCJQcm9taXNlIiwicmVqZWN0IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2Vzc2lvbklkIiwidXNlcklkIiwibmV4dCIsInN1YnNjcmlwdGlvbiIsImFkZFBsYW4iLCJpdGVtIiwidXNlckFjY2VzcyIsImlzQWRtaW4iLCJ2YWx1ZSIsIm5vdyIsIkRhdGUiLCJmb3JtYXRJZCIsImlkIiwicGxhbklkIiwiYW1vdW50IiwiY3VycmVuY3kiLCJkZXNjcmlwdGlvbiIsImludGVydmFsIiwiaW50ZXJ2YWxDb3VudCIsIm5hbWUiLCJmb3JtYXRBbW91bnQiLCJmb3JtYXRJbnRlcnZhbCIsInRvTG93ZXJDYXNlIiwiZm9ybWF0SW50ZXJ2YWxDbnQiLCJmb3JtYXROYW1lIiwiZm9ybWF0RGVzYyIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIm1vZGlmaWVkIiwicGxhbiIsInN0cmlwZUNsaWVudCIsInN0cmlwZSIsIkNvbmZpZyIsImdldCIsInBsYW5zIiwiY3JlYXRlIiwiaW50ZXJ2YWxfY291bnQiLCJtZXRhZGF0YSIsInN0YXRlbWVudF9kZXNjcmlwdG9yIiwiYWRkU3Vic2NyaXB0aW9uIiwic3Vic2NyaXB0aW9uSWQiLCJ0YXgiLCJ0cmlhbEVuZCIsInRyaWFsUGVyaW9kIiwiZm9ybWF0UGxhbklkIiwiZm9ybWF0VGF4UGVyY2VudCIsImZvcm1hdFRyaWFsUGVyaW9kIiwiZm9ybWF0VHJpYWxFbmQiLCJEYXRlVGltZSIsImxvY2FsIiwicGx1cyIsImRheXMiLCJ0b01pbGxpcyIsInVzZXIiLCJjYW5jZWxEYXRlIiwic3Vic2NyaXB0aW9ucyIsImN1c3RvbWVyIiwic3RyaXBlQ3VzdG9tZXJJZCIsIml0ZW1zIiwidGF4X3BlcmNlbnQiLCJ0cmlhbF9lbmQiLCJkZWxldGVTdWJzY3JpcHRpb24iLCJlbmREYXRlIiwiZm9ybWF0RW5kRGF0ZSIsImRlbCIsInRyYW5zYWN0aW9uSWQiLCJzdHJpcGVSZXNwb25zZSIsImNhbmNlbGxlZCIsImNhbmNlbF9hdF9wZXJpb2RfZW5kIiwidXBkYXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUE7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBRUE7O0FBSUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQU1BLGFBQXFCLEdBQUcsY0FBOUI7O0FBRU8sSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsT0FBRCxFQUFvRjtBQUFBLE1BQTlEQyxJQUE4RCx1RUFBL0MsQ0FBK0M7QUFBQSxNQUE1Q0MsRUFBNEMsdUVBQS9CLEVBQStCO0FBQzdHLE1BQU1DLE1BQWMsR0FBRyxTQUF2QjtBQUQ2RyxNQUV0R0MsUUFGc0csR0FFMUZKLE9BRjBGLENBRXRHSSxRQUZzRztBQUc3RyxNQUFNQyxLQUFvQixHQUFHLHNCQUFTSixJQUFULEVBQWVDLEVBQWYsQ0FBN0I7QUFDQSxNQUFNSSxNQUFjLG1DQUNkRCxLQUFLLENBQUNFLEdBRFEsMENBQXBCO0FBS0EsU0FBTyxtQkFBTUgsUUFBTixFQUFnQkksS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ0MsR0FBUCxFQUF6QjtBQUFBLEdBREQsRUFFSkYsSUFGSSxDQUVDO0FBQUEsUUFBQ0csSUFBRCx1RUFBUSxFQUFSO0FBQUEsV0FBZUEsSUFBZjtBQUFBLEdBRkQsV0FHRSxVQUFDQyxLQUFEO0FBQUEsV0FBa0Isc0JBQVM7QUFDaENWLE1BQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaENXLE1BQUFBLFFBQVEsRUFBRWhCLGFBRnNC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WUFBWSxDQUFDeUIsYUFBYixDQUNKUyxHQURJLENBQ0E5RCxZQUFZLENBQUMrRCxhQURiLEVBQzRCO0FBQy9CL0QsTUFBQUEsWUFBWSxFQUFFNkQ7QUFEaUIsS0FENUIsRUFJSjFFLElBSkksQ0FJQyxVQUFDNkUsY0FBRCxFQUFvQjtBQUN4QjtBQUNBLFVBQUdBLGNBQWMsQ0FBQ0MsU0FBZixJQUE0QkQsY0FBYyxDQUFDRSxvQkFBOUMsRUFBb0U7QUFDbEUsWUFBTUMsTUFBMkIsR0FBRztBQUNsQ2YsVUFBQUEsVUFBVSxFQUFFUyxhQURzQjtBQUVsQ25DLFVBQUFBLFFBQVEsRUFBRXBCLEdBRndCO0FBR2xDSSxVQUFBQSxNQUFNLEVBQUU7QUFIMEIsU0FBcEM7QUFLQSxZQUFNMUIsTUFBZ0IsT0FBR0MsYUFBSCxzQkFBdUJrRixNQUF2QixDQUF0QjtBQUVBLGVBQU8sbUJBQU1yRixRQUFOLEVBQWdCSSxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDO0FBQUEsaUJBQU0sSUFBTjtBQUFBLFNBREQsV0FFRSxVQUFDSSxLQUFEO0FBQUEsaUJBQWtCLHNCQUFTO0FBQ2hDVixZQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDVyxZQUFBQSxRQUFRLEVBQUVoQixhQUZzQjtBQUdoQ2lCLFlBQUFBLEtBQUssRUFBRTtBQUh5QixXQUFULEVBSXRCRixLQUpzQixFQUlmLEVBSmUsRUFJWEosSUFKVyxDQUlOO0FBQUEsbUJBQU0sSUFBTjtBQUFBLFdBSk0sV0FJWSxVQUFDSSxLQUFEO0FBQUEsbUJBQVdHLE9BQU8sQ0FBQ0MsTUFBUixDQUFlSixLQUFmLENBQVg7QUFBQSxXQUpaLENBQWxCO0FBQUEsU0FGRixDQUFQO0FBT0Q7O0FBQ0QsYUFBTyxLQUFQO0FBQ0QsS0F2QkksQ0FBUDtBQXdCRCxHQTVCSSxDQUFQO0FBNkJELENBbkNNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUlkLCBwYXJzZU51bSwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWx9IGZyb20gJ2FyYW5nb2pzJztcbmltcG9ydCB7QXFsUXVlcnl9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvYXFsLXF1ZXJ5JztcbmltcG9ydCB7QXJyYXlDdXJzb3J9IGZyb20gJ2FyYW5nb2pzL2xpYi9janMvY3Vyc29yJztcbmltcG9ydCB7RGF0ZVRpbWV9IGZyb20gJ2x1eG9uJztcbmltcG9ydCAqIGFzIHN0cmlwZSBmcm9tICdzdHJpcGUnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7QXJhbmdvREJMaW1pdH0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGInO1xuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7UGF5bWVudEludGVydmFsLCBQYXltZW50UGxhbiwgUGF5bWVudFN1YnNjcmlwdGlvbn0gZnJvbSAnLi4vdHlwZXMvcGF5bWVudHMnO1xuaW1wb3J0IHtnZXRMaW1pdCwgbG9nRXJyb3IsIGxvZ0V4Y2VwdGlvbiwgdXNlRGJ9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7Z2V0VXNlcn0gZnJvbSAnLi91c2Vycyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICdzdWJzY3JpcHRpb24nO1xuXG5leHBvcnQgY29uc3QgZ2V0UGxhbkxpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZnJvbTogbnVtYmVyID0gMCwgdG86IG51bWJlciA9IDMwKTogUHJvbWlzZTxQYXltZW50UGxhbltdPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldExpc3QnO1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3QgbGltaXQ6IEFyYW5nb0RCTGltaXQgPSBnZXRMaW1pdChmcm9tLCB0byk7XG4gIGNvbnN0IGFxbFFyeTogc3RyaW5nID0gYEZPUiBwIElOIHBsYW5zXG4gICAgICAke2xpbWl0LmFxbH1cbiAgICAgIFNPUlQgcC5hbW91bnRcbiAgICAgIFJFVFVSTiBwYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLmFsbCgpKVxuICAgIC50aGVuKChsaXN0ID0gW10pID0+IGxpc3QpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwge30pLnRoZW4oKCkgPT4gbnVsbCkuY2F0Y2goKGVycm9yKSA9PiBQcm9taXNlLnJlamVjdChlcnJvcikpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdWJzY3JpcHRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8UGF5bWVudFN1YnNjcmlwdGlvbj4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBhcWxRcnk6IHN0cmluZyA9IGBGT1IgcyBJTiBzdWJzY3JpcHRpb25zXG4gICAgICBGSUxURVIgcy51c2VySWQgPT0gJHtzZXNzaW9uSWR9ICYmIHMuY2FuY2VsbGVkID4gMFxuICAgICAgTEVUIHBsYW4gPSBGSVJTVChcbiAgICAgICAgRk9SIHAgSU4gcGxhbnNcbiAgICAgICAgRklMVEVSIHAuX2tleSA9PSBzLnBsYW5JZFxuICAgICAgKVxuICAgICAgTElNSVQgMVxuICAgICAgUkVUVVJOIE1FUkdFKHMsIHtwbGFuOiBwbGFufSlgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChzdWJzY3JpcHRpb24gPSB7fSkgPT4gc3Vic2NyaXB0aW9uKVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkUGxhbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtOiBQYXltZW50UGxhbik6IFByb21pc2U8UGF5bWVudFBsYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkUGxhbic7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJBY2Nlc3N9ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbjogYm9vbGVhbiA9IHVzZXJBY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluKSB7XG4gICAgcmV0dXJuIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpLnRoZW4oKCkgPT4gbnVsbCk7XG4gIH1cblxuICBjb25zdCBub3c6IG51bWJlciA9IERhdGUubm93KCk7XG4gIGNvbnN0IGZvcm1hdElkOiBzdHJpbmcgPSBwYXJzZUlkKGl0ZW0uaWQpO1xuICBjb25zdCBwbGFuSWQ6IHN0cmluZyA9IGZvcm1hdElkID09PSAnJyA/IGNyZWF0ZUhhc2goYHRhZy0ke3Nlc3Npb25JZH1gKSA6IGZvcm1hdElkO1xuICBjb25zdCB7YW1vdW50LCBjdXJyZW5jeSA9ICdVU0QnLCBkZXNjcmlwdGlvbiwgaW50ZXJ2YWwsIGludGVydmFsQ291bnQsIG5hbWV9ID0gaXRlbTtcbiAgY29uc3QgZm9ybWF0QW1vdW50OiBudW1iZXIgPSBwYXJzZU51bShhbW91bnQpO1xuICBjb25zdCBmb3JtYXRJbnRlcnZhbDogUGF5bWVudEludGVydmFsID0gcGFyc2VDaGFyKGludGVydmFsLCA1KS50b0xvd2VyQ2FzZSgpIGFzIFBheW1lbnRJbnRlcnZhbDtcbiAgY29uc3QgZm9ybWF0SW50ZXJ2YWxDbnQ6IG51bWJlciA9IHBhcnNlTnVtKGludGVydmFsQ291bnQsIDUpO1xuICBjb25zdCBmb3JtYXROYW1lOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIobmFtZSwgMzIpO1xuICBjb25zdCBmb3JtYXREZXNjOiBzdHJpbmcgPSBwYXJzZVZhckNoYXIoZGVzY3JpcHRpb24sIDMyKTtcblxuICBjb25zdCBpbnNlcnQ6IFBheW1lbnRQbGFuID0ge1xuICAgIF9rZXk6IHBsYW5JZCxcbiAgICBhZGRlZDogbm93LFxuICAgIGFtb3VudDogZm9ybWF0QW1vdW50LFxuICAgIGN1cnJlbmN5LFxuICAgIGRlc2NyaXB0aW9uOiBmb3JtYXREZXNjLFxuICAgIGludGVydmFsOiBmb3JtYXRJbnRlcnZhbCxcbiAgICBpbnRlcnZhbENvdW50OiBmb3JtYXRJbnRlcnZhbENudCxcbiAgICBtb2RpZmllZDogbm93LFxuICAgIG5hbWU6IGZvcm1hdE5hbWVcbiAgfTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHBsYW5zIFJFVFVSTiBORVdgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChwbGFuOiBQYXltZW50UGxhbiA9IHt9KSA9PiB7XG4gICAgICAvLyBTdHJpcGVcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IHN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSk7XG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnBsYW5zXG4gICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgIGFtb3VudDogZm9ybWF0QW1vdW50ICogMTAwLFxuICAgICAgICAgIGN1cnJlbmN5LFxuICAgICAgICAgIGlkOiBwbGFuSWQsXG4gICAgICAgICAgaW50ZXJ2YWw6IGZvcm1hdEludGVydmFsLFxuICAgICAgICAgIGludGVydmFsX2NvdW50OiBmb3JtYXRJbnRlcnZhbENudCxcbiAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgIH0sXG4gICAgICAgICAgbmFtZTogZm9ybWF0TmFtZSxcbiAgICAgICAgICBzdGF0ZW1lbnRfZGVzY3JpcHRvcjogZm9ybWF0RGVzY1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiBwbGFuKTtcbiAgICB9KVxuICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkU3Vic2NyaXB0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW0pOiBQcm9taXNlPFBheW1lbnRTdWJzY3JpcHRpb24+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlckFjY2Vzc30gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gdXNlckFjY2VzcyA+IDI7XG5cbiAgaWYoIWlzQWRtaW4pIHtcbiAgICByZXR1cm4gbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKTtcbiAgfVxuXG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgZm9ybWF0SWQ6IHN0cmluZyA9IHBhcnNlSWQoaXRlbS5pZCk7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbklkOiBzdHJpbmcgPSBmb3JtYXRJZCA9PT0gJycgPyBjcmVhdGVIYXNoKGB0YWctJHtzZXNzaW9uSWR9YCkgOiBmb3JtYXRJZDtcbiAgY29uc3Qge3BsYW5JZCwgdGF4LCB0cmlhbEVuZCwgdHJpYWxQZXJpb2R9ID0gaXRlbTtcbiAgY29uc3QgZm9ybWF0UGxhbklkOiBzdHJpbmcgPSBwYXJzZUlkKHBsYW5JZCk7XG4gIGNvbnN0IGZvcm1hdFRheFBlcmNlbnQ6IG51bWJlciA9IHBhcnNlTnVtKHRheCkgfHwgMDtcbiAgY29uc3QgZm9ybWF0VHJpYWxQZXJpb2Q6IG51bWJlciA9IHBhcnNlTnVtKHRheCkgfHwgMDtcbiAgbGV0IGZvcm1hdFRyaWFsRW5kOiBudW1iZXIgPSB0cmlhbEVuZCB8fCBEYXRlLm5vdygpO1xuXG4gIGlmKGZvcm1hdFRyaWFsUGVyaW9kKSB7XG4gICAgZm9ybWF0VHJpYWxFbmQgPSBEYXRlVGltZS5sb2NhbCgpLnBsdXMoe2RheXM6IHRyaWFsUGVyaW9kfSkudG9NaWxsaXMoKTtcbiAgfVxuXG4gIHJldHVybiBnZXRVc2VyKGNvbnRleHQsIHNlc3Npb25JZClcbiAgICAudGhlbigodXNlcikgPT4ge1xuICAgICAgY29uc3QgaW5zZXJ0OiBQYXltZW50U3Vic2NyaXB0aW9uID0ge1xuICAgICAgICBfa2V5OiBzdWJzY3JpcHRpb25JZCxcbiAgICAgICAgYWRkZWQ6IG5vdyxcbiAgICAgICAgY2FuY2VsRGF0ZTogMCxcbiAgICAgICAgbW9kaWZpZWQ6IG5vdyxcbiAgICAgICAgcGxhbklkOiBmb3JtYXRQbGFuSWQsXG4gICAgICAgIHRheDogZm9ybWF0VGF4UGVyY2VudCxcbiAgICAgICAgdHJpYWxFbmQ6IGZvcm1hdFRyaWFsRW5kLFxuICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiBwbGFucyBSRVRVUk4gTkVXYDtcblxuICAgICAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgICAgICAudGhlbigoc3Vic2NyaXB0aW9uOiBQYXltZW50U3Vic2NyaXB0aW9uID0ge30pID0+IHtcbiAgICAgICAgICAvLyBTdHJpcGVcbiAgICAgICAgICBjb25zdCBzdHJpcGVDbGllbnQgPSBzdHJpcGUoQ29uZmlnLmdldCgnc3RyaXBlLnRva2VuJykpO1xuICAgICAgICAgIHJldHVybiBzdHJpcGVDbGllbnQuc3Vic2NyaXB0aW9uc1xuICAgICAgICAgICAgLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIGN1c3RvbWVyOiB1c2VyLnN0cmlwZUN1c3RvbWVySWQsXG4gICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAge3BsYW46IGZvcm1hdFBsYW5JZH1cbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICB1c2VySWQ6IHNlc3Npb25JZFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0YXhfcGVyY2VudDogZm9ybWF0VGF4UGVyY2VudCAqIDEwMCxcbiAgICAgICAgICAgICAgdHJpYWxfZW5kOiBmb3JtYXRUcmlhbEVuZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+IHN1YnNjcmlwdGlvbik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3I6IEVycm9yKSA9PiBsb2dFcnJvcih7XG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgICAgIGxhYmVsOiAnZGJfZXJyb3InXG4gICAgICAgIH0sIGVycm9yLCB7fSkudGhlbigoKSA9PiBudWxsKS5jYXRjaCgoZXJyb3IpID0+IFByb21pc2UucmVqZWN0KGVycm9yKSkpO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN1YnNjcmlwdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBlbmREYXRlOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlU3Vic2NyaXB0aW9uJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IG5vdzogbnVtYmVyID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgZm9ybWF0RW5kRGF0ZTogbnVtYmVyID0gcGFyc2VOdW0oZW5kRGF0ZSkgfHwgbm93O1xuXG4gIHJldHVybiBnZXRTdWJzY3JpcHRpb24oY29udGV4dClcbiAgICAudGhlbigoc3Vic2NyaXB0aW9uKSA9PiB7XG4gICAgICAvLyBTdHJpcGVcbiAgICAgIGNvbnN0IHN0cmlwZUNsaWVudCA9IHN0cmlwZShDb25maWcuZ2V0KCdzdHJpcGUudG9rZW4nKSk7XG4gICAgICByZXR1cm4gc3RyaXBlQ2xpZW50LnN1YnNjcmlwdGlvbnNcbiAgICAgICAgLmRlbChzdWJzY3JpcHRpb24udHJhbnNhY3Rpb25JZCwge1xuICAgICAgICAgIHN1YnNjcmlwdGlvbjogZm9ybWF0RW5kRGF0ZVxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoc3RyaXBlUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBNYWtlIHN1cmUgd2UgY2FuY2VsbGVkIG9uIFN0cmlwZSBiZWZvcmUgdXBkYXRpbmcgdGhlIGRiXG4gICAgICAgICAgaWYoc3RyaXBlUmVzcG9uc2UuY2FuY2VsbGVkIHx8IHN0cmlwZVJlc3BvbnNlLmNhbmNlbF9hdF9wZXJpb2RfZW5kKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGU6IFBheW1lbnRTdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgIGNhbmNlbERhdGU6IGZvcm1hdEVuZERhdGUsXG4gICAgICAgICAgICAgIG1vZGlmaWVkOiBub3csXG4gICAgICAgICAgICAgIHBsYW5JZDogJydcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBhcWxRcnk6IEFxbFF1ZXJ5ID0gYXFsYFVQREFURSBzIFdJVEggJHt1cGRhdGV9IElOIHN1YnNjcmlwdGlvbnNgO1xuXG4gICAgICAgICAgICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gdHJ1ZSlcbiAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICAgICAgICAgICAgfSwgZXJyb3IsIHt9KS50aGVuKCgpID0+IG51bGwpLmNhdGNoKChlcnJvcikgPT4gUHJvbWlzZS5yZWplY3QoZXJyb3IpKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuIl19
|
package/lib/data/users.js
CHANGED
|
@@ -132,8 +132,8 @@ var deleteUser = function deleteUser(context, userId) {
|
|
|
132
132
|
var action = 'delete';
|
|
133
133
|
var database = context.database,
|
|
134
134
|
sessionId = context.userId,
|
|
135
|
-
|
|
136
|
-
var isAdmin =
|
|
135
|
+
sessionAccess = context.userAccess;
|
|
136
|
+
var isAdmin = sessionAccess > 2;
|
|
137
137
|
|
|
138
138
|
if (!isAdmin && sessionId !== userId) {
|
|
139
139
|
(0, _utils2.logException)({
|
|
@@ -166,8 +166,8 @@ var deactivateUser = function deactivateUser(context, userId) {
|
|
|
166
166
|
var action = 'delete';
|
|
167
167
|
var database = context.database,
|
|
168
168
|
sessionId = context.userId,
|
|
169
|
-
|
|
170
|
-
var isAdmin =
|
|
169
|
+
sessionAccess = context.userAccess;
|
|
170
|
+
var isAdmin = sessionAccess > 2;
|
|
171
171
|
|
|
172
172
|
if (!isAdmin && sessionId !== userId) {
|
|
173
173
|
(0, _utils2.logException)({
|
|
@@ -180,7 +180,7 @@ var deactivateUser = function deactivateUser(context, userId) {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
var updated = {
|
|
183
|
-
|
|
183
|
+
userAccess: 0
|
|
184
184
|
};
|
|
185
185
|
var aqlQry = (0, _arangojs.aql)(_templateObject3(), userId, updated);
|
|
186
186
|
return (0, _utils2.useDb)(database).query(aqlQry).then(function (cursor) {
|
|
@@ -412,4 +412,4 @@ var getDisplayName = function getDisplayName() {
|
|
|
412
412
|
};
|
|
413
413
|
|
|
414
414
|
exports.getDisplayName = getDisplayName;
|
|
415
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3VzZXJzLnRzIl0sIm5hbWVzIjpbImV2ZW50Q2F0ZWdvcnkiLCJhZGRVc2VyIiwiY29udGV4dCIsInVzZXIiLCJkYXRhYmFzZSIsImVtYWlsIiwicGhvbmUiLCJzdWIiLCJ1c2VybmFtZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ1bmRlZmluZWQiLCJtb2RpZmllZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJkZWxldGVVc2VyIiwidXNlcklkIiwiYWN0aW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvblR5cGUiLCJ1c2VyVHlwZSIsImlzQWRtaW4iLCJjYXRlZ29yeSIsImxhYmVsIiwidmFsdWUiLCJzdHJpcGUiLCJjdXN0b21lcnMiLCJkZWwiLCJzdHJpcGVDdXN0b21lcklkIiwiYWNjb3VudHMiLCJzdHJpcGVBY2NvdW50SWQiLCJlcnJvciIsImRlYWN0aXZhdGVVc2VyIiwidXBkYXRlZCIsImdldFNlc3Npb25Vc2VyIiwiZ2V0VXNlciIsImZvcm1hdFVzZXJJZCIsImdldFVzZXJMaXN0IiwiZnJvbSIsInRvIiwibGltaXQiLCJhbGwiLCJhZGRVc2VyUmVsYXRpb24iLCJmb3JtYXRWYWx1ZSIsImRiIiwicmVsYXRpb24iLCJlZGdlSWQiLCJlZGdlIiwiZWRnZUNvbGxlY3Rpb24iLCJzYXZlIiwiZGVsZXRlVXNlclJlbGF0aW9uIiwiZ2V0VXNlcnNCeVJlbGF0aW9ucyIsInR5cGUiLCJmb3JtYXRUeXBlIiwiZ2V0UmVsYXRpb25zQnlVc2VyIiwiZ2V0UmVsYXRpb25zaGlwIiwiZ2V0RGlzcGxheU5hbWUiLCJmaXJzdCIsImxhc3QiLCJuYW1lIiwiZnVsbG5hbWUiLCJqb2luIiwidHJpbSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBOztBQUNBOztBQUdBOztBQUNBOztBQUlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBTUEsYUFBcUIsR0FBRyxPQUE5Qjs7QUFFTyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxPQUFELEVBQXNCQyxJQUF0QixFQUE0RDtBQUFBLE1BQzFFQyxRQUQwRSxHQUM5REYsT0FEOEQsQ0FDMUVFLFFBRDBFO0FBQUEsTUFFMUVDLEtBRjBFLEdBRTNDRixJQUYyQyxDQUUxRUUsS0FGMEU7QUFBQSxNQUVuRUMsS0FGbUUsR0FFM0NILElBRjJDLENBRW5FRyxLQUZtRTtBQUFBLE1BRTVEQyxHQUY0RCxHQUUzQ0osSUFGMkMsQ0FFNURJLEdBRjREO0FBQUEsTUFFdkRDLFFBRnVELEdBRTNDTCxJQUYyQyxDQUV2REssUUFGdUQsRUFJakY7O0FBQ0EsTUFBTUMsTUFBZ0IsR0FBRztBQUN2QkMsSUFBQUEsSUFBSSxFQUFFLHVCQUFXSCxHQUFYLEVBQWdCLElBQWhCLENBRGlCO0FBRXZCSSxJQUFBQSxLQUFLLEVBQUVDLElBQUksQ0FBQ0MsR0FBTCxFQUZnQjtBQUd2QlIsSUFBQUEsS0FBSyxFQUFFQSxLQUFLLEtBQUtTLFNBQVYsR0FBc0IsdUJBQVdULEtBQVgsQ0FBdEIsR0FBMENTLFNBSDFCO0FBSXZCQyxJQUFBQSxRQUFRLEVBQUVILElBQUksQ0FBQ0MsR0FBTCxFQUphO0FBS3ZCUCxJQUFBQSxLQUFLLEVBQUVBLEtBQUssS0FBS1EsU0FBVixHQUFzQix5QkFBYVIsS0FBYixFQUFvQixFQUFwQixDQUF0QixHQUFnRFEsU0FMaEM7QUFNdkJQLElBQUFBLEdBQUcsRUFBRSx5QkFBYUEsR0FBYixFQUFrQixFQUFsQixDQU5rQjtBQU92QkMsSUFBQUEsUUFBUSxFQUFFLDBCQUFjQSxRQUFkO0FBUGEsR0FBekIsQ0FMaUYsQ0FlakY7O0FBQ0EsTUFBTVEsTUFBZ0IsT0FBR0MsYUFBSCxxQkFBZ0JSLE1BQWhCLENBQXRCO0FBQ0EsU0FBTyxtQkFBTUwsUUFBTixFQUFnQmMsS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQThCRyxJQUE5QixDQUFtQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ0MsSUFBUCxFQUF6QjtBQUFBLEdBQW5DLENBQVA7QUFDRCxDQWxCTTs7OztBQW9CQSxJQUFNQyxVQUFVLEdBQUcsU0FBYkEsVUFBYSxDQUFDcEIsT0FBRCxFQUFzQnFCLE1BQXRCLEVBQTREO0FBQ3BGLE1BQU1DLE1BQWMsR0FBRyxRQUF2QjtBQURvRixNQUU3RXBCLFFBRjZFLEdBRXZCRixPQUZ1QixDQUU3RUUsUUFGNkU7QUFBQSxNQUUzRHFCLFNBRjJELEdBRXZCdkIsT0FGdUIsQ0FFbkVxQixNQUZtRTtBQUFBLE1BRXRDRyxXQUZzQyxHQUV2QnhCLE9BRnVCLENBRWhEeUIsUUFGZ0Q7QUFHcEYsTUFBTUMsT0FBZ0IsR0FBR0YsV0FBVyxHQUFHLENBQXZDOztBQUVBLE1BQUcsQ0FBQ0UsT0FBRCxJQUFhSCxTQUFTLEtBQUtGLE1BQTlCLEVBQXVDO0FBQ3JDLDhCQUFhO0FBQ1hDLE1BQUFBLE1BQU0sRUFBTkEsTUFEVztBQUVYSyxNQUFBQSxRQUFRLEVBQUU3QixhQUZDO0FBR1g4QixNQUFBQSxLQUFLLEVBQUUsY0FISTtBQUlYQyxNQUFBQSxLQUFLLEVBQUU7QUFKSSxLQUFiLEVBS0c3QixPQUxIO0FBTUEsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsTUFBTWMsTUFBZ0IsT0FBR0MsYUFBSCxzQkFDQ00sTUFERCxDQUF0QjtBQU1BLFNBQU8sbUJBQU1uQixRQUFOLEVBQWdCYyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDQyxJQUFQLEVBQXpCO0FBQUEsR0FERCxFQUVKRixJQUZJLENBRUM7QUFBQSxRQUFDaEIsSUFBRCx1RUFBa0IsRUFBbEI7QUFBQSxXQUF5QjZCLE1BQU0sQ0FBQ0MsU0FBUCxDQUFpQkMsR0FBakIsQ0FBcUIvQixJQUFJLENBQUNnQyxnQkFBMUIsRUFDNUJoQixJQUQ0QixDQUN2QjtBQUFBLGFBQU1hLE1BQU0sQ0FBQ0ksUUFBUCxDQUFnQkYsR0FBaEIsQ0FBb0IvQixJQUFJLENBQUNrQyxlQUF6QixDQUFOO0FBQUEsS0FEdUIsRUFFNUJsQixJQUY0QixDQUV2QjtBQUFBLGFBQU1oQixJQUFOO0FBQUEsS0FGdUIsQ0FBekI7QUFBQSxHQUZELFdBS0UsVUFBQ21DLEtBQUQsRUFBa0I7QUFDdkIsVUFBTUEsS0FBTjtBQUNELEdBUEksQ0FBUDtBQVFELENBN0JNOzs7O0FBK0JBLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ3JDLE9BQUQsRUFBc0JxQixNQUF0QixFQUE0RDtBQUN4RixNQUFNQyxNQUFjLEdBQUcsUUFBdkI7QUFEd0YsTUFFakZwQixRQUZpRixHQUUzQkYsT0FGMkIsQ0FFakZFLFFBRmlGO0FBQUEsTUFFL0RxQixTQUYrRCxHQUUzQnZCLE9BRjJCLENBRXZFcUIsTUFGdUU7QUFBQSxNQUUxQ0csV0FGMEMsR0FFM0J4QixPQUYyQixDQUVwRHlCLFFBRm9EO0FBR3hGLE1BQU1DLE9BQWdCLEdBQUdGLFdBQVcsR0FBRyxDQUF2Qzs7QUFFQSxNQUFHLENBQUNFLE9BQUQsSUFBYUgsU0FBUyxLQUFLRixNQUE5QixFQUF1QztBQUNyQyw4QkFBYTtBQUNYQyxNQUFBQSxNQUFNLEVBQU5BLE1BRFc7QUFFWEssTUFBQUEsUUFBUSxFQUFFN0IsYUFGQztBQUdYOEIsTUFBQUEsS0FBSyxFQUFFLGNBSEk7QUFJWEMsTUFBQUEsS0FBSyxFQUFFO0FBSkksS0FBYixFQUtHN0IsT0FMSDtBQU1BLFdBQU8sSUFBUDtBQUNEOztBQUVELE1BQU1zQyxPQUFpQixHQUFHO0FBQ3hCYixJQUFBQSxRQUFRLEVBQUU7QUFEYyxHQUExQjtBQUdBLE1BQU1YLE1BQWdCLE9BQUdDLGFBQUgsc0JBQWdCTSxNQUFoQixFQUErQmlCLE9BQS9CLENBQXRCO0FBRUEsU0FBTyxtQkFBTXBDLFFBQU4sRUFBZ0JjLEtBQWhCLENBQXNCRixNQUF0QixFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLElBQVAsRUFBekI7QUFBQSxHQURELFdBRUUsVUFBQ2lCLEtBQUQsRUFBa0I7QUFDdkIsVUFBTUEsS0FBTjtBQUNELEdBSkksQ0FBUDtBQUtELENBekJNOzs7O0FBMkJBLElBQU1HLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ3ZDLE9BQUQsRUFBNEM7QUFDeEUsTUFBTXNCLE1BQWMsR0FBRyxnQkFBdkI7QUFEd0UsTUFFakVwQixRQUZpRSxHQUVsQ0YsT0FGa0MsQ0FFakVFLFFBRmlFO0FBQUEsTUFFL0NxQixTQUYrQyxHQUVsQ3ZCLE9BRmtDLENBRXZEcUIsTUFGdUQsRUFJeEU7O0FBQ0EsTUFBTVAsTUFBTSxPQUFHQyxhQUFILHNCQUNPUSxTQURQLENBQVo7QUFLQSxTQUFPLG1CQUFNckIsUUFBTixFQUFnQmMsS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ0MsSUFBUCxFQUF6QjtBQUFBLEdBREQsRUFFSkYsSUFGSSxDQUVDO0FBQUEsUUFBQ2hCLElBQUQsdUVBQVEsRUFBUjtBQUFBLFdBQWVBLElBQWY7QUFBQSxHQUZELFdBR0UsVUFBQ21DLEtBQUQ7QUFBQSxXQUFrQixzQkFBUztBQUNoQ2QsTUFBQUEsTUFBTSxFQUFOQSxNQURnQztBQUVoQ0ssTUFBQUEsUUFBUSxFQUFFN0IsYUFGc0I7QUFHaEM4QixNQUFBQSxLQUFLLEVBQUU7QUFIeUIsS0FBVCxFQUl0QlEsS0FKc0IsRUFJZnBDLE9BSmUsRUFJTmlCLElBSk0sQ0FJRCxZQUFNLENBQUUsQ0FKUCxDQUFsQjtBQUFBLEdBSEYsQ0FBUDtBQVFELENBbEJNOzs7O0FBb0JBLElBQU11QixPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDeEMsT0FBRCxFQUFzQnFCLE1BQXRCLEVBQW9EO0FBQ3pFLE1BQU1DLE1BQWMsR0FBRyxTQUF2QjtBQUNBLE1BQU1tQixZQUFvQixHQUFHLG9CQUFRcEIsTUFBUixDQUE3QjtBQUZ5RSxNQUdsRW5CLFFBSGtFLEdBR3RERixPQUhzRCxDQUdsRUUsUUFIa0UsRUFLekU7O0FBQ0EsTUFBTVksTUFBTSxPQUFHQyxhQUFILHNCQUNTMEIsWUFEVCxDQUFaO0FBS0EsU0FBTyxtQkFBTXZDLFFBQU4sRUFBZ0JjLEtBQWhCLENBQXNCRixNQUF0QixFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLElBQVAsRUFBekI7QUFBQSxHQURELEVBRUpGLElBRkksQ0FFQztBQUFBLFFBQUNoQixJQUFELHVFQUFRLEVBQVI7QUFBQSxXQUFlQSxJQUFmO0FBQUEsR0FGRCxXQUdFLFVBQUNtQyxLQUFEO0FBQUEsV0FBa0Isc0JBQVM7QUFDaENkLE1BQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaENLLE1BQUFBLFFBQVEsRUFBRTdCLGFBRnNCO0FBR2hDOEIsTUFBQUEsS0FBSyxFQUFFO0FBSHlCLEtBQVQsRUFJdEJRLEtBSnNCLEVBSWZwQyxPQUplLEVBSU5pQixJQUpNLENBSUQsWUFBTSxDQUFFLENBSlAsQ0FBbEI7QUFBQSxHQUhGLENBQVA7QUFRRCxDQW5CTTs7OztBQXFCQSxJQUFNeUIsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQzFDLE9BQUQsRUFBK0U7QUFBQSxNQUF6RDJDLElBQXlELHVFQUExQyxDQUEwQztBQUFBLE1BQXZDQyxFQUF1Qyx1RUFBMUIsRUFBMEI7QUFDeEcsTUFBTXRCLE1BQWMsR0FBRyxTQUF2QjtBQUR3RyxNQUVqR3BCLFFBRmlHLEdBRXJGRixPQUZxRixDQUVqR0UsUUFGaUc7QUFHeEcsTUFBTTJDLEtBQUssR0FBRyxzQkFBU0YsSUFBVCxFQUFlQyxFQUFmLENBQWQsQ0FId0csQ0FLeEc7O0FBQ0EsTUFBTTlCLE1BQWMsaUNBQ2hCK0IsS0FBSyxDQUFDOUIsR0FEVSx3Q0FBcEI7QUFLQSxTQUFPLG1CQUFNYixRQUFOLEVBQWdCYyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDNEIsR0FBUCxFQUF6QjtBQUFBLEdBREQsV0FFRSxVQUFDVixLQUFEO0FBQUEsV0FBa0Isc0JBQVM7QUFDaENkLE1BQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaENLLE1BQUFBLFFBQVEsRUFBRTdCLGFBRnNCO0FBR2hDOEIsTUFBQUEsS0FBSyxFQUFFO0FBSHlCLEtBQVQsRUFJdEJRLEtBSnNCLEVBSWZwQyxPQUplLEVBSU5pQixJQUpNLENBSUQ7QUFBQSxhQUFNLEVBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0FGRixDQUFQO0FBT0QsQ0FsQk07Ozs7QUFvQkEsSUFBTThCLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsQ0FBQy9DLE9BQUQsRUFBc0JxQixNQUF0QixFQUE4QlEsS0FBOUIsRUFBbUU7QUFDaEcsTUFBTVAsTUFBYyxHQUFHLGFBQXZCO0FBRGdHLE1BRXpGcEIsUUFGeUYsR0FFMURGLE9BRjBELENBRXpGRSxRQUZ5RjtBQUFBLE1BRXZFcUIsU0FGdUUsR0FFMUR2QixPQUYwRCxDQUUvRXFCLE1BRitFO0FBR2hHLE1BQU1vQixZQUFvQixHQUFHLG9CQUFRcEIsTUFBUixDQUE3QjtBQUNBLE1BQU0yQixXQUFtQixHQUFHLHNCQUFVbkIsS0FBVixFQUFpQixFQUFqQixDQUE1QjtBQUNBLE1BQU1vQixFQUFZLEdBQUcsbUJBQU0vQyxRQUFOLENBQXJCO0FBQ0EsTUFBTVksTUFBTSxPQUFHQyxhQUFILHNCQUNVaUMsV0FEVixFQUN1Q3pCLFNBRHZDLEVBQ2dFa0IsWUFEaEUsQ0FBWjtBQUtBLFNBQU9RLEVBQUUsQ0FBQ2pDLEtBQUgsQ0FBU0YsTUFBVCxFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLElBQVAsRUFBekI7QUFBQSxHQURELEVBRUpGLElBRkksQ0FFQyxVQUFDaUMsUUFBRCxFQUFnQztBQUNwQztBQUNBLFFBQUdBLFFBQUgsRUFBYTtBQUNYLGFBQU9BLFFBQVA7QUFDRCxLQUptQyxDQU1wQzs7O0FBQ0EsUUFBTUMsTUFBTSxHQUFHLDBDQUF1QjVCLFNBQXZCLGNBQW9Da0IsWUFBcEMsY0FBb0RPLFdBQXBELEVBQWY7QUFDQSxRQUFNSSxJQUFJLEdBQUc7QUFDWDVDLE1BQUFBLElBQUksRUFBRTJDLE1BREs7QUFFWDFDLE1BQUFBLEtBQUssRUFBRUMsSUFBSSxDQUFDQyxHQUFMLEVBRkk7QUFHWGtCLE1BQUFBLEtBQUssRUFBRW1CO0FBSEksS0FBYjtBQUtBLFFBQU1LLGNBQThCLEdBQUdKLEVBQUUsQ0FBQ0ksY0FBSCxDQUFrQixhQUFsQixDQUF2QztBQUVBLFdBQU9BLGNBQWMsQ0FBQ0MsSUFBZixDQUFvQkYsSUFBcEIsa0JBQW1DN0IsU0FBbkMsbUJBQXlEa0IsWUFBekQsR0FDSnhCLElBREksQ0FDQztBQUFBLGFBQU1vQyxjQUFjLENBQUNELElBQWYsQ0FBb0JELE1BQXBCLENBQU47QUFBQSxLQURELFdBRUUsVUFBQ2YsS0FBRCxFQUFrQjtBQUN2QixZQUFNQSxLQUFOO0FBQ0QsS0FKSSxDQUFQO0FBS0QsR0F0QkksV0F1QkUsVUFBQ0EsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDZCxNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDSyxNQUFBQSxRQUFRLEVBQUU3QixhQUZzQjtBQUdoQzhCLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCUSxLQUpzQixFQUlmcEMsT0FKZSxFQUlOaUIsSUFKTSxDQUlEO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FKQyxDQUFsQjtBQUFBLEdBdkJGLENBQVA7QUE0QkQsQ0F2Q007Ozs7QUF5Q0EsSUFBTXNDLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBcUIsQ0FBQ3ZELE9BQUQsRUFBc0JxQixNQUF0QixFQUFzQ1EsS0FBdEMsRUFBbUY7QUFDbkgsTUFBTVAsTUFBYyxHQUFHLG9CQUF2QjtBQURtSCxNQUU1R3BCLFFBRjRHLEdBRTdFRixPQUY2RSxDQUU1R0UsUUFGNEc7QUFBQSxNQUUxRnFCLFNBRjBGLEdBRTdFdkIsT0FGNkUsQ0FFbEdxQixNQUZrRztBQUduSCxNQUFNb0IsWUFBb0IsR0FBRyxvQkFBUXBCLE1BQVIsQ0FBN0I7QUFDQSxNQUFNMkIsV0FBbUIsR0FBRyxzQkFBVW5CLEtBQVYsRUFBaUIsRUFBakIsQ0FBNUI7QUFDQSxNQUFNZixNQUFNLG1EQUFvQzJCLFlBQXBDLCtEQUNvQmxCLFNBRHBCLDBCQUNtRHlCLFdBRG5ELG9EQUFaO0FBS0EsU0FBTyxtQkFBTTlDLFFBQU4sRUFBZ0JjLEtBQWhCLENBQXNCRixNQUF0QixFQUNKRyxJQURJLENBQ0MsVUFBQ0MsTUFBRDtBQUFBLFdBQXlCQSxNQUFNLENBQUNDLElBQVAsRUFBekI7QUFBQSxHQURELEVBRUpGLElBRkksQ0FFQztBQUFBLFFBQUNpQyxRQUFELHVFQUFZLEVBQVo7QUFBQSxXQUFtQkEsUUFBbkI7QUFBQSxHQUZELFdBR0UsVUFBQ2QsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDZCxNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDSyxNQUFBQSxRQUFRLEVBQUU3QixhQUZzQjtBQUdoQzhCLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCUSxLQUpzQixFQUlmcEMsT0FKZSxFQUlOaUIsSUFKTSxDQUlEO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FKQyxDQUFsQjtBQUFBLEdBSEYsQ0FBUDtBQVFELENBbEJNOzs7O0FBb0JBLElBQU11QyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLENBQ2pDeEQsT0FEaUMsRUFFakNxQixNQUZpQyxFQUdqQ29DLElBSGlDLEVBSWpDZCxJQUppQyxFQUtqQ0MsRUFMaUMsRUFNVDtBQUN4QixNQUFNdEIsTUFBYyxHQUFHLHFCQUF2QjtBQUR3QixNQUVqQnBCLFFBRmlCLEdBRUxGLE9BRkssQ0FFakJFLFFBRmlCO0FBR3hCLE1BQU11QyxZQUFvQixHQUFHLG9CQUFRcEIsTUFBUixDQUE3QjtBQUNBLE1BQU1xQyxVQUFrQixHQUFHLHNCQUFVRCxJQUFWLEVBQWdCLEVBQWhCLENBQTNCO0FBQ0EsTUFBTVosS0FBSyxHQUFHLHNCQUFTRixJQUFULEVBQWVDLEVBQWYsQ0FBZDtBQUNBLE1BQU05QixNQUFjLG1EQUFvQzJCLFlBQXBDLDhDQUNFaUIsVUFERixxQkFFaEJiLEtBQUssQ0FBQzlCLEdBRlUsbUJBQXBCO0FBS0EsU0FBTyxtQkFBTWIsUUFBTixFQUFnQmMsS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQzRCLEdBQVAsRUFBekI7QUFBQSxHQURELFdBRUUsVUFBQ1YsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDZCxNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDSyxNQUFBQSxRQUFRLEVBQUU3QixhQUZzQjtBQUdoQzhCLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCUSxLQUpzQixFQUlmcEMsT0FKZSxFQUlOaUIsSUFKTSxDQUlEO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FKQyxDQUFsQjtBQUFBLEdBRkYsQ0FBUDtBQU9ELENBeEJNOzs7O0FBMEJBLElBQU0wQyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQXFCLENBQUMzRCxPQUFELEVBQXNCcUIsTUFBdEIsRUFBc0U7QUFDdEcsTUFBTUMsTUFBYyxHQUFHLG9CQUF2QjtBQURzRyxNQUUvRnBCLFFBRitGLEdBRWhFRixPQUZnRSxDQUUvRkUsUUFGK0Y7QUFBQSxNQUU3RXFCLFNBRjZFLEdBRWhFdkIsT0FGZ0UsQ0FFckZxQixNQUZxRjtBQUd0RyxNQUFNb0IsWUFBb0IsR0FBRyxvQkFBUXBCLE1BQVIsQ0FBN0I7QUFDQSxNQUFNUCxNQUFnQixPQUFHQyxhQUFILHNDQUFzQzBCLFlBQXRDLG1CQUNXbEIsU0FEWCxFQUF0QjtBQUlBLFNBQU8sbUJBQU1yQixRQUFOLEVBQWdCYyxLQUFoQixDQUFzQkYsTUFBdEIsRUFDSkcsSUFESSxDQUNDLFVBQUNDLE1BQUQ7QUFBQSxXQUF5QkEsTUFBTSxDQUFDNEIsR0FBUCxFQUF6QjtBQUFBLEdBREQsV0FFRSxVQUFDVixLQUFEO0FBQUEsV0FBa0Isc0JBQVM7QUFDaENkLE1BQUFBLE1BQU0sRUFBTkEsTUFEZ0M7QUFFaENLLE1BQUFBLFFBQVEsRUFBRTdCLGFBRnNCO0FBR2hDOEIsTUFBQUEsS0FBSyxFQUFFO0FBSHlCLEtBQVQsRUFJdEJRLEtBSnNCLEVBSWZwQyxPQUplLEVBSU5pQixJQUpNLENBSUQ7QUFBQSxhQUFNLElBQU47QUFBQSxLQUpDLENBQWxCO0FBQUEsR0FGRixDQUFQO0FBT0QsQ0FmTTs7OztBQWlCQSxJQUFNMkMsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixDQUFDNUQsT0FBRCxFQUFzQnFCLE1BQXRCLEVBQW9FO0FBQ2pHLE1BQU1DLE1BQWMsR0FBRyxpQkFBdkI7QUFEaUcsTUFFMUZwQixRQUYwRixHQUUzREYsT0FGMkQsQ0FFMUZFLFFBRjBGO0FBQUEsTUFFeEVxQixTQUZ3RSxHQUUzRHZCLE9BRjJELENBRWhGcUIsTUFGZ0Y7QUFHakcsTUFBTW9CLFlBQW9CLEdBQUcsb0JBQVFwQixNQUFSLENBQTdCO0FBQ0EsTUFBTVAsTUFBZ0IsT0FBR0MsYUFBSCxzQ0FBc0MwQixZQUF0QyxtQkFDV2xCLFNBRFgsRUFBdEI7QUFLQSxTQUFPLG1CQUFNckIsUUFBTixFQUFnQmMsS0FBaEIsQ0FBc0JGLE1BQXRCLEVBQ0pHLElBREksQ0FDQyxVQUFDQyxNQUFEO0FBQUEsV0FBeUJBLE1BQU0sQ0FBQ0MsSUFBUCxFQUF6QjtBQUFBLEdBREQsV0FFRSxVQUFDaUIsS0FBRDtBQUFBLFdBQWtCLHNCQUFTO0FBQ2hDZCxNQUFBQSxNQUFNLEVBQU5BLE1BRGdDO0FBRWhDSyxNQUFBQSxRQUFRLEVBQUU3QixhQUZzQjtBQUdoQzhCLE1BQUFBLEtBQUssRUFBRTtBQUh5QixLQUFULEVBSXRCUSxLQUpzQixFQUlmcEMsT0FKZSxFQUlOaUIsSUFKTSxDQUlEO0FBQUEsYUFBTSxJQUFOO0FBQUEsS0FKQyxDQUFsQjtBQUFBLEdBRkYsQ0FBUDtBQU9ELENBaEJNOzs7O0FBa0JBLElBQU00QyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLEdBQWlDO0FBQUEsTUFBaEM1RCxJQUFnQyx1RUFBZixFQUFlO0FBQUEsTUFDdEQ2RCxLQURzRCxHQUNiN0QsSUFEYSxDQUN0RDZELEtBRHNEO0FBQUEsTUFDL0NDLElBRCtDLEdBQ2I5RCxJQURhLENBQy9DOEQsSUFEK0M7QUFBQSxtQkFDYjlELElBRGEsQ0FDekMrRCxJQUR5QztBQUFBLE1BQ3pDQSxJQUR5QywyQkFDbEMsRUFEa0M7QUFBQSx1QkFDYi9ELElBRGEsQ0FDOUJLLFFBRDhCO0FBQUEsTUFDOUJBLFFBRDhCLCtCQUNuQixFQURtQjtBQUU3RCxNQUFNMkQsUUFBZ0IsR0FBSSxDQUFDSCxLQUFELEVBQVFDLElBQVIsQ0FBRCxDQUFnQkcsSUFBaEIsQ0FBcUIsR0FBckIsRUFBMEJDLElBQTFCLEVBQXpCOztBQUVBLE1BQUcsQ0FBQyx5QkFBUUgsSUFBUixDQUFKLEVBQW1CO0FBQ2pCLFdBQU9BLElBQVA7QUFDRCxHQUZELE1BRU8sSUFBR0MsUUFBUSxLQUFLLEVBQWhCLEVBQW9CO0FBQ3pCLFdBQU9BLFFBQVA7QUFDRCxHQUZNLE1BRUEsSUFBRyxDQUFDLHlCQUFRM0QsUUFBUixDQUFKLEVBQXVCO0FBQzVCLFdBQU9BLFFBQVA7QUFDRDs7QUFFRCxTQUFPLFNBQVA7QUFDRCxDQWJNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCB7Y3JlYXRlSGFzaCwgcGFyc2VDaGFyLCBwYXJzZUVtYWlsLCBwYXJzZUlkLCBwYXJzZVVzZXJuYW1lLCBwYXJzZVZhckNoYXJ9IGZyb20gJ0BubGFicy91dGlscyc7XG5pbXBvcnQge2FxbCwgRGF0YWJhc2UsIEVkZ2VDb2xsZWN0aW9ufSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQge0FxbFF1ZXJ5fSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2FxbC1xdWVyeSc7XG5pbXBvcnQge0FycmF5Q3Vyc29yfSBmcm9tICdhcmFuZ29qcy9saWIvY2pzL2N1cnNvcic7XG5pbXBvcnQgaXNFbXB0eSBmcm9tICdsb2Rhc2gvaXNFbXB0eSc7XG5pbXBvcnQgKiBhcyBzdHJpcGUgZnJvbSAnc3RyaXBlJztcblxuaW1wb3J0IHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoJztcbmltcG9ydCB7VXNlclJlbGF0aW9uVHlwZSwgVXNlclR5cGV9IGZyb20gJy4uL3R5cGVzL3VzZXJzJztcbmltcG9ydCB7Z2V0TGltaXQsIGxvZ0Vycm9yLCBsb2dFeGNlcHRpb24sIHVzZURifSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGV2ZW50Q2F0ZWdvcnk6IHN0cmluZyA9ICd1c2Vycyc7XG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXI6IFVzZXJUeXBlKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCB7ZGF0YWJhc2V9ID0gY29udGV4dDtcbiAgY29uc3Qge2VtYWlsLCBwaG9uZSwgc3ViLCB1c2VybmFtZX0gPSB1c2VyO1xuXG4gIC8vIEFkZCBuZXcgdXNlciBwcm9wZXJ0aWVzXG4gIGNvbnN0IGluc2VydDogVXNlclR5cGUgPSB7XG4gICAgX2tleTogY3JlYXRlSGFzaChzdWIsIG51bGwpLFxuICAgIGFkZGVkOiBEYXRlLm5vdygpLFxuICAgIGVtYWlsOiBlbWFpbCAhPT0gdW5kZWZpbmVkID8gcGFyc2VFbWFpbChlbWFpbCkgOiB1bmRlZmluZWQsXG4gICAgbW9kaWZpZWQ6IERhdGUubm93KCksXG4gICAgcGhvbmU6IHBob25lICE9PSB1bmRlZmluZWQgPyBwYXJzZVZhckNoYXIocGhvbmUsIDE1KSA6IHVuZGVmaW5lZCxcbiAgICBzdWI6IHBhcnNlVmFyQ2hhcihzdWIsIDMyKSxcbiAgICB1c2VybmFtZTogcGFyc2VVc2VybmFtZSh1c2VybmFtZSlcbiAgfTtcblxuICAvLyBBZGQgbmV3IHVzZXIgaW4gQXJhbmdvREJcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBJTlNFUlQgJHtpbnNlcnR9IElOIHVzZXJzIFJFVFVSTiBORVdgO1xuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSkudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlVXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZGVsZXRlJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZCwgdXNlclR5cGU6IHNlc3Npb25UeXBlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBzZXNzaW9uVHlwZSA+IDI7XG5cbiAgaWYoIWlzQWRtaW4gJiYgKHNlc3Npb25JZCAhPT0gdXNlcklkKSkge1xuICAgIGxvZ0V4Y2VwdGlvbih7XG4gICAgICBhY3Rpb24sXG4gICAgICBjYXRlZ29yeTogZXZlbnRDYXRlZ29yeSxcbiAgICAgIGxhYmVsOiAndW5hdXRob3JpemVkJyxcbiAgICAgIHZhbHVlOiAnaW52YWxpZF9zZXNzaW9uJ1xuICAgIH0sIGNvbnRleHQpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSBJTiB1c2Vyc1xuICAgICAgRklMVEVSIHUuX2tleSA9PSAke3VzZXJJZH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFTU9WRSB1IElOIHVzZXJzXG4gICAgICBSRVRVUk4gT0xEYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAudGhlbigodXNlcjogVXNlclR5cGUgPSB7fSkgPT4gc3RyaXBlLmN1c3RvbWVycy5kZWwodXNlci5zdHJpcGVDdXN0b21lcklkKVxuICAgICAgLnRoZW4oKCkgPT4gc3RyaXBlLmFjY291bnRzLmRlbCh1c2VyLnN0cmlwZUFjY291bnRJZCkpXG4gICAgICAudGhlbigoKSA9PiB1c2VyKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZGVhY3RpdmF0ZVVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJUeXBlOiBzZXNzaW9uVHlwZX0gPSBjb250ZXh0O1xuICBjb25zdCBpc0FkbWluOiBib29sZWFuID0gc2Vzc2lvblR5cGUgPiAyO1xuXG4gIGlmKCFpc0FkbWluICYmIChzZXNzaW9uSWQgIT09IHVzZXJJZCkpIHtcbiAgICBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZWQ6IFVzZXJUeXBlID0ge1xuICAgIHVzZXJUeXBlOiAwXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFICR7dXNlcklkfSBXSVRIICR7dXBkYXRlZH0gSU4gdXNlcnMgTElNSVQgMSBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2Vzc2lvblVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0U2Vzc2lvblVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgRklMVEVSIHUuX2tleSA9PSAke3Nlc3Npb25JZH1cbiAgTElNSVQgMVxuICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5fa2V5ID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckxpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZnJvbTogbnVtYmVyID0gMCwgdG86IG51bWJlciA9IDE1KTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIC8vIEdldCBkYXRhIGZyb20gZGF0YWJhc2VcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHUudXNlcm5hbWVcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclJlbGF0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZCwgdmFsdWUpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkUmVsYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlbGF0aW9uXG4gICAgRklMVEVSIHIudmFsdWUgPT0gJHtmb3JtYXRWYWx1ZX0gJiYgci5fZnJvbSA9PSAke3Nlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbjogVXNlclJlbGF0aW9uVHlwZSkgPT4ge1xuICAgICAgLy8gSWYgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gdXNlcnMgd2l0aCB0aGUgdmFsdWUgZXhpc3RzLCBqdXN0IHJldHVyblxuICAgICAgaWYocmVsYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHJlbGF0aW9uc2hpcFxuICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgcmVsYXRpb24tJHtzZXNzaW9uSWR9LSR7Zm9ybWF0VXNlcklkfS0ke2Zvcm1hdFZhbHVlfWApO1xuICAgICAgY29uc3QgZWRnZSA9IHtcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGIuZWRnZUNvbGxlY3Rpb24oJ2hhc1JlbGF0aW9uJykgYXMgYW55O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCBgdXNlcnMvJHtzZXNzaW9uSWR9YCwgYHVzZXJzLyR7Zm9ybWF0VXNlcklkfWApXG4gICAgICAgIC50aGVuKCgpID0+IGVkZ2VDb2xsZWN0aW9uLmVkZ2UoZWRnZUlkKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUmVsYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlQ2hhcih2YWx1ZSwgMzIpO1xuICBjb25zdCBhcWxRcnkgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSBcIiR7YHVzZXJzLyR7c2Vzc2lvbklkfWB9XCIgJiYgci52YWx1ZSA9PSBcIiR7Zm9ybWF0VmFsdWV9XCJcbiAgICBSRU1PVkUgciBJTiBoYXNSZWxhdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbiA9IHt9KSA9PiByZWxhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2Vyc0J5UmVsYXRpb25zID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VySWQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVsYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIodHlwZSwgMzIpO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci50eXBlID09IFwiJHtmb3JtYXRUeXBlfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgciBJTiBJTkJPVU5EICR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9IGhhc1JlbGF0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke2B1c2Vycy8ke3Nlc3Npb25JZH1gfVxuICAgICAgUkVUVVJOIHJgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zaGlwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlbGF0aW9uc2hpcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIHIgSU4gSU5CT1VORCAke2B1c2Vycy8ke2Zvcm1hdFVzZXJJZH1gfSBoYXNSZWxhdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHtgdXNlcnMvJHtzZXNzaW9uSWR9YH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TmFtZSA9ICh1c2VyOiBVc2VyVHlwZSA9IHt9KTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2ZpcnN0LCBsYXN0LCBuYW1lID0gJycsIHVzZXJuYW1lID0gJyd9ID0gdXNlcjtcbiAgY29uc3QgZnVsbG5hbWU6IHN0cmluZyA9IChbZmlyc3QsIGxhc3RdKS5qb2luKCcgJykudHJpbSgpO1xuXG4gIGlmKCFpc0VtcHR5KG5hbWUpKSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH0gZWxzZSBpZihmdWxsbmFtZSAhPT0gJycpIHtcbiAgICByZXR1cm4gZnVsbG5hbWU7XG4gIH0gZWxzZSBpZighaXNFbXB0eSh1c2VybmFtZSkpIHtcbiAgICByZXR1cm4gdXNlcm5hbWU7XG4gIH1cblxuICByZXR1cm4gJ1Vua25vd24nO1xufTtcbiJdfQ==
|
|
415
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3VzZXJzLnRzIl0sIm5hbWVzIjpbImV2ZW50Q2F0ZWdvcnkiLCJhZGRVc2VyIiwiY29udGV4dCIsInVzZXIiLCJkYXRhYmFzZSIsImVtYWlsIiwicGhvbmUiLCJzdWIiLCJ1c2VybmFtZSIsImluc2VydCIsIl9rZXkiLCJhZGRlZCIsIkRhdGUiLCJub3ciLCJ1bmRlZmluZWQiLCJtb2RpZmllZCIsImFxbFFyeSIsImFxbCIsInF1ZXJ5IiwidGhlbiIsImN1cnNvciIsIm5leHQiLCJkZWxldGVVc2VyIiwidXNlcklkIiwiYWN0aW9uIiwic2Vzc2lvbklkIiwic2Vzc2lvbkFjY2VzcyIsInVzZXJBY2Nlc3MiLCJpc0FkbWluIiwiY2F0ZWdvcnkiLCJsYWJlbCIsInZhbHVlIiwic3RyaXBlIiwiY3VzdG9tZXJzIiwiZGVsIiwic3RyaXBlQ3VzdG9tZXJJZCIsImFjY291bnRzIiwic3RyaXBlQWNjb3VudElkIiwiZXJyb3IiLCJkZWFjdGl2YXRlVXNlciIsInVwZGF0ZWQiLCJnZXRTZXNzaW9uVXNlciIsImdldFVzZXIiLCJmb3JtYXRVc2VySWQiLCJnZXRVc2VyTGlzdCIsImZyb20iLCJ0byIsImxpbWl0IiwiYWxsIiwiYWRkVXNlclJlbGF0aW9uIiwiZm9ybWF0VmFsdWUiLCJkYiIsInJlbGF0aW9uIiwiZWRnZUlkIiwiZWRnZSIsImVkZ2VDb2xsZWN0aW9uIiwic2F2ZSIsImRlbGV0ZVVzZXJSZWxhdGlvbiIsImdldFVzZXJzQnlSZWxhdGlvbnMiLCJ0eXBlIiwiZm9ybWF0VHlwZSIsImdldFJlbGF0aW9uc0J5VXNlciIsImdldFJlbGF0aW9uc2hpcCIsImdldERpc3BsYXlOYW1lIiwiZmlyc3QiLCJsYXN0IiwibmFtZSIsImZ1bGxuYW1lIiwiam9pbiIsInRyaW0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFJQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Q0FDdEQ2RCxLQURzRDtBQUFBLE1BQy9DQyxJQUQrQyxHQUNiOUQsSUFEYSxDQUMvQzhELElBRCtDO0FBQUEsbUJBQ2I5RCxJQURhLENBQ3pDK0QsSUFEeUM7QUFBQSxNQUN6Q0EsSUFEeUMsMkJBQ2xDLEVBRGtDO0FBQUEsdUJBQ2IvRCxJQURhLENBQzlCSyxRQUQ4QjtBQUFBLE1BQzlCQSxRQUQ4QiwrQkFDbkIsRUFEbUI7QUFFN0QsTUFBTTJELFFBQWdCLEdBQUksQ0FBQ0gsS0FBRCxFQUFRQyxJQUFSLENBQUQsQ0FBZ0JHLElBQWhCLENBQXFCLEdBQXJCLEVBQTBCQyxJQUExQixFQUF6Qjs7QUFFQSxNQUFHLENBQUMseUJBQVFILElBQVIsQ0FBSixFQUFtQjtBQUNqQixXQUFPQSxJQUFQO0FBQ0QsR0FGRCxNQUVPLElBQUdDLFFBQVEsS0FBSyxFQUFoQixFQUFvQjtBQUN6QixXQUFPQSxRQUFQO0FBQ0QsR0FGTSxNQUVBLElBQUcsQ0FBQyx5QkFBUTNELFFBQVIsQ0FBSixFQUF1QjtBQUM1QixXQUFPQSxRQUFQO0FBQ0Q7O0FBRUQsU0FBTyxTQUFQO0FBQ0QsQ0FiTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlQ2hhciwgcGFyc2VFbWFpbCwgcGFyc2VJZCwgcGFyc2VVc2VybmFtZSwgcGFyc2VWYXJDaGFyfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IHthcWwsIERhdGFiYXNlLCBFZGdlQ29sbGVjdGlvbn0gZnJvbSAnYXJhbmdvanMnO1xuaW1wb3J0IHtBcWxRdWVyeX0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9hcWwtcXVlcnknO1xuaW1wb3J0IHtBcnJheUN1cnNvcn0gZnJvbSAnYXJhbmdvanMvbGliL2Nqcy9jdXJzb3InO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0ICogYXMgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aCc7XG5pbXBvcnQge1VzZXJSZWxhdGlvblR5cGUsIFVzZXJUeXBlfSBmcm9tICcuLi90eXBlcy91c2Vycyc7XG5pbXBvcnQge2dldExpbWl0LCBsb2dFcnJvciwgbG9nRXhjZXB0aW9uLCB1c2VEYn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBldmVudENhdGVnb3J5OiBzdHJpbmcgPSAndXNlcnMnO1xuXG5leHBvcnQgY29uc3QgYWRkVXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VyOiBVc2VyVHlwZSk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IHtlbWFpbCwgcGhvbmUsIHN1YiwgdXNlcm5hbWV9ID0gdXNlcjtcblxuICAvLyBBZGQgbmV3IHVzZXIgcHJvcGVydGllc1xuICBjb25zdCBpbnNlcnQ6IFVzZXJUeXBlID0ge1xuICAgIF9rZXk6IGNyZWF0ZUhhc2goc3ViLCBudWxsKSxcbiAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICBlbWFpbDogZW1haWwgIT09IHVuZGVmaW5lZCA/IHBhcnNlRW1haWwoZW1haWwpIDogdW5kZWZpbmVkLFxuICAgIG1vZGlmaWVkOiBEYXRlLm5vdygpLFxuICAgIHBob25lOiBwaG9uZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VWYXJDaGFyKHBob25lLCAxNSkgOiB1bmRlZmluZWQsXG4gICAgc3ViOiBwYXJzZVZhckNoYXIoc3ViLCAzMiksXG4gICAgdXNlcm5hbWU6IHBhcnNlVXNlcm5hbWUodXNlcm5hbWUpXG4gIH07XG5cbiAgLy8gQWRkIG5ldyB1c2VyIGluIEFyYW5nb0RCXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgSU5TRVJUICR7aW5zZXJ0fSBJTiB1c2VycyBSRVRVUk4gTkVXYDtcbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2RlbGV0ZSc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWQsIHVzZXJBY2Nlc3M6IHNlc3Npb25BY2Nlc3N9ID0gY29udGV4dDtcbiAgY29uc3QgaXNBZG1pbjogYm9vbGVhbiA9IHNlc3Npb25BY2Nlc3MgPiAyO1xuXG4gIGlmKCFpc0FkbWluICYmIChzZXNzaW9uSWQgIT09IHVzZXJJZCkpIHtcbiAgICBsb2dFeGNlcHRpb24oe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ3VuYXV0aG9yaXplZCcsXG4gICAgICB2YWx1ZTogJ2ludmFsaWRfc2Vzc2lvbidcbiAgICB9LCBjb250ZXh0KTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICAgIEZJTFRFUiB1Ll9rZXkgPT0gJHt1c2VySWR9XG4gICAgICBMSU1JVCAxXG4gICAgICBSRU1PVkUgdSBJTiB1c2Vyc1xuICAgICAgUkVUVVJOIE9MRGA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXI6IFVzZXJUeXBlID0ge30pID0+IHN0cmlwZS5jdXN0b21lcnMuZGVsKHVzZXIuc3RyaXBlQ3VzdG9tZXJJZClcbiAgICAgIC50aGVuKCgpID0+IHN0cmlwZS5hY2NvdW50cy5kZWwodXNlci5zdHJpcGVBY2NvdW50SWQpKVxuICAgICAgLnRoZW4oKCkgPT4gdXNlcikpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRlYWN0aXZhdGVVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdkZWxldGUnO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkLCB1c2VyQWNjZXNzOiBzZXNzaW9uQWNjZXNzfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGlzQWRtaW46IGJvb2xlYW4gPSBzZXNzaW9uQWNjZXNzID4gMjtcblxuICBpZighaXNBZG1pbiAmJiAoc2Vzc2lvbklkICE9PSB1c2VySWQpKSB7XG4gICAgbG9nRXhjZXB0aW9uKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICd1bmF1dGhvcml6ZWQnLFxuICAgICAgdmFsdWU6ICdpbnZhbGlkX3Nlc3Npb24nXG4gICAgfSwgY29udGV4dCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCB1cGRhdGVkOiBVc2VyVHlwZSA9IHtcbiAgICB1c2VyQWNjZXNzOiAwXG4gIH07XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgVVBEQVRFICR7dXNlcklkfSBXSVRIICR7dXBkYXRlZH0gSU4gdXNlcnMgTElNSVQgMSBSRVRVUk4gTkVXYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4ge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2Vzc2lvblVzZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCk6IFByb21pc2U8VXNlclR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0U2Vzc2lvblVzZXInO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgRklMVEVSIHUuX2tleSA9PSAke3Nlc3Npb25JZH1cbiAgTElNSVQgMVxuICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlciA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQpOiBQcm9taXNlPFVzZXJUeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldEl0ZW0nO1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG5cbiAgLy8gR2V0IGRhdGEgZnJvbSBkYXRhYmFzZVxuICBjb25zdCBhcWxRcnkgPSBhcWxgRk9SIHUgSU4gdXNlcnNcbiAgICBGSUxURVIgdS5fa2V5ID09ICR7Zm9ybWF0VXNlcklkfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5uZXh0KCkpXG4gICAgLnRoZW4oKHVzZXIgPSB7fSkgPT4gdXNlcilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IHt9KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXNlckxpc3QgPSAoY29udGV4dDogQXBpQ29udGV4dCwgZnJvbTogbnVtYmVyID0gMCwgdG86IG51bWJlciA9IDE1KTogUHJvbWlzZTxVc2VyVHlwZT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRJdGVtJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGxpbWl0ID0gZ2V0TGltaXQoZnJvbSwgdG8pO1xuXG4gIC8vIEdldCBkYXRhIGZyb20gZGF0YWJhc2VcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUgSU4gdXNlcnNcbiAgICAke2xpbWl0LmFxbH1cbiAgICBTT1JUIHUudXNlcm5hbWVcbiAgICBSRVRVUk4gdWA7XG5cbiAgcmV0dXJuIHVzZURiKGRhdGFiYXNlKS5xdWVyeShhcWxRcnkpXG4gICAgLnRoZW4oKGN1cnNvcjogQXJyYXlDdXJzb3IpID0+IGN1cnNvci5hbGwoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IFtdKSk7XG59O1xuXG5leHBvcnQgY29uc3QgYWRkVXNlclJlbGF0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZCwgdmFsdWUpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnYWRkUmVsYXRpb24nO1xuICBjb25zdCB7ZGF0YWJhc2UsIHVzZXJJZDogc2Vzc2lvbklkfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRWYWx1ZTogc3RyaW5nID0gcGFyc2VDaGFyKHZhbHVlLCAzMik7XG4gIGNvbnN0IGRiOiBEYXRhYmFzZSA9IHVzZURiKGRhdGFiYXNlKTtcbiAgY29uc3QgYXFsUXJ5ID0gYXFsYEZPUiByIElOIGhhc1JlbGF0aW9uXG4gICAgRklMVEVSIHIudmFsdWUgPT0gJHtmb3JtYXRWYWx1ZX0gJiYgci5fZnJvbSA9PSAke3Nlc3Npb25JZH0gJiYgci5fdG8gPT0gJHtmb3JtYXRVc2VySWR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gZGIucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbjogVXNlclJlbGF0aW9uVHlwZSkgPT4ge1xuICAgICAgLy8gSWYgYSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gdXNlcnMgd2l0aCB0aGUgdmFsdWUgZXhpc3RzLCBqdXN0IHJldHVyblxuICAgICAgaWYocmVsYXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aW9uO1xuICAgICAgfVxuXG4gICAgICAvLyBPdGhlcndpc2UsIGNyZWF0ZSB0aGUgbmV3IHJlbGF0aW9uc2hpcFxuICAgICAgY29uc3QgZWRnZUlkID0gY3JlYXRlSGFzaChgcmVsYXRpb24tJHtzZXNzaW9uSWR9LSR7Zm9ybWF0VXNlcklkfS0ke2Zvcm1hdFZhbHVlfWApO1xuICAgICAgY29uc3QgZWRnZSA9IHtcbiAgICAgICAgX2tleTogZWRnZUlkLFxuICAgICAgICBhZGRlZDogRGF0ZS5ub3coKSxcbiAgICAgICAgdmFsdWU6IGZvcm1hdFZhbHVlXG4gICAgICB9O1xuICAgICAgY29uc3QgZWRnZUNvbGxlY3Rpb246IEVkZ2VDb2xsZWN0aW9uID0gZGIuZWRnZUNvbGxlY3Rpb24oJ2hhc1JlbGF0aW9uJykgYXMgYW55O1xuXG4gICAgICByZXR1cm4gZWRnZUNvbGxlY3Rpb24uc2F2ZShlZGdlLCBgdXNlcnMvJHtzZXNzaW9uSWR9YCwgYHVzZXJzLyR7Zm9ybWF0VXNlcklkfWApXG4gICAgICAgIC50aGVuKCgpID0+IGVkZ2VDb2xsZWN0aW9uLmVkZ2UoZWRnZUlkKSlcbiAgICAgICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgfSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVVc2VyUmVsYXRpb24gPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFVzZXJSZWxhdGlvblR5cGU+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgZm9ybWF0VmFsdWU6IHN0cmluZyA9IHBhcnNlQ2hhcih2YWx1ZSwgMzIpO1xuICBjb25zdCBhcWxRcnkgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci5fZnJvbSA9PSBcIiR7YHVzZXJzLyR7c2Vzc2lvbklkfWB9XCIgJiYgci52YWx1ZSA9PSBcIiR7Zm9ybWF0VmFsdWV9XCJcbiAgICBSRU1PVkUgciBJTiBoYXNSZWxhdGlvblxuICAgIFJFVFVSTiBPTERgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IubmV4dCgpKVxuICAgIC50aGVuKChyZWxhdGlvbiA9IHt9KSA9PiByZWxhdGlvbilcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVc2Vyc0J5UmVsYXRpb25zID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VySWQ6IHN0cmluZyxcbiAgdHlwZTogc3RyaW5nLFxuICBmcm9tOiBudW1iZXIsXG4gIHRvOiBudW1iZXJcbik6IFByb21pc2U8VXNlclR5cGVbXT4gPT4ge1xuICBjb25zdCBhY3Rpb246IHN0cmluZyA9ICdnZXRVc2Vyc0J5UmVsYXRpb25zJztcbiAgY29uc3Qge2RhdGFiYXNlfSA9IGNvbnRleHQ7XG4gIGNvbnN0IGZvcm1hdFVzZXJJZDogc3RyaW5nID0gcGFyc2VJZCh1c2VySWQpO1xuICBjb25zdCBmb3JtYXRUeXBlOiBzdHJpbmcgPSBwYXJzZUNoYXIodHlwZSwgMzIpO1xuICBjb25zdCBsaW1pdCA9IGdldExpbWl0KGZyb20sIHRvKTtcbiAgY29uc3QgYXFsUXJ5OiBzdHJpbmcgPSBgRk9SIHUsIHIgSU4gSU5CT1VORCBcIiR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9XCIgaGFzUmVsYXRpb25cbiAgICBGSUxURVIgci50eXBlID09IFwiJHtmb3JtYXRUeXBlfVwiXG4gICAgJHtsaW1pdC5hcWx9XG4gICAgUkVUVVJOIHVgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zQnlVc2VyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlW10+ID0+IHtcbiAgY29uc3QgYWN0aW9uOiBzdHJpbmcgPSAnZ2V0UmVsYXRpb25zQnlVc2VyJztcbiAgY29uc3Qge2RhdGFiYXNlLCB1c2VySWQ6IHNlc3Npb25JZH0gPSBjb250ZXh0O1xuICBjb25zdCBmb3JtYXRVc2VySWQ6IHN0cmluZyA9IHBhcnNlSWQodXNlcklkKTtcbiAgY29uc3QgYXFsUXJ5OiBBcWxRdWVyeSA9IGFxbGBGT1IgdSwgciBJTiBJTkJPVU5EICR7YHVzZXJzLyR7Zm9ybWF0VXNlcklkfWB9IGhhc1JlbGF0aW9uXG4gICAgICBGSUxURVIgci5fZnJvbSA9PSAke2B1c2Vycy8ke3Nlc3Npb25JZH1gfVxuICAgICAgUkVUVVJOIHJgO1xuXG4gIHJldHVybiB1c2VEYihkYXRhYmFzZSkucXVlcnkoYXFsUXJ5KVxuICAgIC50aGVuKChjdXJzb3I6IEFycmF5Q3Vyc29yKSA9PiBjdXJzb3IuYWxsKCkpXG4gICAgLmNhdGNoKChlcnJvcjogRXJyb3IpID0+IGxvZ0Vycm9yKHtcbiAgICAgIGFjdGlvbixcbiAgICAgIGNhdGVnb3J5OiBldmVudENhdGVnb3J5LFxuICAgICAgbGFiZWw6ICdkYl9lcnJvcidcbiAgICB9LCBlcnJvciwgY29udGV4dCkudGhlbigoKSA9PiBudWxsKSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVsYXRpb25zaGlwID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxVc2VyUmVsYXRpb25UeXBlPiA9PiB7XG4gIGNvbnN0IGFjdGlvbjogc3RyaW5nID0gJ2dldFJlbGF0aW9uc2hpcCc7XG4gIGNvbnN0IHtkYXRhYmFzZSwgdXNlcklkOiBzZXNzaW9uSWR9ID0gY29udGV4dDtcbiAgY29uc3QgZm9ybWF0VXNlcklkOiBzdHJpbmcgPSBwYXJzZUlkKHVzZXJJZCk7XG4gIGNvbnN0IGFxbFFyeTogQXFsUXVlcnkgPSBhcWxgRk9SIHUsIHIgSU4gSU5CT1VORCAke2B1c2Vycy8ke2Zvcm1hdFVzZXJJZH1gfSBoYXNSZWxhdGlvblxuICAgICAgRklMVEVSIHIuX2Zyb20gPT0gJHtgdXNlcnMvJHtzZXNzaW9uSWR9YH1cbiAgICAgIExJTUlUIDFcbiAgICAgIFJFVFVSTiByYDtcblxuICByZXR1cm4gdXNlRGIoZGF0YWJhc2UpLnF1ZXJ5KGFxbFFyeSlcbiAgICAudGhlbigoY3Vyc29yOiBBcnJheUN1cnNvcikgPT4gY3Vyc29yLm5leHQoKSlcbiAgICAuY2F0Y2goKGVycm9yOiBFcnJvcikgPT4gbG9nRXJyb3Ioe1xuICAgICAgYWN0aW9uLFxuICAgICAgY2F0ZWdvcnk6IGV2ZW50Q2F0ZWdvcnksXG4gICAgICBsYWJlbDogJ2RiX2Vycm9yJ1xuICAgIH0sIGVycm9yLCBjb250ZXh0KS50aGVuKCgpID0+IG51bGwpKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXREaXNwbGF5TmFtZSA9ICh1c2VyOiBVc2VyVHlwZSA9IHt9KTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2ZpcnN0LCBsYXN0LCBuYW1lID0gJycsIHVzZXJuYW1lID0gJyd9ID0gdXNlcjtcbiAgY29uc3QgZnVsbG5hbWU6IHN0cmluZyA9IChbZmlyc3QsIGxhc3RdKS5qb2luKCcgJykudHJpbSgpO1xuXG4gIGlmKCFpc0VtcHR5KG5hbWUpKSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH0gZWxzZSBpZihmdWxsbmFtZSAhPT0gJycpIHtcbiAgICByZXR1cm4gZnVsbG5hbWU7XG4gIH0gZWxzZSBpZighaXNFbXB0eSh1c2VybmFtZSkpIHtcbiAgICByZXR1cm4gdXNlcm5hbWU7XG4gIH1cblxuICByZXR1cm4gJ1Vua25vd24nO1xufTtcbiJdfQ==
|
package/lib/types/auth.d.ts
CHANGED
package/lib/types/users.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export interface UserType {
|
|
|
32
32
|
readonly sub?: string;
|
|
33
33
|
readonly timezone?: string;
|
|
34
34
|
readonly type?: string;
|
|
35
|
-
readonly
|
|
35
|
+
readonly userAccess?: number;
|
|
36
36
|
readonly username?: string;
|
|
37
37
|
readonly zip?: string;
|
|
38
38
|
}
|
|
@@ -53,7 +53,7 @@ export interface AddUserType {
|
|
|
53
53
|
readonly name?: string;
|
|
54
54
|
readonly recaptcha?: string;
|
|
55
55
|
readonly timezone?: string;
|
|
56
|
-
readonly
|
|
56
|
+
readonly userAccess?: string;
|
|
57
57
|
readonly username?: string;
|
|
58
58
|
}
|
|
59
59
|
export interface UserRelationType {
|