8295bd6882
this shall be a progressive process
589 lines
16 KiB
JavaScript
589 lines
16 KiB
JavaScript
(function (global, factory) {
|
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
|
|
typeof define === 'function' && define.amd ? define(factory) :
|
|
(factory());
|
|
}(this, (function () { 'use strict';
|
|
|
|
var classCallCheck = function (instance, Constructor) {
|
|
if (!(instance instanceof Constructor)) {
|
|
throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
};
|
|
|
|
var createClass = function () {
|
|
function defineProperties(target, props) {
|
|
for (var i = 0; i < props.length; i++) {
|
|
var descriptor = props[i];
|
|
descriptor.enumerable = descriptor.enumerable || false;
|
|
descriptor.configurable = true;
|
|
if ("value" in descriptor) descriptor.writable = true;
|
|
Object.defineProperty(target, descriptor.key, descriptor);
|
|
}
|
|
}
|
|
|
|
return function (Constructor, protoProps, staticProps) {
|
|
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
|
if (staticProps) defineProperties(Constructor, staticProps);
|
|
return Constructor;
|
|
};
|
|
}();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var inherits = function (subClass, superClass) {
|
|
if (typeof superClass !== "function" && superClass !== null) {
|
|
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
|
}
|
|
|
|
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
constructor: {
|
|
value: subClass,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
}
|
|
});
|
|
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
var newArrowCheck = function (innerThis, boundThis) {
|
|
if (innerThis !== boundThis) {
|
|
throw new TypeError("Cannot instantiate an arrow function");
|
|
}
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
var possibleConstructorReturn = function (self, call) {
|
|
if (!self) {
|
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
}
|
|
|
|
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
|
};
|
|
|
|
var cov_es50xc93t = function () {
|
|
var path = '/Users/ramitos/dev/yld/joyent-portal/spikes/compose-demo/vendor/docker-compose-client/src/index.js',
|
|
hash = 'f84fef795787745e6663470c5523a8005895771a',
|
|
global = new Function('return this')(),
|
|
gcv = '__coverage__',
|
|
coverageData = {
|
|
path: '/Users/ramitos/dev/yld/joyent-portal/spikes/compose-demo/vendor/docker-compose-client/src/index.js',
|
|
statementMap: {
|
|
'0': {
|
|
start: {
|
|
line: 1,
|
|
column: 19
|
|
},
|
|
end: {
|
|
line: 1,
|
|
column: 37
|
|
}
|
|
},
|
|
'1': {
|
|
start: {
|
|
line: 2,
|
|
column: 25
|
|
},
|
|
end: {
|
|
line: 2,
|
|
column: 42
|
|
}
|
|
},
|
|
'2': {
|
|
start: {
|
|
line: 3,
|
|
column: 17
|
|
},
|
|
end: {
|
|
line: 3,
|
|
column: 40
|
|
}
|
|
},
|
|
'3': {
|
|
start: {
|
|
line: 7,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 7,
|
|
column: 12
|
|
}
|
|
},
|
|
'4': {
|
|
start: {
|
|
line: 9,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 12,
|
|
column: 7
|
|
}
|
|
},
|
|
'5': {
|
|
start: {
|
|
line: 14,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 14,
|
|
column: 34
|
|
}
|
|
},
|
|
'6': {
|
|
start: {
|
|
line: 15,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 15,
|
|
column: 60
|
|
}
|
|
},
|
|
'7': {
|
|
start: {
|
|
line: 15,
|
|
column: 35
|
|
},
|
|
end: {
|
|
line: 15,
|
|
column: 58
|
|
}
|
|
},
|
|
'8': {
|
|
start: {
|
|
line: 17,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 17,
|
|
column: 53
|
|
}
|
|
},
|
|
'9': {
|
|
start: {
|
|
line: 22,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 22,
|
|
column: 45
|
|
}
|
|
},
|
|
'10': {
|
|
start: {
|
|
line: 26,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 26,
|
|
column: 31
|
|
}
|
|
},
|
|
'11': {
|
|
start: {
|
|
line: 31,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 31,
|
|
column: 71
|
|
}
|
|
},
|
|
'12': {
|
|
start: {
|
|
line: 35,
|
|
column: 4
|
|
},
|
|
end: {
|
|
line: 46,
|
|
column: 6
|
|
}
|
|
},
|
|
'13': {
|
|
start: {
|
|
line: 40,
|
|
column: 53
|
|
},
|
|
end: {
|
|
line: 43,
|
|
column: 9
|
|
}
|
|
},
|
|
'14': {
|
|
start: {
|
|
line: 50,
|
|
column: 0
|
|
},
|
|
end: {
|
|
line: 50,
|
|
column: 37
|
|
}
|
|
}
|
|
},
|
|
fnMap: {
|
|
'0': {
|
|
name: '(anonymous_0)',
|
|
decl: {
|
|
start: {
|
|
line: 6,
|
|
column: 2
|
|
},
|
|
end: {
|
|
line: 6,
|
|
column: 3
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 6,
|
|
column: 47
|
|
},
|
|
end: {
|
|
line: 18,
|
|
column: 3
|
|
}
|
|
},
|
|
line: 6
|
|
},
|
|
'1': {
|
|
name: '(anonymous_1)',
|
|
decl: {
|
|
start: {
|
|
line: 15,
|
|
column: 28
|
|
},
|
|
end: {
|
|
line: 15,
|
|
column: 29
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 15,
|
|
column: 35
|
|
},
|
|
end: {
|
|
line: 15,
|
|
column: 58
|
|
}
|
|
},
|
|
line: 15
|
|
},
|
|
'2': {
|
|
name: '(anonymous_2)',
|
|
decl: {
|
|
start: {
|
|
line: 21,
|
|
column: 2
|
|
},
|
|
end: {
|
|
line: 21,
|
|
column: 3
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 21,
|
|
column: 25
|
|
},
|
|
end: {
|
|
line: 23,
|
|
column: 3
|
|
}
|
|
},
|
|
line: 21
|
|
},
|
|
'3': {
|
|
name: '(anonymous_3)',
|
|
decl: {
|
|
start: {
|
|
line: 25,
|
|
column: 2
|
|
},
|
|
end: {
|
|
line: 25,
|
|
column: 3
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 25,
|
|
column: 10
|
|
},
|
|
end: {
|
|
line: 27,
|
|
column: 3
|
|
}
|
|
},
|
|
line: 25
|
|
},
|
|
'4': {
|
|
name: '(anonymous_4)',
|
|
decl: {
|
|
start: {
|
|
line: 29,
|
|
column: 2
|
|
},
|
|
end: {
|
|
line: 29,
|
|
column: 3
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 29,
|
|
column: 39
|
|
},
|
|
end: {
|
|
line: 32,
|
|
column: 3
|
|
}
|
|
},
|
|
line: 29
|
|
},
|
|
'5': {
|
|
name: '(anonymous_5)',
|
|
decl: {
|
|
start: {
|
|
line: 34,
|
|
column: 2
|
|
},
|
|
end: {
|
|
line: 34,
|
|
column: 3
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 34,
|
|
column: 45
|
|
},
|
|
end: {
|
|
line: 47,
|
|
column: 3
|
|
}
|
|
},
|
|
line: 34
|
|
},
|
|
'6': {
|
|
name: '(anonymous_6)',
|
|
decl: {
|
|
start: {
|
|
line: 40,
|
|
column: 44
|
|
},
|
|
end: {
|
|
line: 40,
|
|
column: 45
|
|
}
|
|
},
|
|
loc: {
|
|
start: {
|
|
line: 40,
|
|
column: 53
|
|
},
|
|
end: {
|
|
line: 43,
|
|
column: 9
|
|
}
|
|
},
|
|
line: 40
|
|
}
|
|
},
|
|
branchMap: {
|
|
'0': {
|
|
loc: {
|
|
start: {
|
|
line: 6,
|
|
column: 14
|
|
},
|
|
end: {
|
|
line: 6,
|
|
column: 45
|
|
}
|
|
},
|
|
type: 'default-arg',
|
|
locations: [{
|
|
start: {
|
|
line: 6,
|
|
column: 25
|
|
},
|
|
end: {
|
|
line: 6,
|
|
column: 45
|
|
}
|
|
}],
|
|
line: 6
|
|
}
|
|
},
|
|
s: {
|
|
'0': 0,
|
|
'1': 0,
|
|
'2': 0,
|
|
'3': 0,
|
|
'4': 0,
|
|
'5': 0,
|
|
'6': 0,
|
|
'7': 0,
|
|
'8': 0,
|
|
'9': 0,
|
|
'10': 0,
|
|
'11': 0,
|
|
'12': 0,
|
|
'13': 0,
|
|
'14': 0
|
|
},
|
|
f: {
|
|
'0': 0,
|
|
'1': 0,
|
|
'2': 0,
|
|
'3': 0,
|
|
'4': 0,
|
|
'5': 0,
|
|
'6': 0
|
|
},
|
|
b: {
|
|
'0': [0]
|
|
},
|
|
_coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'
|
|
},
|
|
coverage = global[gcv] || (global[gcv] = {});
|
|
|
|
if (coverage[path] && coverage[path].hash === hash) {
|
|
return coverage[path];
|
|
}
|
|
|
|
coverageData.hash = hash;
|
|
return coverage[path] = coverageData;
|
|
}();
|
|
|
|
var _ref = (++cov_es50xc93t.s[0], require('zerorpc'));
|
|
var Client = _ref.Client;
|
|
|
|
var _ref2 = (++cov_es50xc93t.s[1], require('events'));
|
|
var EventEmitter = _ref2.EventEmitter;
|
|
|
|
var awaitify = (++cov_es50xc93t.s[2], require('apr-awaitify'));
|
|
|
|
var DockerComposeClient = function (_EventEmitter) {
|
|
inherits(DockerComposeClient, _EventEmitter);
|
|
|
|
function DockerComposeClient() {
|
|
var _this2 = this;
|
|
|
|
var endpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (++cov_es50xc93t.b[0][0], 'tcp://0.0.0.0:4242');
|
|
classCallCheck(this, DockerComposeClient);
|
|
++cov_es50xc93t.f[0];
|
|
++cov_es50xc93t.s[3];
|
|
|
|
var _this = possibleConstructorReturn(this, (DockerComposeClient.__proto__ || Object.getPrototypeOf(DockerComposeClient)).call(this));
|
|
|
|
++cov_es50xc93t.s[4];
|
|
|
|
|
|
_this.client = new Client({
|
|
heartbeatInterval: 60 * 60 * 2,
|
|
timeout: 60 * 60 * 2
|
|
});
|
|
|
|
++cov_es50xc93t.s[5];
|
|
_this.client.connect(endpoint);
|
|
++cov_es50xc93t.s[6];
|
|
_this.client.on('error', function (err) {
|
|
newArrowCheck(this, _this2);
|
|
++cov_es50xc93t.f[1];
|
|
++cov_es50xc93t.s[7];
|
|
return _this.emit('error', err);
|
|
}.bind(this));
|
|
|
|
++cov_es50xc93t.s[8];
|
|
_this._invoke = awaitify(_this._invoke.bind(_this));
|
|
return _this;
|
|
}
|
|
|
|
// Why isn't client.connect async with error??
|
|
|
|
|
|
createClass(DockerComposeClient, [{
|
|
key: '_invoke',
|
|
value: function _invoke(name) {
|
|
var _client;
|
|
|
|
++cov_es50xc93t.f[2];
|
|
++cov_es50xc93t.s[9];
|
|
|
|
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
args[_key - 1] = arguments[_key];
|
|
}
|
|
|
|
return (_client = this.client).invoke.apply(_client, [name].concat(args));
|
|
}
|
|
}, {
|
|
key: 'close',
|
|
value: function close() {
|
|
++cov_es50xc93t.f[3];
|
|
++cov_es50xc93t.s[10];
|
|
|
|
return this.client.close();
|
|
}
|
|
}, {
|
|
key: 'provision',
|
|
value: function provision(_ref3) {
|
|
var projectName = _ref3.projectName,
|
|
manifest = _ref3.manifest;
|
|
++cov_es50xc93t.f[4];
|
|
++cov_es50xc93t.s[11];
|
|
|
|
// eslint-disable-next-line camelcase
|
|
return this._invoke('up', { project_name: projectName }, manifest);
|
|
}
|
|
}, {
|
|
key: 'scale',
|
|
value: function scale(_ref4) {
|
|
var _this3 = this;
|
|
|
|
var projectName = _ref4.projectName,
|
|
services = _ref4.services,
|
|
manifest = _ref4.manifest;
|
|
++cov_es50xc93t.f[5];
|
|
++cov_es50xc93t.s[12];
|
|
|
|
return this._invoke('scale', {
|
|
// eslint-disable-next-line camelcase
|
|
project_name: projectName,
|
|
services: Object.keys(services).map(function (name) {
|
|
newArrowCheck(this, _this3);
|
|
++cov_es50xc93t.f[6];
|
|
++cov_es50xc93t.s[13];
|
|
return {
|
|
name: name,
|
|
num: services[name]
|
|
};
|
|
}.bind(this))
|
|
}, manifest);
|
|
}
|
|
}]);
|
|
return DockerComposeClient;
|
|
}(EventEmitter);
|
|
|
|
++cov_es50xc93t.s[14];
|
|
|
|
|
|
module.exports = DockerComposeClient;
|
|
|
|
})));
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBDbGllbnQgfSA9IHJlcXVpcmUoJ3plcm9ycGMnKTtcbmNvbnN0IHsgRXZlbnRFbWl0dGVyIH0gPSByZXF1aXJlKCdldmVudHMnKTtcbmNvbnN0IGF3YWl0aWZ5ID0gcmVxdWlyZSgnYXByLWF3YWl0aWZ5Jyk7XG5cbmNsYXNzIERvY2tlckNvbXBvc2VDbGllbnQgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBjb25zdHJ1Y3RvcihlbmRwb2ludCA9ICd0Y3A6Ly8wLjAuMC4wOjQyNDInKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuY2xpZW50ID0gbmV3IENsaWVudCh7XG4gICAgICBoZWFydGJlYXRJbnRlcnZhbDogKDYwICogNjAgKiAyKSxcbiAgICAgIHRpbWVvdXQ6ICg2MCAqIDYwICogMilcbiAgICB9KTtcblxuICAgIHRoaXMuY2xpZW50LmNvbm5lY3QoZW5kcG9pbnQpO1xuICAgIHRoaXMuY2xpZW50Lm9uKCdlcnJvcicsIGVyciA9PiB0aGlzLmVtaXQoJ2Vycm9yJywgZXJyKSk7XG5cbiAgICB0aGlzLl9pbnZva2UgPSBhd2FpdGlmeSh0aGlzLl9pbnZva2UuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvLyBXaHkgaXNuJ3QgY2xpZW50LmNvbm5lY3QgYXN5bmMgd2l0aCBlcnJvcj8/XG4gIF9pbnZva2UobmFtZSwgLi4uYXJncykge1xuICAgIHJldHVybiB0aGlzLmNsaWVudC5pbnZva2UobmFtZSwgLi4uYXJncyk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuY2xvc2UoKTtcbiAgfVxuXG4gIHByb3Zpc2lvbih7IHByb2plY3ROYW1lLCBtYW5pZmVzdCB9KSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNhbWVsY2FzZVxuICAgIHJldHVybiB0aGlzLl9pbnZva2UoJ3VwJywgeyBwcm9qZWN0X25hbWU6IHByb2plY3ROYW1lIH0sIG1hbmlmZXN0KTtcbiAgfVxuXG4gIHNjYWxlKHsgcHJvamVjdE5hbWUsIHNlcnZpY2VzLCBtYW5pZmVzdCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludm9rZShcbiAgICAgICdzY2FsZScsXG4gICAgICB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjYW1lbGNhc2VcbiAgICAgICAgcHJvamVjdF9uYW1lOiBwcm9qZWN0TmFtZSxcbiAgICAgICAgc2VydmljZXM6IE9iamVjdC5rZXlzKHNlcnZpY2VzKS5tYXAobmFtZSA9PiAoe1xuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgbnVtOiBzZXJ2aWNlc1tuYW1lXVxuICAgICAgICB9KSlcbiAgICAgIH0sXG4gICAgICBtYW5pZmVzdFxuICAgICk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBEb2NrZXJDb21wb3NlQ2xpZW50O1xuIl0sIm5hbWVzIjpbInJlcXVpcmUiLCJDbGllbnQiLCJFdmVudEVtaXR0ZXIiLCJhd2FpdGlmeSIsIkRvY2tlckNvbXBvc2VDbGllbnQiLCJlbmRwb2ludCIsImNsaWVudCIsImNvbm5lY3QiLCJvbiIsImVtaXQiLCJlcnIiLCJfaW52b2tlIiwiYmluZCIsIm5hbWUiLCJhcmdzIiwiaW52b2tlIiwiY2xvc2UiLCJwcm9qZWN0TmFtZSIsIm1hbmlmZXN0IiwicHJvamVjdF9uYW1lIiwic2VydmljZXMiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQ0FBbUJBLFFBQVEsU0FBUjtJQUFYQyxjQUFBQTs7bUNBQ2lCRCxRQUFRLFFBQVI7SUFBakJFLHFCQUFBQTs7QUFDUixJQUFNQyxrQ0FBV0gsUUFBUSxjQUFSLENBQVgsQ0FBTjs7SUFFTUk7OztpQ0FDeUM7OztRQUFqQ0MsUUFBaUMsaUdBQXRCLG9CQUFzQjs7Ozs7Ozs7OztVQUd0Q0MsTUFBTCxHQUFjLElBQUlMLE1BQUosQ0FBVzt5QkFDSCxLQUFLLEVBQUwsR0FBVSxDQURQO2VBRWIsS0FBSyxFQUFMLEdBQVU7S0FGUixDQUFkOzs7VUFLS0ssTUFBTCxDQUFZQyxPQUFaLENBQW9CRixRQUFwQjs7VUFDS0MsTUFBTCxDQUFZRSxFQUFaLENBQWUsT0FBZixFQUF3QixlQUFPOzs7O21CQUFLQyxJQUFMLENBQVUsT0FBVixFQUFtQkMsR0FBbkI7S0FBL0I7OztVQUVLQyxPQUFMLEdBQWVSLFNBQVMsTUFBS1EsT0FBTCxDQUFhQyxJQUFiLE9BQVQsQ0FBZjs7Ozs7Ozs7OzRCQUlNQyxNQUFlOzs7Ozs7d0NBQU5DLElBQU07WUFBQTs7O2FBQ2QsZ0JBQUtSLE1BQUwsRUFBWVMsTUFBWixpQkFBbUJGLElBQW5CLFNBQTRCQyxJQUE1QixFQUFQOzs7OzRCQUdNOzs7O2FBQ0MsS0FBS1IsTUFBTCxDQUFZVSxLQUFaLEVBQVA7Ozs7cUNBR21DO1VBQXpCQyxXQUF5QixTQUF6QkEsV0FBeUI7VUFBWkMsUUFBWSxTQUFaQSxRQUFZOzs7OzthQUU1QixLQUFLUCxPQUFMLENBQWEsSUFBYixFQUFtQixFQUFFUSxjQUFjRixXQUFoQixFQUFuQixFQUFrREMsUUFBbEQsQ0FBUDs7OztpQ0FHeUM7OztVQUFuQ0QsV0FBbUMsU0FBbkNBLFdBQW1DO1VBQXRCRyxRQUFzQixTQUF0QkEsUUFBc0I7VUFBWkYsUUFBWSxTQUFaQSxRQUFZOzs7O2FBQ2xDLEtBQUtQLE9BQUwsQ0FDTCxPQURLLEVBRUw7O3NCQUVnQk0sV0FGaEI7a0JBR1lJLE9BQU9DLElBQVAsQ0FBWUYsUUFBWixFQUFzQkcsR0FBdEIsQ0FBMEIsZ0JBQVM7Ozs7O3NCQUFBO2lCQUV0Q0gsU0FBU1AsSUFBVDs7U0FGRztPQUxQLEVBVUxLLFFBVkssQ0FBUDs7OztFQTlCOEJoQjs7Ozs7QUE2Q2xDc0IsT0FBT0MsT0FBUCxHQUFpQnJCLG1CQUFqQjs7In0=
|