From c02a03719008675b4196e1d1e56a5f5d9d11cf68 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 16 Apr 2015 14:54:40 -0400 Subject: [PATCH 01/60] Revert "Revert "Adding Custom URL Handler for running containers" for 1.6 release" --- .jshintrc | 2 +- src/ContainerHomeFolders.react.js | 34 ++++++++----- src/ContainerList.react.js | 8 +--- src/ContainerStore.js | 20 +++++++- src/Containers.react.js | 48 +++++-------------- src/Main.js | 46 ++++++++++++++---- src/NewContainerPull.react.js | 42 ++++++++++++++++ ...r.react.js => NewContainerSearch.react.js} | 6 +-- src/Routes.js | 24 ++++++---- src/browser.js | 19 ++++++++ styles/new-container.less | 29 +++++++++++ styles/theme.less | 1 - util/Info.plist | 11 +++++ 13 files changed, 210 insertions(+), 80 deletions(-) create mode 100644 src/NewContainerPull.react.js rename src/{NewContainer.react.js => NewContainerSearch.react.js} (95%) diff --git a/.jshintrc b/.jshintrc index daeaf45072..9240a3ae9f 100644 --- a/.jshintrc +++ b/.jshintrc @@ -27,5 +27,5 @@ "jest": true, "pit": true }, - "predef": [ "Promise" ] + "predef": [ "-Promise" ] } diff --git a/src/ContainerHomeFolders.react.js b/src/ContainerHomeFolders.react.js index 1ace6d4e90..2e3e796cc3 100644 --- a/src/ContainerHomeFolders.react.js +++ b/src/ContainerHomeFolders.react.js @@ -7,6 +7,7 @@ var util = require('./Util'); var metrics = require('./Metrics'); var Router = require('react-router'); var ContainerStore = require('./ContainerStore'); +var dialog = require('remote').require('dialog'); var ContainerHomeFolder = React.createClass({ mixins: [Router.State, Router.Navigation], @@ -16,20 +17,27 @@ var ContainerHomeFolder = React.createClass({ }); if (hostVolume.indexOf(process.env.HOME) === -1) { - var volumes = _.clone(this.props.container.Volumes); - var newHostVolume = path.join(util.home(), 'Kitematic', this.props.container.Name, containerVolume); - volumes[containerVolume] = newHostVolume; - var binds = _.pairs(volumes).map(function (pair) { - return pair[1] + ':' + pair[0]; - }); - ContainerStore.updateContainer(this.props.container.Name, { - Binds: binds - }, function (err) { - if (err) { - console.log(err); - return; + dialog.showMessageBox({ + message: 'Enable all volumes to edit files via Finder? This may not work with all database containers.', + buttons: ['Enable Volumes', 'Cancel'] + }, (index) => { + if (index === 0) { + var volumes = _.clone(this.props.container.Volumes); + var newHostVolume = path.join(util.home(), 'Kitematic', this.props.container.Name, containerVolume); + volumes[containerVolume] = newHostVolume; + var binds = _.pairs(volumes).map(function (pair) { + return pair[1] + ':' + pair[0]; + }); + ContainerStore.updateContainer(this.props.container.Name, { + Binds: binds + }, (err) => { + if (err) { + console.log(err); + return; + } + shell.showItemInFolder(newHostVolume); + }); } - shell.showItemInFolder(newHostVolume); }); } else { shell.showItemInFolder(hostVolume); diff --git a/src/ContainerList.react.js b/src/ContainerList.react.js index d2954dc603..1e6f358d6d 100644 --- a/src/ContainerList.react.js +++ b/src/ContainerList.react.js @@ -19,15 +19,9 @@ var ContainerList = React.createClass({ ); }); - var newItem; - if (!this.props.downloading) { - newItem = ; - } else { - newItem = ''; - } return (
    - {newItem} + {containers}
); diff --git a/src/ContainerStore.js b/src/ContainerStore.js index 109a022d19..262ddc6a57 100644 --- a/src/ContainerStore.js +++ b/src/ContainerStore.js @@ -14,6 +14,7 @@ var _progress = {}; var _muted = {}; var _blocked = {}; var _error = null; +var _pending = null; var ContainerStore = assign(Object.create(EventEmitter.prototype), { CLIENT_CONTAINER_EVENT: 'client_container_event', @@ -201,6 +202,10 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { var data = JSON.parse(json); console.log(data); + if (data.status === 'pull' || data.status === 'untag' || data.status === 'delete') { + return; + } + // If the event is delete, remove the container if (data.status === 'destroy') { var container = _.findWhere(_.values(_containers), {Id: data.id}); @@ -226,7 +231,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { } }, init: function (callback) { - // TODO: Load cached data from db on loading this.fetchAllContainers(err => { if (err) { _error = err; @@ -471,6 +475,20 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { }, downloading: function () { return !!_.keys(_placeholders).length; + }, + pending: function () { + return _pending; + }, + setPending: function (repository, tag) { + _pending = { + repository: repository, + tag: tag + }; + this.emit(this.CLIENT_CONTAINER_EVENT, null, 'pending'); + }, + clearPending: function () { + _pending = null; + this.emit(this.CLIENT_CONTAINER_EVENT, null, 'pending'); } }); diff --git a/src/Containers.react.js b/src/Containers.react.js index af151dabca..ab613bb61a 100644 --- a/src/Containers.react.js +++ b/src/Containers.react.js @@ -10,8 +10,6 @@ var metrics = require('./Metrics'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); var machine = require('./DockerMachine'); -var OverlayTrigger = require('react-bootstrap').OverlayTrigger; -var Tooltip = require('react-bootstrap').Tooltip; var util = require('./Util'); var Containers = React.createClass({ @@ -33,10 +31,6 @@ var Containers = React.createClass({ ContainerStore.on(ContainerStore.SERVER_CONTAINER_EVENT, this.update); ContainerStore.on(ContainerStore.CLIENT_CONTAINER_EVENT, this.updateFromClient); - if (this.state.sorted.length) { - this.transitionTo('containerHome', {name: this.state.sorted[0].Name}); - } - ipc.on('application:update-available', () => { this.setState({ updateAvailable: true @@ -48,38 +42,33 @@ var Containers = React.createClass({ ContainerStore.removeListener(ContainerStore.SERVER_CONTAINER_EVENT, this.update); ContainerStore.removeListener(ContainerStore.CLIENT_CONTAINER_EVENT, this.updateFromClient); }, - onDestroy: function () { - if (this.state.sorted.length) { - this.transitionTo('containerHome', {name: this.state.sorted[0].Name}); - } else { - this.transitionTo('containers'); - } - }, updateError: function (err) { this.setState({ error: err }); }, update: function (name, status) { + var sorted = ContainerStore.sorted(); this.setState({ containers: ContainerStore.containers(), - sorted: ContainerStore.sorted(), + sorted: sorted, + pending: ContainerStore.pending(), downloading: ContainerStore.downloading() }); if (status === 'destroy') { - this.onDestroy(); + if (sorted.length) { + this.transitionTo('containerHome', {name: sorted[0].Name}); + } else { + this.transitionTo('containers'); + } } }, updateFromClient: function (name, status) { - this.setState({ - containers: ContainerStore.containers(), - sorted: ContainerStore.sorted(), - downloading: ContainerStore.downloading() - }); + this.update(name, status); if (status === 'create') { this.transitionTo('containerHome', {name: name}); - } else if (status === 'destroy') { - this.onDestroy(); + } else if (status === 'pending' && ContainerStore.pending()) { + this.transitionTo('pull'); } }, handleScroll: function (e) { @@ -162,17 +151,6 @@ var Containers = React.createClass({ ); } - var button; - if (this.state.downloading) { - button = ( - Only one Docker image can be downloaded at a time.}> - - - ); - } else { - button = ; - } - var container = this.getParams().name ? this.state.containers[this.getParams().name] : {}; return (
@@ -182,7 +160,7 @@ var Containers = React.createClass({

Containers

- {button} +
@@ -197,7 +175,7 @@ var Containers = React.createClass({
- + ); diff --git a/src/Main.js b/src/Main.js index 9f582f3588..44235be0bc 100644 --- a/src/Main.js +++ b/src/Main.js @@ -27,14 +27,48 @@ setInterval(function () { router.run(Handler => React.render(, document.body)); +ipc.on('application:quitting', opts => { + if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') { + machine.stop(); + } +}); + +ipc.on('application:open-url', opts => { + var repoRegexp = /[a-z0-9]+(?:[._-][a-z0-9]+)*/; + var parser = document.createElement('a'); + parser.href = opts.url; + + if (parser.protocol !== 'docker:') { + return; + } + + var pathname = parser.pathname.replace('//', ''); + var tokens = pathname.split('/'); + var type = tokens[0]; + var method = tokens[1]; + var repo = tokens.slice(2).join('/'); + + // Only accept official repos for now + if (repo.indexOf('/') !== -1 || !repoRegexp.test(repo)) { + return; + } + + if (type === 'repository' && method === 'run') { + ContainerStore.setPending(repo, 'latest'); + } +}); + SetupStore.setup().then(() => { + if (ContainerStore.pending()) { + router.transitionTo('pull'); + } else { + router.transitionTo('new'); + } Menu.setApplicationMenu(Menu.buildFromTemplate(template())); ContainerStore.on(ContainerStore.SERVER_ERROR_EVENT, (err) => { bugsnag.notify(err); }); - ContainerStore.init(function () { - router.transitionTo('containers'); - }); + ContainerStore.init(function () {}); }).catch(err => { metrics.track('Setup Failed', { step: 'catch', @@ -43,9 +77,3 @@ SetupStore.setup().then(() => { console.log(err); bugsnag.notify(err); }); - -ipc.on('application:quitting', opts => { - if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') { - machine.stop(); - } -}); diff --git a/src/NewContainerPull.react.js b/src/NewContainerPull.react.js new file mode 100644 index 0000000000..bc915b4dda --- /dev/null +++ b/src/NewContainerPull.react.js @@ -0,0 +1,42 @@ +var React = require('react/addons'); +var Router = require('react-router'); +var shell = require('shell'); +var ContainerStore = require('./ContainerStore'); + +module.exports = React.createClass({ + mixins: [Router.Navigation], + handleOpenClick: function () { + var repo = this.props.pending.repository; + if (repo.indexOf('/') === -1) { + shell.openExternal(`https://registry.hub.docker.com/_/${this.props.pending.repository}`); + } else { + shell.openExternal(`https://registry.hub.docker.com/u/${this.props.pending.repository}`); + } + }, + handleCancelClick: function () { + ContainerStore.clearPending(); + this.transitionTo('new'); + }, + handleConfirmClick: function () { + ContainerStore.clearPending(); + ContainerStore.create(this.props.pending.repository, this.props.pending.tag, function () {}); + }, + render: function () { + if (!this.props.pending) { + return false; + } + return ( +
+
+
+

You're about to download and run {this.props.pending.repository}:{this.props.pending.tag}.

+

Please confirm to create the container.

+ +
+
+
+ ); + } +}); diff --git a/src/NewContainer.react.js b/src/NewContainerSearch.react.js similarity index 95% rename from src/NewContainer.react.js rename to src/NewContainerSearch.react.js index 05e772cedd..3ac67f2882 100644 --- a/src/NewContainer.react.js +++ b/src/NewContainerSearch.react.js @@ -10,7 +10,7 @@ var metrics = require('./Metrics'); var _recommended = []; var _searchPromise = null; -var NewContainer = React.createClass({ +module.exports = React.createClass({ getInitialState: function () { return { query: '', @@ -47,7 +47,7 @@ var NewContainer = React.createClass({ loading: true }); - _searchPromise = Promise.delay(200).then(() => Promise.resolve($.get('https://registry.hub.docker.com/v1/search?q=' + query))).cancellable().then(data => { + _searchPromise = Promise.delay(200).cancellable().then(() => Promise.resolve($.get('https://registry.hub.docker.com/v1/search?q=' + query))).then(data => { metrics.track('Searched for Images'); this.setState({ results: data.results, @@ -166,5 +166,3 @@ var NewContainer = React.createClass({ ); } }); - -module.exports = NewContainer; diff --git a/src/Routes.js b/src/Routes.js index eab468fa1c..cfdade8b51 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -9,12 +9,14 @@ var ContainerSettingsGeneral = require('./ContainerSettingsGeneral.react'); var ContainerSettingsPorts = require('./ContainerSettingsPorts.react'); var ContainerSettingsVolumes = require('./ContainerSettingsVolumes.react'); var Preferences = require('./Preferences.react'); -var NewContainer = require('./NewContainer.react'); +var NewContainerSearch = require('./NewContainerSearch.react'); +var NewContainerPull = require('./NewContainerPull.react'); var Router = require('react-router'); var Route = Router.Route; var DefaultRoute = Router.DefaultRoute; var RouteHandler = Router.RouteHandler; +var Redirect = Router.Redirect; var App = React.createClass({ render: function () { @@ -27,17 +29,21 @@ var App = React.createClass({ var routes = ( - - - - - - - + + + + + + + + + + + - + diff --git a/src/browser.js b/src/browser.js index 8722673dcb..ee7810450a 100644 --- a/src/browser.js +++ b/src/browser.js @@ -18,6 +18,13 @@ try { settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); } catch (err) {} + +var openURL = null; +app.on('open-url', function (event, url) { + event.preventDefault(); + openURL = url; +}); + app.on('ready', function () { var mainWindow = new BrowserWindow({ width: size.width || 1000, @@ -65,6 +72,18 @@ app.on('ready', function () { mainWindow.show(); mainWindow.focus(); + if (openURL) { + mainWindow.webContents.send('application:open-url', { + url: openURL + }); + } + app.on('open-url', function (event, url) { + event.preventDefault(); + mainWindow.webContents.send('application:open-url', { + url: url + }); + }); + if (process.env.NODE_ENV !== 'development') { autoUpdater.setFeedUrl('https://updates.kitematic.com/releases/latest?version=' + app.getVersion() + '&beta=' + !!settingsjson.beta); } diff --git a/styles/new-container.less b/styles/new-container.less index a00f9c3eb3..86b60d8903 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -1,3 +1,32 @@ +.new-container-pull { + display: flex; + flex: 1 auto; + align-items: center; + justify-content: center; + .content { + text-align: center; + + .buttons { + margin-top: 30px; + .btn { + margin-left: 10px; + margin-right: 10px; + padding: 8px 18px; + font-size: 14px; + background: white; + font-weight: 300; + } + } + } + h1 { + font-size: 20px; + color: @gray-normal; + font-weight: 400; + text-align: center; + margin-top: 10px; + } +} + .new-container { display: flex; flex: 1 auto; diff --git a/styles/theme.less b/styles/theme.less index 07e8cedd22..d20daccc76 100644 --- a/styles/theme.less +++ b/styles/theme.less @@ -134,7 +134,6 @@ input[type="text"] { font-weight: 400; text-shadow: none; padding: 5px 14px 5px 14px; - height: 30px; cursor: default; &.small { diff --git a/util/Info.plist b/util/Info.plist index 396be69183..5efd29e633 100644 --- a/util/Info.plist +++ b/util/Info.plist @@ -26,5 +26,16 @@ AtomApplication NSSupportsAutomaticGraphicsSwitching + CFBundleURLTypes + + + CFBundleURLSchemes + + docker + + CFBundleURLName + Docker App Protocol + + From 1fa8127145863310ec06311017acca13689bf433 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 16 Apr 2015 15:24:30 -0400 Subject: [PATCH 02/60] Adding unit test for official repo detection --- src/Main.js | 4 ++-- src/Util-test.js | 24 ++++++++++++++++++++++++ src/Util.js | 7 +++++++ 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/Util-test.js diff --git a/src/Main.js b/src/Main.js index 44235be0bc..1385e2791b 100644 --- a/src/Main.js +++ b/src/Main.js @@ -11,6 +11,7 @@ var metrics = require('./Metrics'); var router = require('./Router'); var template = require('./MenuTemplate'); var webUtil = require('./WebUtil'); +var util = require ('./Util'); webUtil.addWindowSizeSaving(); webUtil.addLiveReload(); @@ -34,7 +35,6 @@ ipc.on('application:quitting', opts => { }); ipc.on('application:open-url', opts => { - var repoRegexp = /[a-z0-9]+(?:[._-][a-z0-9]+)*/; var parser = document.createElement('a'); parser.href = opts.url; @@ -49,7 +49,7 @@ ipc.on('application:open-url', opts => { var repo = tokens.slice(2).join('/'); // Only accept official repos for now - if (repo.indexOf('/') !== -1 || !repoRegexp.test(repo)) { + if (repo.indexOf('/') !== -1 || !util.isOfficialRepo(repo)) { return; } diff --git a/src/Util-test.js b/src/Util-test.js new file mode 100644 index 0000000000..f4a0582195 --- /dev/null +++ b/src/Util-test.js @@ -0,0 +1,24 @@ +jest.dontMock('./Util'); +var util = require('./Util'); + +describe('Util', function () { + it('accepts official repo', () => { + expect(util.isOfficialRepo('redis')).toBe(true); + }); + + it('rejects falsy value as official repo', () => { + expect(util.isOfficialRepo(undefined)).toBe(false); + }); + + it('rejects empty repo name', () => { + expect(util.isOfficialRepo('')).toBe(false); + }); + + it('rejects repo with non official namespace', () => { + expect(util.isOfficialRepo('kitematic/html')).toBe(false); + }); + + it('rejects repo with a different registry address', () => { + expect(util.isOfficialRepo('www.myregistry.com/kitematic/html')).toBe(false); + }); +}); diff --git a/src/Util.js b/src/Util.js index a9ab1b2e0d..54df0d2fcf 100644 --- a/src/Util.js +++ b/src/Util.js @@ -44,5 +44,12 @@ module.exports = { } catch (err) {} return settingsjson; }, + isOfficialRepo: function (name) { + if (!name || !name.length) { + return false; + } + var repoRegexp = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/; + return repoRegexp.test(name); + }, webPorts: ['80', '8000', '8080', '3000', '5000', '2368', '9200', '8983'] }; From 2a7d8230d334b28c6cc3b2761acfa6a3ecc47739 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 16 Apr 2015 15:27:14 -0400 Subject: [PATCH 03/60] Removing unnecessary check --- src/Main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Main.js b/src/Main.js index 1385e2791b..8b4d4fbda1 100644 --- a/src/Main.js +++ b/src/Main.js @@ -49,7 +49,7 @@ ipc.on('application:open-url', opts => { var repo = tokens.slice(2).join('/'); // Only accept official repos for now - if (repo.indexOf('/') !== -1 || !util.isOfficialRepo(repo)) { + if (!util.isOfficialRepo(repo)) { return; } From 2e7e64471c42055e7105b0b0e64f27a2752b526e Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 17 Apr 2015 22:26:36 -0400 Subject: [PATCH 04/60] Adding method to filter sensitive data --- src/DockerMachine.js | 6 +++--- src/SetupStore.js | 2 +- src/Util-test.js | 35 +++++++++++++++++++++++++++++++++++ src/Util.js | 12 ++++++++++-- src/WebUtil.js | 13 +++++++++---- styles/setup.less | 3 ++- 6 files changed, 60 insertions(+), 11 deletions(-) create mode 100644 src/Util-test.js diff --git a/src/DockerMachine.js b/src/DockerMachine.js index 326d963574..f015385b64 100644 --- a/src/DockerMachine.js +++ b/src/DockerMachine.js @@ -64,10 +64,10 @@ var DockerMachine = { }, create: function () { - return util.exec([DockerMachine.command(), 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); + return util.exec([DockerMachine.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); }, start: function () { - return util.exec([DockerMachine.command(), 'start', NAME]); + return util.exec([DockerMachine.command(), '-D', 'start', NAME]); }, stop: function () { return util.exec([DockerMachine.command(), 'stop', NAME]); @@ -79,7 +79,7 @@ var DockerMachine = { return util.exec([DockerMachine.command(), 'rm', '-f', NAME]); }, ip: function () { - return util.exec([DockerMachine.command(), 'ip', NAME]).then(stdout => { + return util.exec([DockerMachine.command(), '-D', 'ip', NAME]).then(stdout => { return Promise.resolve(stdout.trim().replace('\n', '')); }); }, diff --git a/src/SetupStore.js b/src/SetupStore.js index b4bf85df9e..fa91fe4ee9 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -187,7 +187,6 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { yield this.updateBinaries(); var steps = yield this.requiredSteps(); for (let step of steps) { - console.log(step.name); _currentStep = step; step.percent = 0; while (true) { @@ -241,6 +240,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { }); bugsnag.notify('SetupError', err.message, { error: err, + stderr: err.message, step: _currentStep }, 'info'); _error = err; diff --git a/src/Util-test.js b/src/Util-test.js new file mode 100644 index 0000000000..9f2a205864 --- /dev/null +++ b/src/Util-test.js @@ -0,0 +1,35 @@ +jest.dontMock('./Util'); +var util = require('./Util'); + +describe('Util', function () { + describe('removeSensitiveData', function () { + it('filters ssh certificate data', function () { + var testdata = String.raw`time="2015-04-17T21:43:47-04:00" level="debug" msg="executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost sudo mkdir -p /var/lib/boot2docker" time="2015-04-17T21:43:47-04:00" level="debug" msg="executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo \"-----BEGIN CERTIFICATE-----\nMIIC+DCCAeKgAwIBAgIRANfIbsa2M94gDY+fBiBiQBkwCwYJKoZIhvcNAQELMBIx\nEDAOBgNVBAoTB2ptb3JnYW4wHhcNMTUwNDE4MDEzODAwWhcNMTgwNDAyMDEzODAw\nWjAPMQ0wCwYDVQQKEwRkZXYyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\nAQEA1yamWT0bk0pRU7eiStjiXe2jkzdeI0SdJZo+bjczkl6kzNW/FmR/OkcP8gHX\nCO3fUCWkR/+rBgz3nuM1Sy0BIUo0EMQGfx17OqIJPXO+BrpCHsXlphHmbQl5bE2Y\nF+bAsGc6WCippw/caNnIHRsb6zAZVYX2AHLYY0fwIDAQABo1AwTjAOBgNVHQ8BAf8EBAMCAKAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwDwYDVR0R\nBAgwBocEwKhjZTALBgkqhkiG9w0BAQsDggEBAKBdD86+kl4X1VMjgGlNYnc42tWa\nbo1iDl/frxiLkfPSc2McAOm3AqX1ao+ynjqq1XTlBLPTQByu/oNZgA724LRJDfdG\nCKGUV8latW7rB1yhf/SZSmyhNjufuWlgCtbkw7Q/oPddzYuSOdDW8tVok9gMC0vL\naqKCWfVKkCmvGH+8/wPrkYmro/f0uwJ8ee+yrbBPlBE/qE+Lqcfr0YcXEDaS8CmL\nDjWg7KNFpA6M+/tFNQhplbjwRsCt7C4bzQu0aBIG5XH1Jr2HrKlLjWdmluPHWUL6\nX5Vh1bslYJzsSdBNZFWSKShZ+gtRpjtV7NynANDJPQNIRhDxAf4uDY9hA2c=\n-----END CERTIFICATE-----\n\" | sudo tee /var/lib/boot2docker/server.pem" + time="2015-04-17T21:43:47-04:00" level="debug" msg="executing: /usr/bin/VBoxManage showvminfo dev2 --machinereadable"`; + expect(util.removeSensitiveData(testdata).indexOf('CERTIFICATE')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('nX5Vh1bslYJzsSdBNZFWSKShZ+gtRpjtV7NynANDJPQNIRhDxAf4uDY9hA2c')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('')).toNotEqual(-1); + }); + + it('filters ssh private key data', function () { + var testdata = String.raw`hZbuxglOtQv2AQqOp/luhZ3Y8kDs4cqRzoA1o+k+LAyjEb+Nk\nGA8=\n-----END CERTIFICATE-----\n\" | sudo tee /var/lib/boot2docker/ca.pem" + time="2015-04-17T21:43:47-04:00" level="debug" msg="executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo \"-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA1yamWT0bk0pRU7eiStjiXe2jkzdeI0SdJZo+bjczkl6kzNW/\nFmR/OkcP8gHXCO3fUCWkR/+rBgz3nuM1Sy0BIUo0EMQGfx17OqIJPXO+BrpCHsXl\nphHmbQl5bE2YF+bAsGc6WCippczQIu5bPweeAkR1WdlkhD08tHD4o1ESe09fXx5G\nXcZFfd2xQWdvAJX3fTuGBk3IMEF2fye5b69zUyVDGbTylyjKDOi9Xxdlc4y9cOPw\nzcwQFCOJiCBYlxDO0fbinA+KigCs29Dd5U3oXbloLr3JQTE/SkxFh9W5rkX8ysY4\n2h3EnR7YIBWt/caNnIHRsb6zAZVYX2AHLYY0fwIDAQABAoIBAQDKF3TTh/G59WnU\n4D2iXnyqy8gFRVG4gP+3TV3s+w8HIr1b5j6akwVqwUs5//5zVbSYPPNF6eJESbPi\nW/s4ROq10VR8lxSfHBsfJQrW3TwWZ6gp7atbxZ6Stv6F+5CsisReLmiAXJmVsn+j\nAA9Xchk6egFcxzWCfV7jAuaZyVI53cclepm/xkGjPwrfXr+nA+UMvO6DllC6IcBF\no4+O0jVtzdMecZnQk6nWxNJjurodTTQakrNAqSMgBshn48wf3N35b+p8RtTzLJ8L\nYuHkv6OKMITIazcHadjsN8icGgIGf2BJ1CRje7j0Yzow8jwY+Pet3yxKSfXED89B\nD34AEXl5AoGBANi17og+yPFOWURUrksO/QyzlOtXcQdQu8SmkUj4ACoqF0gegQIb\nC/DNMcYxJAsPPgw/t5Ws/af8DuatYguGukmekYREVjc7DS/hPWDZzeavPd95cOw0\nuMPgJE76HJ3BSYcp1f8WKcN+xDket9CF6Qz+VX5aQSUEc333V5h7D/nzAoGBAP4o\nVCvQu5eKYmDhMFSOA0+Qm3EECRqMLoH6kpEcbMjM8+kOeI0fUuE3CX8nzs7P4py/\n0IFj2Yxl578NHJOjCpbB1UKtxLkmDH42wXXzrWJXRaWXC93dh1sl0aB6qE25FtSD\nzjYh4y1DA/t6y95YRrIqC2WhIU7eigIoujmtOFJFAoGABSKiiWX7ewRhRyY+jxbG\n1lM3FzCWRBccq/dKgBEoZ9dhf9sBMZyUdttV751gfkaZMM8duZVE2YM2ky7OoPlL\nVs1EI38/D8X9dQIAY1gl8e57J92H2IETU8ju81Qn83EOHf7WzFmpGbHaUoQw1Ocn\nc6BfREQ9QPRPDFAdKkbYRRMCgYEAl44k4xvNQUhb8blWwJUOlFt+1Z26cAI3mXp5\n+94fYH4W1Fq0uDJ9kZ7oItLyF5EPaLlY9E8+YuJBl0OSTtdicROUv/Yu4Nk3ievM\n4TE1qvavqVaw1NRM6qVao3+A7Rf57S/Lv6vldBAKR+OpviSVw5gew7OZ0RYS5caz\nhcEtXKECgYAJb7t67nococm0PsRe8Xv1SQOQjetrhzwzD1PLOSC9TrzwA22/ZktZ\neu/qfvYgOPT4LkDGVCzn8J+TAcUVnIvAnJRQTsBu55uiL8YC5jZQ8E1hBf7kskMq\nh16WD19Djv3WhfBNXBxvnagDDWw5DxmiiKzSf0k3QDDoX7wjDAV1dQ==\n-----END RSA PRIVATE KEY-----\n\" | sudo tee /var/lib/boot2docker/server-key.pem" + time="2015-04-17T21:43:47-04:00" level="debug" msg="executing: ssh -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo \"-----BEGIN CERTIFICATE-----\nMIIC+DCCAeKgAwIBAgIRANfIbsa2M94gDY+fBiBiQBkwCwYJKoZIhvcNAQELMBIx\nEDAOBg`; + expect(util.removeSensitiveData(testdata).indexOf('PRIVATE')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('94fYH4W1Fq0uDJ9kZ7oItLyF5EPaLlY9E8+YuJBl0OSTtdicROUv')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('')).toNotEqual(-1); + }); + + it('filters username data', function () { + var testdata = String.raw`-o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; + expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('')).toNotEqual(-1); + }); + + it ('returns input if empty or not a string', function () { + expect(util.removeSensitiveData('')).toBe(''); + expect(util.removeSensitiveData(1)).toBe(1); + expect(util.removeSensitiveData(undefined)).toBe(undefined); + }); + }); +}); diff --git a/src/Util.js b/src/Util.js index a9ab1b2e0d..c2e38ed0f3 100644 --- a/src/Util.js +++ b/src/Util.js @@ -8,9 +8,9 @@ module.exports = { options = options || {}; return new Promise((resolve, reject) => { exec(args, options, (stderr, stdout, code) => { + console.log(stderr); if (code) { - var cmd = Array.isArray(args) ? args.join(' ') : args; - reject(new Error(cmd + ' returned non zero exit code\nstdout:' + stdout + '\nstderr:' + stderr)); + reject(new Error(stderr)); } else { resolve(stdout); } @@ -31,6 +31,14 @@ module.exports = { }); return acc; }, + removeSensitiveData: function (str) { + if (!str || str.length === 0 || typeof str !== 'string' ) { + return str; + } + return str.replace(/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----/mg, '') + .replace(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----/mg, '') + .replace(/\/Users\/.*\//mg, ''); + }, resourceDir: function () { return process.env.RESOURCES_PATH; }, diff --git a/src/WebUtil.js b/src/WebUtil.js index dca2a9e67d..544ea1a7f9 100644 --- a/src/WebUtil.js +++ b/src/WebUtil.js @@ -35,10 +35,15 @@ var WebUtil = { }; bugsnag.beforeNotify = function(payload) { - var re = new RegExp(util.home().replace(/\s+/g, '\\s+'), 'g'); - payload.stacktrace = payload.stacktrace.replace(/%20/g, ' ').replace(re, ''); - payload.context = payload.context.replace(/%20/g, ' ').replace(re, ''); - payload.file = payload.file.replace(/%20/g, ' ').replace(re, ''); + payload.stacktrace = util.removeSensitiveData(payload.stacktrace); + payload.context = util.removeSensitiveData(payload.context); + payload.file = util.removeSensitiveData(payload.file); + + for(var key in payload.metaData) { + payload.metaData[key] = util.removeSensitiveData(payload.metaData[key]); + } + + payload.message = ''; payload.url = ''; }; } diff --git a/styles/setup.less b/styles/setup.less index 761fe6b4fb..ea89d8636c 100644 --- a/styles/setup.less +++ b/styles/setup.less @@ -59,7 +59,8 @@ background-color: lighten(@brand-negative, 32%); padding: 10px; border-radius: 4px; - -webkit-user-select: text; + max-height: 400px; + overflow: auto; } } } From b8b6f94d6fb2f116fe6a83b6d10bb1a03864964b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 17 Apr 2015 22:28:46 -0400 Subject: [PATCH 05/60] Removing unnecessary log --- src/Util.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Util.js b/src/Util.js index c2e38ed0f3..352569ad6e 100644 --- a/src/Util.js +++ b/src/Util.js @@ -8,7 +8,6 @@ module.exports = { options = options || {}; return new Promise((resolve, reject) => { exec(args, options, (stderr, stdout, code) => { - console.log(stderr); if (code) { reject(new Error(stderr)); } else { From 3a116d83cc18a93b054d76f371332b1473e23b1d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 19 Apr 2015 21:25:41 -0400 Subject: [PATCH 06/60] removing flaky test case --- src/SetupStore-test.js | 9 --------- src/SetupStore.js | 18 ++++++------------ src/Util-test.js | 6 +++--- src/Util.js | 5 +++-- src/WebUtil.js | 8 +++++--- 5 files changed, 17 insertions(+), 29 deletions(-) diff --git a/src/SetupStore-test.js b/src/SetupStore-test.js index c956440170..6a62e4bb64 100644 --- a/src/SetupStore-test.js +++ b/src/SetupStore-test.js @@ -60,15 +60,6 @@ describe('SetupStore', function () { describe('init step', function () { virtualBox.vmdestroy.mockReturnValue(Promise.resolve()); - pit('inintializes the machine vm if it does not exist', function () { - util.home.mockReturnValue('home'); - machine.name.mockReturnValue('name'); - machine.exists.mockReturnValue(Promise.resolve(false)); - machine.create.mockReturnValue(Promise.resolve()); - return setupStore.steps().init.run().then(() => { - expect(machine.create).toBeCalled(); - }); - }); pit('upgrades the vm if it exists and is out of date', function () { machine.exists.mockReturnValue(Promise.resolve(true)); diff --git a/src/SetupStore.js b/src/SetupStore.js index fa91fe4ee9..f85a4d89aa 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -10,7 +10,6 @@ var util = require('./Util'); var assign = require('object-assign'); var metrics = require('./Metrics'); var bugsnag = require('bugsnag-js'); -var rimraf = require('rimraf'); var docker = require('./Docker'); var _currentStep = null; @@ -66,15 +65,11 @@ var _steps = [{ setupUtil.simulateProgress(this.seconds, progressCallback); yield virtualBox.vmdestroy('kitematic-vm'); var exists = yield machine.exists(); - if (!exists || (yield machine.state()) === 'Error') { - try { - yield machine.rm(); - yield machine.create(); - } catch (err) { - rimraf.sync(path.join(util.home(), '.docker', 'machine', 'machines', machine.name())); - yield machine.create(); - } - return; + if (!exists) { + yield machine.create(); + } else if ((yield machine.state()) === 'Error') { + yield machine.rm(); + yield machine.create(); } var isoversion = machine.isoversion(); @@ -240,8 +235,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { }); bugsnag.notify('SetupError', err.message, { error: err, - stderr: err.message, - step: _currentStep + output: err.message }, 'info'); _error = err; this.emit(this.ERROR_EVENT); diff --git a/src/Util-test.js b/src/Util-test.js index 9f2a205864..6a5ba0797d 100644 --- a/src/Util-test.js +++ b/src/Util-test.js @@ -21,9 +21,9 @@ describe('Util', function () { }); it('filters username data', function () { - var testdata = String.raw`-o UserKnownHostsFile=/dev/null -o ConnectionAttempts=30 -o LogLevel=quiet -p 50483 -i /Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; - expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed')).toEqual(-1); - expect(util.removeSensitiveData(testdata).indexOf('')).toNotEqual(-1); + var testdata = String.raw`/Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; + expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); }); it ('returns input if empty or not a string', function () { diff --git a/src/Util.js b/src/Util.js index 352569ad6e..e68d3b953c 100644 --- a/src/Util.js +++ b/src/Util.js @@ -9,7 +9,8 @@ module.exports = { return new Promise((resolve, reject) => { exec(args, options, (stderr, stdout, code) => { if (code) { - reject(new Error(stderr)); + var cmd = Array.isArray(args) ? args.join(' ') : args; + reject(new Error(cmd + ' returned non zero exit code. Stderr: ' + stderr)); } else { resolve(stdout); } @@ -36,7 +37,7 @@ module.exports = { } return str.replace(/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----/mg, '') .replace(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----/mg, '') - .replace(/\/Users\/.*\//mg, ''); + .replace(/\/Users\/[a-z_][a-z0-9_]+\//mg, '/Users//'); }, resourceDir: function () { return process.env.RESOURCES_PATH; diff --git a/src/WebUtil.js b/src/WebUtil.js index 544ea1a7f9..8eb4cfcb0d 100644 --- a/src/WebUtil.js +++ b/src/WebUtil.js @@ -38,13 +38,15 @@ var WebUtil = { payload.stacktrace = util.removeSensitiveData(payload.stacktrace); payload.context = util.removeSensitiveData(payload.context); payload.file = util.removeSensitiveData(payload.file); + payload.message = util.removeSensitiveData(payload.message); + payload.url = util.removeSensitiveData(payload.url); + payload.name = util.removeSensitiveData(payload.name); + payload.file = util.removeSensitiveData(payload.file); for(var key in payload.metaData) { payload.metaData[key] = util.removeSensitiveData(payload.metaData[key]); } - - payload.message = ''; - payload.url = ''; + console.log(payload); }; } }, From 64aa7fc13ffc73469d8fc684853a242c44be229c Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 19 Apr 2015 21:27:08 -0400 Subject: [PATCH 07/60] removing unnecessary console log --- src/SetupStore.js | 1 + src/WebUtil.js | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SetupStore.js b/src/SetupStore.js index f85a4d89aa..d8e2b88661 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -237,6 +237,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { error: err, output: err.message }, 'info'); + err.message = util.removeSensitiveData(err.message); _error = err; this.emit(this.ERROR_EVENT); yield this.pause(); diff --git a/src/WebUtil.js b/src/WebUtil.js index 8eb4cfcb0d..bbd63a99fe 100644 --- a/src/WebUtil.js +++ b/src/WebUtil.js @@ -46,7 +46,6 @@ var WebUtil = { for(var key in payload.metaData) { payload.metaData[key] = util.removeSensitiveData(payload.metaData[key]); } - console.log(payload); }; } }, From 24b61c2684f23d1ba16f656b9a2cc111b81b32dc Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 19 Apr 2015 21:29:36 -0400 Subject: [PATCH 08/60] exit setup after early create --- src/SetupStore.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SetupStore.js b/src/SetupStore.js index d8e2b88661..22cd6346cc 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -67,9 +67,11 @@ var _steps = [{ var exists = yield machine.exists(); if (!exists) { yield machine.create(); + return; } else if ((yield machine.state()) === 'Error') { yield machine.rm(); yield machine.create(); + return; } var isoversion = machine.isoversion(); From 3d5e5a4992714f2012dd373b21cc0ac6e8e498a0 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 19 Apr 2015 21:35:21 -0400 Subject: [PATCH 09/60] bumping to 0.5.16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 99fbf376b2..f20d85264c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.15", + "version": "0.5.16", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From e7b2cabf5c97659158c3a4e12b507129bca73a2b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 09:43:15 -0400 Subject: [PATCH 10/60] Fix bug where auto update would throw an exception when notifying app on quit --- package.json | 2 +- src/Main.js | 4 ++-- src/browser.js | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index f20d85264c..d3d81e2e2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.16", + "version": "0.5.17", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", diff --git a/src/Main.js b/src/Main.js index 9f582f3588..9637fce357 100644 --- a/src/Main.js +++ b/src/Main.js @@ -44,8 +44,8 @@ SetupStore.setup().then(() => { bugsnag.notify(err); }); -ipc.on('application:quitting', opts => { - if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') { +ipc.on('application:quitting', () => { + if (localStorage.getItem('settings.closeVMOnQuit') === 'true') { machine.stop(); } }); diff --git a/src/browser.js b/src/browser.js index 8722673dcb..2eafbf8e5c 100644 --- a/src/browser.js +++ b/src/browser.js @@ -45,9 +45,9 @@ app.on('ready', function () { }); app.on('before-quit', function () { - mainWindow.webContents.send('application:quitting', { - updating: updating - }); + if (!updating) { + mainWindow.webContents.send('application:quitting'); + } }); mainWindow.webContents.on('new-window', function (e) { From 7031814cc46c7fa6b43ef42136f3515a44976152 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 10:43:31 -0400 Subject: [PATCH 11/60] Include boot2docker iso in distribution --- .gitignore | 1 + src/DockerMachine.js | 3 ++- util/deps | 22 +++++++++++++++------- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index ca23db9e8a..e0b652d4f3 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ identity* # Resources resources/docker-* +resources/boot2docker-* # Cache cache diff --git a/src/DockerMachine.js b/src/DockerMachine.js index f015385b64..6601fafb3a 100644 --- a/src/DockerMachine.js +++ b/src/DockerMachine.js @@ -64,7 +64,8 @@ var DockerMachine = { }, create: function () { - return util.exec([DockerMachine.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); + var dockerversion = util.packagejson()['docker-version']; + return util.exec([DockerMachine.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-boot2docker-url', path.join(process.cwd(), 'resources', 'boot2docker-' + dockerversion + '.iso'), '--virtualbox-memory', '2048', NAME]); }, start: function () { return util.exec([DockerMachine.command(), '-D', 'start', NAME]); diff --git a/util/deps b/util/deps index ecd9322500..fc06cb505d 100755 --- a/util/deps +++ b/util/deps @@ -3,19 +3,20 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" BASE=$DIR/.. DOCKER_MACHINE_CLI_VERSION=$(node -pe "JSON.parse(process.argv[1])['docker-machine-version']" "$(cat $BASE/package.json)") DOCKER_MACHINE_CLI_FILE=docker-machine-$DOCKER_MACHINE_CLI_VERSION -DOCKER_CLI_VERSION=$(node -pe "JSON.parse(process.argv[1])['docker-version']" "$(cat $BASE/package.json)") -DOCKER_CLI_FILE=docker-$DOCKER_CLI_VERSION +DOCKER_VERSION=$(node -pe "JSON.parse(process.argv[1])['docker-version']" "$(cat $BASE/package.json)") +DOCKER_CLI_FILE=docker-$DOCKER_VERSION +BOOT2DOCKER_FILE=boot2docker-$DOCKER_VERSION.iso pushd $BASE/resources > /dev/null if [ ! -f $DOCKER_CLI_FILE ]; then echo "-----> Downloading Docker CLI..." rm -rf docker-* - curl -L -o docker-$DOCKER_CLI_VERSION.tgz https://get.docker.com/builds/Darwin/x86_64/docker-$DOCKER_CLI_VERSION.tgz - tar xvzf docker-$DOCKER_CLI_VERSION.tgz --strip=3 - rm docker-$DOCKER_CLI_VERSION.tgz - mv docker docker-$DOCKER_CLI_VERSION - chmod +x $DOCKER_CLI_FILE + curl -L -o docker-$DOCKER_VERSION.tgz https://get.docker.com/builds/Darwin/x86_64/docker-$DOCKER_VERSION.tgz + tar xvzf docker-$DOCKER_VERSION.tgz --strip=3 + rm docker-$DOCKER_VERSION.tgz + mv docker docker-$DOCKER_VERSION + chmod +x $DOCKER_VERSION fi if [ ! -f $DOCKER_MACHINE_CLI_FILE ]; then @@ -25,4 +26,11 @@ if [ ! -f $DOCKER_MACHINE_CLI_FILE ]; then chmod +x $DOCKER_MACHINE_CLI_FILE fi +if [ ! -f $BOOT2DOCKER_FILE ]; then + echo "-----> Downloading Boot2Docker iso..." + rm -rf boot2docker-* + curl -L -o $BOOT2DOCKER_FILE https://github.com/boot2docker/boot2docker/releases/download/v$DOCKER_VERSION/boot2docker.iso +fi + + popd > /dev/null From 9064ba75e054f759779f79632bf1e219e1dfa919 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 10:48:14 -0400 Subject: [PATCH 12/60] Allow downloading multiple containers --- src/ContainerList.react.js | 8 +------- src/Containers.react.js | 13 +------------ 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/ContainerList.react.js b/src/ContainerList.react.js index d2954dc603..aca50faa7c 100644 --- a/src/ContainerList.react.js +++ b/src/ContainerList.react.js @@ -19,15 +19,9 @@ var ContainerList = React.createClass({ ); }); - var newItem; - if (!this.props.downloading) { - newItem = ; - } else { - newItem = ''; - } return (
    - {newItem} + {containers}
); diff --git a/src/Containers.react.js b/src/Containers.react.js index c0275e22cd..b75d9ea4c9 100644 --- a/src/Containers.react.js +++ b/src/Containers.react.js @@ -164,17 +164,6 @@ var Containers = React.createClass({ ); } - var button; - if (this.state.downloading) { - button = ( - Only one Docker image can be downloaded at a time.}> - - - ); - } else { - button = ; - } - var container = this.context.router.getCurrentParams().name ? this.state.containers[this.context.router.getCurrentParams().name] : {}; return (
@@ -184,7 +173,7 @@ var Containers = React.createClass({

Containers

- {button} +
From f97deb9f7c6558083d04a3d427460c633b77634d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 12:07:52 -0400 Subject: [PATCH 13/60] Fix v1 progress --- src/ContainerHome.react.js | 3 ++- src/ContainerStore.js | 35 ++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/ContainerHome.react.js b/src/ContainerHome.react.js index 9495a2f235..4804f87783 100644 --- a/src/ContainerHome.react.js +++ b/src/ContainerHome.react.js @@ -82,7 +82,8 @@ var ContainerHome = React.createClass({
); } else if (this.props.container && this.props.container.State.Downloading) { - if (this.state.progress) { + if (this.state.progress !== undefined) { + console.log(this.state.progress); body = (

Downloading Image

diff --git a/src/ContainerStore.js b/src/ContainerStore.js index 109a022d19..583ba410b1 100644 --- a/src/ContainerStore.js +++ b/src/ContainerStore.js @@ -32,7 +32,7 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { return image.Id.slice(0, 12); })); var layersToDownload = layerSizes.filter(function (layerSize) { - return !existingIds.has(layerSize.Id); + return !existingIds.has(layerSize.Id) && !isNaN(layerSize.size); }); var totalBytes = layersToDownload.map(function (s) { return s.size; }).reduce(function (pv, sv) { return pv + sv; }, 0); @@ -54,7 +54,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { stream.on('data', str => { var data = JSON.parse(str); - console.log(data); if (data.error) { _error = data.error; @@ -72,20 +71,26 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { } else if (data.status === 'Downloading') { var current = data.progressDetail.current; var total = data.progressDetail.total; - var layerFraction = current / total; - layerProgress[data.id] = layerFraction; + if (total <= 0) { + layerProgress[data.id] = 0; + } else { + layerProgress[data.id] = current / total; + } + + var chunks = layersToDownload.map(function (s) { + var progress = layerProgress[s.Id] || 0; + return progress * s.size; + }); + + var totalReceived = chunks.reduce(function (pv, sv) { + return pv + sv; + }, 0); + + console.log(totalReceived, totalBytes); + + var totalProgress = totalReceived / totalBytes; + progressCallback(totalProgress); } - - var chunks = layersToDownload.map(function (s) { - return layerProgress[s.Id] * s.size; - }); - - var totalReceived = chunks.reduce(function (pv, sv) { - return pv + sv; - }, 0); - - var totalProgress = totalReceived / totalBytes; - progressCallback(totalProgress); }); stream.on('end', function () { callback(_error); From 9f130c4caa6aed774ad2a4cc75021553cf7bc548 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 12:09:44 -0400 Subject: [PATCH 14/60] Removing unnecessary log --- src/ContainerHome.react.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ContainerHome.react.js b/src/ContainerHome.react.js index 4804f87783..e2cc93f785 100644 --- a/src/ContainerHome.react.js +++ b/src/ContainerHome.react.js @@ -83,7 +83,6 @@ var ContainerHome = React.createClass({ ); } else if (this.props.container && this.props.container.State.Downloading) { if (this.state.progress !== undefined) { - console.log(this.state.progress); body = (

Downloading Image

From 048abff77ee9dde22f6204b35c9068ff8dec2432 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 13:58:21 -0400 Subject: [PATCH 15/60] Bumping to 0.5.18 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d3d81e2e2f..ee476263b1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.17", + "version": "0.5.18", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 2521b28c4bf42ba2151bc0471581a20b78bf5680 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 14:15:52 -0400 Subject: [PATCH 16/60] Fixing small bug where downloading an image would not show Downloading --- src/ContainerHome.react.js | 22 ++++++++++++++++------ src/ContainerStore.js | 5 +++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/ContainerHome.react.js b/src/ContainerHome.react.js index e2cc93f785..0e458e49d9 100644 --- a/src/ContainerHome.react.js +++ b/src/ContainerHome.react.js @@ -83,12 +83,22 @@ var ContainerHome = React.createClass({ ); } else if (this.props.container && this.props.container.State.Downloading) { if (this.state.progress !== undefined) { - body = ( -
-

Downloading Image

- -
- ); + if (this.state.progress > 0) { + body = ( +
+

Downloading Image

+ +
+ ); + } else { + body = ( +
+

Downloading Image

+ +
+ ); + } + } else if (this.state.blocked) { body = (
diff --git a/src/ContainerStore.js b/src/ContainerStore.js index 583ba410b1..001474bab0 100644 --- a/src/ContainerStore.js +++ b/src/ContainerStore.js @@ -72,7 +72,8 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { var current = data.progressDetail.current; var total = data.progressDetail.total; if (total <= 0) { - layerProgress[data.id] = 0; + progressCallback(0); + return; } else { layerProgress[data.id] = current / total; } @@ -177,6 +178,7 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { stream.on('data', function () {}); stream.on('end', function () { delete _placeholders[container.Name]; + delete _progress[container.Name]; localStorage.setItem('store.placeholders', JSON.stringify(_placeholders)); self._createContainer(container.Name, {Image: container.Config.Image}, err => { if (err) { @@ -316,7 +318,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { this.emit(this.CLIENT_CONTAINER_EVENT, containerName, 'create'); _muted[containerName] = true; - _progress[containerName] = 0; this._pullImage(repository, tag, err => { if (err) { _error = err; From ccdb43848282d1b24d981bf938241a14971778cd Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 20 Apr 2015 16:50:07 -0400 Subject: [PATCH 17/60] removing unnecessary log --- src/ContainerStore.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ContainerStore.js b/src/ContainerStore.js index 001474bab0..ef9bfb28a9 100644 --- a/src/ContainerStore.js +++ b/src/ContainerStore.js @@ -87,8 +87,6 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { return pv + sv; }, 0); - console.log(totalReceived, totalBytes); - var totalProgress = totalReceived / totalBytes; progressCallback(totalProgress); } From a384f09a69e41058c982afa865d0e3db2bcb2116 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 11:45:27 -0400 Subject: [PATCH 18/60] fixing incorrect require --- src/ContainerDetailsSubheader.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ContainerDetailsSubheader.react.js b/src/ContainerDetailsSubheader.react.js index 377dfcfa72..8f9b2f3879 100644 --- a/src/ContainerDetailsSubheader.react.js +++ b/src/ContainerDetailsSubheader.react.js @@ -9,7 +9,7 @@ var ContainerUtil = require('./ContainerUtil'); var machine = require('./DockerMachine'); var RetinaImage = require('react-retina-image'); var webPorts = require('./Util').webPorts; -var classNames = require('classNames'); +var classNames = require('classnames'); var ContainerDetailsSubheader = React.createClass({ contextTypes: { From 570ba4135408f21a9f7fe1a7d92a88edcc18a254 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 13:16:47 -0400 Subject: [PATCH 19/60] Filter data before --- src/SetupStore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SetupStore.js b/src/SetupStore.js index 22cd6346cc..2e40f8fd71 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -231,6 +231,7 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { metrics.track('Setup Finished'); break; } catch (err) { + err.message = util.removeSensitiveData(err.message); metrics.track('Setup Failed', { step: _currentStep, message: err.message @@ -239,7 +240,6 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { error: err, output: err.message }, 'info'); - err.message = util.removeSensitiveData(err.message); _error = err; this.emit(this.ERROR_EVENT); yield this.pause(); From 5187e5ae158a0d75e25c9a358b221e3d738cba86 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 13:17:36 -0400 Subject: [PATCH 20/60] Bump to 0.5.19 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ee476263b1..9f3e0e5d1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.18", + "version": "0.5.19", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From b4148d227c61ded8263d3eef70da204516526d03 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 13:17:36 -0400 Subject: [PATCH 21/60] Bump to 0.5.19 --- package.json | 2 +- src/SetupStore.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index ee476263b1..9f3e0e5d1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.18", + "version": "0.5.19", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", diff --git a/src/SetupStore.js b/src/SetupStore.js index 2e40f8fd71..ec72828e93 100644 --- a/src/SetupStore.js +++ b/src/SetupStore.js @@ -234,7 +234,6 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { err.message = util.removeSensitiveData(err.message); metrics.track('Setup Failed', { step: _currentStep, - message: err.message }); bugsnag.notify('SetupError', err.message, { error: err, From a0a58dd0ac189873ffdc0b46a193089420a593d8 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 19:58:38 -0400 Subject: [PATCH 22/60] Remove react processing --- gulpfile.js | 1 - util/preprocessor.js | 4 +--- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index ae62be14b2..ac3590581a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -45,7 +45,6 @@ gulp.task('js', function () { this.emit('end'); })) .pipe(sourcemaps.init()) - .pipe(react()) .pipe(babel({blacklist: ['regenerator']})) .pipe(sourcemaps.write()) .pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.appFilename + '/Contents/Resources/app/build')) diff --git a/util/preprocessor.js b/util/preprocessor.js index d989ecc0a6..eb39f8b3f1 100644 --- a/util/preprocessor.js +++ b/util/preprocessor.js @@ -1,9 +1,7 @@ -var ReactTools = require('react-tools'); - module.exports = { process: function(src, filename) { if (filename.indexOf('node_modules') === -1) { - var res = ReactTools.transform(require('babel').transform(src).code); + var res = require('babel').transform(src).code; if (filename.indexOf('-test') !== -1) { res = 'require(\'babel/polyfill\');' + res; } From 0876685808531c8689b9b84eb349bc1b23af0e97 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 20:29:07 -0400 Subject: [PATCH 23/60] Update gulpfile.js --- gulpfile.js | 1 - 1 file changed, 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index ac3590581a..95724a083d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -11,7 +11,6 @@ var less = require('gulp-less'); var livereload = require('gulp-livereload'); var packagejson = require('./package.json'); var plumber = require('gulp-plumber'); -var react = require('gulp-react'); var runSequence = require('run-sequence'); var shell = require('gulp-shell'); var sourcemaps = require('gulp-sourcemaps'); From b130d34f0706e2f46f90189fbfce4da9cbfd1ca3 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 20:29:44 -0400 Subject: [PATCH 24/60] Update package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 9f3e0e5d1e..3d364642a7 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,6 @@ "gulp-less": "^3.0.2", "gulp-livereload": "^3.8.0", "gulp-plumber": "^1.0.0", - "gulp-react": "^3.0.1", "gulp-shell": "^0.4.1", "gulp-sourcemaps": "^1.5.2", "gulp-util": "^3.0.4", From 0a0cf3f64fef25b87e9099abb29e256067c82399 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 20:39:43 -0400 Subject: [PATCH 25/60] Moving to a flux-like folder structure --- gulpfile.js | 1 + src/DockerMachine.js | 4 ++-- src/Main.js | 6 ++--- src/MenuTemplate.js | 2 +- src/Metrics.js | 2 +- src/Routes.js | 22 +++++++++---------- src/VirtualBox.js | 2 +- src/Virtualbox-test.js | 2 +- .../ContainerDetails.react.js | 0 .../ContainerDetailsHeader.react.js | 0 .../ContainerDetailsSubheader.react.js | 10 ++++----- src/{ => components}/ContainerHome.react.js | 6 ++--- .../ContainerHomeFolders.react.js | 6 ++--- .../ContainerHomeLogs.react.js | 4 ++-- .../ContainerHomePreview.react.js | 8 +++---- src/{ => components}/ContainerList.react.js | 0 .../ContainerListItem.react.js | 4 ++-- .../ContainerListNewItem.react.js | 4 ++-- src/{ => components}/ContainerLogs.react.js | 2 +- .../ContainerSettings.react.js | 0 .../ContainerSettingsGeneral.react.js | 7 +++--- .../ContainerSettingsPorts.react.js | 8 +++---- .../ContainerSettingsVolumes.react.js | 4 ++-- src/{ => components}/Containers.react.js | 10 ++++----- src/{ => components}/Header.react.js | 0 src/{ => components}/ImageCard.react.js | 6 ++--- src/{ => components}/NewContainer.react.js | 2 +- src/{ => components}/Preferences.react.js | 2 +- src/{ => components}/Radial.react.js | 0 src/{ => components}/Setup.react.js | 6 ++--- src/{ => stores}/ContainerStore.js | 8 +++---- src/{ => stores}/LogStore.js | 2 +- src/{ => stores}/SetupStore-test.js | 8 +++---- src/{ => stores}/SetupStore.js | 12 +++++----- src/{ => utils}/ContainerUtil.js | 2 +- src/{ => utils}/SetupUtil.js | 0 src/{ => utils}/Util-test.js | 0 src/{ => utils}/Util.js | 2 +- src/{ => utils}/WebUtil.js | 0 39 files changed, 81 insertions(+), 83 deletions(-) rename src/{ => components}/ContainerDetails.react.js (100%) rename src/{ => components}/ContainerDetailsHeader.react.js (100%) rename src/{ => components}/ContainerDetailsSubheader.react.js (96%) rename src/{ => components}/ContainerHome.react.js (97%) rename src/{ => components}/ContainerHomeFolders.react.js (94%) rename src/{ => components}/ContainerHomeLogs.react.js (96%) rename src/{ => components}/ContainerHomePreview.react.js (94%) rename src/{ => components}/ContainerList.react.js (100%) rename src/{ => components}/ContainerListItem.react.js (97%) rename src/{ => components}/ContainerListNewItem.react.js (94%) rename src/{ => components}/ContainerLogs.react.js (97%) rename src/{ => components}/ContainerSettings.react.js (100%) rename src/{ => components}/ContainerSettingsGeneral.react.js (98%) rename src/{ => components}/ContainerSettingsPorts.react.js (91%) rename src/{ => components}/ContainerSettingsVolumes.react.js (97%) rename src/{ => components}/Containers.react.js (96%) rename src/{ => components}/Header.react.js (100%) rename src/{ => components}/ImageCard.react.js (97%) rename src/{ => components}/NewContainer.react.js (99%) rename src/{ => components}/Preferences.react.js (98%) rename src/{ => components}/Radial.react.js (100%) rename src/{ => components}/Setup.react.js (97%) rename src/{ => stores}/ContainerStore.js (98%) rename src/{ => stores}/LogStore.js (98%) rename src/{ => stores}/SetupStore-test.js (95%) rename src/{ => stores}/SetupStore.js (96%) rename src/{ => utils}/ContainerUtil.js (96%) rename src/{ => utils}/SetupUtil.js (100%) rename src/{ => utils}/Util-test.js (100%) rename src/{ => utils}/Util.js (94%) rename src/{ => utils}/WebUtil.js (100%) diff --git a/gulpfile.js b/gulpfile.js index ac3590581a..e3404ac9cf 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -15,6 +15,7 @@ var react = require('gulp-react'); var runSequence = require('run-sequence'); var shell = require('gulp-shell'); var sourcemaps = require('gulp-sourcemaps'); +var path = require('path'); var dependencies = Object.keys(packagejson.dependencies); var argv = require('minimist')(process.argv.slice(2)); diff --git a/src/DockerMachine.js b/src/DockerMachine.js index 6601fafb3a..b17e6002b6 100644 --- a/src/DockerMachine.js +++ b/src/DockerMachine.js @@ -3,7 +3,7 @@ var path = require('path'); var Promise = require('bluebird'); var _ = require('underscore'); var fs = require('fs'); -var util = require('./Util'); +var util = require('./utils/Util'); var NAME = 'dev'; @@ -16,7 +16,7 @@ var DockerMachine = { }, version: function () { try { - return JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8'))['docker-machine-version']; + return util.packagejson()['docker-machine-version']; } catch (err) { return null; } diff --git a/src/Main.js b/src/Main.js index 9637fce357..cd87f2832e 100644 --- a/src/Main.js +++ b/src/Main.js @@ -1,16 +1,16 @@ require.main.paths.splice(0, 0, process.env.NODE_PATH); var remote = require('remote'); -var ContainerStore = require('./ContainerStore'); +var ContainerStore = require('./stores/ContainerStore'); var Menu = remote.require('menu'); var React = require('react'); -var SetupStore = require('./SetupStore'); +var SetupStore = require('./stores/SetupStore'); var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); var machine = require('./DockerMachine'); var metrics = require('./Metrics'); var router = require('./Router'); var template = require('./MenuTemplate'); -var webUtil = require('./WebUtil'); +var webUtil = require('./utils/WebUtil'); webUtil.addWindowSizeSaving(); webUtil.addLiveReload(); diff --git a/src/MenuTemplate.js b/src/MenuTemplate.js index f81485e8ae..36eafffda5 100644 --- a/src/MenuTemplate.js +++ b/src/MenuTemplate.js @@ -1,7 +1,7 @@ var remote = require('remote'); var app = remote.require('app'); var router = require('./Router'); -var util = require('./Util'); +var util = require('./utils/Util'); var metrics = require('./Metrics'); var machine = require('./DockerMachine'); var docker = require('./Docker'); diff --git a/src/Metrics.js b/src/Metrics.js index 3447f0f577..682ec46c45 100644 --- a/src/Metrics.js +++ b/src/Metrics.js @@ -3,7 +3,7 @@ var Mixpanel = require('mixpanel'); var uuid = require('node-uuid'); var fs = require('fs'); var path = require('path'); -var util = require('./Util'); +var util = require('./utils/Util'); var settings; try { diff --git a/src/Routes.js b/src/Routes.js index eab468fa1c..95a8a99a81 100644 --- a/src/Routes.js +++ b/src/Routes.js @@ -1,15 +1,15 @@ var React = require('react/addons'); -var Setup = require('./Setup.react'); -var Containers = require('./Containers.react'); -var ContainerDetails = require('./ContainerDetails.react'); -var ContainerHome = require('./ContainerHome.react'); -var ContainerLogs = require('./ContainerLogs.react'); -var ContainerSettings = require('./ContainerSettings.react'); -var ContainerSettingsGeneral = require('./ContainerSettingsGeneral.react'); -var ContainerSettingsPorts = require('./ContainerSettingsPorts.react'); -var ContainerSettingsVolumes = require('./ContainerSettingsVolumes.react'); -var Preferences = require('./Preferences.react'); -var NewContainer = require('./NewContainer.react'); +var Setup = require('./components/Setup.react'); +var Containers = require('./components/Containers.react'); +var ContainerDetails = require('./components/ContainerDetails.react'); +var ContainerHome = require('./components/ContainerHome.react'); +var ContainerLogs = require('./components/ContainerLogs.react'); +var ContainerSettings = require('./components/ContainerSettings.react'); +var ContainerSettingsGeneral = require('./components/ContainerSettingsGeneral.react'); +var ContainerSettingsPorts = require('./components/ContainerSettingsPorts.react'); +var ContainerSettingsVolumes = require('./components/ContainerSettingsVolumes.react'); +var Preferences = require('./components/Preferences.react'); +var NewContainer = require('./components/NewContainer.react'); var Router = require('react-router'); var Route = Router.Route; diff --git a/src/VirtualBox.js b/src/VirtualBox.js index 43e550dc7c..e290353909 100644 --- a/src/VirtualBox.js +++ b/src/VirtualBox.js @@ -1,5 +1,5 @@ var fs = require('fs'); -var util = require('./Util'); +var util = require('./utils/Util'); var Promise = require('bluebird'); var VirtualBox = { diff --git a/src/Virtualbox-test.js b/src/Virtualbox-test.js index 567210a08a..6a293a913c 100644 --- a/src/Virtualbox-test.js +++ b/src/Virtualbox-test.js @@ -1,6 +1,6 @@ jest.dontMock('./VirtualBox'); var virtualBox = require('./VirtualBox'); -var util = require('./Util'); +var util = require('./utils/Util'); describe('VirtualBox', function () { it('returns the right command', function () { diff --git a/src/ContainerDetails.react.js b/src/components/ContainerDetails.react.js similarity index 100% rename from src/ContainerDetails.react.js rename to src/components/ContainerDetails.react.js diff --git a/src/ContainerDetailsHeader.react.js b/src/components/ContainerDetailsHeader.react.js similarity index 100% rename from src/ContainerDetailsHeader.react.js rename to src/components/ContainerDetailsHeader.react.js diff --git a/src/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js similarity index 96% rename from src/ContainerDetailsSubheader.react.js rename to src/components/ContainerDetailsSubheader.react.js index 8f9b2f3879..b405828708 100644 --- a/src/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -3,12 +3,12 @@ var $ = require('jquery'); var React = require('react'); var exec = require('exec'); var path = require('path'); -var metrics = require('./Metrics'); -var ContainerStore = require('./ContainerStore'); -var ContainerUtil = require('./ContainerUtil'); -var machine = require('./DockerMachine'); +var metrics = require('../Metrics'); +var ContainerStore = require('../stores/ContainerStore'); +var ContainerUtil = require('../utils/ContainerUtil'); +var machine = require('../DockerMachine'); var RetinaImage = require('react-retina-image'); -var webPorts = require('./Util').webPorts; +var webPorts = require('../utils/Util').webPorts; var classNames = require('classnames'); var ContainerDetailsSubheader = React.createClass({ diff --git a/src/ContainerHome.react.js b/src/components/ContainerHome.react.js similarity index 97% rename from src/ContainerHome.react.js rename to src/components/ContainerHome.react.js index 0e458e49d9..7c032cda8f 100644 --- a/src/ContainerHome.react.js +++ b/src/components/ContainerHome.react.js @@ -1,13 +1,13 @@ var _ = require('underscore'); var $ = require('jquery'); var React = require('react/addons'); -var ContainerStore = require('./ContainerStore'); +var ContainerStore = require('../stores/ContainerStore'); var Radial = require('./Radial.react'); var ContainerHomePreview = require('./ContainerHomePreview.react'); var ContainerHomeLogs = require('./ContainerHomeLogs.react'); var ContainerHomeFolders = require('./ContainerHomeFolders.react'); -var ContainerUtil = require('./ContainerUtil'); -var util = require('./Util'); +var ContainerUtil = require('../utils/ContainerUtil'); +var util = require('../utils/Util'); var resizeWindow = function () { $('.left .wrapper').height(window.innerHeight - 240); diff --git a/src/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js similarity index 94% rename from src/ContainerHomeFolders.react.js rename to src/components/ContainerHomeFolders.react.js index ca2760c3db..ee672c0071 100644 --- a/src/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -3,9 +3,9 @@ var React = require('react/addons'); var RetinaImage = require('react-retina-image'); var path = require('path'); var shell = require('shell'); -var util = require('./Util'); -var metrics = require('./Metrics'); -var ContainerStore = require('./ContainerStore'); +var util = require('../utils/Util'); +var metrics = require('../Metrics'); +var ContainerStore = require('../stores/ContainerStore'); var ContainerHomeFolder = React.createClass({ contextTypes: { diff --git a/src/ContainerHomeLogs.react.js b/src/components/ContainerHomeLogs.react.js similarity index 96% rename from src/ContainerHomeLogs.react.js rename to src/components/ContainerHomeLogs.react.js index 771765dfa9..0c4414361c 100644 --- a/src/ContainerHomeLogs.react.js +++ b/src/components/ContainerHomeLogs.react.js @@ -1,8 +1,8 @@ var $ = require('jquery'); var React = require('react/addons'); -var LogStore = require('./LogStore'); +var LogStore = require('../stores/LogStore'); var Router = require('react-router'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var _prevBottom = 0; diff --git a/src/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js similarity index 94% rename from src/ContainerHomePreview.react.js rename to src/components/ContainerHomePreview.react.js index 34fa82bd26..f39f40cddc 100644 --- a/src/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -1,11 +1,11 @@ var _ = require('underscore'); var React = require('react/addons'); var exec = require('exec'); -var ContainerStore = require('./ContainerStore'); -var ContainerUtil = require('./ContainerUtil'); +var ContainerStore = require('../stores/ContainerStore'); +var ContainerUtil = require('../utils/ContainerUtil'); var request = require('request'); -var metrics = require('./Metrics'); -var webPorts = require('./Util').webPorts; +var metrics = require('../Metrics'); +var webPorts = require('../utils/Util').webPorts; var ContainerHomePreview = React.createClass({ contextTypes: { diff --git a/src/ContainerList.react.js b/src/components/ContainerList.react.js similarity index 100% rename from src/ContainerList.react.js rename to src/components/ContainerList.react.js diff --git a/src/ContainerListItem.react.js b/src/components/ContainerListItem.react.js similarity index 97% rename from src/ContainerListItem.react.js rename to src/components/ContainerListItem.react.js index 2ed466bda8..bdf41eefc7 100644 --- a/src/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -3,8 +3,8 @@ var React = require('react/addons'); var Router = require('react-router'); var remote = require('remote'); var dialog = remote.require('dialog'); -var metrics = require('./Metrics'); -var ContainerStore = require('./ContainerStore'); +var metrics = require('../Metrics'); +var ContainerStore = require('../stores/ContainerStore'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; diff --git a/src/ContainerListNewItem.react.js b/src/components/ContainerListNewItem.react.js similarity index 94% rename from src/ContainerListNewItem.react.js rename to src/components/ContainerListNewItem.react.js index 108e7b78e4..4a0ac199c3 100644 --- a/src/ContainerListNewItem.react.js +++ b/src/components/ContainerListNewItem.react.js @@ -1,8 +1,8 @@ var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); -var ContainerStore = require('./ContainerStore'); -var metrics = require('./Metrics'); +var ContainerStore = require('../stores/ContainerStore'); +var metrics = require('../Metrics'); var ContainerListNewItem = React.createClass({ handleItemMouseEnter: function () { diff --git a/src/ContainerLogs.react.js b/src/components/ContainerLogs.react.js similarity index 97% rename from src/ContainerLogs.react.js rename to src/components/ContainerLogs.react.js index 36689c44af..6355154ee4 100644 --- a/src/ContainerLogs.react.js +++ b/src/components/ContainerLogs.react.js @@ -1,6 +1,6 @@ var $ = require('jquery'); var React = require('react/addons'); -var LogStore = require('./LogStore'); +var LogStore = require('../stores/LogStore'); var _prevBottom = 0; diff --git a/src/ContainerSettings.react.js b/src/components/ContainerSettings.react.js similarity index 100% rename from src/ContainerSettings.react.js rename to src/components/ContainerSettings.react.js diff --git a/src/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js similarity index 98% rename from src/ContainerSettingsGeneral.react.js rename to src/components/ContainerSettingsGeneral.react.js index f54728cff7..462ed3d9cc 100644 --- a/src/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -1,15 +1,14 @@ var _ = require('underscore'); var $ = require('jquery'); var React = require('react/addons'); -var Router = require('react-router'); var path = require('path'); var remote = require('remote'); var rimraf = require('rimraf'); var fs = require('fs'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var dialog = remote.require('dialog'); -var ContainerStore = require('./ContainerStore'); -var ContainerUtil = require('./ContainerUtil'); +var ContainerStore = require('../stores/ContainerStore'); +var ContainerUtil = require('../utils/ContainerUtil'); var containerNameSlugify = function (text) { text = text.replace(/^\s+|\s+$/g, ''); // Trim diff --git a/src/ContainerSettingsPorts.react.js b/src/components/ContainerSettingsPorts.react.js similarity index 91% rename from src/ContainerSettingsPorts.react.js rename to src/components/ContainerSettingsPorts.react.js index 21581e76bd..95ef7a277a 100644 --- a/src/ContainerSettingsPorts.react.js +++ b/src/components/ContainerSettingsPorts.react.js @@ -1,10 +1,10 @@ var _ = require('underscore'); var React = require('react/addons'); var exec = require('exec'); -var ContainerStore = require('./ContainerStore'); -var ContainerUtil = require('./ContainerUtil'); -var metrics = require('./Metrics'); -var webPorts = require('./Util').webPorts; +var ContainerStore = require('../stores/ContainerStore'); +var ContainerUtil = require('../utils/ContainerUtil'); +var metrics = require('../Metrics'); +var webPorts = require('../utils/Util').webPorts; var ContainerSettingsPorts = React.createClass({ contextTypes: { diff --git a/src/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js similarity index 97% rename from src/ContainerSettingsVolumes.react.js rename to src/components/ContainerSettingsVolumes.react.js index 6108398a0f..1670434d83 100644 --- a/src/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -3,8 +3,8 @@ var React = require('react/addons'); var remote = require('remote'); var exec = require('exec'); var dialog = remote.require('dialog'); -var metrics = require('./Metrics'); -var ContainerStore = require('./ContainerStore'); +var metrics = require('../Metrics'); +var ContainerStore = require('../stores/ContainerStore'); var ContainerSettingsVolumes = React.createClass({ handleChooseVolumeClick: function (dockerVol) { diff --git a/src/Containers.react.js b/src/components/Containers.react.js similarity index 96% rename from src/Containers.react.js rename to src/components/Containers.react.js index b75d9ea4c9..e221e6180c 100644 --- a/src/Containers.react.js +++ b/src/components/Containers.react.js @@ -1,18 +1,16 @@ var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); -var ContainerStore = require('./ContainerStore'); +var ContainerStore = require('../stores/ContainerStore'); var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); var ipc = require('ipc'); var remote = require('remote'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); -var machine = require('./DockerMachine'); -var OverlayTrigger = require('react-bootstrap').OverlayTrigger; -var Tooltip = require('react-bootstrap').Tooltip; -var util = require('./Util'); +var machine = require('../DockerMachine'); +var util = require('../utils/Util'); var Containers = React.createClass({ contextTypes: { diff --git a/src/Header.react.js b/src/components/Header.react.js similarity index 100% rename from src/Header.react.js rename to src/components/Header.react.js diff --git a/src/ImageCard.react.js b/src/components/ImageCard.react.js similarity index 97% rename from src/ImageCard.react.js rename to src/components/ImageCard.react.js index 659d1407e6..685493684d 100644 --- a/src/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -1,11 +1,11 @@ var $ = require('jquery'); var React = require('react/addons'); var RetinaImage = require('react-retina-image'); -var ContainerStore = require('./ContainerStore'); -var metrics = require('./Metrics'); +var ContainerStore = require('../stores/ContainerStore'); +var metrics = require('../Metrics'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; -var util = require('./Util'); +var util = require('../utils/Util'); var ImageCard = React.createClass({ getInitialState: function () { diff --git a/src/NewContainer.react.js b/src/components/NewContainer.react.js similarity index 99% rename from src/NewContainer.react.js rename to src/components/NewContainer.react.js index 39de7011f8..93acf59ce7 100644 --- a/src/NewContainer.react.js +++ b/src/components/NewContainer.react.js @@ -5,7 +5,7 @@ var RetinaImage = require('react-retina-image'); var Radial = require('./Radial.react'); var ImageCard = require('./ImageCard.react'); var Promise = require('bluebird'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var classNames = require('classnames'); var _recommended = []; diff --git a/src/Preferences.react.js b/src/components/Preferences.react.js similarity index 98% rename from src/Preferences.react.js rename to src/components/Preferences.react.js index c4cdad8b28..63f59711b8 100644 --- a/src/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -1,5 +1,5 @@ var React = require('react/addons'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var Router = require('react-router'); var Preferences = React.createClass({ diff --git a/src/Radial.react.js b/src/components/Radial.react.js similarity index 100% rename from src/Radial.react.js rename to src/components/Radial.react.js diff --git a/src/Setup.react.js b/src/components/Setup.react.js similarity index 97% rename from src/Setup.react.js rename to src/components/Setup.react.js index fc76aecf03..307069e309 100644 --- a/src/Setup.react.js +++ b/src/components/Setup.react.js @@ -1,11 +1,11 @@ var React = require('react/addons'); var Router = require('react-router'); var Radial = require('./Radial.react.js'); -var SetupStore = require('./SetupStore'); +var SetupStore = require('../stores/SetupStore'); var RetinaImage = require('react-retina-image'); var Header = require('./Header.react'); -var Util = require('./Util'); -var metrics = require('./Metrics'); +var Util = require('../utils/Util'); +var metrics = require('../Metrics'); var Setup = React.createClass({ mixins: [ Router.Navigation ], diff --git a/src/ContainerStore.js b/src/stores/ContainerStore.js similarity index 98% rename from src/ContainerStore.js rename to src/stores/ContainerStore.js index ef9bfb28a9..bd09d16c90 100644 --- a/src/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -2,10 +2,10 @@ var _ = require('underscore'); var EventEmitter = require('events').EventEmitter; var async = require('async'); var assign = require('object-assign'); -var docker = require('./Docker'); -var metrics = require('./Metrics'); -var registry = require('./Registry'); -var logstore = require('./LogStore'); +var docker = require('../Docker'); +var metrics = require('../Metrics'); +var registry = require('../Registry'); +var logstore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); var _placeholders = {}; diff --git a/src/LogStore.js b/src/stores/LogStore.js similarity index 98% rename from src/LogStore.js rename to src/stores/LogStore.js index 60f707ce80..6f4c203db1 100644 --- a/src/LogStore.js +++ b/src/stores/LogStore.js @@ -1,7 +1,7 @@ var EventEmitter = require('events').EventEmitter; var assign = require('object-assign'); var Convert = require('ansi-to-html'); -var docker = require('./Docker'); +var docker = require('../Docker'); var stream = require('stream'); var _convert = new Convert(); diff --git a/src/SetupStore-test.js b/src/stores/SetupStore-test.js similarity index 95% rename from src/SetupStore-test.js rename to src/stores/SetupStore-test.js index 6a62e4bb64..1483b67c61 100644 --- a/src/SetupStore-test.js +++ b/src/stores/SetupStore-test.js @@ -1,9 +1,9 @@ jest.dontMock('./SetupStore'); var setupStore = require('./SetupStore'); -var virtualBox = require('./VirtualBox'); -var util = require('./Util'); -var machine = require('./DockerMachine'); -var setupUtil = require('./SetupUtil'); +var virtualBox = require('../VirtualBox'); +var util = require('../utils/Util'); +var machine = require('../DockerMachine'); +var setupUtil = require('../utils/SetupUtil'); describe('SetupStore', function () { describe('download step', function () { diff --git a/src/SetupStore.js b/src/stores/SetupStore.js similarity index 96% rename from src/SetupStore.js rename to src/stores/SetupStore.js index ec72828e93..73924f55a6 100644 --- a/src/SetupStore.js +++ b/src/stores/SetupStore.js @@ -3,14 +3,14 @@ var _ = require('underscore'); var path = require('path'); var fs = require('fs'); var Promise = require('bluebird'); -var machine = require('./DockerMachine'); -var virtualBox = require('./VirtualBox'); -var setupUtil = require('./SetupUtil'); -var util = require('./Util'); +var machine = require('../DockerMachine'); +var virtualBox = require('../VirtualBox'); +var setupUtil = require('../utils/SetupUtil'); +var util = require('../utils/Util'); var assign = require('object-assign'); -var metrics = require('./Metrics'); +var metrics = require('../Metrics'); var bugsnag = require('bugsnag-js'); -var docker = require('./Docker'); +var docker = require('../Docker'); var _currentStep = null; var _error = null; diff --git a/src/ContainerUtil.js b/src/utils/ContainerUtil.js similarity index 96% rename from src/ContainerUtil.js rename to src/utils/ContainerUtil.js index bae761d0cc..cff2273669 100644 --- a/src/ContainerUtil.js +++ b/src/utils/ContainerUtil.js @@ -1,5 +1,5 @@ var _ = require('underscore'); -var docker = require('./Docker'); +var docker = require('../Docker'); var ContainerUtil = { env: function (container) { diff --git a/src/SetupUtil.js b/src/utils/SetupUtil.js similarity index 100% rename from src/SetupUtil.js rename to src/utils/SetupUtil.js diff --git a/src/Util-test.js b/src/utils/Util-test.js similarity index 100% rename from src/Util-test.js rename to src/utils/Util-test.js diff --git a/src/Util.js b/src/utils/Util.js similarity index 94% rename from src/Util.js rename to src/utils/Util.js index e68d3b953c..5b23058f7d 100644 --- a/src/Util.js +++ b/src/utils/Util.js @@ -43,7 +43,7 @@ module.exports = { return process.env.RESOURCES_PATH; }, packagejson: function () { - return JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8')); + return JSON.parse(fs.readFileSync(path.join(__dirname, '../..', 'package.json'), 'utf8')); }, settingsjson: function () { var settingsjson = {}; diff --git a/src/WebUtil.js b/src/utils/WebUtil.js similarity index 100% rename from src/WebUtil.js rename to src/utils/WebUtil.js From c5193501022cab47e30f7299948b12549a5c2c57 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 20:41:13 -0400 Subject: [PATCH 26/60] Removing unused dependency --- gulpfile.js | 1 - 1 file changed, 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index cd8705b7ba..95724a083d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -14,7 +14,6 @@ var plumber = require('gulp-plumber'); var runSequence = require('run-sequence'); var shell = require('gulp-shell'); var sourcemaps = require('gulp-sourcemaps'); -var path = require('path'); var dependencies = Object.keys(packagejson.dependencies); var argv = require('minimist')(process.argv.slice(2)); From d684428089adffa28791ea067c99fe73a2fc888a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:12:58 -0400 Subject: [PATCH 27/60] Moving Machine, VBox & Docker management utils to utils dir --- src/Main.js | 2 +- src/MenuTemplate.js | 4 ++-- src/components/ContainerDetailsSubheader.react.js | 2 +- src/components/Containers.react.js | 2 +- src/stores/ContainerStore.js | 4 ++-- src/stores/LogStore.js | 2 +- src/stores/SetupStore-test.js | 4 ++-- src/stores/SetupStore.js | 6 +++--- src/utils/ContainerUtil.js | 3 ++- src/{DockerMachine.js => utils/DockerMachineUtil.js} | 2 +- src/{Docker.js => utils/DockerUtil.js} | 0 src/{Registry.js => utils/RegistryUtil.js} | 0 src/{Virtualbox-test.js => utils/VirtualBoxUtil-test.js} | 6 +++--- src/{VirtualBox.js => utils/VirtualBoxUtil.js} | 2 +- 14 files changed, 20 insertions(+), 19 deletions(-) rename src/{DockerMachine.js => utils/DockerMachineUtil.js} (99%) rename src/{Docker.js => utils/DockerUtil.js} (100%) rename src/{Registry.js => utils/RegistryUtil.js} (100%) rename src/{Virtualbox-test.js => utils/VirtualBoxUtil-test.js} (81%) rename src/{VirtualBox.js => utils/VirtualBoxUtil.js} (98%) diff --git a/src/Main.js b/src/Main.js index cd87f2832e..2b2487d986 100644 --- a/src/Main.js +++ b/src/Main.js @@ -6,7 +6,7 @@ var React = require('react'); var SetupStore = require('./stores/SetupStore'); var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); -var machine = require('./DockerMachine'); +var machine = require('./utils/DockerMachineUtil'); var metrics = require('./Metrics'); var router = require('./Router'); var template = require('./MenuTemplate'); diff --git a/src/MenuTemplate.js b/src/MenuTemplate.js index 36eafffda5..c373145709 100644 --- a/src/MenuTemplate.js +++ b/src/MenuTemplate.js @@ -3,8 +3,8 @@ var app = remote.require('app'); var router = require('./Router'); var util = require('./utils/Util'); var metrics = require('./Metrics'); -var machine = require('./DockerMachine'); -var docker = require('./Docker'); +var machine = require('./utils/DockerMachineUtil'); +var docker = require('./utils/DockerUtil'); // main.js var MenuTemplate = function () { diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index b405828708..6ba3b33796 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -6,7 +6,7 @@ var path = require('path'); var metrics = require('../Metrics'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); -var machine = require('../DockerMachine'); +var machine = require('../utils/DockerMachineUtil'); var RetinaImage = require('react-retina-image'); var webPorts = require('../utils/Util').webPorts; var classNames = require('classnames'); diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index e221e6180c..4376564630 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -9,7 +9,7 @@ var remote = require('remote'); var metrics = require('../Metrics'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); -var machine = require('../DockerMachine'); +var machine = require('../utils/DockerMachineUtil'); var util = require('../utils/Util'); var Containers = React.createClass({ diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index bd09d16c90..b5f331beb1 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -2,9 +2,9 @@ var _ = require('underscore'); var EventEmitter = require('events').EventEmitter; var async = require('async'); var assign = require('object-assign'); -var docker = require('../Docker'); +var docker = require('../util/DockerUtil'); var metrics = require('../Metrics'); -var registry = require('../Registry'); +var registry = require('../utils/RegistryUtil'); var logstore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); diff --git a/src/stores/LogStore.js b/src/stores/LogStore.js index 6f4c203db1..a3ba515f80 100644 --- a/src/stores/LogStore.js +++ b/src/stores/LogStore.js @@ -1,7 +1,7 @@ var EventEmitter = require('events').EventEmitter; var assign = require('object-assign'); var Convert = require('ansi-to-html'); -var docker = require('../Docker'); +var docker = require('../utils/DockerUtil'); var stream = require('stream'); var _convert = new Convert(); diff --git a/src/stores/SetupStore-test.js b/src/stores/SetupStore-test.js index 1483b67c61..38bd33dec4 100644 --- a/src/stores/SetupStore-test.js +++ b/src/stores/SetupStore-test.js @@ -1,8 +1,8 @@ jest.dontMock('./SetupStore'); var setupStore = require('./SetupStore'); -var virtualBox = require('../VirtualBox'); +var virtualBox = require('../utils/VirtualBoxUtil'); var util = require('../utils/Util'); -var machine = require('../DockerMachine'); +var machine = require('../utils/DockerMachineUtil'); var setupUtil = require('../utils/SetupUtil'); describe('SetupStore', function () { diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index 73924f55a6..a065fb1e60 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -3,14 +3,14 @@ var _ = require('underscore'); var path = require('path'); var fs = require('fs'); var Promise = require('bluebird'); -var machine = require('../DockerMachine'); -var virtualBox = require('../VirtualBox'); +var machine = require('../utils/DockerMachineUtil'); +var virtualBox = require('../utils/VirtualBoxUtil'); var setupUtil = require('../utils/SetupUtil'); var util = require('../utils/Util'); var assign = require('object-assign'); var metrics = require('../Metrics'); var bugsnag = require('bugsnag-js'); -var docker = require('../Docker'); +var docker = require('../utils/DockerUtil'); var _currentStep = null; var _error = null; diff --git a/src/utils/ContainerUtil.js b/src/utils/ContainerUtil.js index cff2273669..2f895ad4c1 100644 --- a/src/utils/ContainerUtil.js +++ b/src/utils/ContainerUtil.js @@ -1,5 +1,5 @@ var _ = require('underscore'); -var docker = require('../Docker'); +var docker = require('../utils/DockerUtil'); var ContainerUtil = { env: function (container) { @@ -12,6 +12,7 @@ var ContainerUtil = { return splits; })); }, + // TODO (jeffdm): inject host here instead of requiring Docker ports: function (container) { if (!container.NetworkSettings) { return {}; diff --git a/src/DockerMachine.js b/src/utils/DockerMachineUtil.js similarity index 99% rename from src/DockerMachine.js rename to src/utils/DockerMachineUtil.js index b17e6002b6..acb79cc195 100644 --- a/src/DockerMachine.js +++ b/src/utils/DockerMachineUtil.js @@ -3,7 +3,7 @@ var path = require('path'); var Promise = require('bluebird'); var _ = require('underscore'); var fs = require('fs'); -var util = require('./utils/Util'); +var util = require('./Util'); var NAME = 'dev'; diff --git a/src/Docker.js b/src/utils/DockerUtil.js similarity index 100% rename from src/Docker.js rename to src/utils/DockerUtil.js diff --git a/src/Registry.js b/src/utils/RegistryUtil.js similarity index 100% rename from src/Registry.js rename to src/utils/RegistryUtil.js diff --git a/src/Virtualbox-test.js b/src/utils/VirtualBoxUtil-test.js similarity index 81% rename from src/Virtualbox-test.js rename to src/utils/VirtualBoxUtil-test.js index 6a293a913c..7af88edd99 100644 --- a/src/Virtualbox-test.js +++ b/src/utils/VirtualBoxUtil-test.js @@ -1,6 +1,6 @@ -jest.dontMock('./VirtualBox'); -var virtualBox = require('./VirtualBox'); -var util = require('./utils/Util'); +jest.dontMock('./VirtualBoxUtil'); +var virtualBox = require('./VirtualBoxUtil'); +var util = require('./Util'); describe('VirtualBox', function () { it('returns the right command', function () { diff --git a/src/VirtualBox.js b/src/utils/VirtualBoxUtil.js similarity index 98% rename from src/VirtualBox.js rename to src/utils/VirtualBoxUtil.js index e290353909..43e550dc7c 100644 --- a/src/VirtualBox.js +++ b/src/utils/VirtualBoxUtil.js @@ -1,5 +1,5 @@ var fs = require('fs'); -var util = require('./utils/Util'); +var util = require('./Util'); var Promise = require('bluebird'); var VirtualBox = { From 5d1e866d2521b80ba8242b318ba0ef7b8475facb Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:14:28 -0400 Subject: [PATCH 28/60] Renaming metrics to MetricUtil --- src/Main.js | 2 +- src/MenuTemplate.js | 2 +- src/components/ContainerDetailsSubheader.react.js | 2 +- src/components/ContainerHomeFolders.react.js | 2 +- src/components/ContainerHomeLogs.react.js | 2 +- src/components/ContainerHomePreview.react.js | 2 +- src/components/ContainerListItem.react.js | 2 +- src/components/ContainerListNewItem.react.js | 2 +- src/components/ContainerSettingsGeneral.react.js | 2 +- src/components/ContainerSettingsPorts.react.js | 2 +- src/components/ContainerSettingsVolumes.react.js | 2 +- src/components/Containers.react.js | 2 +- src/components/ImageCard.react.js | 2 +- src/components/NewContainer.react.js | 2 +- src/components/Preferences.react.js | 4 ++-- src/components/Setup.react.js | 2 +- src/stores/ContainerStore.js | 2 +- src/stores/SetupStore.js | 2 +- src/{Metrics.js => utils/MetricsUtil.js} | 0 19 files changed, 19 insertions(+), 19 deletions(-) rename src/{Metrics.js => utils/MetricsUtil.js} (100%) diff --git a/src/Main.js b/src/Main.js index 2b2487d986..c47d57364e 100644 --- a/src/Main.js +++ b/src/Main.js @@ -7,7 +7,7 @@ var SetupStore = require('./stores/SetupStore'); var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); var machine = require('./utils/DockerMachineUtil'); -var metrics = require('./Metrics'); +var metrics = require('./util/Metrics'); var router = require('./Router'); var template = require('./MenuTemplate'); var webUtil = require('./utils/WebUtil'); diff --git a/src/MenuTemplate.js b/src/MenuTemplate.js index c373145709..24b9058542 100644 --- a/src/MenuTemplate.js +++ b/src/MenuTemplate.js @@ -2,7 +2,7 @@ var remote = require('remote'); var app = remote.require('app'); var router = require('./Router'); var util = require('./utils/Util'); -var metrics = require('./Metrics'); +var metrics = require('./util/Metrics'); var machine = require('./utils/DockerMachineUtil'); var docker = require('./utils/DockerUtil'); diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 6ba3b33796..6e3f867606 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -3,7 +3,7 @@ var $ = require('jquery'); var React = require('react'); var exec = require('exec'); var path = require('path'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index ee672c0071..b5eb51ef0b 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -4,7 +4,7 @@ var RetinaImage = require('react-retina-image'); var path = require('path'); var shell = require('shell'); var util = require('../utils/Util'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var ContainerStore = require('../stores/ContainerStore'); var ContainerHomeFolder = React.createClass({ diff --git a/src/components/ContainerHomeLogs.react.js b/src/components/ContainerHomeLogs.react.js index 0c4414361c..93cf63478a 100644 --- a/src/components/ContainerHomeLogs.react.js +++ b/src/components/ContainerHomeLogs.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var LogStore = require('../stores/LogStore'); var Router = require('react-router'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var _prevBottom = 0; diff --git a/src/components/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js index f39f40cddc..9647a21f17 100644 --- a/src/components/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -4,7 +4,7 @@ var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var request = require('request'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var webPorts = require('../utils/Util').webPorts; var ContainerHomePreview = React.createClass({ diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index bdf41eefc7..06801ddc1e 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var Router = require('react-router'); var remote = require('remote'); var dialog = remote.require('dialog'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var ContainerStore = require('../stores/ContainerStore'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; diff --git a/src/components/ContainerListNewItem.react.js b/src/components/ContainerListNewItem.react.js index 4a0ac199c3..c257e273b7 100644 --- a/src/components/ContainerListNewItem.react.js +++ b/src/components/ContainerListNewItem.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var ContainerListNewItem = React.createClass({ handleItemMouseEnter: function () { diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js index 462ed3d9cc..8ec1b068b2 100644 --- a/src/components/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -5,7 +5,7 @@ var path = require('path'); var remote = require('remote'); var rimraf = require('rimraf'); var fs = require('fs'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var dialog = remote.require('dialog'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); diff --git a/src/components/ContainerSettingsPorts.react.js b/src/components/ContainerSettingsPorts.react.js index 95ef7a277a..cc5e3c53b0 100644 --- a/src/components/ContainerSettingsPorts.react.js +++ b/src/components/ContainerSettingsPorts.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var webPorts = require('../utils/Util').webPorts; var ContainerSettingsPorts = React.createClass({ diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index 1670434d83..a4d101f2a7 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var remote = require('remote'); var exec = require('exec'); var dialog = remote.require('dialog'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var ContainerStore = require('../stores/ContainerStore'); var ContainerSettingsVolumes = React.createClass({ diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 4376564630..89bced2d23 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -6,7 +6,7 @@ var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); var ipc = require('ipc'); var remote = require('remote'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 685493684d..43e15949ac 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var RetinaImage = require('react-retina-image'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; var util = require('../utils/Util'); diff --git a/src/components/NewContainer.react.js b/src/components/NewContainer.react.js index 93acf59ce7..50704836d8 100644 --- a/src/components/NewContainer.react.js +++ b/src/components/NewContainer.react.js @@ -5,7 +5,7 @@ var RetinaImage = require('react-retina-image'); var Radial = require('./Radial.react'); var ImageCard = require('./ImageCard.react'); var Promise = require('bluebird'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var classNames = require('classnames'); var _recommended = []; diff --git a/src/components/Preferences.react.js b/src/components/Preferences.react.js index 63f59711b8..7a1dd69360 100644 --- a/src/components/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -1,5 +1,5 @@ var React = require('react/addons'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var Router = require('react-router'); var Preferences = React.createClass({ @@ -30,7 +30,7 @@ var Preferences = React.createClass({ metricsEnabled: checked }); metrics.setEnabled(checked); - metrics.track('Toggled Metrics', { + metrics.track('Toggled util/Metrics', { enabled: checked }); }, diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 307069e309..2431148b38 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -5,7 +5,7 @@ var SetupStore = require('../stores/SetupStore'); var RetinaImage = require('react-retina-image'); var Header = require('./Header.react'); var Util = require('../utils/Util'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var Setup = React.createClass({ mixins: [ Router.Navigation ], diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index b5f331beb1..f453c12be8 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -3,7 +3,7 @@ var EventEmitter = require('events').EventEmitter; var async = require('async'); var assign = require('object-assign'); var docker = require('../util/DockerUtil'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var registry = require('../utils/RegistryUtil'); var logstore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index a065fb1e60..99338b115f 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -8,7 +8,7 @@ var virtualBox = require('../utils/VirtualBoxUtil'); var setupUtil = require('../utils/SetupUtil'); var util = require('../utils/Util'); var assign = require('object-assign'); -var metrics = require('../Metrics'); +var metrics = require('../util/Metrics'); var bugsnag = require('bugsnag-js'); var docker = require('../utils/DockerUtil'); diff --git a/src/Metrics.js b/src/utils/MetricsUtil.js similarity index 100% rename from src/Metrics.js rename to src/utils/MetricsUtil.js From 79b8932590b9f2b8567e890c570c09932c0111f3 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:18:03 -0400 Subject: [PATCH 29/60] All non flux files lowercase --- index.html | 2 +- src/Startup.js | 1 - src/{Main.js => app.js} | 2 +- src/{MenuTemplate.js => menu.js} | 2 +- src/{Router.js => router.js} | 2 +- src/{Routes.js => routes.js} | 0 6 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 src/Startup.js rename src/{Main.js => app.js} (97%) rename src/{MenuTemplate.js => menu.js} (99%) rename src/{Router.js => router.js} (77%) rename src/{Routes.js => routes.js} (100%) diff --git a/index.html b/index.html index 2301b021e4..69fafdb727 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,6 @@ Kitematic - + diff --git a/src/Startup.js b/src/Startup.js deleted file mode 100644 index 03f16bf78f..0000000000 --- a/src/Startup.js +++ /dev/null @@ -1 +0,0 @@ -require('./Main'); \ No newline at end of file diff --git a/src/Main.js b/src/app.js similarity index 97% rename from src/Main.js rename to src/app.js index c47d57364e..f26bae2d4c 100644 --- a/src/Main.js +++ b/src/app.js @@ -8,7 +8,7 @@ var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); var machine = require('./utils/DockerMachineUtil'); var metrics = require('./util/Metrics'); -var router = require('./Router'); +var router = require('./router'); var template = require('./MenuTemplate'); var webUtil = require('./utils/WebUtil'); diff --git a/src/MenuTemplate.js b/src/menu.js similarity index 99% rename from src/MenuTemplate.js rename to src/menu.js index 24b9058542..e33cc6bf20 100644 --- a/src/MenuTemplate.js +++ b/src/menu.js @@ -1,6 +1,6 @@ var remote = require('remote'); var app = remote.require('app'); -var router = require('./Router'); +var router = require('./router'); var util = require('./utils/Util'); var metrics = require('./util/Metrics'); var machine = require('./utils/DockerMachineUtil'); diff --git a/src/Router.js b/src/router.js similarity index 77% rename from src/Router.js rename to src/router.js index b02ac78139..d419f62176 100644 --- a/src/Router.js +++ b/src/router.js @@ -1,5 +1,5 @@ var Router = require('react-router'); -var routes = require('./Routes'); +var routes = require('./routes'); var router = Router.create({ routes: routes diff --git a/src/Routes.js b/src/routes.js similarity index 100% rename from src/Routes.js rename to src/routes.js From 532acc061178ec35d5e67ab4c8369d9bed0c2070 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:18:46 -0400 Subject: [PATCH 30/60] Metrics => MetricsUtil --- src/app.js | 2 +- src/components/ContainerDetailsSubheader.react.js | 2 +- src/components/ContainerHomeFolders.react.js | 2 +- src/components/ContainerHomeLogs.react.js | 2 +- src/components/ContainerHomePreview.react.js | 2 +- src/components/ContainerListItem.react.js | 2 +- src/components/ContainerListNewItem.react.js | 2 +- src/components/ContainerSettingsGeneral.react.js | 2 +- src/components/ContainerSettingsPorts.react.js | 2 +- src/components/ContainerSettingsVolumes.react.js | 2 +- src/components/Containers.react.js | 2 +- src/components/ImageCard.react.js | 2 +- src/components/NewContainer.react.js | 2 +- src/components/Preferences.react.js | 4 ++-- src/components/Setup.react.js | 2 +- src/menu.js | 2 +- src/stores/ContainerStore.js | 2 +- src/stores/SetupStore.js | 2 +- 18 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/app.js b/src/app.js index f26bae2d4c..8fc71c39bf 100644 --- a/src/app.js +++ b/src/app.js @@ -7,7 +7,7 @@ var SetupStore = require('./stores/SetupStore'); var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); var machine = require('./utils/DockerMachineUtil'); -var metrics = require('./util/Metrics'); +var metrics = require('./util/MetricsUtil'); var router = require('./router'); var template = require('./MenuTemplate'); var webUtil = require('./utils/WebUtil'); diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 6e3f867606..00c274567f 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -3,7 +3,7 @@ var $ = require('jquery'); var React = require('react'); var exec = require('exec'); var path = require('path'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index b5eb51ef0b..3ab4fe57f3 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -4,7 +4,7 @@ var RetinaImage = require('react-retina-image'); var path = require('path'); var shell = require('shell'); var util = require('../utils/Util'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerHomeFolder = React.createClass({ diff --git a/src/components/ContainerHomeLogs.react.js b/src/components/ContainerHomeLogs.react.js index 93cf63478a..fd292f5bbc 100644 --- a/src/components/ContainerHomeLogs.react.js +++ b/src/components/ContainerHomeLogs.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var LogStore = require('../stores/LogStore'); var Router = require('react-router'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var _prevBottom = 0; diff --git a/src/components/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js index 9647a21f17..097b89ba23 100644 --- a/src/components/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -4,7 +4,7 @@ var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var request = require('request'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var webPorts = require('../utils/Util').webPorts; var ContainerHomePreview = React.createClass({ diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 06801ddc1e..5bc8167c88 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var Router = require('react-router'); var remote = require('remote'); var dialog = remote.require('dialog'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; diff --git a/src/components/ContainerListNewItem.react.js b/src/components/ContainerListNewItem.react.js index c257e273b7..1bb4c080e7 100644 --- a/src/components/ContainerListNewItem.react.js +++ b/src/components/ContainerListNewItem.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var ContainerListNewItem = React.createClass({ handleItemMouseEnter: function () { diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js index 8ec1b068b2..38fb47b3ec 100644 --- a/src/components/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -5,7 +5,7 @@ var path = require('path'); var remote = require('remote'); var rimraf = require('rimraf'); var fs = require('fs'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var dialog = remote.require('dialog'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); diff --git a/src/components/ContainerSettingsPorts.react.js b/src/components/ContainerSettingsPorts.react.js index cc5e3c53b0..fbd84ef420 100644 --- a/src/components/ContainerSettingsPorts.react.js +++ b/src/components/ContainerSettingsPorts.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var webPorts = require('../utils/Util').webPorts; var ContainerSettingsPorts = React.createClass({ diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index a4d101f2a7..97ab6864f3 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var remote = require('remote'); var exec = require('exec'); var dialog = remote.require('dialog'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerSettingsVolumes = React.createClass({ diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 89bced2d23..04ce28c333 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -6,7 +6,7 @@ var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); var ipc = require('ipc'); var remote = require('remote'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 43e15949ac..2e8efdb54a 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var RetinaImage = require('react-retina-image'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; var util = require('../utils/Util'); diff --git a/src/components/NewContainer.react.js b/src/components/NewContainer.react.js index 50704836d8..490edd3b06 100644 --- a/src/components/NewContainer.react.js +++ b/src/components/NewContainer.react.js @@ -5,7 +5,7 @@ var RetinaImage = require('react-retina-image'); var Radial = require('./Radial.react'); var ImageCard = require('./ImageCard.react'); var Promise = require('bluebird'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var classNames = require('classnames'); var _recommended = []; diff --git a/src/components/Preferences.react.js b/src/components/Preferences.react.js index 7a1dd69360..09b7af2bf1 100644 --- a/src/components/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -1,5 +1,5 @@ var React = require('react/addons'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var Router = require('react-router'); var Preferences = React.createClass({ @@ -30,7 +30,7 @@ var Preferences = React.createClass({ metricsEnabled: checked }); metrics.setEnabled(checked); - metrics.track('Toggled util/Metrics', { + metrics.track('Toggled util/MetricsUtil', { enabled: checked }); }, diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 2431148b38..73e6b932b7 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -5,7 +5,7 @@ var SetupStore = require('../stores/SetupStore'); var RetinaImage = require('react-retina-image'); var Header = require('./Header.react'); var Util = require('../utils/Util'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var Setup = React.createClass({ mixins: [ Router.Navigation ], diff --git a/src/menu.js b/src/menu.js index e33cc6bf20..7c381715db 100644 --- a/src/menu.js +++ b/src/menu.js @@ -2,7 +2,7 @@ var remote = require('remote'); var app = remote.require('app'); var router = require('./router'); var util = require('./utils/Util'); -var metrics = require('./util/Metrics'); +var metrics = require('./util/MetricsUtil'); var machine = require('./utils/DockerMachineUtil'); var docker = require('./utils/DockerUtil'); diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index f453c12be8..dc8d341c5a 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -3,7 +3,7 @@ var EventEmitter = require('events').EventEmitter; var async = require('async'); var assign = require('object-assign'); var docker = require('../util/DockerUtil'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var registry = require('../utils/RegistryUtil'); var logstore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index 99338b115f..adf1f0b364 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -8,7 +8,7 @@ var virtualBox = require('../utils/VirtualBoxUtil'); var setupUtil = require('../utils/SetupUtil'); var util = require('../utils/Util'); var assign = require('object-assign'); -var metrics = require('../util/Metrics'); +var metrics = require('../util/MetricsUtil'); var bugsnag = require('bugsnag-js'); var docker = require('../utils/DockerUtil'); From 8daa24cbc46a783f3a9c51dcbca504dc56f09fcf Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:26:42 -0400 Subject: [PATCH 31/60] Metrics => MetricsUtil --- src/app.js | 4 ++-- src/components/ContainerDetailsSubheader.react.js | 2 +- src/components/ContainerHomeFolders.react.js | 2 +- src/components/ContainerHomeLogs.react.js | 2 +- src/components/ContainerHomePreview.react.js | 2 +- src/components/ContainerListItem.react.js | 2 +- src/components/ContainerListNewItem.react.js | 2 +- src/components/ContainerSettingsGeneral.react.js | 2 +- src/components/ContainerSettingsPorts.react.js | 2 +- src/components/ContainerSettingsVolumes.react.js | 2 +- src/components/Containers.react.js | 2 +- src/components/ImageCard.react.js | 2 +- src/components/NewContainer.react.js | 2 +- src/components/Preferences.react.js | 2 +- src/components/Setup.react.js | 2 +- src/{menu.js => menutemplate.js} | 2 +- src/stores/ContainerStore.js | 4 ++-- src/stores/SetupStore.js | 2 +- src/utils/MetricsUtil.js | 2 +- 19 files changed, 21 insertions(+), 21 deletions(-) rename src/{menu.js => menutemplate.js} (98%) diff --git a/src/app.js b/src/app.js index 8fc71c39bf..3cd14888df 100644 --- a/src/app.js +++ b/src/app.js @@ -7,9 +7,9 @@ var SetupStore = require('./stores/SetupStore'); var bugsnag = require('bugsnag-js'); var ipc = require('ipc'); var machine = require('./utils/DockerMachineUtil'); -var metrics = require('./util/MetricsUtil'); +var metrics = require('./utils/MetricsUtil'); var router = require('./router'); -var template = require('./MenuTemplate'); +var template = require('./menutemplate'); var webUtil = require('./utils/WebUtil'); webUtil.addWindowSizeSaving(); diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 00c274567f..36e5fa25d3 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -3,7 +3,7 @@ var $ = require('jquery'); var React = require('react'); var exec = require('exec'); var path = require('path'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index 3ab4fe57f3..ce44d828a1 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -4,7 +4,7 @@ var RetinaImage = require('react-retina-image'); var path = require('path'); var shell = require('shell'); var util = require('../utils/Util'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerHomeFolder = React.createClass({ diff --git a/src/components/ContainerHomeLogs.react.js b/src/components/ContainerHomeLogs.react.js index fd292f5bbc..40d3fede58 100644 --- a/src/components/ContainerHomeLogs.react.js +++ b/src/components/ContainerHomeLogs.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var LogStore = require('../stores/LogStore'); var Router = require('react-router'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var _prevBottom = 0; diff --git a/src/components/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js index 097b89ba23..f32df1a1ce 100644 --- a/src/components/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -4,7 +4,7 @@ var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); var request = require('request'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var webPorts = require('../utils/Util').webPorts; var ContainerHomePreview = React.createClass({ diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 5bc8167c88..801f577111 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var Router = require('react-router'); var remote = require('remote'); var dialog = remote.require('dialog'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; diff --git a/src/components/ContainerListNewItem.react.js b/src/components/ContainerListNewItem.react.js index 1bb4c080e7..d26c98ef32 100644 --- a/src/components/ContainerListNewItem.react.js +++ b/src/components/ContainerListNewItem.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var Router = require('react-router'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var ContainerListNewItem = React.createClass({ handleItemMouseEnter: function () { diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js index 38fb47b3ec..4fad44b149 100644 --- a/src/components/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -5,7 +5,7 @@ var path = require('path'); var remote = require('remote'); var rimraf = require('rimraf'); var fs = require('fs'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var dialog = remote.require('dialog'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); diff --git a/src/components/ContainerSettingsPorts.react.js b/src/components/ContainerSettingsPorts.react.js index fbd84ef420..b60499d76a 100644 --- a/src/components/ContainerSettingsPorts.react.js +++ b/src/components/ContainerSettingsPorts.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var exec = require('exec'); var ContainerStore = require('../stores/ContainerStore'); var ContainerUtil = require('../utils/ContainerUtil'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var webPorts = require('../utils/Util').webPorts; var ContainerSettingsPorts = React.createClass({ diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index 97ab6864f3..6bd9fb7294 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -3,7 +3,7 @@ var React = require('react/addons'); var remote = require('remote'); var exec = require('exec'); var dialog = remote.require('dialog'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var ContainerStore = require('../stores/ContainerStore'); var ContainerSettingsVolumes = React.createClass({ diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 04ce28c333..2836dc89ed 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -6,7 +6,7 @@ var ContainerList = require('./ContainerList.react'); var Header = require('./Header.react'); var ipc = require('ipc'); var remote = require('remote'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var autoUpdater = remote.require('auto-updater'); var RetinaImage = require('react-retina-image'); var machine = require('../utils/DockerMachineUtil'); diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 2e8efdb54a..cecc2c77e5 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -2,7 +2,7 @@ var $ = require('jquery'); var React = require('react/addons'); var RetinaImage = require('react-retina-image'); var ContainerStore = require('../stores/ContainerStore'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var OverlayTrigger = require('react-bootstrap').OverlayTrigger; var Tooltip = require('react-bootstrap').Tooltip; var util = require('../utils/Util'); diff --git a/src/components/NewContainer.react.js b/src/components/NewContainer.react.js index 490edd3b06..cc6d7520c1 100644 --- a/src/components/NewContainer.react.js +++ b/src/components/NewContainer.react.js @@ -5,7 +5,7 @@ var RetinaImage = require('react-retina-image'); var Radial = require('./Radial.react'); var ImageCard = require('./ImageCard.react'); var Promise = require('bluebird'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var classNames = require('classnames'); var _recommended = []; diff --git a/src/components/Preferences.react.js b/src/components/Preferences.react.js index 09b7af2bf1..fc96ce7dff 100644 --- a/src/components/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -1,5 +1,5 @@ var React = require('react/addons'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var Router = require('react-router'); var Preferences = React.createClass({ diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 73e6b932b7..9b699f8402 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -5,7 +5,7 @@ var SetupStore = require('../stores/SetupStore'); var RetinaImage = require('react-retina-image'); var Header = require('./Header.react'); var Util = require('../utils/Util'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var Setup = React.createClass({ mixins: [ Router.Navigation ], diff --git a/src/menu.js b/src/menutemplate.js similarity index 98% rename from src/menu.js rename to src/menutemplate.js index 7c381715db..b291336c03 100644 --- a/src/menu.js +++ b/src/menutemplate.js @@ -2,7 +2,7 @@ var remote = require('remote'); var app = remote.require('app'); var router = require('./router'); var util = require('./utils/Util'); -var metrics = require('./util/MetricsUtil'); +var metrics = require('./utils/MetricsUtil'); var machine = require('./utils/DockerMachineUtil'); var docker = require('./utils/DockerUtil'); diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index dc8d341c5a..81715a5a16 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -2,8 +2,8 @@ var _ = require('underscore'); var EventEmitter = require('events').EventEmitter; var async = require('async'); var assign = require('object-assign'); -var docker = require('../util/DockerUtil'); -var metrics = require('../util/MetricsUtil'); +var docker = require('../utils/DockerUtil'); +var metrics = require('../utils/MetricsUtil'); var registry = require('../utils/RegistryUtil'); var logstore = require('../stores/LogStore'); var bugsnag = require('bugsnag-js'); diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index adf1f0b364..6bdb76033a 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -8,7 +8,7 @@ var virtualBox = require('../utils/VirtualBoxUtil'); var setupUtil = require('../utils/SetupUtil'); var util = require('../utils/Util'); var assign = require('object-assign'); -var metrics = require('../util/MetricsUtil'); +var metrics = require('../utils/MetricsUtil'); var bugsnag = require('bugsnag-js'); var docker = require('../utils/DockerUtil'); diff --git a/src/utils/MetricsUtil.js b/src/utils/MetricsUtil.js index 682ec46c45..3447f0f577 100644 --- a/src/utils/MetricsUtil.js +++ b/src/utils/MetricsUtil.js @@ -3,7 +3,7 @@ var Mixpanel = require('mixpanel'); var uuid = require('node-uuid'); var fs = require('fs'); var path = require('path'); -var util = require('./utils/Util'); +var util = require('./Util'); var settings; try { From b68ffe98c32beb41c16d7e8c68e899999e5f866d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 21 Apr 2015 21:35:10 -0400 Subject: [PATCH 32/60] Adding alt instance --- src/alt.js | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/alt.js diff --git a/src/alt.js b/src/alt.js new file mode 100644 index 0000000000..487e70bd39 --- /dev/null +++ b/src/alt.js @@ -0,0 +1,2 @@ +var Alt = require('alt'); +module.exports = new Alt(); From d45ccdc00524ae4a1982d67eab10e97a559df832 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 22 Apr 2015 11:56:46 -0400 Subject: [PATCH 33/60] Adding source maps to tests for better stack traces --- package.json | 8 ++++++-- util/prepare.js | 14 ++++++++++++++ util/preprocessor.js | 16 +++++++++------- 3 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 util/prepare.js diff --git a/package.json b/package.json index 3d364642a7..0fbf7d3b42 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "jest": { "scriptPreprocessor": "/util/preprocessor.js", "setupEnvScriptFile": "/util/testenv.js", + "setupTestFrameworkScriptFile": "/util/prepare.js", "collectCoverage": true, "testDirectoryName": "src", "testPathIgnorePatterns": [ @@ -42,7 +43,8 @@ "/node_modules/.*JSONStream", "/node_modules/object-assign", "/node_modules/underscore", - "/node_modules/bluebird" + "/node_modules/bluebird", + "/node_modules/source-map-support" ] }, "docker-version": "1.6.0", @@ -52,6 +54,7 @@ "virtualbox-filename": "VirtualBox-4.3.26.pkg", "virtualbox-checksum": "668f61c95efe37f8fc65cafe95b866fba64e37f2492dfc1e2b44a7ac3dcafa3b", "dependencies": { + "alt": "^0.15.6", "ansi-to-html": "0.3.0", "async": "^0.9.0", "bluebird": "^2.9.24", @@ -93,6 +96,7 @@ "jsxhint": "^0.14.0", "minimist": "^1.1.1", "react-tools": "^0.13.1", - "run-sequence": "^1.0.2" + "run-sequence": "^1.0.2", + "source-map-support": "^0.2.10" } } diff --git a/util/prepare.js b/util/prepare.js new file mode 100644 index 0000000000..2aa87fd0a3 --- /dev/null +++ b/util/prepare.js @@ -0,0 +1,14 @@ +require.requireActual('babel/polyfill'); +require.requireActual('source-map-support').install({ + retrieveSourceMap: function(filename) { + if (filename.indexOf('node_modules') === -1) { + try { + return { + map: require.requireActual('fs').readFileSync('/tmp/' + require('crypto').createHash('md5').update(filename).digest('hex') + '.map', 'utf8') + }; + } catch (err) { + return undefined; + } + } + } +}); diff --git a/util/preprocessor.js b/util/preprocessor.js index eb39f8b3f1..a284c1eacc 100644 --- a/util/preprocessor.js +++ b/util/preprocessor.js @@ -1,12 +1,14 @@ +var babel = require('babel'); +var fs = require('fs'); +var crypto = require('crypto'); + module.exports = { process: function(src, filename) { - if (filename.indexOf('node_modules') === -1) { - var res = require('babel').transform(src).code; - if (filename.indexOf('-test') !== -1) { - res = 'require(\'babel/polyfill\');' + res; - } - return res; + if (filename.indexOf('node_modules') !== -1) { + return src; } - return src; + var compiled = babel.transform(src, {filename: filename, sourceMap: true}); + fs.writeFileSync('/tmp/' + crypto.createHash('md5').update(filename).digest('hex') + '.map', JSON.stringify(compiled.map)); + return compiled.code; } }; From 9f39b8f262a95ce30757278ea6523599d7f55f86 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 22 Apr 2015 13:22:49 -0400 Subject: [PATCH 34/60] Removing alt.js for now --- src/alt.js | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 src/alt.js diff --git a/src/alt.js b/src/alt.js deleted file mode 100644 index 487e70bd39..0000000000 --- a/src/alt.js +++ /dev/null @@ -1,2 +0,0 @@ -var Alt = require('alt'); -module.exports = new Alt(); From 372a8d6c3ea66e5c752b28f2d69a9d0acfec4fe2 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 22 Apr 2015 13:24:10 -0400 Subject: [PATCH 35/60] Removing alt from package.json for now --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 0fbf7d3b42..dbf5d3f6c9 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,6 @@ "virtualbox-filename": "VirtualBox-4.3.26.pkg", "virtualbox-checksum": "668f61c95efe37f8fc65cafe95b866fba64e37f2492dfc1e2b44a7ac3dcafa3b", "dependencies": { - "alt": "^0.15.6", "ansi-to-html": "0.3.0", "async": "^0.9.0", "bluebird": "^2.9.24", From c3abcdec6d9b3df7993fa7830c5ac10a44fd6375 Mon Sep 17 00:00:00 2001 From: TeckniX Date: Fri, 24 Apr 2015 13:41:35 -0400 Subject: [PATCH 36/60] Added support for container stop --- images/button-stop.png | Bin 0 -> 3188 bytes images/button-stop@2x.png | Bin 0 -> 3323 bytes .../ContainerDetailsHeader.react.js | 2 +- .../ContainerDetailsSubheader.react.js | 29 ++++++++++++++++++ src/stores/ContainerStore.js | 13 ++++++++ 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 images/button-stop.png create mode 100644 images/button-stop@2x.png diff --git a/images/button-stop.png b/images/button-stop.png new file mode 100644 index 0000000000000000000000000000000000000000..14f88011b8f6647683e15bab912d0bb6dc595f0b GIT binary patch literal 3188 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 literal 0 HcmV?d00001 diff --git a/src/components/ContainerDetailsHeader.react.js b/src/components/ContainerDetailsHeader.react.js index ded2816d5e..016bb01287 100644 --- a/src/components/ContainerDetailsHeader.react.js +++ b/src/components/ContainerDetailsHeader.react.js @@ -6,7 +6,7 @@ var ContainerDetailsHeader = React.createClass({ if (!this.props.container) { return false; } - if (this.props.container.State.Running && !this.props.container.State.Paused && !this.props.container.State.Restarting) { + if (this.props.container.State.Running && !this.props.container.State.Paused && !this.props.container.State.ExitCode && !this.props.container.State.Restarting) { state = RUNNING; } else if (this.props.container.State.Restarting) { state = RESTARTING; diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 36e5fa25d3..9023208e13 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -54,6 +54,12 @@ var ContainerDetailsSubheader = React.createClass({ } return (this.props.container.State.Downloading || this.props.container.State.Restarting); }, + disableStop: function () { + if (!this.props.container) { + return false; + } + return (this.props.container.State.Downloading || this.props.container.State.ExitCode); + }, disableTerminal: function () { if (!this.props.container) { return false; @@ -103,6 +109,13 @@ var ContainerDetailsSubheader = React.createClass({ }); } }, + handleStop: function () { + if (!this.disableStop()) { + metrics.track('Stopped Container'); + ContainerStore.stop(this.props.container.Name, function () { + }); + } + }, handleTerminal: function () { if (!this.disableTerminal()) { metrics.track('Terminaled Into Container'); @@ -134,6 +147,14 @@ var ContainerDetailsSubheader = React.createClass({ var $action = $(this.getDOMNode()).find('.action .restart'); $action.css("visibility", "hidden"); }, + handleItemMouseEnterStop: function () { + var $action = $(this.getDOMNode()).find('.action .stop'); + $action.css("visibility", "visible"); + }, + handleItemMouseLeaveStop: function () { + var $action = $(this.getDOMNode()).find('.action .stop'); + $action.css("visibility", "hidden"); + }, handleItemMouseEnterTerminal: function () { var $action = $(this.getDOMNode()).find('.action .terminal'); $action.css("visibility", "visible"); @@ -151,6 +172,10 @@ var ContainerDetailsSubheader = React.createClass({ action: true, disabled: this.disableRestart() }); + var stopActionClass = classNames({ + action: true, + disabled: this.disableStop() + }); var terminalActionClass = classNames({ action: true, disabled: this.disableTerminal() @@ -181,6 +206,10 @@ var ContainerDetailsSubheader = React.createClass({
Restart
+
+
+ Stop +
Terminal diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 81715a5a16..080684cec4 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -398,6 +398,19 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { } }); }, + stop: function (name, callback) { + var container = docker.client().getContainer(name); + _muted[name] = true; + container.stop(err => { + if (err && err.statusCode !== 304) { + _muted[name] = false; + callback(err); + } else { + _muted[name] = false; + this.fetchContainer(name, callback); + } + }); + }, remove: function (name, callback) { if (_placeholders[name]) { delete _placeholders[name]; From 20ac2b65502d93535034e6008700d045b5aece50 Mon Sep 17 00:00:00 2001 From: TeckniX Date: Fri, 24 Apr 2015 16:19:34 -0400 Subject: [PATCH 37/60] Replaced disableStop by stopDisabled Signed-off-by: TeckniX --- src/components/ContainerDetailsSubheader.react.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 9023208e13..11f92f35b3 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -54,7 +54,7 @@ var ContainerDetailsSubheader = React.createClass({ } return (this.props.container.State.Downloading || this.props.container.State.Restarting); }, - disableStop: function () { + stopDisabled: function () { if (!this.props.container) { return false; } @@ -110,7 +110,7 @@ var ContainerDetailsSubheader = React.createClass({ } }, handleStop: function () { - if (!this.disableStop()) { + if (!this.stopDisabled()) { metrics.track('Stopped Container'); ContainerStore.stop(this.props.container.Name, function () { }); @@ -174,7 +174,7 @@ var ContainerDetailsSubheader = React.createClass({ }); var stopActionClass = classNames({ action: true, - disabled: this.disableStop() + disabled: this.stopDisabled() }); var terminalActionClass = classNames({ action: true, From 2c76a69fa5bdf8a5725aa3e78aa1292612579ece Mon Sep 17 00:00:00 2001 From: TeckniX Date: Sun, 26 Apr 2015 15:07:05 -0400 Subject: [PATCH 38/60] Centered label --- styles/right-panel.less | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/styles/right-panel.less b/styles/right-panel.less index 384b3e8934..e36251045f 100644 --- a/styles/right-panel.less +++ b/styles/right-panel.less @@ -46,6 +46,10 @@ left: 2px; //left: -18px; } + &.stop { + left: 7px; + //left: -18px; + } &.terminal { left: -1px; //left: -30px; From 3869b5ca18567f73e6a3b36c8817c82385d4a769 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 11:30:23 -0400 Subject: [PATCH 39/60] Unit tests for url opener --- package.json | 1 + src/app.js | 41 +++++++++------------------ src/stores/SetupStore-test.js | 6 ++-- src/stores/SetupStore.js | 6 ++-- src/utils/SetupUtil.js | 49 -------------------------------- src/utils/URLUtil-test.js | 53 +++++++++++++++++++++++++++++++++++ src/utils/URLUtil.js | 44 +++++++++++++++++++++++++++++ src/utils/Util.js | 49 ++++++++++++++++++++++++++++++++ 8 files changed, 166 insertions(+), 83 deletions(-) create mode 100644 src/utils/URLUtil-test.js create mode 100644 src/utils/URLUtil.js diff --git a/package.json b/package.json index dbf5d3f6c9..35ae89fd23 100644 --- a/package.json +++ b/package.json @@ -66,6 +66,7 @@ "mixpanel": "0.2.0", "node-uuid": "^1.4.3", "object-assign": "^2.0.0", + "parseUri": "^1.2.3-2", "react": "^0.13.1", "react-bootstrap": "^0.20.3", "react-retina-image": "^1.1.2", diff --git a/src/app.js b/src/app.js index ad4e661484..2c782c1ebd 100644 --- a/src/app.js +++ b/src/app.js @@ -11,7 +11,9 @@ var metrics = require('./utils/MetricsUtil'); var router = require('./router'); var template = require('./menutemplate'); var webUtil = require('./utils/WebUtil'); -var util = require ('./utils/Util'); +var urlUtil = require ('./utils/URLUtil'); +var app = remote.require('app'); +var request = require('request'); webUtil.addWindowSizeSaving(); webUtil.addLiveReload(); @@ -28,12 +30,6 @@ setInterval(function () { router.run(Handler => React.render(, document.body)); -ipc.on('application:quitting', opts => { - if (!opts.updating && localStorage.getItem('settings.closeVMOnQuit') === 'true') { - machine.stop(); - } -}); - SetupStore.setup().then(() => { if (ContainerStore.pending()) { router.transitionTo('pull'); @@ -60,26 +56,15 @@ ipc.on('application:quitting', () => { } }); +// Event fires when the app receives a docker:// URL such as +// docker://repository/run/redis ipc.on('application:open-url', opts => { - var parser = document.createElement('a'); - parser.href = opts.url; - - if (parser.protocol !== 'docker:') { - return; - } - - var pathname = parser.pathname.replace('//', ''); - var tokens = pathname.split('/'); - var type = tokens[0]; - var method = tokens[1]; - var repo = tokens.slice(2).join('/'); - - // Only accept official repos for now - if (!util.isOfficialRepo(repo)) { - return; - } - - if (type === 'repository' && method === 'run') { - ContainerStore.setPending(repo, 'latest'); - } + request.get('https://kitematic.com/flags.json', (flags, err) => { + if (err || !flags) { + return; + } + urlUtil.openUrl(opts.url, flags, app.getVersion()); + }); }); + +urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: '0.5.19'}, app.getVersion()); diff --git a/src/stores/SetupStore-test.js b/src/stores/SetupStore-test.js index 38bd33dec4..17bf010474 100644 --- a/src/stores/SetupStore-test.js +++ b/src/stores/SetupStore-test.js @@ -21,7 +21,7 @@ describe('SetupStore', function () { pit('downloads virtualbox if it is installed but has an outdated version', function () { virtualBox.installed.mockReturnValue(true); virtualBox.version.mockReturnValue(Promise.resolve('4.3.16')); - setupUtil.compareVersions.mockReturnValue(-1); + util.compareVersions.mockReturnValue(-1); setupUtil.download.mockReturnValue(Promise.resolve()); util.packagejson.mockReturnValue({'virtualbox-filename': ''}); util.supportDir.mockReturnValue(''); @@ -50,7 +50,7 @@ describe('SetupStore', function () { pit('only installs binaries if virtualbox is installed', function () { virtualBox.installed.mockReturnValue(true); - setupUtil.compareVersions.mockReturnValue(0); + util.compareVersions.mockReturnValue(0); setupUtil.needsBinaryFix.mockReturnValue(true); return setupStore.steps().install.run().then(() => { expect(util.exec).toBeCalledWith('macsudo copycmd && fixcmd'); @@ -68,7 +68,7 @@ describe('SetupStore', function () { machine.stop.mockReturnValue(Promise.resolve()); machine.start.mockReturnValue(Promise.resolve()); machine.upgrade.mockReturnValue(Promise.resolve()); - setupUtil.compareVersions.mockReturnValue(-1); + util.compareVersions.mockReturnValue(-1); machine.create.mockClear(); machine.upgrade.mockClear(); machine.start.mockClear(); diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index 6bdb76033a..10caa0d4a3 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -76,7 +76,7 @@ var _steps = [{ var isoversion = machine.isoversion(); var packagejson = util.packagejson(); - if (!isoversion || setupUtil.compareVersions(isoversion, packagejson['docker-version']) < 0) { + if (!isoversion || util.compareVersions(isoversion, packagejson['docker-version']) < 0) { yield machine.start(); yield machine.upgrade(); } @@ -152,10 +152,10 @@ var SetupStore = assign(Object.create(EventEmitter.prototype), { var vboxNeedsInstall = !virtualBox.installed(); required.download = vboxNeedsInstall && (!fs.existsSync(vboxfile) || setupUtil.checksum(vboxfile) !== packagejson['virtualbox-checksum']); required.install = vboxNeedsInstall || setupUtil.needsBinaryFix(); - required.init = required.install || !(yield machine.exists()) || (yield machine.state()) !== 'Running' || !isoversion || setupUtil.compareVersions(isoversion, packagejson['docker-version']) < 0; + required.init = required.install || !(yield machine.exists()) || (yield machine.state()) !== 'Running' || !isoversion || util.compareVersions(isoversion, packagejson['docker-version']) < 0; var exists = yield machine.exists(); - if (isoversion && setupUtil.compareVersions(isoversion, packagejson['docker-version']) < 0) { + if (isoversion && util.compareVersions(isoversion, packagejson['docker-version']) < 0) { this.steps().init.seconds = 33; } else if (exists && (yield machine.state()) === 'Saved') { this.steps().init.seconds = 8; diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index 95fe6c0b5f..5fe0aa10f4 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -108,55 +108,6 @@ var SetupUtil = { resolve(); }); }); - }, - compareVersions: function (v1, v2, options) { - var lexicographical = options && options.lexicographical, - zeroExtend = options && options.zeroExtend, - v1parts = v1.split('.'), - v2parts = v2.split('.'); - - function isValidPart(x) { - return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x); - } - - if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) { - return NaN; - } - - if (zeroExtend) { - while (v1parts.length < v2parts.length) { - v1parts.push('0'); - } - while (v2parts.length < v1parts.length) { - v2parts.push('0'); - } - } - - if (!lexicographical) { - v1parts = v1parts.map(Number); - v2parts = v2parts.map(Number); - } - - for (var i = 0; i < v1parts.length; ++i) { - if (v2parts.length === i) { - return 1; - } - if (v1parts[i] === v2parts[i]) { - continue; - } - else if (v1parts[i] > v2parts[i]) { - return 1; - } - else { - return -1; - } - } - - if (v1parts.length !== v2parts.length) { - return -1; - } - - return 0; } }; diff --git a/src/utils/URLUtil-test.js b/src/utils/URLUtil-test.js new file mode 100644 index 0000000000..717729e5c4 --- /dev/null +++ b/src/utils/URLUtil-test.js @@ -0,0 +1,53 @@ +jest.dontMock('./URLUtil'); +jest.dontMock('parseUri'); +var urlUtil = require('./URLUtil'); +var util = require('./Util'); + +describe('URLUtil', function () { + beforeEach(() => { + util.compareVersions.mockClear(); + util.isOfficialRepo.mockClear(); + }); + + it('does nothing if the url is undefined', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl()).toBe(false); + }); + + it('does nothing if the flags are undefined', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://repository/run/redis')).toBe(false); + }); + + it('does nothing if the url enabled flag is falsy', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: undefined})).toBe(false); + }); + + it('does nothing if the url enabled flag is less than the flag version', () => { + util.compareVersions.mockReturnValue(-1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: '0.5.19'}, '0.5.18')).toBe(false); + }); + + it('does nothing if protocol is not docker:', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('facetime://')).toBe(false); + }); + + it('does nothing if repo is not official', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(false); + expect(urlUtil.openUrl('docker://repository/run/not/official', {dockerURLEnabledVersion: '0.5.19'}, '0.5.20')).toBe(false); + }); + + it('returns true if type and method are correct', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: '0.5.19'}, '0.5.20')).toBe(true); + }); +}); diff --git a/src/utils/URLUtil.js b/src/utils/URLUtil.js new file mode 100644 index 0000000000..4e0bd8367a --- /dev/null +++ b/src/utils/URLUtil.js @@ -0,0 +1,44 @@ +var util = require('./Util'); +var parseUri = require('parseUri'); +var containerStore = require('../Stores/ContainerStore'); + +module.exports = { + openUrl: function (url, flags, appVersion) { + if (!url || !flags || !flags.dockerURLEnabledVersion) { + return false; + } + + // Make sure this feature is enabled via the feature flag + if (util.compareVersions(appVersion, flags.dockerURLEnabledVersion) < 0) { + return false; + } + + var parser = parseUri(url); + + if (parser.protocol !== 'docker') { + return false; + } + + // Get the type of object we're operating on, e.g. 'repository' + var type = parser.host; + + // Separate the path into [run', 'redis'] + var tokens = parser.path.replace('/', '').split('/'); + + // Get the method trying to be executed, e.g. 'run' + var method = tokens[0]; + + // Get the repository namespace and repo name, e.g. 'redis' or 'myusername/myrepo' + var repo = tokens.slice(1).join('/'); + + // Only accept official repos for now + if (!util.isOfficialRepo(repo)) { + return false; + } + + if (type === 'repository' && method === 'run') { + containerStore.setPending(repo, 'latest'); + return true; + } + } +}; diff --git a/src/utils/Util.js b/src/utils/Util.js index 47cc5ad6fa..cc4fff1712 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -59,5 +59,54 @@ module.exports = { var repoRegexp = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/; return repoRegexp.test(name); }, + compareVersions: function (v1, v2, options) { + var lexicographical = options && options.lexicographical, + zeroExtend = options && options.zeroExtend, + v1parts = v1.split('.'), + v2parts = v2.split('.'); + + function isValidPart(x) { + return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x); + } + + if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) { + return NaN; + } + + if (zeroExtend) { + while (v1parts.length < v2parts.length) { + v1parts.push('0'); + } + while (v2parts.length < v1parts.length) { + v2parts.push('0'); + } + } + + if (!lexicographical) { + v1parts = v1parts.map(Number); + v2parts = v2parts.map(Number); + } + + for (var i = 0; i < v1parts.length; ++i) { + if (v2parts.length === i) { + return 1; + } + if (v1parts[i] === v2parts[i]) { + continue; + } + else if (v1parts[i] > v2parts[i]) { + return 1; + } + else { + return -1; + } + } + + if (v1parts.length !== v2parts.length) { + return -1; + } + + return 0; + }, webPorts: ['80', '8000', '8080', '3000', '5000', '2368', '9200', '8983'] }; From 2268690bc68301c595c150583aa8cdfdb1fee6aa Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 11:30:45 -0400 Subject: [PATCH 40/60] removing test url --- src/app.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app.js b/src/app.js index 2c782c1ebd..5ec68f4bb4 100644 --- a/src/app.js +++ b/src/app.js @@ -66,5 +66,3 @@ ipc.on('application:open-url', opts => { urlUtil.openUrl(opts.url, flags, app.getVersion()); }); }); - -urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: '0.5.19'}, app.getVersion()); From e2b4261ac922c9584df71f9936b95106a510664f Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 11:43:22 -0400 Subject: [PATCH 41/60] removing test url, console logs --- src/components/Containers.react.js | 1 - src/utils/URLUtil.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index d29cf38c19..5549462f50 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -71,7 +71,6 @@ var Containers = React.createClass({ this.context.router.transitionTo('containerHome', {name: name}); } else if (status === 'pending' && ContainerStore.pending()) { this.context.router.transitionTo('pull'); - this.context.router.transitionTo('containerHome', {name: name}); } else if (status === 'destroy') { this.onDestroy(); } diff --git a/src/utils/URLUtil.js b/src/utils/URLUtil.js index 4e0bd8367a..21461e75b6 100644 --- a/src/utils/URLUtil.js +++ b/src/utils/URLUtil.js @@ -1,6 +1,6 @@ var util = require('./Util'); var parseUri = require('parseUri'); -var containerStore = require('../Stores/ContainerStore'); +var containerStore = require('../stores/ContainerStore'); module.exports = { openUrl: function (url, flags, appVersion) { From d1ee6dffc4f998c9c2464dc8a468f86c285b37eb Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 08:58:23 -0700 Subject: [PATCH 42/60] Added start and stop button toggle. --- images/button-start.png | Bin 0 -> 1587 bytes images/button-start@2x.png | Bin 0 -> 3538 bytes images/button-stop.png | Bin 3188 -> 1413 bytes images/button-stop@2x.png | Bin 3323 -> 3137 bytes .../ContainerDetailsSubheader.react.js | 52 +++++++++++++++--- src/stores/ContainerStore.js | 13 +++++ styles/right-panel.less | 7 +-- 7 files changed, 61 insertions(+), 11 deletions(-) create mode 100644 images/button-start.png create mode 100644 images/button-start@2x.png diff --git a/images/button-start.png b/images/button-start.png new file mode 100644 index 0000000000000000000000000000000000000000..4faf611264c75bc7a1ba37446ded6ba37dc92e04 GIT binary patch literal 1587 zcmV-32F&@1P)Px)?MXyIR9Fe^S#NApRTRJHzPGJxD;vbMWo%<@S5WYSB*Y0Ci6#)%Z8C{}A|ys7 zYJwusm>BY(_xG-qwvV+K#{~!_ltqUeB#` zyuPjUP4`AZxJmQQIrp4EvSQgxUjul-JTmoKaa0-HI3QpEKw&J)C6m=KtU{2~NYjQqYBBRl++wgA#eZQ204 z>XkgOS{rfpJWkk4-EAj-Ahq|!lF%SC@0);A&X8Uqz-t&|Pxp8o!e)A#`^$i>taXsP zTS9wrW4)Q zFtQ`3!D^F+-M-MH`aUg>3$LAU_*$l9laQMV7-aG|=TPT=&^e?95vKuGGLsj}9P;_#g^Z)7kfV=bRw5waeV)8}{c?IW*VT zUwp<})PL2E_hS7k8UyTX4z7?W-H)!%!E$+0mgrdDRikTDF^5GgAivNWkS<*;gZz9! z8*N1k*XLtA#52d4qn`}u?D9Az=i;E8zTip(dpO3_rGBsDXPx4IV~-vj<>k)}mo)Xx z>Z_V}A>ANYBpya*?ZgQFyo(K4(A)YiY{wA$Q5Gc=^W0%|l-=R4c66j0*l<5i2(25A z$WrzywD~NR9d3dOGqYyw!q4qdnOftobhM4r#XShF#TC)$$cvO%v*%;1b@Wu*rw;6u z85!d~AiQQA02FZCPzbMPWm?*Sv-Ylwp~Vw|MO|0=~l*Gzl3VR{`W2rF$T;=49e^RRf6?n+x7I_A^d z0_oR+`cQ7lx0|2?bMkAr2se@u_E2IgYC2$n13kGBK_8xJB}XO-4?Wh>uX^%vm$nNR z+Lj9}>`~S@LJ6I;fJN1D`v!L>4C2rFdI>+(7fCW?&?Eaq*3ruauTExVepJzjP=e?f45<23U7O({{kprpF8j%Yw3IJ=8 zWXRy+t>Rg^7QH;di|~jAhCK-8dkTDQhLo+KC!?4xLb4+_43b=jCygkJk-PB)pU{I9 zp*qkxry}kGSdOOT0-{>@$hdGdF$V5RvW<@ z9MJZj8)9dJ4TWX~@dBwl*cYQ_~z4~cXz+$AO3NeSsv z#Ky-!yZ#1p0&NivIH`|^h zLxwZ>csK%=v~oNK9fa7-%kfyXfD-06Iu9ig-YJX{SMo*; zr$R6O&k}(O9-+sLjz@b|+k=?4-jF2H;cN)njT-)6J#mz$R_igw`8&#LTbI%C#$pHm zYj_?ge29i^7}I~6bsL0tY9fcb@Xlc&0rsx4%D&AgSfMutSTG_iKq4NA@KSMwC1hqa lU~C}5W1aog#b+iv{y(MXB+FM}Vif=Y002ovPDHLkV1jaE_1gdd literal 0 HcmV?d00001 diff --git a/images/button-start@2x.png b/images/button-start@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..875b28199115d2fa1cc0d70ce9b3cfa045572a6f GIT binary patch literal 3538 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 M07*qoM6N<$f=cta%>V!Z literal 0 HcmV?d00001 diff --git a/images/button-stop.png b/images/button-stop.png index 14f88011b8f6647683e15bab912d0bb6dc595f0b..3abc6c87cfb6ff36d7a73d247d37439384890410 100644 GIT binary patch literal 1413 zcmV;01$z34P)Px)KS@MER9Fe^S#M}tRTMw>zL#3tW@(2_VzF)hG@DL8D2R0^iXSFz+S)k;aRbp0 ze$qJ*L9Bo17tx6mH_~G!FMS#4*fp`$t7uZi6e+dB6jP$Jts1fNyDF%BZ9nKimb4u9& z`}#u;Vz&=q?+y;^xih1uzJ}fhQaNalX#PCrm2J`sK=@Y1*i+%4Tj-Rx_&2?0$=|B8R{P|)#7Ty*E^(wJ0O_ypFtG;!_ zu@7wzgo3WOitS_aA$K^H=66s^4|;}Fx6qf1HByYcZ$J&;{0CDDa~t$}7#c%_kf5HY zuXE0oP`k53@NnV%f;04)O!+P(U$hi3k>PR9Nnhk)@2nn>06WoEUoe(M80h6wOX=M< z8y!VnkF_B|U@PZKNA;awNnL~nj^LbsFuvJRz=V?xOiliFB_NmUkdq*hKu$<_`ofiD zeU(G10AGr6wp_`8qt1^-p7bsVsfK~*4VVZL8f~CyqM1)({<|p)*gF*8B2oGQy1p9I zFfv&fg5yDT%QdQfk!QvSN6Xce~ z#rbb!uvg(8$;ZN7uCY}c&NILmR|xJD$o@#*B=*_-tt-D>Py1SLxt{=!oa=6yk}07# zW89V;tmu%%|Lv3AH9a0BcDH`^w4|U1b(uPjnZC_|_o57^i~+;rUeOEeG96@_#14U8 zepRBCtS-KAkTxU9*edw4EYwD$+>igB2BCtZsh}wf^ zyPYu49?_1XmID?5Lv7BT2>SRsJDd>VVFcRqX}A_+{C!+#ug$PTAhgY`YC491-O5zG zUzy&oDP+F={Sr>q$2mMC&?AS$u9MFfG{)^NOhxa=L^>*TeZ$j_i7ii)6-moC6ulGs z+AUXBkK@9uy2xf77lVPnH5u_W1YAj=8mFaQuLLtbiU*i&IXonA@pkg-YAW;j8ZE*j z6`Knnn6D_|+ig-+2tB!o2Xz$}XM#v_AKo+;SqkpK0X~rrR@kv*v1tHT`u?A)#f-3`-atfXL;h+mAoaA3uc&P6d;)otPpJ&5``4a^6}8S zw~o~Y%*q?dSq|6;037(y2AR}rD47wkJS2=@_?w#cKod-a0L0zTuv~o)8$!$#SOc8v zkJ3|X9xlC4b1klUIM*Mgr>;E@v-DyD?^6eId^I(g#!H zg=G)ZdYPi?J|(^bk9bFlQYxV^o{jh6?^&}Zuf32kJMwbL;af3Kyh1Pguc2H3@D88G zI4}70nva8~fkaS#V}3)qXuMW!q`)F(`=gNL<3dS$k~gbZ3c1WbOF-IrlAbhckA}Nl zaoo0EmLwSS9*euoDy~*eT;-|V{xjqJ^-#BS!mPb)?D!S+8A8dss5pu-{ijv0L7aow z!+rSXun7ozBh==4(=1pamjx^c5f(&(fCStlp0EVZib5ERCV6W7d{^UN#oGT5wSM7F TaNc8_00000NkvXXu0mjfErqBF literal 3188 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 bB|zZ+LZQ=r;s?h<00000NkvXXu0mjf%C;C! literal 3323 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 diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 11f92f35b3..3709bdd376 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -54,12 +54,18 @@ var ContainerDetailsSubheader = React.createClass({ } return (this.props.container.State.Downloading || this.props.container.State.Restarting); }, - stopDisabled: function () { + disableStop: function () { if (!this.props.container) { return false; } return (this.props.container.State.Downloading || this.props.container.State.ExitCode); }, + disableStart: function () { + if (!this.props.container) { + return false; + } + return (this.props.container.State.Downloading || this.props.container.State.Running); + }, disableTerminal: function () { if (!this.props.container) { return false; @@ -110,12 +116,19 @@ var ContainerDetailsSubheader = React.createClass({ } }, handleStop: function () { - if (!this.stopDisabled()) { + if (!this.disableStop()) { metrics.track('Stopped Container'); ContainerStore.stop(this.props.container.Name, function () { }); } }, + handleStart: function () { + if (!this.disableStart()) { + metrics.track('Started Container'); + ContainerStore.start(this.props.container.Name, function () { + }); + } + }, handleTerminal: function () { if (!this.disableTerminal()) { metrics.track('Terminaled Into Container'); @@ -155,6 +168,14 @@ var ContainerDetailsSubheader = React.createClass({ var $action = $(this.getDOMNode()).find('.action .stop'); $action.css("visibility", "hidden"); }, + handleItemMouseEnterStart: function () { + var $action = $(this.getDOMNode()).find('.action .start'); + $action.css("visibility", "visible"); + }, + handleItemMouseLeaveStart: function () { + var $action = $(this.getDOMNode()).find('.action .start'); + $action.css("visibility", "hidden"); + }, handleItemMouseEnterTerminal: function () { var $action = $(this.getDOMNode()).find('.action .terminal'); $action.css("visibility", "visible"); @@ -174,7 +195,11 @@ var ContainerDetailsSubheader = React.createClass({ }); var stopActionClass = classNames({ action: true, - disabled: this.stopDisabled() + disabled: this.disableStop() + }); + var startActionClass = classNames({ + action: true, + disabled: this.disableStart() }); var terminalActionClass = classNames({ action: true, @@ -195,6 +220,22 @@ var ContainerDetailsSubheader = React.createClass({ 'active': this.state.currentRoute && (this.state.currentRoute.indexOf('containerSettings') >= 0), disabled: this.disableTab() }); + var startStopToggle; + if (this.disableStop()) { + startStopToggle = ( +

+
+ Start +
+ ); + } else { + startStopToggle = ( +
+
+ Stop +
+ ); + } return (
@@ -206,10 +247,7 @@ var ContainerDetailsSubheader = React.createClass({
Restart
-
-
- Stop -
+ {{startStopToggle}}
Terminal diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 080684cec4..2d4ec1b621 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -411,6 +411,19 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { } }); }, + start: function (name, callback) { + var container = docker.client().getContainer(name); + _muted[name] = true; + container.start(err => { + if (err && err.statusCode !== 304) { + _muted[name] = false; + callback(err); + } else { + _muted[name] = false; + this.fetchContainer(name, callback); + } + }); + }, remove: function (name, callback) { if (_placeholders[name]) { delete _placeholders[name]; diff --git a/styles/right-panel.less b/styles/right-panel.less index e36251045f..cbd4baee64 100644 --- a/styles/right-panel.less +++ b/styles/right-panel.less @@ -40,19 +40,18 @@ top: 45px; &.view { left: 7px; - //left: 0px; } &.restart { left: 2px; - //left: -18px; } &.stop { left: 7px; - //left: -18px; + } + &.start { + left: 7px; } &.terminal { left: -1px; - //left: -30px; } visibility: hidden; } From 75550a0bbedec45b114f722212c7ed0bdbe9a1a8 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 09:17:53 -0700 Subject: [PATCH 43/60] Button image tweak. --- images/button-start.png | Bin 1587 -> 1431 bytes images/button-start@2x.png | Bin 3538 -> 3124 bytes images/button-stop.png | Bin 1413 -> 1342 bytes images/button-stop@2x.png | Bin 3137 -> 2841 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/button-start.png b/images/button-start.png index 4faf611264c75bc7a1ba37446ded6ba37dc92e04..29f6a9660af5d4a6cee29d4fcfc6647c14aee3ea 100644 GIT binary patch literal 1431 zcmV;I1!($-P)Px)QAtEWR9Fe^S!+yOMHD_W_p-~ot-vmC*@p?nXCkzzT9cYK?JlLYra@z*(ZtyJ zM~y%9N7Z1eKa7u<_(N)%*x(N$Canb6U6U$FQ<}Ec8d8Zw*yDyxHq0c#~vkc)O(>sMRxG!vWeOs{^`;e!C|YmM*QLk4C<_!3pM4jB88QsY}o>zH|w z91+55o4B{=n+9soh}I?Y{PyzwA`{#`P#t2TG&g;-e;RVu18 zkd?hFB|r(1pp~I*X_QN>Q2cTb zq2~rp6^3~STfvEVDIyt-K<{0+Ur|cJ6f>)9mTq=L!K;_??JfZ0lSD1?bl<#440N)xAC$|l%7u>vcfW2+I2hvM0>xW}F+kiSw6_A8^)59om` zZ5t{fzP<0_@w4+e8qe5D=<1w$LQ3POE57nKYKuxi?3Ot+O2D>JfE;~$3$DcTW0cb0 zMg~pL(4eNI>V;!}ttc$KA{SmWcJ$-?$SzY6Q_?!iwMF9`)Gy9@ry}g{9-a*6 zagMJN*mo%n(gi(H6Q?aEOIKBdI&Y216O~O0)aD8~=FgK+4eCW9SlY%O(vZOF3B4w& zTuT$#=g;2hd6BS=#VB2++qW;trp~N0 zr1WD{kprs*3Fc_t9i`E=qTYzSi{^{ABLSA^`z>vw)jW;Aln#cU?VeB;71JPPh>5nK z4C*^ofK&c~fhIUoC2TKfNr5hqUfBexz%G#q@%M6mYi~|A&n*c{?9bq(-fPgXGm^-B zN`czl!To)M0k>X+#7AKQ=-#x%mNZ9~Xh&BJK{{Ew#hjzdTqZH4Koer2qu|}`Bljkh z(JLiQOR*s&GUu?lXJnlE0?W%|y1F?peC;qI!tw z#RPzEf9DuukI`e)Nm5Sf^+foi6*Q2)Iu#>Zqc4Dho~X?O6#~|d@qLVA9%GaYDQ@%+ lFlCOhi$hK`y)Z7V{R2OG@TG;SPn7@w002ovPDHLkV1in@wQ2wW literal 1587 zcmV-32F&@1P)Px)?MXyIR9Fe^S#NApRTRJHzPGJxD;vbMWo%<@S5WYSB*Y0Ci6#)%Z8C{}A|ys7 zYJwusm>BY(_xG-qwvV+K#{~!_ltqUeB#` zyuPjUP4`AZxJmQQIrp4EvSQgxUjul-JTmoKaa0-HI3QpEKw&J)C6m=KtU{2~NYjQqYBBRl++wgA#eZQ204 z>XkgOS{rfpJWkk4-EAj-Ahq|!lF%SC@0);A&X8Uqz-t&|Pxp8o!e)A#`^$i>taXsP zTS9wrW4)Q zFtQ`3!D^F+-M-MH`aUg>3$LAU_*$l9laQMV7-aG|=TPT=&^e?95vKuGGLsj}9P;_#g^Z)7kfV=bRw5waeV)8}{c?IW*VT zUwp<})PL2E_hS7k8UyTX4z7?W-H)!%!E$+0mgrdDRikTDF^5GgAivNWkS<*;gZz9! z8*N1k*XLtA#52d4qn`}u?D9Az=i;E8zTip(dpO3_rGBsDXPx4IV~-vj<>k)}mo)Xx z>Z_V}A>ANYBpya*?ZgQFyo(K4(A)YiY{wA$Q5Gc=^W0%|l-=R4c66j0*l<5i2(25A z$WrzywD~NR9d3dOGqYyw!q4qdnOftobhM4r#XShF#TC)$$cvO%v*%;1b@Wu*rw;6u z85!d~AiQQA02FZCPzbMPWm?*Sv-Ylwp~Vw|MO|0=~l*Gzl3VR{`W2rF$T;=49e^RRf6?n+x7I_A^d z0_oR+`cQ7lx0|2?bMkAr2se@u_E2IgYC2$n13kGBK_8xJB}XO-4?Wh>uX^%vm$nNR z+Lj9}>`~S@LJ6I;fJN1D`v!L>4C2rFdI>+(7fCW?&?Eaq*3ruauTExVepJzjP=e?f45<23U7O({{kprpF8j%Yw3IJ=8 zWXRy+t>Rg^7QH;di|~jAhCK-8dkTDQhLo+KC!?4xLb4+_43b=jCygkJk-PB)pU{I9 zp*qkxry}kGSdOOT0-{>@$hdGdF$V5RvW<@ z9MJZj8)9dJ4TWX~@dBwl*cYQ_~z4~cXz+$AO3NeSsv z#Ky-!yZ#1p0&NivIH`|^h zLxwZ>csK%=v~oNK9fa7-%kfyXfD-06Iu9ig-YJX{SMo*; zr$R6O&k}(O9-+sLjz@b|+k=?4-jF2H;cN)njT-)6J#mz$R_igw`8&#LTbI%C#$pHm zYj_?ge29i^7}I~6bsL0tY9fcb@Xlc&0rsx4%D&AgSfMutSTG_iKq4NA@KSMwC1hqa lU~C}5W1aog#b+iv{y(MXB+FM}Vif=Y002ovPDHLkV1jaE_1gdd diff --git a/images/button-start@2x.png b/images/button-start@2x.png index 875b28199115d2fa1cc0d70ce9b3cfa045572a6f..3501025c99dfd2ce1558c7534132ef048209bcd3 100644 GIT binary patch literal 3124 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 M07*qoM6N<$f=cta%>V!Z diff --git a/images/button-stop.png b/images/button-stop.png index 3abc6c87cfb6ff36d7a73d247d37439384890410..462fcd0f1d071cdbf8625ea1bbd350f01843d706 100644 GIT binary patch literal 1342 zcmV-E1;P4>P)Px(_(?=TR9Fe^S!-xqMHD_~?oBpNYfap|HjjM>5er&qB1J1yTG~xaYm3ApMk$I# z1ug#Yk0LAj&kEwN76eQD5zLQj$YWQi4cJ!fLq$ahn$0`u<|e-4rrnsm_jo4Z%I>;* zH!-;hLI%RjoadKw&&-^eMcC*T2ngT(Cmzy4@gks0Ak7*&MPNR9eyG*^MaMZMTu1&ZNc0o|3?jk+5RCx}C(kPoXde)KX&CX>hMFs{r~2Ozpx(a7!yrTl7rTivTiqMxqC`czBhOnFU5>R*7beYH%yuzr2dH?KPt8qf0zd7WuxF&V- zbhaZh7X5kJZR5B`AFmM5vR;v_=8grAk!yPpi;wxt% z))3KU)lr;#kdLx&!%fcTSFUX>IeWPN&ut-XzN&A+HQD5vu$H#w5<$HJdb`TGR0M=S zT8sY|E_FG;@fd5qXKL#R5ruF!9|D~wEv2ugI82)~SNC`o=csS+%9$^0SxnNAv1ojt z!&WrAl_Jl%EZh}ed^|*d&xTWG}ljczJUMGZh2m}nNt57$gdzMVi}nfC}3QC7NODhj|BP+*bg-4&%| zX%IQ$**wVon)A1i&z&(oU!1%J<#XR}0Gt~h9c_mbyQJ-;mKA7{^x7uG3+yVJkblpW zb`2C4iQB4T3jPwgI`A6=_QtKu+X~bdj2s#qn+T?hkUSJ-GnIR35NFNNG&(CL5h!O} z+sleqtY9H%D^Lr+09*>z_DtPvDU-n5G@x}2_mrxt+Mj^Ma=2+gEm5UmZUIdblr@pI zBD$vVrBU9BXqup`iIhE}gfTK`A;rs0LP{ze_&G7EqpGLK&4~go*w&-@Lep)&;7rns z#(LPzW`isEa&JhBWRo-b*&}L7ZgRf`biF^o|0kmSl!F9(?cd-QLp^neutXq;guKrj z;7k67Mz?@)Ki{*`zC5Qxy!7JCx4%n>_y9jfon>WPuO|`&f5BY#*J@C_(R=|+2QHDe z1XL0{y)%!Xpb|t*2AdoI0H!Y@UKwvH3$N7G-=jCa!OnCWmH+?%07*qoM6N<$f-(t& AQvd(} literal 1413 zcmV;01$z34P)Px)KS@MER9Fe^S#M}tRTMw>zL#3tW@(2_VzF)hG@DL8D2R0^iXSFz+S)k;aRbp0 ze$qJ*L9Bo17tx6mH_~G!FMS#4*fp`$t7uZi6e+dB6jP$Jts1fNyDF%BZ9nKimb4u9& z`}#u;Vz&=q?+y;^xih1uzJ}fhQaNalX#PCrm2J`sK=@Y1*i+%4Tj-Rx_&2?0$=|B8R{P|)#7Ty*E^(wJ0O_ypFtG;!_ zu@7wzgo3WOitS_aA$K^H=66s^4|;}Fx6qf1HByYcZ$J&;{0CDDa~t$}7#c%_kf5HY zuXE0oP`k53@NnV%f;04)O!+P(U$hi3k>PR9Nnhk)@2nn>06WoEUoe(M80h6wOX=M< z8y!VnkF_B|U@PZKNA;awNnL~nj^LbsFuvJRz=V?xOiliFB_NmUkdq*hKu$<_`ofiD zeU(G10AGr6wp_`8qt1^-p7bsVsfK~*4VVZL8f~CyqM1)({<|p)*gF*8B2oGQy1p9I zFfv&fg5yDT%QdQfk!QvSN6Xce~ z#rbb!uvg(8$;ZN7uCY}c&NILmR|xJD$o@#*B=*_-tt-D>Py1SLxt{=!oa=6yk}07# zW89V;tmu%%|Lv3AH9a0BcDH`^w4|U1b(uPjnZC_|_o57^i~+;rUeOEeG96@_#14U8 zepRBCtS-KAkTxU9*edw4EYwD$+>igB2BCtZsh}wf^ zyPYu49?_1XmID?5Lv7BT2>SRsJDd>VVFcRqX}A_+{C!+#ug$PTAhgY`YC491-O5zG zUzy&oDP+F={Sr>q$2mMC&?AS$u9MFfG{)^NOhxa=L^>*TeZ$j_i7ii)6-moC6ulGs z+AUXBkK@9uy2xf77lVPnH5u_W1YAj=8mFaQuLLtbiU*i&IXonA@pkg-YAW;j8ZE*j z6`Knnn6D_|+ig-+2tB!o2Xz$}XM#v_AKo+;SqkpK0X~rrR@kv*v1tHT`u?A)#f-3`-atfXL;h+mAoaA3uc&P6d;)otPpJ&5``4a^6}8S zw~o~Y%*q?dSq|6;037(y2AR}rD47wkJS2=@_?w#cKod-a0L0zTuv~o)8$!$#SOc8v zkJ3|X9xlC4b1klUIM*Mgr>;E@v-DyD?^6eId^I(g#!H zg=G)ZdYPi?J|(^bk9bFlQYxV^o{jh6?^&}Zuf32kJMwbL;af3Kyh1Pguc2H3@D88G zI4}70nva8~fkaS#V}3)qXuMW!q`)F(`=gNL<3dS$k~gbZ3c1WbOF-IrlAbhckA}Nl zaoo0EmLwSS9*euoDy~*eT;-|V{xjqJ^-#BS!mPb)?D!S+8A8dss5pu-{ijv0L7aow z!+rSXun7ozBh==4(=1pamjx^c5f(&(fCStlp0EVZib5ERCV6W7d{^UN#oGT5wSM7F TaNc8_00000NkvXXu0mjfErqBF diff --git a/images/button-stop@2x.png b/images/button-stop@2x.png index 75d2cc1b107b654319aa88ca7b1f30f5ccf2f3e3..4ea22127f10c5b2c1a3164901d9bcb9a755e3d32 100644 GIT binary patch literal 2841 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 literal 3137 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 bB|zZ+LZQ=r;s?h<00000NkvXXu0mjf%C;C! From d5e37197f93fcf3509ee1fc06a554c1b6ed8ea6a Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 09:24:02 -0700 Subject: [PATCH 44/60] Set fixed size so retina image won't expand. --- src/components/ContainerDetailsSubheader.react.js | 4 ++-- styles/right-panel.less | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index 3709bdd376..fa5670e4f7 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -224,14 +224,14 @@ var ContainerDetailsSubheader = React.createClass({ if (this.disableStop()) { startStopToggle = (

-
+
Start
); } else { startStopToggle = (
-
+
Stop
); diff --git a/styles/right-panel.less b/styles/right-panel.less index cbd4baee64..adbe6ace5c 100644 --- a/styles/right-panel.less +++ b/styles/right-panel.less @@ -25,6 +25,10 @@ .action { display: inline-block; position: relative; + img { + width: 42px; + height: 42px; + } &.disabled { opacity: 0.3; } From 2ed92d9d228845ea890985bd7d2621b22cd0dc94 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 12:34:58 -0400 Subject: [PATCH 45/60] Fixing a few small button bugs --- package.json | 2 +- src/app.js | 5 +++-- src/components/ContainerListNewItem.react.js | 7 +++++-- src/components/Containers.react.js | 4 ++-- src/components/NewContainerPull.react.js | 2 +- src/stores/ContainerStore.js | 1 + 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 35ae89fd23..aaee45e253 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.19", + "version": "0.5.20", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", diff --git a/src/app.js b/src/app.js index 5ec68f4bb4..c59815c5a2 100644 --- a/src/app.js +++ b/src/app.js @@ -59,10 +59,11 @@ ipc.on('application:quitting', () => { // Event fires when the app receives a docker:// URL such as // docker://repository/run/redis ipc.on('application:open-url', opts => { - request.get('https://kitematic.com/flags.json', (flags, err) => { - if (err || !flags) { + request.get('https://kitematic.com/flags.json', (err, response, body) => { + if (err || response.statusCode !== 200) { return; } + var flags = JSON.parse(body); urlUtil.openUrl(opts.url, flags, app.getVersion()); }); }); diff --git a/src/components/ContainerListNewItem.react.js b/src/components/ContainerListNewItem.react.js index d26c98ef32..ab64e5792e 100644 --- a/src/components/ContainerListNewItem.react.js +++ b/src/components/ContainerListNewItem.react.js @@ -5,6 +5,9 @@ var ContainerStore = require('../stores/ContainerStore'); var metrics = require('../utils/MetricsUtil'); var ContainerListNewItem = React.createClass({ + contextTypes: { + router: React.PropTypes.func + }, handleItemMouseEnter: function () { var $action = $(this.getDOMNode()).find('.action'); $action.show(); @@ -20,10 +23,10 @@ var ContainerListNewItem = React.createClass({ type: 'new' }); var containers = ContainerStore.sorted(); - $(self.getDOMNode()).fadeOut(300, function () { + $(self.getDOMNode()).fadeOut(300, () => { if (containers.length > 0) { var name = containers[0].Name; - self.transitionTo('containerHome', {name: name}); + this.context.router.transitionTo('containerHome', {name: name}); } }); }, diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 5549462f50..810d9f4a32 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -59,9 +59,9 @@ var Containers = React.createClass({ }); if (status === 'destroy') { if (sorted.length) { - this.transitionTo('containerHome', {name: sorted[0].Name}); + this.context.router.transitionTo('containerHome', {name: sorted[0].Name}); } else { - this.transitionTo('containers'); + this.context.router.transitionTo('containers'); } } }, diff --git a/src/components/NewContainerPull.react.js b/src/components/NewContainerPull.react.js index e4da3fd9a3..33a3fcedc9 100644 --- a/src/components/NewContainerPull.react.js +++ b/src/components/NewContainerPull.react.js @@ -15,7 +15,7 @@ module.exports = React.createClass({ }, handleCancelClick: function () { ContainerStore.clearPending(); - this.transitionTo('new'); + this.context.router.transitionTo('new'); }, handleConfirmClick: function () { ContainerStore.clearPending(); diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 0d24c12530..6dcab31b03 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -307,6 +307,7 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { var containerName = this._generateName(repository); _placeholders[containerName] = { + Id: require('crypto').randomBytes(32).toString('hex'), Name: containerName, Image: imageName, Config: { From f396ea5d0c07c68e890860647a00a3c018f64426 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 13:47:44 -0400 Subject: [PATCH 46/60] Addressing some comments --- src/app.js | 6 ++++++ src/utils/URLUtil-test.js | 16 ++++++++++++++-- src/utils/URLUtil.js | 18 +++++++++++++++++- src/utils/Util.js | 5 +++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/app.js b/src/app.js index c59815c5a2..b5073ba728 100644 --- a/src/app.js +++ b/src/app.js @@ -12,6 +12,7 @@ var router = require('./router'); var template = require('./menutemplate'); var webUtil = require('./utils/WebUtil'); var urlUtil = require ('./utils/URLUtil'); +var util = require('./Util'); var app = remote.require('app'); var request = require('request'); @@ -63,7 +64,12 @@ ipc.on('application:open-url', opts => { if (err || response.statusCode !== 200) { return; } + var flags = JSON.parse(body); + if (!flags) { + return; + } + urlUtil.openUrl(opts.url, flags, app.getVersion()); }); }); diff --git a/src/utils/URLUtil-test.js b/src/utils/URLUtil-test.js index 717729e5c4..cfa137770d 100644 --- a/src/utils/URLUtil-test.js +++ b/src/utils/URLUtil-test.js @@ -15,7 +15,7 @@ describe('URLUtil', function () { expect(urlUtil.openUrl()).toBe(false); }); - it('does nothing if the flags are undefined', () => { + it('does nothing if the flags object is undefined', () => { util.compareVersions.mockReturnValue(1); util.isOfficialRepo.mockReturnValue(true); expect(urlUtil.openUrl('docker://repository/run/redis')).toBe(false); @@ -27,12 +27,24 @@ describe('URLUtil', function () { expect(urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: undefined})).toBe(false); }); - it('does nothing if the url enabled flag is less than the flag version', () => { + it('does nothing if the url enabled flag version is higher than the app version', () => { util.compareVersions.mockReturnValue(-1); util.isOfficialRepo.mockReturnValue(true); expect(urlUtil.openUrl('docker://repository/run/redis', {dockerURLEnabledVersion: '0.5.19'}, '0.5.18')).toBe(false); }); + it('does nothing if the type is not in the whitelist', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://badtype/run/redis', {dockerURLEnabledVersion: '0.5.19'}, '0.5.18')).toBe(false); + }); + + it('does nothing if the method is not in the whitelist', () => { + util.compareVersions.mockReturnValue(1); + util.isOfficialRepo.mockReturnValue(true); + expect(urlUtil.openUrl('docker://repository/badmethod/redis', {dockerURLEnabledVersion: '0.5.19'}, '0.5.18')).toBe(false); + }); + it('does nothing if protocol is not docker:', () => { util.compareVersions.mockReturnValue(1); util.isOfficialRepo.mockReturnValue(true); diff --git a/src/utils/URLUtil.js b/src/utils/URLUtil.js index 21461e75b6..9f195ffdb4 100644 --- a/src/utils/URLUtil.js +++ b/src/utils/URLUtil.js @@ -3,8 +3,10 @@ var parseUri = require('parseUri'); var containerStore = require('../stores/ContainerStore'); module.exports = { + TYPE_WHITELIST: ['repository'], + METHOD_WHITELIST: ['run'], openUrl: function (url, flags, appVersion) { - if (!url || !flags || !flags.dockerURLEnabledVersion) { + if (!url || !flags || !flags.dockerURLEnabledVersion || !appVersion) { return false; } @@ -22,15 +24,28 @@ module.exports = { // Get the type of object we're operating on, e.g. 'repository' var type = parser.host; + if (this.TYPE_WHITELIST.indexOf(type) === -1) { + return false; + } + // Separate the path into [run', 'redis'] var tokens = parser.path.replace('/', '').split('/'); // Get the method trying to be executed, e.g. 'run' var method = tokens[0]; + if (this.METHOD_WHITELIST.indexOf(method) === -1) { + return false; + } + // Get the repository namespace and repo name, e.g. 'redis' or 'myusername/myrepo' var repo = tokens.slice(1).join('/'); + // Only accept official repos for now (one component) + if (tokens > 1) { + return false; + } + // Only accept official repos for now if (!util.isOfficialRepo(repo)) { return false; @@ -40,5 +55,6 @@ module.exports = { containerStore.setPending(repo, 'latest'); return true; } + return false; } }; diff --git a/src/utils/Util.js b/src/utils/Util.js index cc4fff1712..4473549441 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -56,6 +56,11 @@ module.exports = { if (!name || !name.length) { return false; } + + // An official repo is alphanumeric characters separated by dashes or + // underscores. + // Examples: myrepo, my-docker-repo, my_docker_repo + // Non-exapmles: mynamespace/myrepo, my%!repo var repoRegexp = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/; return repoRegexp.test(name); }, From 708493b25b6d46fa882b2db7ec5f14da7193f52d Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 10:49:11 -0700 Subject: [PATCH 47/60] Improved color palette and minor UI bug fixes. --- images/boot2docker.png | Bin 33828 -> 34422 bytes images/boot2docker@2x.png | Bin 85142 -> 86861 bytes images/docker-terminal.png | Bin 844 -> 865 bytes images/docker-terminal@2x.png | Bin 1830 -> 1901 bytes images/logo.png | Bin 571 -> 593 bytes images/logo@2x.png | Bin 1039 -> 1086 bytes images/preferences.png | Bin 966 -> 1002 bytes images/preferences@2x.png | Bin 2247 -> 2313 bytes images/report-issue.png | Bin 749 -> 740 bytes images/report-issue@2x.png | Bin 1672 -> 1707 bytes images/virtualbox.png | Bin 36086 -> 36534 bytes images/virtualbox@2x.png | Bin 93452 -> 94021 bytes src/components/ContainerListItem.react.js | 2 +- src/components/ImageCard.react.js | 4 ++-- src/components/Setup.react.js | 5 ++++- styles/new-container.less | 9 +++++---- styles/radial.less | 2 +- styles/setup.less | 5 +++++ styles/variables.less | 14 +++++++------- 19 files changed, 25 insertions(+), 16 deletions(-) diff --git a/images/boot2docker.png b/images/boot2docker.png index 8f4282e7fbe395d0e25a9a11aac86109a1af1ba7..63ba126ea9da9c154d6efaefd90ed117469b9edc 100644 GIT binary patch literal 34422 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

y9QL}yW~8mCZ&q> z2~$3Fq44J+PTAtsD(gx34fug(nrQn5O%tJzfp1Qf*c-s7>%RD$gK6;r$C8`El8e0m zFp?&`ABj@xc7Om8fpK~sV~ZLZhXNXhoib?Cz;fNpb7ol6B)a-Ilw9-`7=1{6fJR0S$eyN3{hl9E+I1Wk!9FTmVfL|=3IEcPmN2J0SG)@{an^LB{Ts5Xfup$ diff --git a/images/boot2docker@2x.png b/images/boot2docker@2x.png index 808f61698458228ddd41110ead1d07ea0b5dcf66..74696eba8984078d505890a6962ec3cb1613b43b 100644 GIT binary patch literal 86861 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

jf!Loq( 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 g-563Fc*cg_F1+^$c=6M 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

4Jy6ygZzdjMBl8u%wfNB9Y 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 uaQ1KPe?go;D16AT{{4}q?Ap1k(6yr zy7m2}aGWhDHDX2dBBHfn&wGW~G6V`5=N)G|SukKX4-dnRa{3ddliU=AK9-3WzH?7DSh|joWXJMw8W8nM}q- zep2VERj6~;j$1Ho0XhhWNAQcc=#T}2Eei37xov1tX~&&QrBV$RRt{!NtXj*(BGK%( zQhO#5-x_J@=&;)6cEPE%%lu%4L_2ZMI~$6{d<-{jihshl+jiYijH21(1S-T8xT+9{ zjw(JJ9Jbpgvf5=X3;u6Jr8jL58qoGQ$JN?pyr$qlU*9D-IVKubuF7@C`28Dr$*n2K z3>9oUnNFu8NCnzueh3eI1uvnS12*`lWv~26O6}q=>_uakv68K=VVpYw_g3S)<0kk& YiIbl>9uJ-81ONa407*qoM6N<$f)pG2qyPW_ diff --git a/images/logo@2x.png b/images/logo@2x.png index 51b2e73f68fb1f9563190f8dfa4e94e07ae6af0f..6e3f127e5a82f70a9dcca21d5894014430aca8cb 100644 GIT binary patch delta 1052 zcmV+%1mpXU2)+oAF@N|;L_t(o3C&nbYg0iKK69I-B7F(H!J5Rj3sKwp0Nbj+!IfZx zFWjhLaUm$Ks@RR7A|i;0D>p7Gx=>rtg<=szsJaz=HnnN`h;2>lqqfOCo@q@w$(@-y zHC;Fm?wRj9bLP8q=FGh}EdF)+Dj>9hqA>>dLe=FbWHgO!r+=|$8Gu#56O?O+02zez zfr!1TcQBdiw7_c5u{wjn9UlO;FvixX{1C8J#>JDVU8Ld~Fes7nBE}HL(vW_~F$>rm z8e@|w-h}9$vuW<;!aL8AIwL+hxrG7iA|Fq2$(5 zFJjz|Mx&WI_`R3*??@q6*f$o~+1Y8;1j=sH&e>KNMA83(GkB0Vsu6eNDR&^fkC=>` zT||rp9zK5Z0`2SFi$m2GDVlZWoVG}$azgC|z^mE;Jb$C}F%ifHlT$}5#!l-3i5vsx zWTd9DPsCJqq`KlFZG|2c?@oe-1xaDiUu z5uKH;gIE@eFpQ<}*HHzjgllW7CNqFhnS5&y`+2ZrKI$pj0fyF(R^3pB1`2k~;)uDC*X^nXkhkmJN}>i;^mLFbd@FyPy>FeHoQ zUyV~tFOPkr1MfTdaC%zY&ky77`AyTzn6{{l1d_N^I_>OjZf>6AQXH6hNEiLe8&vb( z^lo?G-XdZokRcwcTV2(k9k$lC6D0aowlBL5Vcji($a8tlq4Tw?M@HkX^}N z?|<`~V~}RQ`eST9n87N03Pc8@`N|f0nGAa%!}BnWfKQ2uwN$;@^zvAq0`n#mI<+g(%g=&Zb}9MAvRLYM(&&Hq6~dm^aw6*(%TH`M>X+Z7+e W$S`UgaAQ~i0000Rw&Xj=8?*^^*{ zKSd}g*pr}ms$wpJiijW{JoVzCq6f7FFN)$tT3b9Bt@+yq>Q4(=sbX!L9lzPO$!0UN zJ84>QAjzBe-n{qCeDh{!qhuy0Z&O0LiJ&QjJld&g=XmCHp?}b)P?>Ja1e1^lehltZ6lJ@}5B4se?UP{~Mxr}JQG7hRU580bFDS~y zif$ZZwnDZ~!tP#@F)r?$dCBM|OyqKV6;&OCk0&_zm_TEwQSG?|-FgOIafWP)QrcX{_AE@-PpH z((}>g=1~tX%Z#GA4v@nlUm1WMsMvd=037{bMAz?f^dc4gL&z!YM}z0U0J@$>F#6#m zGZE}IYGB`;;U#j@wQJfBY>5QVM=mjMBu9s8n8m*P#W8uRXdo~Jr>cTt0IQUq(F6{7 zBJE3MvwsnR*;VbMl&xSDo9nuQ3_μ8Nv^ZrRAa53D;tL27yVj}>y zf6V2gyktUMLjzmADtej!MgSzLs&eTP0;E*v&j50f3xct`-39if5ZEm>07}!G$z*nb z-UFg|44`}!Q+hKJ3f;m}<)tX#ihj>TKHuWuV}F@xFnAP#aFL`b#wXJ-0YRLGC5 z=q_Ja6(MboVXmt!2awXAMO=^K@%SPOj;r`n{J5^X49yn3gzR?!uINeu1h}&;x}IMh z*%AtU2D-PaeZlW;ycVv+OeeF0DWgNc$ acl!r}-Yu2fK27of0000DT zmI#e6{p|pLdXnj%&0R>;G4}}txJ_u@CjsS;kTGYnqyQ+QuLO4qfP90N_UgtRG@#X1mbvERu87 zc4!aZ)IP1DsUH_-Z!?8Ptxx-w&;18pNjxdiHF1e~E?Kq=D@xd@pB&oO72a?;+P==T z79K|t#ee>MK2MgFUnK$3LWrM!PfQ2gNp!d2U){(2Z`F0uST|XIEP-;*d><7M>X#^8 z(`wq0u$QX>!-u73KL1Fb35q3HW7ImE1ZWre9-Jnm^SXxPBO?<_0Ui~MhQJ*Fx~<+- z!pwZn$@j|=eirQr-ghVPr0BiQ;LKd{VT?QDuYV{p6lo3i^K~CE8tWf2_&t_mx%pc` zJ^-Jyd~>e!_obeWmb4pO>7EJHgMjXTpI>rwciZ}*E6M2=J2!J6H-FQYyLW3jpQ@b= z{xw@8p_cCua3WCa|6_1$tWL$bmnTKa$pJDngcb2*W-s$QfQ>74sLQW{yjus3gkSFN?998tm0q!e`9CLrCV~qf@WTQu_!;P=uGQ_+8h!0tnP%l?B1jZu zj5Jqr!3(@>`>$@AFsGW8V=S58l}KfZ%AfDW8D$$8pIX6xe15#w|LUgd9;on0c>Q@v z&T2_^APo!U-V<%xILD8k+wPJ1yi4G;RzN!{-8HB-kD#Rl7dWbBsN11xU12h|uBN{l p`rJ#H%~w41Egt%6r?2y~2i6RsfD%9Eqq$qv})ijx?pa^b=A1)30Qv^R+afu?e)oNzR%=6q} zKtih6(g)!!bMHC#o_F7SVG>$PBr?mVC})`@t(F)ornNCQA%8v!NqXp{(}(LTE8j5! z_bbYCEH<0z^pyjZl^@3p4##tmNU^3UI}qpr$8nahcEh-e^+Zi5bY?ujxxTesVmhkjI5u?mXe4v_St($Z%Qy8hNR&B@4O zPRg=$kRAg`<9`v<*VkJB*#t)q(VYUx9ssPs_;H6}ynp6?|Itsqy)~Mu1`%PG>o{xw zi=efqXF1oj1~_fCE$d=iG+M?vzl@A1o9&Qm*btrTfzvn5>Tf>Fe75M&L*p4&XW2_I7T{~|WGjmDu62M49 z)vOncm4E$q_{n7XTh@7aXvjq5Q)uqvd?_-^RF(DPhn=;__DXi}XD=*kuH^SGfE2fJ z4lbZPBdDmS=c3W61YQ^jyhDZqv{%@dPT{({JRxciZQJ(cPaGQO&7elt-=}Q*5x&R# zvb?yqw6qB&*;OFRUyA~P&scxt^!Lxl;oFDk-+!2nbEmGNqK^P`TV4V(QdM;Wx?o*d z*^M^CnD;4>sIvR}HG5!SI;yHd4hGkQ_&jV91*-ZA=ca)Ca$8=BGDbr9AVX1mG)h-* zS5ZlcLL2IGK7vy1!&(yZtVF*6+3i25>#1CDnva^n1KYli@3*kITZT<@8Y-&UC(AoE z#($OqR8IExuEO{E0Pm{}g>Dg8zBVesHC=bCrrXt==G;Z9~B`@$Q+|jfllP#mS1GrpBcoHWrhF%002ovPDHLk FV1hl-&9MLg diff --git a/images/preferences@2x.png b/images/preferences@2x.png index 04001a0d60f21a03a301126ad174997b59e532a0..ffc3017d034e364dbe77f99891ec2e8419c29b7e 100644 GIT binary patch delta 2288 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 diff --git a/images/report-issue.png b/images/report-issue.png index 7fd83be3e9554fa3ee7c8f1cb7b7a1b322ff05a6..64fd8657ac8b1d28dfdba6f3719c49afdeaead75 100644 GIT binary patch delta 703 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 diff --git a/images/virtualbox.png b/images/virtualbox.png index fb9191d0ea647a007ade1b83dba3c672ddce37c7..b30c6a1b532d5a97797161856925a868b7390051 100644 GIT binary patch literal 36534 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 literal 36086 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

qKmJVNMzgWH-p76%ti>9waF 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 KMNUMnLSTZ(c-%Yy diff --git a/images/virtualbox@2x.png b/images/virtualbox@2x.png index 823b8b8d2781abba8bc5fd594ed617710489e767..08d70271275a990621582a0eaeafea2acb4f6d92 100644 GIT binary patch literal 94021 zcmYg&by(D0&^9F@-AIQDBBgY*A8LXV1*sbI(09M5!vv;XbB(jD&=Q`&M2?9SI4Q76}QZ7!w`%$@S`sP2eA7 zS9Lilq>3@>eIz6aq_;AXnqJ6LAwB&M818A{xi(_aN$*o=!QxTT3k4P-ITr zzA1AJAQ+@P$+%f5y*zH(O+T5I|4vVjiHQ;%NY5pKHuRxXG?6Pv2txFr>!qq~5#X;3{+ zZskvq90B++c;IKwd`HdiFcwGQj#N~wZMDX6X?H)^ zH*M+R5bg}`%F;C5v;MXWsa4|tP830dtx3MFyq_}r@5#{6hIHzEr_HBmW%XtmZqMf5 zm`@*eXYedJC|}J~sI0BdDPhlh7mrO-`4i&}IQn=?bMvLE88jRe?U4R=grbZDb-W_A z`+m)Xp@bP!uf1)PEej$N)!flLwDx(X%evFuhW;F8h&AnsC%VXv^Ih$odS@MDF~Xyv zNURg&pF-L$c{AQaR{rwu(EQJ-5{OeNEcWvrPW6$lLL~Nh0I~E+lk=J8iC!tlPaE#i0i>BPNIh+qHoS}^MC zI)BsCfX^-{f|38ZWDWsAf46G)v%bd&13CS{{8DZwI%mgN*e@Cu@8Omi_M5&O^6j=P zMEpuwZbI$wbn3adsQT9Qa9+=(p>OpWVjKYvr_f{Km;iRC=n8ph z_+U1A!XULuJ4#Dea~Z=JJo(fn}Z;k{t&*p3AxFbg=&7w^@4p)q9SpqT#;EhzCTL{P_(t za?51InYi@fLnsJPc3$dtnDR{%$&iCKIDJ3qYJV#S4_Q2!xYRh$(Hcc=CV#Z2q$<7} z&I;W{6%7*R%Mi451&_Vx|Ig_u3=m)5;CAQm;g0!eL29LZarL%yKB_!-eqx>0Em00Z zkgFad+jnE0^cd&T@Y_=%PEpkJzY?59Mu~FxVPM;p<&=ppOfC4^-_HJXCuDa*f_~|h zYQo`%$XWi=X zP!4vZ18=?H+6lzFKE81Hj*pT5ywJa*aw^14dL>o%0Dmv=?AgELkP85Bk}laGF#Df7 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 VUeaG&57nzViGE%!fhu|_0g)~JlOG*{5gQB zsgpLO(tP1^$iN|$IphS0>Q1#qA=2R{q7H`}|e8_*oNjkqTt_HP)d*;Y4jM z@YPuH)H?clt3$ea^2rYkkgJY5(yGPr-n(12bHBOg`#O(fcY?mJcRPxd zWduKlU#+w--yL5+g61Z_0p zk>F??=@e!9=}!G2U+YLhkF-eLd5h%@axO)->*`a!M=`1DeN5C z=SVlaV^D4M5%8A82+47<(Q@<+>z)_tj6*q6!KL4U2x8p;HwMI5ki}s8=K|=LkN%f; z61)+(FWTpV4g~qbnn7(syFAm8y1(;N2)%=7&)X!1)dFvQAflU`1nwpqdaEGS{U9cy#pk=VY|7)C zJnS}ovg@KV&g@9=Vff=v$4PXXn0?N z+xh9Kf!Y>cqAmv}1q$-}7Zj%7dgQyAs&11G-_8HA`98=)?&lmtq;qeQs?%v4XY^nE~_0ooJ zANDIsyuj{WOlTzUJDyT@N`4i~OYoOI+Ro+Is?j_=P(bw@3i)HQ{i=|7{zg(E)dy})evpt0H3pXZ8Dq_bZRrq4+FA320{JJZ#RSI0guER!ZW|U#XgBFREku%LT18Ey zqin3mM;D&%R@m7*-lo*iuro!ZVw$zx1hDj{7ywKE9Fj*Zi)d5a`qoTqnKv6w*QGHa zeLD(l`F=qAotFxR~Otwli)a@XCvjGyh*g4Me` ziGC#c9dCE*b2Z6Mubu?7ZeH+$VKbMsrq{<;&De?a;o076r>Dn9Z;)Ur7-C+jW%LB zEg3LF*oEG^Q?D4)1{%!hZ|58bm$*zXF6>)J{GFWD(dg3SJ@l<2{_LPXwRn=_Ux7sK z81ms}5#6Z6R{n_yL3?;Q&_^9R>NLH5#n|>2$n9&o4kdTmj`3pUcO#ntbcfYDHvsMv zNYb}?QcD^VP~<*rmyo6PE5`dg_B`DaQTX=Zf&z70sN>Q1k)|w<$>#y)?il z#xw-1QO19NO}W-nx6N0a74Kf$7S);9v{P*OskpDSK@v`_BfE_OiN_E^b>&xjGM&=I z^iq@@?Q;m=m4lsXpwBs&vECNbTrHwLV!40C`})eU5^>>xmg#})lCHJZW^eBCmDd3_ zT<_)2H{Wtk5xpfIde*3Q3XR0ca6vuho8EMxiJ&_t{q=1u<$%?05uhT-bS%Aev5;`I z8^Jg73OuE45=yVw!o_dJRWGZN=D+e9CN|R^6X-y1DPE-MY*3o%7{FVx?fj{c?|SSv3zZmH(?(H|n=t`mgoU8&aqC~*siGj+(UQkZtHy46?kc0noKigQ z&nBl{fGehS4tJ805!?Cn#2%4sUSV!jTbaM3|@b7R9i>Y@Ig~JZ%%Ir z(us!LqUr)^4NeOFjop|Yh5B-j3Nl9E4Xb6X*zs0mT;?MAxz=JT7m?pe-rJ{*QP&90 zF+5CH-yrt8{G^`J5uh<*#_HAC)UKGfkp~#|RIbN6jh!{b%&yhxhnNlu7H?fOGG$&Q z;5UQ!BPRgqm~53a9;$xF%ZSo4G5cDS1M)2Poz4M%Y1WC%Wg2$#8e3G~6KDT7_P_T! z4U6xuZZ52$NHQ2+e{YQ2H*M8Eq%0j;8c5uu<@So({5kL%EA){_smcZk(dN9}VtSlD zIrbn}9g+dSQFmk*yUt{};qRgHe zImDKN{+7cLb2nRF7&|c#uPzCyll=-5KgD=kIwBN5>Q0m2rFawfE<wDFvP+>mPteEUY8`0?IiP&C;@NJs;^hMV_FPp%f+hcy5g z*ZMgIaJFi0#VEHNH4@`;x`HwVf+g!tsfNU=43Ae_OX@aJ&f;tPFe?~@~WTZ{9HHJ(QT z^d%cv>{s`{ABKC1pMII4@{H|qk)(fuIq>f36PBS@;V3A2*N~JLrTmq67C9_m9Jp|S zw*7O>er(dpko7NNSyJp?SS&A{Ph#pS@i3Oj7QlTkI2K5`bu$5X)`lHJue#i7Zjmnn zn#LHCN-Uow;pL~gGp?{jV+qr-YM@8pCI?(ZBULUKNk#9O?pfKLfGTI@mU+QqA`!|| zIsQG@0W^}|G2ox$PX}<%=}xTkl^!;&e2!XMUtpSJA|&1c2?hSkSima_x0Id_tC#Jy z4`cxgR#L9j#^O@|kq7`rkbr8ZYLM)}SdbdG@Dd)4>@f8zZ)ebf@Xr;>28*1VXVw8_ zW4olsC6m)z66=QPzCWBEk0hg!VJk)sP-1gnucOw4%&u@-HC5xNR>~v$gU#a!)Ppuy zJrb~Ew8@^6brmdH^L>nMh3tWXzeaQ^Upq|{3=^Wg)3$%IF~f#^Iv-yZV@C@=ag3-CkkCg-o-5TO%))W- z{_QX^kHtHww{TS|!TospDl33+FL3jnjj76J!^TsFh~rz)q2hl}Q3o0%+;4wW^Vxqa zc;#RoAAQW zTqQVdLnq*l4QP8D+ju9D7=pl%g==TMyMezYDaA|CLA;*=A9&=V3%9|>vV2|vE0mJ=%_Ls=<4_=H|(r!x2HMIz(vHxcepRCooUy4n2%Wwy_Hpxxdy zXAtVy%Qj{&g_YC-su?N$GD0-<2t?p^YlF%Vo1tlasY)p~)%L!~X}ohL!L$)E?b_zC zroD@*H1|eUB7JH|&0wm2VVh{=o_dn+=Csvae}exvJDjX zt;d6*B8=NfiH!^C$-s1^uK4?tX+K~L&}j@iY^23UUj(1e-~+9Rg8bn(5puL}3IwaK zMovD4${9n?;yi3C?4N^g93rMo8i3iA?~hw9q-P|HmB$y*qrnjp<5#7lr&Mg%1x5mW zZ@491VS(4~GLk!R!jKM}xI`<+o2h?&qy3ti+8Ah{=R$xf_gOW293^xlv^S3F?Wf46 zsn0%tp-#ZqXSv_s%Xwrg^6G+xFXZ6Yx2S~5MDTQ$BQji2P8=9%^uPaBiu;|cImc3J z@E`=OBwd?89vir5{v%7lL1TK=rsf?3^Fi_0TClV4-QcrDH!2AII~;oX-Y=goJNM-^ zp>R_MgnY%j`YhNcDB zx%4TvPEJ51?_M2fnPi68EkcZ_)Z^k3<4=%xISwe`t&?)1i9fX)g#r0w&m(^ZR9gza zfrO!+D->sOR-EtCh%$Wm`YPtnCQZ)8wS7{bC*>!*9uG<5hY)^3c)eWpAX{_qH2(f< z`8`@$_pC+<<_4@XgjTgc%J`Hp?SI7?R<6~((N*yx5YW1QmmdnJs7>S>tNv`Mi>B+C zTOLB*ns|!K>9ygs@LJK`AQ>5YwT=Xga8Io?I(t(UH90q@AyVDmQNcC+x>squXtYnT zi@^8jnVFZ_{tjBVLd_x5wmC+@P(3u)#ye?8NnPmN!+_IEERJO7et96>ne#Ha8ne)6 zYn9o-gDeYWRU_GhlX3zaYqhq7Fa_w|U2;y8PEQ+ud>_8j+>_Dln7s#Ajzj`!`xYtN zIFWKWScTbp1U9uxkkn%YI7uy79GjoJHi&;d3vV$geA$J6SNya;xS`<{ydvTw@m^(g zIpsp70rZ^loT)#{16{3Svk-sTj3k^6dVy9nmnC=>vQ7U~jt~tUu}F)K?<43+1Z)k? z-pbZkeuzH*b?Vzl{Fn`xJ?nOvsSGjx*b7nlHS;+k%^(ai@E+iVXIwA1l)Io5wbD+< zpWJjr^=3x&s10=JWk*B!*jhxL6Y|vLJI)?4PO^Z!Nf;?D8U`Jm8Umke%VJ(ky2`hC z<21`1qh0^y+@w{*#mJvRs&lF2zXpcw#M*k-h7WcA|B)!u1QP=8M}P_puxE1l?MF=X zs`WqW(DoNS5AxwiNxCnCoL1S3L%4#!X~qdtXm9z6OD1$bdh~&etMy?J$~u&Rfa)^v zCkIc(`xGY{Nj}f(y{T{fWfuCfZ?X2E${IuK*q@pOPIvS$B<1G=3`s=|Ht#0u z?USiW;1SQBLh;`bjSrloC@w?L{a*6B>bn1uBxseq{Y%Cb&gD{uJr<~{duapX>F zWT3%YZs!@?rCsnW``R3^&S;|*;X*OjfQ2H(od<*|dRWuAlgx1vWSiUdt!!T2?ZxbQ55(!bH zw!6ueOt3?BG1#xs^Ouq7;^^nD`KB9l#UTum9rIL&ZI$~Y>W*d7XEFq;2ns_&P4enR z@PqokV%M(3ZPSn)+YPC*24pgt4(i%S`D%5_Li+_JALEQP|7nuNR~BY!eUe|Z!$V4F zw8md*QyM&q-3m4@G&_eC(7zAbkT1cao;1x3^e9|A(h%SMe^i}?S5;BB_UTRm$#WXbA=CUsltY%2fIF^_>>D2srV{F9Yh>QC9{k58-fnZ2ddtSWH6UZcCZgfZCs9q z%Uc_(pC73K-;V__(RNqFWUQvOMo}t_y4{#)9kfxq=JK zQu{iaSQYO)#3GCCK;r-Py>)<9C!Y8RH9q04Axv{0(JqTlJARyamx3=lKTAEczX;;c zB|MI{;y|(#Y(pc zG`!TCg}xdvKPw?T3(^a3%JyUp|3r&klh2BfB~}8I+-fIC7jydjpFNTTqSM&(kIcd+ zD*ZHhvzo#pz@!%AF7lyg#Lx3J^q^^>jQep_@xFfrXD*%S-57jpsK^N>=k}`M_1P}z z^A#OO0x#a4OUGz^U`XrFS)~n`IG`_{6#FFD_Rm8Zqm!r0c({M9Y{PB1gtd(P>(QGjm+0__*`KZ3@XKvqY8~|;GaeHa7x=vs3lCas+SOYRF$S$eo3cbP3pK)QU z^}PS}AZ6ee7^)d&8#H+ivys5C*)$AjZf zr;HxIN=kFJ*-l`>wu1q{47&$AyNgd=+q#5*zlB`H>Iw3$0)u^XP~4EJWRpkT;`E(^ z--aS!6oSKVMkO`ksOIJ)+a~%@vKgF_MmE0(Q%*lwYHv7gCtJS$# zcXd|`kGAI;UM4?&nsY-vYpm$q^UjC-2s0h6_z*5Z}>b-jA z#Q;25HMzre=2R*5bID!0na`F24iN_MFD1g5+D-$of0f1zxLN_=21;vfkhT>7X2fWG_z7))}%o=~Pd`JM2 zOf05Ei!!(t{eI8)4Lo}38&VYTjtYS*MD%5_rt*k@fSG;)icY>6>BJ$#t)<~mEBvj6 zL37nr;uW#Pt!)ue3NqG1MWMvdc?wL?aM@PGt5z3E_p{btcN!o+NDJs-ch!#xuh6h$ zDM`?k@-OsdPJ%qLxdkieA-U1FnMFtQ-a9Sv=aVKQYm)0YvKk5(So<{u_)WG`o?g{rY=c=_X)d0 z?$}FS#EjcUbDOwI6d-hb-Tk?MA;4t7ABTN^H>^Tn{N8|9Nw)Nj3RN;_@UtGFO5H~X z*9`R_0>)&P!e_PLAFlsId24*%%m)d?X|Qk_*rVE%H2<7ULlbp4FqMb+)QuLl0@(~% zT{+0hi=r-#fEn~FUzUA$Bw%cdi6lO_a(3*!P*K&vT1L%CBvtqm_fJ2c`WE8+;eaAC z8|koM6%rOQS$igR4~supS=t-@UMg0K{UcnO&sb1ryKvy~`#;_0%CZysEJvXvJ+{~= z=+3@X6eaLIaoEwmp%2Zh{Wfwc_9Q1gS(RR>BqVf*s9dqS6PU`*4P+v=nec>WJVT3Swc;^vT^h0U1PvKO_ z$mgGWNx+MxYe7GSVeH3Jsq>9RzF_F-Y6t?Av3<78BPR4)rkA5Gr-z#3xod4=m1ck3 z)wVA%+qn{iXuXMzsS`{N2qx)YCTU#(Va&??o|Mr2Lr!0v(tV_=OPuW;__}&5p#QM^ z>iGF8JT~}&>u0-+b&}TAIfU;cGa4LnC{P?AqojFSt0MH5TL@rv`Q}TOKCpFoSm}Ir zdU9|(nEcZoWYEe3h~*|e{6>PK`e-4;a$KD!UY{`fFB#US7&p4b98y{M9;rbpt$4{djirU=zKG|qZ-swfDO1%5r zlSz355?sG@8k_fA**pG5O*ORd%n^<8+0^u@c6n5OCKUzx;)|7b|KF2!# z{rx&;r04M3fp^)I7pQO zu7mP_EtlP)&L4Fl6$3oS7I!4*>$dn=&SD(^ZZ(-@zAn1*duRl{_?))$&r7`fmKH6M zI}#eax?az+~6ne!TSSXm0 zV{-p9uu0W`%>-w!Ose&S>2Xsst=V1@?}qvpFs7z+8>@YG`rTdpBFn}wv4S{#evB&p zPGSqNW^~ABd21x;)5?%w?22m?8soYSvT+o+%F#V- zHonZ8NSzYX{P-ONREA3Alzm5~p4OK{HO9->0@0^6=7vW!Eg)Qfo42JM9+w}O9vp;Y z9#2PIBdGzuDi?*Q!#Yvw9w!~=?9D8hP+_@mIei5Qru!2ASIv1{GM5+6oXxma@}N61 zr*I23$zDTKrQ0W$EWS{;qwJH60jHr9W7IK21))`TlP|6zT%z8HJEaoBI)7(CmGAk< zKMax?kEy14zK0pAD2$~%Qwop^dBa-?639Drncf3oPvo7$Qb+pD6(IqlL=h|2kfy?o zR@;cy(Qnk!OFkBJGI^5ON~T6j)nAK)C9b@k(U1bZtMQ1`joB}<2!^JH{eZk~T%7*4 z;AxA<2tJ@qI_8j?*^#HoE}Q8TpD$0I>jQQCo@*o%J<29uEWCsE$S-TqdQA8xD^Bl5 z=K4T7bQTot%R)-ZmDuy`p2wLjSLe&Wli?u@Fj74uatOzslS1Y?ay7A>#>EY%2$=wJ zwlz-h#zd)2d-hP2(%OA_3)hCoMXC3~@!x2lcY<@TxkQC4Q#@rKH&*DE10l^@(@6jz zBrkRaeP)KNFt2ZnVoJVz10#WMBcsTClx$FB8?7I9JG^qSJC$Lxa%ZeO z0c$H`+vBK6lJ{O6<$PAJye{w9LJrSQMW@)?yf=!*e)z?Z8SYV0xa?;0H6Sn7))2^q zsDJ#`*VN+`f$dxrp$ye_d{YFgY(wrVl|ETw(PsCp=S^xDBq(Em7>Vvc5wzOX5R*%q zrqbtjzQoNK0=1wl|%0#wIx1`g0U|qe_dXt z7NSu6Q%Uenly#AVJg#wN=~+8>R?tbaR&)+0`8+y*OHBb0Yax8@4a`fW+ z+{@u659^@x3b^{#gZ*J^NmFl_WJCZDe4I`{0vUlv=Goq#_ ztumsvINCJ--xQ@bAVn!SCR>i!coHHC`V6>hZM+Ci^68eOC`xlG^>_DV^Maz3wVDR! zCTXr`0>m;F;#8)m3-5+M(7H+T495M8{~5p>Eipv7Qi*r;!ywe=(njA0?e+FB@M67= zvg#8K;5-vL=S?EawI)K5KM@=f*Jb#g*%_qXy5q-sp?mCgq}}qOLx-QH!PR`#^PdtJ zfDd@A_h=M?ga~^E=hn*B1-Tsqz}+LjOJh-`~Gzx3KAv zgvEU5ruGNQ87QV;oD6!euu~T)yAF@`3Bugf?JQ_oPr4%$CyKHum!UU+GU?N4 z+|Ty3c>ltDm>6DhBAjdG{5;?4_&nQ|y*6?kFGU*CeJ4qd^v~D;4;?zo{HWQMKb(_H zF8pQseks`w3-5qJ>q;44uXN?*|5y6WNemi-} zJBWrX4YXo_-;;~+^RtBZ&lj}iWCZJS0MILvw|hfma_WwBq#ZMR??_&ndDw!jt`^a< z{PGA;2Ak|R1EJUO;y`KaM`gS=7NyfZ0r@l7PN1pN*u7sh&zSP>Q&LG+8(^Vw{GkfO z;q@;|s*+1Wso0Gu3HSC<9+auGokgYq;yN2f*!PH4hPL&he}^}4)`cM7lBC5MMy<{AL^SVerhs?2ZcGk z(&P6Do+>qV3WZz`W*U-5o2+HHy75dM6BM@DARPLrUd39@nD*Ewj~JMwbTOyTRvZB4CnJn&iItTtdRV ziuT`l437=Tr|lwYC%4M$Hv+sTugi8QnL`rz79H{6^ro%0Ep>;gyrhee8AJ}0VE;l^ z1K(UT7a(Qwe&AZ&L=Vg*o6uGp724%@oDW*|*~0^2>quh#aX5Yz`F<7E<;d@>mzYVo zxHMP1-N(t?nQQ&I9o-2#*@r1)JQ9QvM%L(x=) zvpc1YXj`aE|NnsL^y$^b#;ZYn@(LG4(K~ySMIy8 z3%S9q1_PIoxu6M7jH#M5oxXaoLZ6Md4R;y`VOqVkrC?EJ6zD3|wNh{< zTIHwvY>Jcox1U9u?5r+AB#U?Ij7m3d<+wptEC{{;WeEsAzTT=f(_)Su%XvAw<571N zurAUm+5hB<@t#CIPay92DbJD_y3#K&w?YbQZ2H_ip<<16*M14uh0bmdt^iw#fJ(^5 zM&O@6jo~%>SisQWyC;-JAAf5ff}>ZEj>U4!vP{b*i@KqNP3WAaTzeB={X4DI&`7-Q6yDm(es_VgrUplGyp^QP@)tDk=W zP=e~;)Z}+l*hSkF&y=qoBRQlwYe3gEFrFq_NjKBdTJ@d#Weg||lYV#%+v9qr7&HFc z3j0x3==w8GEQ7QVcjUdq|5>U7?h#MA!Xyg~+~>s{raH1;D&7lUQo_wG(8l)OsQS$$ z9t*jt?QH2gbcASZ_Q~WmO%pPlZ97sp^Gd^);SpIRy=xWPaJ`cFxx3Uq1FEho`JvzZ z96mUY3RwZW2qq0@;g3obj7m87H{C65M&RGuKV#Jn+CAg~6jjy4BB@Eo!{iJ%>z{SW zX79Z{vJy7os4X=4-PI7dE0fPQYoydLIj=4WRE0hv!YMcZnH z`%Qgo!h(Zyk5>?`aMwJIE{gUUZ!GP)+0j!qvB(c#@?&E_z*Ii>W!7Tza|#>K>8+E6MDdGc6> zeb6?6+w70a5#^?sCnmxqvAFcLq#-OjmzRNiK55RM*FR>OR;T1~zvRy08sm6yVsSgq z$--kA_??0oCAELBxydsxW<4J4>SN?&+6(J_(Ni|WYFJ>IVvhA0#z8o&^tEcZKpTGA zu64sLOuCR9BGw=0i^)BcWf4&h^h(%+Qr3#N!`e7p11&l%eZ_XH^A0`$rRvYVk!4$*(m~o@rJ_sp z_obeR9;qE)>d|(@2j>$L!h%haqe{IM*_jUJUVs!Cd=&;N74=)HgDz{` zVdX{MCDtIDic6xfpA6>mihGJeG1Eps>s>Krgc;Oa9pF?Aq~Oh_KH+ail38<2h-ErV z*dZPi&Q`lpN!T2$huVq_U({#l?G<2};?H6Roe%yL1TvLl(6%v;`xDwHsy{ z{_P6v_qB%xLU?K@*kN&mD{O9#$i4gFaFJ}&&&cSzAt(}WA~pO7%Z z#_Y&|xtrpIIT84nfAgu%<_qaR`=^Q^Y-Z^-+qut#6xIRsfZ@D|w9#r;d)$^(Q;Wz% z{_r*I#m8D=in^tCtXSp9QxZ@-2s1AG;RtseHoF~Egm$|<&HKNsVKS}h>}E5*49s0T z-&>5&>V{}YQI|2RJwILVz@UwxUbWUKPyCCN{3il<3me6x7Gg_(#-m#ULQo~VF36RV@+YVO zCPXJsPyy3aX;|W6`Zb4VspVx>=WpS(+{c%gIH)n*B2#pTf39YG&NflJxMn!|L$TG$ zu05l^`@G@hv})2enY0RMHEGQ*QXFgl*p|Cp-!~%3e^P`v-j(w0$}_^Vi4tN;JvaBO zX1H8DyR_EXZ=q<34RvJ~{x{a30S9Ne8yB7TU-*$WT&qB&n$Ep0mtD5g@cx0|P@FH+ zv@qzrgUTh3x7gH zI!fI!Kk)T;06a9Z_yw{FR@A^34E?^WHEOzpxDicNTpK27=4Oj70-rp+Z+BzT;p(! zfe6UTxy!uuqx62bw`mc7&1NArq9etoYwA7qg? zT&=oqbKfCThh#UADTH~|_wputc{#hBvY#}|n%MsNIBf%_t%xx{HMqVEZG=Xv5h2f; zEi5as4qK|#O-7JDXSLsc_mDHPO6GRJN{hLaD6RA!<<(E~z6Pfi*-l>j=ts+zrz<_V z^k8)3a4M0-h=7+axHRSZPTfBI!hlwN(4`;FnU_E2^sm_i(&89_(71+nbi73$qMr(; zn;VW)50n69J&TT2o6}sD+q8B8r#DLpQrhwmt?!qdxJwQvR;&FScG> zSk?!{n9&oUYtt0CouB$0iX`oS@O|akj-BLtL+X>^@|-RyG@RF;ipTd*oXP%N0Uwt& z+^tU+?S@Q+f*s&}3j|ge#IP<6k*!?{(S$?~D8GU`NGyMfOOjiL7kD3DiDoUj9QM~j zIWhar*}i20qEB8NNt?kYo#wA&!L%1DPJR3-&nB#m#l8dGvRUWq16M+?DKKhZ&9hrp zPZMB@WeOw$!a1LQa0F1{e9b-UH~acNipmTALo~FD2b_jAfQtbcZs(x#Sqo%uPhs}k8Az(OHYbWCLqHeN{uWW>y7#O^%>Rxw6FNhjIr^(z|r+smP8p?r20 z|H&6fnEzBz)pO~nS*yEi8FDvH4G>w|{Vye(tKxgtU${YtIlS$W(eTy6Z~iTTcdMz2M- zGF7c^Xu#0m^WwD5J_+tb+niRl{UI?;{0quSV8T=l0vbKmNWnN96nofySwwK6)1TVExrmw~UGQhij2F2qklw+zAm~3o{H)tWOiHt? z;a$SMg=a;9HK;liDop(`fW7vw$4vT%#^e%i>``R)%40dB4{a)c=8^nia*(btid>TY z8^>O=aB&d4QGodbS%F~dJl`TP+4+4Iza8AG`D%Km!o%AMko-FIeD z;Vh?b@mm8Fe`ry3DM*l9Y5cpZJs?kyp08!kudItqIJ{e?Pf&<){*1i1UgltEnx4z> zwss*^Qr~d$E+#ax0QZO^vt)iXVlO07ML3XU!IjA5!Q6d=gXDWS*}We0>$lS zV%};gHPHdqKUcJOA<95IK3Pv7*`Xh%XdW!?8)2j#HHV#|1p&CQ@y&&rX=Wmhk9+Ve zT0mk1aG;385?|=kv5gT6$KAsO)8626&80PnT=Or?sgJ?eCe$rccOpJ{wuP}pi*s@x zZ4@1YnZ(*2a5-sr1HQdZ3O;DB)U*Kj4&)1`M8n2m+OfQ}CyXeRnM-_XOy6CxsPT5E zW$=9m#}oz8u$sC+fk|iG#WW*fs$?s+{&w6P=H!0@_ka-_3s9T1RO6kIbr(rlwy_c@ z2Jihhw1A0Z_a~@rN;>(9>=Qm(&^~iAQaov)u@bhq5&vCCPtE~$;kmd9 zGaqD+KY%h4IikYS_g&N_tD0C;zlYwiHu8Lmsy z_1idS9z>tAUdL8kIvbU>U&-D6{9=rmv%8@Z##5Q|X!wcA_#ScL!t|$t*&HgVD8&&d zYg`1Kkx~8z?GVc3aT?c_&Ye+X?AG>r`H zb+Yg+GS4k&+HRvftQD&eQ)Y|kdX9?3^-AbW?>ahx@9*A29Pqo`5moWmRm8#tNVP`} zh2<3k$^_=i$PDvs)zkq~9zn|9osn2fnS0ek7d;9i-lZ6c!TajD*xlh*FT+G%-3Yx+ z$YO!-uQAx?6W1?PNTjE6F_kD;aDT0okpb8a^&IMR-q@(!vN66sjf5?*A6(!k5m``n zai6e_SW#AbZr35<&zQ^4)sq6;TtFS1x+>j>BBKIeGjukU$G>2V^f$46mC|9%685+M z63OTfc}v5PvO$tsl%R3h+ff-Qh!*F!zIa#H+mcZOD2>5;>YMXK%Zb(RHU!pr!CJX- zQ3Dt$#4wI$xTJG4H#Zf+y!O9|ecf0$V zv?{-}{-G~lu5*?to5Ac8I-7hY!VEK^9pFbfH9^vT| z1YP}}st@B}Q%ew0_cnw}85om>W*%qp=Xsw9Z=#_KcSsSqmQ%fd{^4ruBwQh0x%Xp- z!VT49bSzVi0!p22-oj{xW|7F|qMa^!ZnL5bZ~+#W&V0;9g_=OR;kkaCH6- zY-lb`h6dL+R+n2Oq1bP;3?i)yx|5x`Hef?rk?#mEr=ue$4$Kk+S6of=P7r@r3ofDB z?umHZ261u6AjIpfY`-?yOgyBa0xy!?y1ZEWGoC}`HY8_+=hDw^zFxVv*)~^llJ=Y- zY-tJ2OhuW5@B4HDy6~=reg!uLWWSzQ)z!&l`t*k8hh3Q0kk2;n&^!Wu$~&k~t%2hg zl^K~PDsUfsjI-%LAF#73yFI7RD@hl&*~T}$=f|}->0q^|n+HUtLCK}0lOoz*tA&VI zPXd*Bj#!sMd?0PVnaN>_MEs5eP}axUz@s`7Q;)E<*~yukXx2 z%UxZr=g@?Ry@u>>^uQv>`5>}wWdwPnf7@fy${x_MlaWxK9Ep%6BHTKWJ=rIony_4( zz;=mwe(e4|te>$D^Q;}1)pHCKx#az=+IdMMeNp2^rGUYXQJ&1p)y>85ou3}m|K=o3 z<|3bN(Mm08u>F(1RbX(H{-j@!5$q0>loKAizSrGX=6Tvl@myCdJ8 zZ9BunQrB8=sy3TSvx5VNZOl#{cY8mQx6atyA2Gx200JDO6N|xPzp;abEqW!Kb`(}g zV}nD-jU;}`L(`ovR|c5Dsw$!;YZ{SWkOXRWJx2U}e$y4$1Ubz9bH!~ytNw*~aS_<8 z+yMi-#%ShD_D8>3;Xw3CL}@2E{p*SF&6$vt=GGSkkZf}N<|=A3QaBMrqbT{^1GPHi zcgmz$>y6xG#u%$%nHdM^8@pQ8VR8E3KC<~-uPZuIv9NGNU^xlye z2cxzIo(#!036)ReVsEZY%*>QR_FUS=ky@S6W1g&v?g!#-EphloTDLrOQFsj0nd=)H zGwb)p*H`mbtomLeInL&Mn+%MEGCLI8XNpoZ@Yb>qcIu$r`F`z zXW+r?zDjNiE>L1kyR=>_+5P6`Z^X$D=mDu_<>%I69V6Sobt989g3g{xs zIT4<{ZLoZDD2;J39&*wvErCIgb-EhRB7CF>$5aJjJ7&S69pSo&IPpi8ee>3cqfUfT z`SjPC^P|;s@wjTYfUt&&1uEU8RFmqkkIt@T1F;A9_k(X$^SX?z;39Lg8sb$~N6vg~ zW@g!8;j1F}3t^7_b|3+Oz+W&Kho^q)rZW|XwcrKXjl)C+gV~G{dt)e(D%T;k0q(98 ztT_BD=Fu@}k=d};sZUOGTh{A+MdBKG?|9@;>O3?&5O~mZ)S1}GJX)i#EcAh`bqiYk z;=jgt3$; zCfC<2TGJRX@?tT#4U0rxpS6-dM-zp=9ypBoK>@|ke#Gc%qQOtzcf7Rqt*;KxJ0HO} zxC3OJl?`Vpa=%22{YkUD+glJ1c8gqnBliUVth${)>8eyjd-w0(mLP$XF74!$F-L}- zv?J)}&uv33&2$Q!x(eyKkEn0G{KEV7ukXAB_hBqWYz?2a}1nH6s z2(t>S@OR7TtE{iET=IC>%>=5I7rn}7m#Ls8)3HUw=|_HXU(y%*jY=E>c3cBf;HhJV zl8`keTz)lPflED^yH_WVUxl{>Qf#SH#>ge`TH-&>p=+2oLbl^Xd!~;;b~}%68|Myo zlcL$frsVADn1Prsc$(|J7YvHJ9`c+&hv{-U0UsKGV6zZWoo z+~YquLu4`ZfSjegZm-&bz+}&BwjV4{rNo%ekHdIoD=WWG1CmR+o%_2$Qz~DcvmeaG zdfC%nM4(RX# zW;--h-1k4!Syz2_w$^&3NNZ2vzKSDwZ^xrU``zNFKvq-6KG#+gcUB^{c7216hG>rC zkkNERF2*Cl2Pe{$r$c3T9%&U1Sb3PII&FCDo*hPTkJ}rZf>dv_U-U|%X8AaR?fOzN zN6HXEwr!_Ymp*t*I5daTwsn&G*{So?pSH$T_l^Xvr^I%n*_UufwuqPt;+YMGMD{A!~ zZ~ut(hb&}za8tDAn;Up8IjIthmS~}Z8V(abSfSLBLzx$q&~m3)L7rPJS~oAHucsth zXo9G-3hVor$i4KmBlzp_b{f?C-RTZl?gI7UMepRi$SSK<8sIw$x&p$ms_? zGgaAYWoKu0G;S)OmimEAm*9k?1eGJ&d@Ecwa~-ZPG_M9F_q>=xlVHSqYA3ol9q(bq zY$FSjFIJKA!VW|R_XUak!d4L|I$K=&+r~*I*K}E9UB7BobzAg)2L8|N6ecDb_bFRzC5I*2cVrOKj5 z9SF(zuULV%w?lMytoF9CjLk5!Vb__rf_2jeSM+OVQl@ zgqp|GV%1n<1@s|!G51!Q+5t1Pq{n_{ej%6HOMyQ&SLT;^D=*`w}XF@Ea3`0jFCN`(4*M(icE1Z3&jiG}~(&N_7% zj&+=i5&=CHz4Ds`RQ(dW_{oALI&;7N_k(Fz=P2K%E=(YZoMs>{|+eADY2l-X)j zZR;}u9IV@UH4}!>%WtU~Jd)Af&G~fMq><`NO6+%edit&ekq1lrNNt-g*(CJa(fPU9 zX%1ZX)w73h{rlc1aic9woVt;?Ch^w>uyfLwz1G)>?+jc13dVV6qP%i}D85T2NJ&rI z_Ig-1X0-pq-=REfQJUGPnLeWp@+(M=@Mf)m*z$AVNqimbG`y;fkg8!{R)y2G<&|Zr zeMj5FYZLD|t3cP6oN=rX{I}ogb5~{Az6z)?bo9gK#d(LOy|R<%S;zZeGCMK95a7ZB zEMiY?(SXrI&tdVMD*OlXxa6L*+r7&<4~jJ9FrsS(GZu2Xr?8(@OSThgy(EHpYB_)x zZe1#kKPsxpQ@15a8&_0}=j5=#t;!Dcy^I&TU_?m0WI%;Ly?DDnu-likWXfVqe<6|v z!vBd9@m!)R&V|0~F~=qGs`Wm&XX0>?cUz?>^VL)x#t!*G=%Xbj(+T02$7#i*(a!M6 zk;BFk=_GZb${MSKNq=Da=$(LxH7AX=B;f3g0VN#rl6v8+4Mi1i8a(SW0%i{v{n{n? zi8T3f2>C{5Hjh1}o_>$A6aNg8T+7&@<=T2$QdB~}i~x?orJc?$b@g8zqc>egZ(nKz zW8#sMrnQmIc?)6FG{9w^7`-!7pB9>&Ul=Jh10mw)A@8BO|JSw1fVSRQhJ4 zCY+?Z{1_sH@PeP%`Nu77NJ4Rw$OaF@Y*LWGCc}kabMJnkZRkBeRdK4}BHbrE+4*bA zX6gwpT|Iu0M~3IUfz?yvK#(VIEgLnz#3FmB_$s(ESDiPU;M#qu+)6nIQ#Mr3m|ml3 z-Vk-YICb`&6w2$OELxxk1F0*wDY;R|xr?=X z`mFjh0}~t{Moky|NIPF% zo+r~}cXQ+D;HNB8T?JW~ZaA-R0}-=D0IVeTJ- zXGGUiKh~RpH8a8SqRDGOWc!scThvz1*im|~pPOOE=Mg?K zW!1MDjUZKx{JRiym;lRoXF%cbM;1~px5*fel{2Zfdscmo@F%P1=0*7Oy*4%2;P)gQ z^VA_ZaIC)JicK`)JoL1PZA!Ag$}5fy+BT5V;DU>-j;tyB>I|()OdZ-ZHUv5|sM*fM zYpPiH6)@D4DT(GDQeh@Ksn0JhE>J?>H6vfO`XEMGOTLITFpmCcZD9II>1I+Z@X*@7 zV&E4}C=52QD;rh6Ok`@)mR)Wqjj*{uxMFG8TAmlYa2gHFp)_rMx5<{4N{d{wSs3}p zAw66tl)vYZg2Z>X^%zRS@foqDMlcQKCQCj(mxK0t9Y>%{!mF7O+e&(E-ScA*a#-<= zgaVAorW>mspV6yAL=19Kh71Z>ln5D!hNjboSu=@>@q2?O<(Qf2ym92X6pmR zyRVP{!PC#Yd!__D_N;VMUr1JvyUH$e|0uk`zf@61f?d$4&KNp{WM&vYT?@;BL&br| z;)IVO5%yVFoITbwjEnMupW` z<$Q{+PyE!7!2I6{R~CSq5S(yl8ySQrSq%ZHc$8XS=UI z+%;mno#zsDrFj%Os9JYODRqk@M|uuV6XZC&aUrAmohbq(K>&@S(FCX(7ptZY;&Jf& z{v|&ZQ^jSP&L^fHAjCjc=GaR`H`Up5UM6@m4G&Vwd|!&|I2507BDq=d=Ha zfbQ}5^!cTt_`Ppdu4ZWfEPLu6GTQRjt>(P$>cK2%xQ?Z!+E*b*gQIo2FTP|_&a9aH z-}R^8?U1$5S>Xn9JH2MA8vT(m6CPtHgJ?y0ZAY02`gj_5iuMORlmCfzO%{CZya;)- zIr0LUzSCy@3==alF#H?0@Kf4}fW2#lCGP{p5QZv9f<1OAX5b3z^EBmmL=Tf2GSO+f zm`Jg}@&fQ)4DtqnE4SgE^<-xmf9*l_5(hU_rcpvgV9w}-WBz+W@`m&C2u!1kqwrY3 z-2I+cun{AJxWgw8(D#Y%YiU<+4BkBn%pb@;4a6vm3nG-uNoTmWUJjssL!Ez>O`RZl zD6-^*0|ABf=`=!RE=|`Zl_~hGC&c+V*n~}f* zZeMgyE0J}4%etJ*gmu9~_^K4mUZf@De8MSRMw_?MZ9QDib5EigT5GHu=f=ivZq2H>Ep}*coQaF9)Fx?nTD^Ieo&-bt^vJWoP}1pTV#%A< zOhG|iSt9glJAx{Q0jooIZ_eC03BvJ`_1&M@lHeA9bWC|H!wlRy25Q9%yh1x zydkXjS*yzhlHV{)Nv#ny4?vfx+nG{uZy(fLrHc2Dj($7(okj`$nJPXsB*)_}-a!Dz z@c-axx2;sfwbY98&3%V=)dU41?nyWp(J&KRZGxxnG6x9SfKj@ByqlzPw3hGA`L~|? zoSxt^In0|*JtS~6se5ksmG4kOlJ)W#&&t6nHM=rCd|o>;W0K&@1pWVI0o0pzg#0Cz zxO|swT-vp>eHU>$h!`1iqzpeH7UqoMW!(c_`{Xy9v-9f&A@x$V3{o}3s%EJMj}5(i zAdm0EEXP8<>-1!XN2~f_-^UWZvGmtu=)4A(aMZ& z{IQ|H_er*LLpKN#T9>RF=Q!GzCt=~va%U?{?|cJ}rCgS*&9 zjo5y(OPcl?Z|Y&!PZAT&f)qpiEPEEmH-V4Om=O-^fo@4Dj(>^t+y^qbDeC(35*MPC zyMjOi2DW=9rWY6+n`O=0NL?7>x94C@*Ts*!1)PHo^8H(>6ROX;gN0 z9vzFxhg0X};Mf6K;0*YFmh^mPgNS>1@*_L1jgvK_C`aoDmqsf(?ofW@wxB1RrIjZJ-p{Fuz2*EN{ceHd zO!5jNZ}ogPJH&vKLfWPh^M+ete%(`&pDd=gdH-f*K_xk;`jzNABm`wZtF#A8*qdm$ z8e3zH6>@Sh!uIabxwFK36mMy&2iO(!#Z#W{^Voiutxtzvl4qy1O)7dV3^(s6jBqYj1&-Ig_QV9dcgYP<~VVjXs@7}+x zwcD!c1TVEGNEG}`YAdvsK)e^BZyd8}AX$XzsL3PHeOx?PoYB$ty4#5gU~RR-=Kq%Y zT3ytu>`8o*X}TU*6H&unR!iHY4fUs_m^>2nW;+Mt}XS&OBl5Ta{@qL`|cr=;_Zwd-j03M zYV;{6#ow9_7SUn%C)I~h&eU{U#swq@lK<`m0qhPb#j}37V{;k$4v6JSmpiViRqn`? zGQ%&#vU_P7sy{GGX{j1U)RV$XHRi;GPbr0Y8i1n5`V5LN$KsA-<nJE`sauXaDX>N#a8 zLV%1H7x#WQP2JSgz)@Hi%q;X81knLLa)jI?cy;)5t<#-cDRh2++lD6m} zNtNK&uh{Rz*4DW*<}IVSezPWZPz!b-BtOD6mSpm^AMD2|=Y2vE)Sx2qm{-$2V3ZtM z!Op;A;MF2ucPER+9@tZk9B$!Lt*noh+qfR!Fcnjb1#|sw>Hmj%S`It@;>G0OsOP_?V$x)n6W3$+H?vvtf67s^U8GPEVohZf#Lrp{tCap?AYJq}%EB%gGun z1%u?YTYp}~wo;-n<5S!z;=qyxodMoC4?H}t&COwTX;x=1)bS~$N1x*=)OSr+aIBnZ z5$vu^o9q-NQ83_fZ~T)iFgT0sW!~1ANt=;zjrF0|AM*2;^sT~s4nM&UeLAz{&yFc@^_@L}{zBd|89!BNM5>%m%`Lo#bXI;Lj{bFC?=qx)`Fs)c zp7E`_h!&9-D20nT^R;W%=ST9RqfIo|-}&lh%@I#V%cs%!u>qXf1fm!&^pZ{5=s|~c zU^oN^^nzp(c!h-CsDcLnL(@0-)&2f|pKMzvV|lrj-L~wOwrty-uxuO4ZfUue*RpNf zzTf-Y-`^k5BPJGThT-UTy+@6N|c9g=h1y6i1Y%tYQ-;*Xj< z>9Bo~uwzynT2$-tLJ{4uC0$FwHiwAkvFgshmucsh>(U+`wdJ(xeK}F`r?!4F58n^N zUZ2oDHjZ`jUeB02z7TWh8?igh$mbtxd@W6FI2rd(1W!N6KDg_jp%W!j&)F%PdsAhE z-ItHAJ!`m}3qakLSI7R~b9$xh)sN`=Z0o%K-uJZZg@fh_-Q5Kn;pZG?S+tii^9UR~ ziCy&XEj<|PFE(1FO>pam#!Klc6=}SXVm6l0cM=YBH#UHs z6Z=UKz4etgjGa~kvpJ1CvVt3uKih~tzSg+VE>zeZWz2_ihc_UF_C2sI^XKe4q&vB` z9J}U6E&oHKOE^Db_upPS`+Ig32>4%d{J428?1FeM{+J|S-MAHu7OzDapNhi_`h8eh z8Z)rpKc^+xN`XQEZ)JaZPsho5Wcu4d#t~F-#d+*+M9yWHVQXE~f(n?^xt+_SQ~awA zz18@9xvA#(cG0I^O1DTzF=)Kj#n|4jpOI-Q+&EoTQ$jemgvf)_tTaUCnI@*_a!@5v zCFcoAUqv#epKxOBr-s*i9y-a=+8U$LTg$o~B*nY(qtYWy9}q*dHe`AA;>}+P|I8uI z81=o^>BM`oD2bWOxnWN=S{ttgsKnUN>$@WN^(gMj#($L4%Z&Z_*=nszp0$m8e1`ES zv0c{Ao#Mw9lZSwwUsd(PZoT<9{gnoRXOP|}GWSStP--yfbJ!Iu-g7pmIk|Lq6eMbGK{M}4vcZ14D*MG+|Avm9SeQk zp(PJ6=IC~N^r|ZA$eF2K%qHAba`-kLcZ});U`W3nopmP!$3u>8VEpw*p5VgMn_SH|vG4d0QJ#7?u_g}AleIM8`s0ITl>-;w7-Ab@ ztIn4!WD(xKL~^9_qS+q-tq$X;>0{PN%FXg`UKa~qFp?$YI63g4wpD=Ujp}D@k zM*toTBolp+Y}Lwg0`ON&)>MH!UkT0ytM&J{VZnWAEpVKAL{*&UV%mNDM6>)E&3ZC1 ze>giZzQKJYsh=3Xnmn|`bZyYHkr>yB=AIt)UN2GkVh89_$0W%^M0)*!52OkEz07*_*E3G`TX@dLkYbzL-vW z671T8KON-kGDBl1WzlANj7ep{@t6Ize$3Lu;i>TJ=}3xNw&@m( zB}IQ+S;$@EZufiqf=Gw$d!wvJAa#sDW^*!y4;DCvm~*!111JBW{=w`Q#~#H+gV3Ad zKs+;vMuSJ*gAXQ~2HZAdS6P{OJ`3p^UGB|~!}}_eQuS}UEu}wF5GHBQ?M;)S_N+zC zs6Cr&-z}PMiDAZvYcHQW&Fmcpn1c zRsT2(tHzPPKZ`aLd`b14)uB_IDIY1&rD1>>yP#UHO0w(1HYiH4y{doJReLm!>LoAHjF@PbzTs`03887zxc7SBkoVWL3E{} zvaQ>|89$X?m;*v!IUSI;ux-po+S`%%UR5|4RkSx9oXF=pK5%^lN?WreNza$S%6NvTcP6Yq=OCf5lHU zskXGc_|}?}(ryIv!|Kb<5O;tAIRt$%fk|h({?}>I@p}30%gD!mMJ7iRSz9+L2>tK= z3+7<|4BoE-R5x89p;)+kSt*OW7e5+xCeAJy%x9Va1;K)9tM%5yDx!EKSl~cDELjS-r$t+_TsZ)*w8wD%8lbm1VVQMOG**q7hrVv z0Qr|i(M5sJ!0t!-QLY0AxyIPPMR+mJ*)P+AZlM$hV<=)Z*o$Myd(GQLmB8-?3_5Lz%c)Bh;!!T9tjvdXw6+wOD9wzgCcu99%cp4Qr>Ob=lUvO4s!O4hL z?cW<&@=6*WV+y=)(n+*qm0BB!JDVBVlT&JcKhq?@dgE^aHk9yC7R!!gxLf=Mt1#Z} z&{%-wBhP|JH_KBY!(zGUvF|<&BjiCbzQ|f$6EZi;yRgXfx$1qR>3Da8NLw4<2_!n( zySTa>A$|tttx13a;kjDlR1`Z)4B>Lm@fNnJt=+BkLJWb4tMegOLE*l+mT5ni@rg3& zh#qPVMez3BSaM5i${<%JGsPz!-m@HnhC$ovnZXf;tW;}SP}~ZCACuyV3iH+_r1+NB zyu?_wnL z1HV?B8>W3`t(=&q)Y|WQli*!=T>4wz^1qK1lIL8+eGy(oxWg|W+)bQuS>j#JX7lQY z`=m}jXC5n4U+UI(+Qk!0%!^0P9^`O~H?(QnuKZH!Cy;zmrGDl>;%iR1Wk?E5dE6n6 zBo|`6Jg>t~Yh|R^6OY*5SN4c4nL}y9O85a$!mutx`0iBA%=Gi?yPyJ>Aayg6bRBE; z>-bp9`pGlf!up%BtxYHr;qMJPW_Rx@y%2j4`sPvlI)$ejlC-zv0tbr`(X z&aeIWFd+YQGH+z}mCp-L?~Uqqnt-}=4bytZJ|K2jz@uWxW!SxmJ$ip=w%k3a(}D2! z?P-wbW+!HY^&t{RzxUL9fQnMP%aCT&CS>Y!qd|=0NUK-M0<)$wR2C=B<+V)P7kcuU z^ff`dIy)EZL#PD7F8@GxH*qCIDI{JEK}7AZ_-UB<-2eU)=Ln+FU5C2VLs-9L`j-iB zEVXvVa|@Q(9zP4k9)k_@185YUI@Ou{f($)9qc^%Aq7atk`avO=B!vW z@b)EDS;)Ec=R_YaOu7bqp@}>f-4L^*A9D3g{ojME^^4H;27Z8*Fs`Ryf^sp#dq#B% z{fYCKcx=H+$+BoczF_IKD)78H#?JsMPZxRW*Sm#wxeanzM_Bj?{g^LO9KB=(V>ADb zo$YAJm~s7Ws`FZo+nFL2_ig7~*TXJ{;~{E;DxhLqH^}EI;B5NK+Bb6fCDNxuzq9?| zep%(5u#(5f6e_L*_j3etVdgm(>Ytooy$Q>Q56p8v*0_dpx*1%KG{6gG?k{xMUdHgx zobbrIif20C?n-roEaio;a}+BOLDKlK^-xTzd15eha-q54?{NsSEgx{NTMHK};qcyN z{3W{*!)iyWPQYWx`aPR@H8%i=A@Q04u&GiI%pXr$v4jms=bZlFBSnxly;l4?jZ>&w z!nH@EdO_&<&V;fxRN4I2BHW==1|Q6Jzs2>}7t766;lk?A6&mDi)Y{ym9I8bRSdO%qpmP z7hvRHL5AusM{s1urbgrlVc1;z>>lvIB@B4=@Tc;Blf)Pp1C?*?0tE@~=2V<~puRPU zklfiDKCknI{dPpj*l--GozTksP2S-3d z&CUAyD~zq3%2q2VEzSZ=LluSWYl80VD3!JTc^(;w}e0jNxmImw1ZBQn+H0HP~C49TO>kfI^dYFRuuliwNpyRV+O=uxNxI)A>o6d27*5dh-?1!1eoQ zgHSk{V%|Qxmt!7o0pfe5BhKlvVwh(~$?Ruu^QwrpUJPc7T1@+9TXFs{y+>Z_gE#^x=5p@fC%FMv(fFs^%7{YJCxwJ4DVRpZKica}cUOev|Ecs| zC7X`EZyaGap>aw4 zc^4~>@V>i|JgDRcaf?fKl#Zi`S#!l2HPqXrZQpwof&I!4XeocuUZLRLr#y@_^fs1?va0H8KTTgcFFyPL z^hBrxq4knzrzwS*3sQfRzZv_T9_45@|^7!nJpIqk8c=8oLG%Kz-A^!f2 zWv}a>554f!$btl|A)JShk@ZwVgUU~;Wj9;OcVx}B<+Y<(3JeE#Hj{v|ojW|AXq8Xq zWn>^x+_BtRso7y+o**L59yiZ(Th*q#!dM(Nl9Dj65PnMHMfl=%W-DRn9 zxLsxlIr2W|=Z*cn?v+>EbqBOy&r49+l&qF0U4yKXgi9t~BXf;L>3^Mh3#u&IAPOAa zH0Ns7`-1DWel%eTdO#{rOziW|03mr9T7aZ!zhUx8J8CU#jY?K z;d?#(bueb?APAzAMqvyeNrOdnJbmGxJtQjB#jT9d=TN6E1y8o1O{4;)WA<7tHXtfg z;a3c1AA_0x*$j>>3H8UCK@w=T@H5q{enu)GpMpf2X*LeBR?iK-d^&zgM^Q&RY72X~ zBu#AuC`Ws`EdUi8ft7#fDlsa7NtlLD zD;LdjT}R6Ob4u7I5l6TzCD^b><-dzE029=OiCmxk$j_5vEo%lBq(sbp0}|>Ig_Lc% z9F;~(3}UO-eU-=+h_(#_U51)g>)(!^E6`Eo>N9fz?G_!$Aah<;w&inM+@UNKiwgc;B=A~})p9BPbE7Dlqbb6Dp z2csr(7C7V|&byqR>kGyWP+wbLbU+Tjei)}aK?y_W4_P-FNNErNptoR zCW*Msvodjb>uQN&{3=Y4=Kc6lJ*f{VTJ8`UP-{8kbNz+Hr+1b9*M>IAwqlr3=F7JF z7Fb){KIREFScOG8XUOAUD9e{0znDg`7!J~iB)kmdbM$VDEFo&4$_CNW00Ly^`X1&l zU1z4wZ<=)wlEb~~N{a-c)rtl{A{fsDnHlT0V@`Q1R9b~sUz}ZCAKiUP=i$eVlAg=o z_#P!=c?fkQYU$pkEJ6+inA$CRqGHQu{Fl|BJS7mLbu2ynk4=H=Gr0Ij_qC6DS$60T zx7bHhbux^*NMTJ3nkIx zXtG)CaVK^=Lzt~MFO`rJ;WXyIY2*~zYI-ftcQt(QIQqf&f#BDPoupEoSxZZTZuIVh zj2mn6TY&AIF4xGMKg>gil&^=UR7C9C{rOi6FX6D9v8m}-NwzcpBgNzFFr^@n2gYc4pQ z!c-L@bPNI!05)?z%%%i<2ZAP`+4?tMULy}oon$}!uL$4?wgTjVuN|kbi)YSYGndb=Z#$Z#&q|s{|!0NVR9A0H8W#SwUiJnDfnJA z0$=SfbH<#8aEn|Qn5QHOIZw(BI@)@6ys@DOQ9vu(el8MIbVaI z-(B>I`o+Beb+P=?XmWNgnW}}r zKR-O%??nJoY#BUKyNvsN|s9>4f~i9fzItA)YZu+he<=o-?8JX+t1PeSf&pB#lQ zm}$ZX%hw7tn#4EpedAAv+2gysF2i}4;{1D8@TD*VbwjS3^WG1zhkH+&up62N`FmTM zXLCz!2}D8t`Q$4u-h}oFH5YRcocb{ zhEgiNxNPg_UfNFygQgzA9c{PB=dHU%X{1)t28E=bAF}nKN@7H{za^R<8l;5 zS8|pngI0ZAZ0|C}my72BL36j+R*ZVwFB#q%Ky?{1UTl=>mm`M<0dM5y5}kY9wuvMV zuX;CvcaP0QwO!=+)H|ZHjeK2YZ4mDr!LWee9<3?Ft_3z!5-UM3b!}Ndn|m;17vJcn zQj>1W7MuzAepTq~3V+~0LJ3P~(Xyb;BV>yXp7}RHOkaSMX`7zsY2MI~K$m|SnTHcw zL8Zi|%^*VrMy@+H%eag<;Qa$uBU%CmpGv1Va}nhBo@EUB0$R9f#&n~FuFKW*njjhMo7iM~dI^VN~e)01SU>ud7t(l8F9l)r9KWR8GezgPk#Xp`-~ zo^~3GB?+SG!6Z$Y<{?7ZiclcO~D- zuykBjl7lb%vuQ6AdMK7Rhwz}hl`XBY#C;w98@_=5xg9Pp0jd5*gLYNVSok*=s}f)I z;A8uLDB1qit5@!ihEWZ&>QXyEM-rMLM9_%+@=I-S<7{H@UpKz==u#%@JZz;X3tF`F z^Y345jTM+jQLCq0`baYx^H!tpd#4OhqfAp+s$?z^@Fj{rDXO=*>1%qYswrH;p?TXI z_=uxM^7gB_FOV?uND<}Bwg^MD9`6G6lNiy8no-Nyf!?QWb$dBg=NhQdCUqDOTAn_-`TDV%1hKX7vjCfT&l!ce(Tk;$(CUAHzqdQ9$xU~|BoG#CSWDwHz+c`78)OW_A6yfu=D11Cp&>K5q-fXDI z=RJrJdHML0@_I<1>(>tBvcOvbRoS8%*&Kd5r5yh3aT#FF^q@#TycbIX(x!CHt-md# zL6O6uVlfNV<$rPUR#hxQt6Up0)X*?{CV5I#Q7Sk8o12SV4r>g}#~~|X`Y`e4K#BX? zFP!eQy6eQc?nEm+Dx`!1$|t=>ww~~jyz{M4>=nck`(t!Pxo&7L7g#Au5FU4-#QhQB zsAw2eUNXn?cKk89b2;+QnXoj12<bZL<3gGpktg@}b0T;CaF-yiK>zz0PS2jG$!Zd4x*#^o5J*E`z zDVoo|y%h$OM1KqKkz}Kb6a0TJaN>ok|AY&SmKnFdCd`))uTw)1&|_0;7=9Cbc|Jz6 zos--8qX&Z1CURW6)nA8N+IGJ7t1v%E&jws zi8|uos*U;T5~Vm9l{ch87GntQWZH_!&JAx#WQYbR^8oB^04A<%>p6rRh4LVRhmE~s zF9|v%1?KD3B=PzV%a=y^B3v`&(7)U*3@452xA~t(>UYszH22T=KtLV};WKb|Z7|JS zu!L~$*e*uozj%s%wK}EqbyRL_tJN%hMlotf|Jgc%<^K#7FnDTGxOOwx9GFWdd#LMr z{dpSZ;0Q{*3X$k?yGf3PXQguA!afp{TBM9zN=f(*-+qcr1MIMx2pvO4Ipbh}J98n( zwUUzikbTbhZ)~J+5yX^t@wT#4a`86LURZNGtf}R2dh+gU@BCfSJPZWPuKxD!dL2Ds z14qsz%$8DOFd`bqda{0g@#cp868%)7?0YAcb%ER1Np_N~c*m3k6S6!1^?C_YK@jo0 zJR{e60hI;we;*W^l3+7+hW!z@%J(m)^?5@OgE360Qx6|b4-;as4q!zC%A5Qx>R?EI ziUcG&G2K-tjq6U7Yv!VkH09Z-mCD0;5Bt5)zI&?xg%|J?9vw}6+H}#Od(B)k%?SjZ z_2g%TyQFXN00GeF-Y|Yz&-q&zBAG9&mfNJXua(s+5GNc7Sm7vXi&OuW9D%Pe{L3R% zH#o;yoPSsgLfgAzy+*+sXOkw1?+O3kCh0%3*z+v-P836y%u|TCmk~rZSff4{=gSK` zHsfvGpYU|K8fb}r;4q{Eqyb?Q#DNLavj;)U&p!VjffmL9L|ntMsL(QsDp^y2odC_J zs>p9GMZ(UeKPBoC>NY0&B)UVlr>vh5yU!sE9;}z$mGCl7UHcSE`fvr^`D_xm1_VK( z!0LhF;m(eS;QUR~zJN(0`pXFJ7~+aGLAEzhie=DQxf?c#erz_~`E0RaA-wv*|69sD z??6w4A1MW8AN6ei!YB#4MUH7|@XmJ{jlm>MCJZfpkc~M?G2M5R)bRz>W`ayp)~Qn4 z%{O~|9-=5u4vxp`e%8Rz3xygNc(f_CEtnegG8nousSUh!&=|Ues13;MnGMp8M=tTw zmIOUMuDpdZFFzGh_VC@cG*EA7t zgf)d<3q>EyJDbjn-@=(3FQu(UK&99Jq(4A+F=%t+6w1Rx)kVP-hWSHUG$}s7H^s;p zFVrX+Re&^o<1$`+9Mx((?)N7iItjC}u|Q3} zr1ATz6~)*>4@n|A`%Rm#B=#d_h9>ijDj$YgTINzt}Jny7dzP( zKNL%Rg~?)q3`Sv}W(v7}IC45vc@j^}p`CQKK5kF_a^<%zNjs`2u01+}96@d7MC4hY zLcQ3c?Yq6OtOUS6(Ui^dd=&PSXpW1)r6*mEb0x1tD?8>!lSd4nt){sWv@S_yY;gO) z9F^mMR$Xa#7>MV4TED$(l3dZX=)hKyFjc!y0ESjZu{8DaFWb`0%enQV_?_p_kKSG6 z!-HK^LO5TY_NZv|rC8{eULzhnSBLO~L*qWg@C(r1cgMdIo(Y#BHx2Az9f(3I%TXjl zLc|F&pjh1dg(}Yelox)kee$TaE$n@q+iqfTUF8jXKO<*!8RS7}`z^-3Nx?Lq05)Jc zH%bCy+6_Z#{8Gi;K_IqyHOaY>;1wKCrtM39v|*i z7RY^4bT`%^aT(ndk{Sb=lvU-XMF`(zM~6?5jS?27CcH16ZFHSaCnpc>*UvnOKghtJ7osfUltz87 zNZ4chVDIq6TV~aicl~FTig=`{p5E*C%&ciW{zZeK>yiyGW`>T#7T*l^5!5R4kYnE} zk}w9ZhLF~aA)awfq>(waWD!0d5j^=uau^yd6HidoK|1=~=SSgU1$neGQrtgPHxY+80m!Nf2`A0B=B zy|Q*)uvTVyQ1c>NwJQ?s)~XQv$e(?8V}yO#fidpvJG+O*^BfK{4_#B9_IKpG6f}5gal^20ucO+HMYXr78=hElIrSS? z;1hv;w_BVLasx|&r;y_hD=)cIeOGW~XLRsyi0dTFq9?G`pjZewODLOgcO06Fy0mop zl5%*DPOHsRVRuT2LFBL^ckkD3~jYOld`-8q6uDywE9PzHK z2(W_jhPc^JoX!>Q ziv1cBjgHGPW`+q~_v|EeHnT{@=jOn&$H_?grnkys`Kyxm6OctfBY`RtB6^MCX+G*W z7l@ByHT;)K^V^?2yY#gqAO7HCr>^3nfB}EKrVSBY)Qt{pe}i`Im6h=pABW^+MD)Wr z^Gluu@BJ%2oOE)#VB&TyXdwdH-$v4T^g)`w4bATUT!G^eab5&mC``?$MEh3}6wmW1 z@NyjZGh6WTCT7HTe}Ly0qsLP+e!j>&DlU5D@;2izp`#iaLAh-@$nJcRDJpYOR(ExJ zGVE=ew9QXA4*IgRc(UtIOtovO6#j8pbU&fxp#8dB+QUTt?!_JXbO6&aVd!HS_FPi; z`k5H!d~E6PS1;ng^%zgm)?sZZ%3U)|Yqze!UluMA-iu7kM>hI(CcJo2wK-~h^GcRUBTz0Bc;Hzcy*8d#p@|tA(0M5A$oOh!ca5wUA~e4L z{JNH6bh=FQA`0Y&SZofm_>yxh`04C7f%@t`!GqPXs-V4hW4{XZn!#JRlL-EKiOAUL zCl72}^yd6D&8)6Ts1IIQ4ciJ9_K=a2K9%nlm)>Lg-U;8 zEUGb>>@X-{6nTCqJ%8opQQbb_-RB-Jd+i_dqR~yw8I=D}P8tkYbDjbOn-36jo}Db1 zl0Vva@}LLwo9uh67!CHXrSPt{4!s}|yQ5w{S4taAx-`!V)t6X1 zAi@Y>OuR)UWe3(W$y};MRNr@DS7&WBGqx7jkmUdtg2vfiQ2Xc zsbB*<#wYb0x_6^%zvU?)@S$RZ4hWn{sD>@?j^9}gxy<<=%C+0Q9ENGElPVq-Yz5q+ zYgn|xsA3Dq1)!|KG_%8j zEDBbLTyK0;;vVqsip4OU`HkVy#k~n0v{{d?9c<^q#vv0v3iiUhw+3i}JhKp(=O;zW zC2Oo^yIgNul66fPHPcqD9wrV!64AUIfNI%e@&^jxMmRbUr>4w_@~3bBTBFmuEA!~kd+P$$)`@N)XIIlS$;8x|Q~ zr|PiT0M6sSyZ;eW+gUN2Smjkyt*7pHz1;;v=i^`GTM!J=bfbD^G~PCHP7S~(xhL5Z zjAb|f5;hR&IIy|3^+>eF+qh(9sISVP)02H%GfYa5);Nr}fTg--wT`9gc6-*Fisfyt z9kDDhW;fH|x_Dl`{5gf&=vzm`v}2K#xnKvW<(_#qg2^wNHYI}~wgdKdrMqTKVT6v< z>t=%>_5$ilj&0X#2Wz440{n5>)+U{Y4!^Dmz5+}dWCo)uN7iXC?|{IbP=5;Xgj!Xj zuvTDGDk;d_=Rd;LMSRDBPRcxJHEyD!nqBxQ=G*-kO1Tcj>agh>P$fK z-23$2Xg|c)PYoE%4N%A8w8!6buGryz?!d;2HY<~jAqi4f{^&n6{f-d`m~9wO5gG3) zVABu3@*=J|w+rYw^h<_gUT!`C8S_=S|J$hno}wS8&TR+T+agPan{7G>xt2N2h>zSY zv)CmohW?J1iS!yL$~PU#F<>n~RT!(EnL6V;i8wnU&po!x3W+lv*4DI9`d$D&ax-PK zJx>G)F{KNBb6O<5v8ja7_*%wJz+VN+!F!u@-RQ`kq-k(?MJDaHX{hBX+kuA1jy^F& z=7BEQ30i-H7a&>8`5tn>*%K_+{?@f=`}i^nrQYiGF)wmBhFp>re{YaxNCe8MV`IRy zyn(v;40^LmzznD9$UGM98kRDuuXgH%lk1$_9PZg)g}i%eAZ+cY!QiGs8e^>+-UFiY*#mn*iI`|j{gNtSvL9Q|Q@WFkl!T{5PSz9^_o?CFn?>5B!&lNG{IVsCv!}X6gaAi4H@ZeFc1&SmmsFF+o zZ3Z+Wy+-SYCDW=gkQebHn`;0j9&|3r>C~LkYhS92Jlun;3mZ6=Z`e9=7rJ~RFBQ-a zdRl1sf;;#sF-kx3P*XH>s;NhWsNXuSYC#55G~p!1YUsJ;)wb)*E}{t&(|zqq9&>X% z?7s|(%Sxg|Uixe=og>UT=0g0jqev4=Uk5K1rSsOs!R0Kp3zC+vY#}Rj=gMu7m|^T& z^2tWkIPesGO`lYFe_ z6#Mh7HX!w!X*WR4AdlQ&p39HP;Zfnd`!gXldLF5vkM4 zH(|Mz!O$g0Z2-xv6C_lMpiVa?usrTTH*&^(&hA~5oagk!XiT6VjF@MHo7_rt-D-qd zO;sW78n6k;3FcNQ=1@ppUh~tRk9>Q%9Sv)MHVrH)Na?-)m{i|*FAGp$n9--=_^A;L zq-M~s0^XUA%cK}e6#&3|vtAT`P6X5l%1qRcy-cOLJrXFC8J7KEjsS9G%HmHQwCSGRF1jZ4q}KDxQ?EZU3bC;wssJ#oB)lud?q=X;OERF z2BYwx6A*?K*$0jRZX;DrPq=*4mZKj{WiU!_*K+dv5uG3G>rx;*?xg1Ks(riA-})It zVPcl5_&%MA(hXj(X0AS;VTgKTwmoiSzy}-L?ABhtWWj?EKHN?GZG)hiN9|i(A@J@O z>X}}->qkG3%$V=tJS;Y$ojBs}yAkk&4wJjXFp=*SKy%OpmuME0M&|?ze^>Q4WUr*B zcZ|k|+63l$v`Z6-@2)s@_ZCvoD+Qe5X}r`c+$AD_*P`TfwHfmM>Kvm+X1SrJ@3H~z zzzv1M)~Rn7uF4>i{X_4d3O7lGHX4O0-Mni&DDir+%LQzV{+>`JPVde zWx{(`(jN4`m$`8lC@uX+QHzR=IaDZc&YlcQV&G1AFJ-t$vf+0w)T~RQ)bM!1UOCcc z<;$YgVPe#>7CLe?t-iGCQKGHKNt+5zG9TIb$>~m2u;f5X@hz%_6u!H2d?ymS70<+0HvAGeYfE8zzP( zdqwuWKw)A9B*e6}3O2HI{@k=W2Gc$BMXErJ@_YV?Ry+$QecBjvH}k5W10;_w6hgFu zk(NsW5EH*Py_u5*o`jo+oYysRpQ%hNHB2q-Sifzws=cBDc2^HqFA-jSoTF}QX%{bI zEy9!C3+Do5{m8lj57{ywbi!mK5tyH$VGYKHE&zpXU9-e&HuZm50PL(7wH9^3*D8@O zB{V>wII(c?!cVAIQOMdLK4w0Z2tPSj$OAH*!l}x!P}EOHJMLxEEcdnm-0q6RlITG>a@-mI^D zm6m5_4Gx_qoSg4=tR#e@{y?cbWFqg|!f2E2JuKQR-n~_#S@K_a{`CdY%hHFry}?!i zxw-xq%QKRG^G#F>A)~MU>NW@R)lZlGm5bdkR=_kpx90GH7*Em;0CgZrA~I~>$!t(Z zU54Zbf1g>qcZvxaej*6`@|1-6Vomf&!wSNg#_Ap2r`C!p`-9fiDh%g?NBlI&y6}g( z6KvvYAis?NWgnt_1B5|h`+YhO`Eg$E?zOx;HrLg=+!8i0c)wCDMJ~g6?PngOnv~~} zxkzd`&MYRfo0Z$^=1F{z@HN-Y0P*V?BTp0 zWtX+rv~K0q2`TcW(Y?~^{D|YZwH`^k*9n+1_u6jw4hN6n)|yEe&Z<@>At*Tu_NhP^ ztugVwTgoHky!@SE$S>%c+99OFFO+w@84n&XV%1q$3J+Z9jx6lSJKtUs{>?IdZT#bdv)6XZE}G~wUD{4)$;d-(AsRd4WEK$I|2L>JwlB97TSK1?n_oR3g_@=O!Wbo9r|6S_f)?C7XP%ahN|h(QSYBpmr^HBQ0a6yRF&>fYh}C znM8B9_>}lxxSlR!EuQvP?1fGg|44UU$%f6q9b+C}o@s0RcjR?@ngH{n7`iV1XE2ufr6jJ!!6Zrt_4I7P zkio-79#c4x`IWfq^7}}Rq&PdSFCGCe$z2|?J0UOadlDsj#?A_RKIphKL@uofn%W?p zHK8uLX9OV7@;42o0^YlBpA+5XxuX7u4t#)kqkCA|^oJu~ zd`eZ`uWrMvX?Q_f8@TpyDV+NNxQQSSrbX+PHR^4+hk5Jo6j_H8zcev&=>I;G;p)Kh zkBxf0wQ9e>bEa5$QMj!B zV+Onk)hwNQ1BH)yyjJUR;t52qjJTi*xX3z~ZiFaUY?^pksp0dQspunBmD({$iEGaC zUo&Ic%JdcPU%G0(Sxmn^&Q0Q5FK6@-SZZISJPsr?!N8Lz7gZw$6a| z8{?)gkSVZvx+x|k`T-l>YC`ZYEHn%62bAHhhj@rg!@RryX1!T}im(2@?;k}WQcsOS z|H|(Hj~<1Gd?+MlFpDmi&Cm0hqNE}w!r0M!UA$`{gft!{0O2#(H(#E*T23s}RQN{* zI4KU*g(e(I5?F2K-9L9<2HWOMK5>2gl46~FmM$=9Eij#{q>2*+_)_pr#Jl?cb_ZW; z8JZvjD!#xkuhj!j(mLqHx@CO}X|e$}luvl#<4rTuO>Qpp$C@jsd_2#{GZ;g6m zH0~+zU^#X%njDVvQz(%ZM$qt|$ z-m=K9NGvpu)iJ$Q~0nw31ore9quFlc_<`f7Lpj@+deb=eeGx|C&vqH zn@z)6u3AH9uO(a~no?XN#4um4eZTrCp!3Hjz0`#;n#qe8waJM=_EtLg0uBzLs-T|a zF6*WUiTM2(T2iU@$pglDRTJgDJ$u0)*xH3v$?hKaM^@#WQIgNp^VNqGqJw)}Z2No> zf*#={iqnO^*P8*uc~==x1zqJ?opQBhB=A!TRkP3 zE&Wn9LiQ}`^+U=Jo(n3CzN+L@rsew<^q`}fGY3c1NlNS^-W5X}w?&l}32^#hU)~M* zYy)|k3waKXPfN`cs?=L?S>eG#xc>r^Dgz$*GsX?ds~Y}_H*V0VL4CHV5(bHXexe|8 z9*L13Uox+Sd)3z`i{(@<5=J*UJg(umLC9TiMZRuc3;y@V#Z4I1bE%RkUPBv8l_Ca6 z2Yi^rr?3hH5xsM7IZ!UjlpKo&i>wH)L+E5!2+Id`rLL%;x+MKId~xcrrNy&uzb?nD zRiF>T89Wve2QC|Hd6)mvaAy++9;n~2FO^+koh=%CcIOX_4(R#`e^oJ;&+K%-8+AEM zEZY{UHqZodCFnm*Poy}h>K619n*9adhlWx}ZQYeP#%c8PHme>Ut3E17d@e;wf_$Jz zzUzulX1%$hRKn`S+Jv-XyaytR(((@maeZ)yapgsaL#gDq&IkK1_QX-C{=j0fc^YFI z2dX&6NoA_hv{AFs2$vjdVnuU2%T&4(3X5U&QZFs*m^;GiKwfM-lt|fv=|X+as7RB# z$cJQI#-KZw;Trptlnv%X`2YpuhYcQtyF>dK2M*y?v>At~jA{>kKPZ~xXt>uZA89H5 z5N@Au9e~YZSJNE3nMP%Ie1Z`Sw7oyq=*N;k6wdw3k`*M9?m3a{Qyr#1?y$YF@#n_5 zIoNIS@2HhhMc?7moio5GX}Jak9a{8TM9Na~p?axSHu}6DcqL z{ry+oAf_rn#y}`({_f(b57|g4H~J^4TJR_2y!*&q2X0QGuHmje1K#0sN}G4llP%R3 z{0*YEu)6<`rmK#s@(Z>Cmu`^mZlp_6QcAj0q`OO6TDlt~q%WX!cXxMpcV2j(zxUq% zu-13anlrO!?>%!ozyJdDLr%&h$dg6u2j&^JrS}_O5fVQIY(|{}yT)z)tvgmKR=4?{ z@i&J9*EFEr{ya$&s_|FqT0AgNkz1#K=UIk^7p{j_%Obzpa;~4v^x-_4rTsg2OoK!k zQ`1Apge=rdbwn>7NJmfaU@gpOPJ))8R`4Iwb#0Np;4pGJueqoJyQxKr9SO))b`tiW zR;n8YSkefV1nsWmlk-Sl0>08~$@#A`&&fep=dP=unLW~XRg+rY_aL5AUlcLh>+2pZ1m&d5&YdA z6i;zhG{=ElGhQ=VDazCn_tsaBe?t~Kezl)W9aT^94z@j60Yj^vCvrPurNx;ZHfj)boH?7w{`I^4at0+tNN`e9h zSzgwFl0UV8%M3-tzECB`<{*G7PYyoQjzCg~_JP_D&ct(>x-3mQgo5|wZs|e>Oa~ou z53>>6u6MLUBg)6cGcaZzxwRGg8WpypyH$&48BRfejXfGQ3Cc!Nvkjy#N#2jfKynqw zURsn(KLrw-l6&U$;S$jEvTzY4c75CFl#$K84*rr_P(TvseLmcb)9mqqC(E{MesI#T zZxqH1eAJLt=j&i7C>qyB=gyGqCyu`DR-7|m>(-R5g&7OXZOsK|>@`P|m=-;G!pf4O zWJZ%sn_2t4gymWivYvdTBoe9I%Tf#1>H3p1b+Hzb8QvIc6WZ@z)R>$;2~}l6)Apmu@~q>0>vF=o+tE zIvBCf__oe#y*s_6VbVv)AIqR*>W5o+q@94&6I6MPZneBq<$kndrN?%RTCpUNEiUkS z(g7~MorG;Kt*oyVB}NT&xrxmF+|fb%W zOVmXRdAF%x@!i`(TlB0S_N^odDy_{j;KfR!@{*Y%q|rqwMEpUWVgY;w)#{X(+&E|z z_>gPn3U7*ZLk{Pa+nNt!qdxj+j!_4#)PH7YV02EmF<`oOELQl_R^TIhS9)X2{R`O@)^9P7K>Etjionne(Yk!6M=NMh=# z|0tB|(|vTW6Xy>&CISo5;6$r3?-p(A(X@GLTMBi(>9N3{8$b@~cIv1p`5*B(Ku_iBLID{R>I z6C4(&#f0%4lGf}L#eR^%T`Ib091$@4=Wq4PV+p73_M>c4g3ivO9H3!`JW zcy+^SFrS2w4$N$NL(=#J6cSSTm_D-=b>|8^sfOXNq86%8oarF&>A8>G4+qgxsY;uW zS=gjn*vxt3D|nCRZ8_e$3qQi~1{!XMIP_fTHA8p3VsKvzc8uciY746g9uY$7kgkW0 z;21us_sCs}Z7c&^V#xs%W3;MgCeqH|mlm7mqZC+KD{g0@i3os~eka$2-AWu=cTm$E zvOCb5;rSz-gqA2F%&!XqISXdN#S(7mXkx@ShS0<1`BTpA zG|b~c1|Jz-UJ2E;o(-3GYt!i5B;Rg=)Z*N6N=Cj(*^HVb7wijSwfWV$$29skKRf9M5MrA)UM)%tSYB znuU06y+H_$) zp+Ee>u!I5{+&q`YT}S|>W>7Q~pEJhWH)Yk(Opw;pU=EiHEQzGd`Iwa7&a_1vkI;eE z$_j<*dRc<1h^O69M$kQm6uOj_idOd4IR!x)MGv{H}v1+{s>M(FGbl zY0o)(vGCd3j(C4TxLfD1V(9RK!xBV*@ui*8;c0zIqY=f2EHbW80FgJ^XXwu^R$@>8 zd-|xd@ayEDToVgziVe+*x(#v)h98F246Rz5nzV{((UvfzZO8Rymuu)v zAK->y$f2h~Y{Pcbj?7Ub;A;YEMR2;rz$XS<0-1bDY=-2B)cbyi2{7xGapx4N-%3w4 zl1+G@s}EyF{cO@j-p$5jbcXaI|4H{GMd$)MnSyFMNtGg|0+GgCd0>(~spc?C;OFk& zW%M6Il~GEv2BFnlvTqm}RfzRJy>jg0j4e+y0sWUo)C%%ICAQ0n7WC}pYQ%0$&U-?j zP*!J_Zd>mf%E17BX(+XR^9@oNN?cR{d2P!QZZx1*vKEfw&v4=ztM31ArcSqN4kcrL zh9R^?*FNjnGpJgCP#Ymrkuc>0SRC@g22%XVd)A2>e6&CQi$Z@?9{pP^gb~G8vNh&N zpaZM~rF_T4xi1gAha`$z?5HXFy9n*8KNr$FH1GvdEkC|iS=wO$KnmG@jlYgn)14-i zmsj6u+5w(`*%f0GvD*U3hAWmnzjyHgoD;*HJLCyJsI`r!F21e6q)Dg&s}#F|%h%Ig z_LQbinj5xm^3i*jQM5vqoJ*oJ&s?K+30mSl=rSl!f|ig#+D>ZY=0MTFSk(xJ9(Ejx zW^3|%evr4p2>1f1F0f4NF!>L8O(>-^EMLh7qzqReR}^{V!W_rVOsI25O|7k2^2VUE z1e2;%!!z!9S@W1?Q}!#v%w7(QtDWS`!JflzXvYC2l;JY(#G&!fbOk4|*_%IcFCR}@ zy{v`f1OBqa5x;zh|G{f#SwyP2LwqnkcnbAL{A%Z}B3gI{stYcfG>Hyg9hj}inrD8~ zCalr{M*nBmxd+#Ad6tP@NMuKQ;%W$D6#`;@ec5dSmRy^xSVa5Z^;h%d{NWiiXDht6 z$%RK~MyfI7mZKtcdGy1c$(BPJ^i9f7`v$YmtREubp@{ty4{UE~#`;k3e4nxJ{;vdjqx&hcC!O`!h@wH%EF##(q)jri|2G4YmCd@Qzm~pRB3|oo_JkeN7CP@v zvdqE7#l>Mw=puA0kouNTX5Z>`wGKi7X#bow)&QqA*FIaUs%k4r<=%pn1pXAT(Enw|<-Y>9_P;aWu!}|{&Kz_ z$D+?yK10JGt7H;xe#u4I^xNowx2j2#%;kYF;v|Tzn;mLGHGDFc zK~gbXkjZ65u*l78CdNS!{ChYSa@KT7Sccqm>;Ch@#!|&oH_q!)SiYtkXX-n%&){^V zsN4I)kAB~L;8p`=)hol$dSwHS9}2TnEAoofg3sMwVLU)s3!kCQLQg+>I(_#(!LWcg zUfX{DHjMmiK3vHi;^RCl?sVeL>b+x6svJa%ov}6mUgH*T^M8J1fBZalw7_>DiUfGG z`x0KcEX5Et=%0A&fhGIrb8_Ohtxi{ASftOgJ$q&(Ie;4*X)FL+vi1`KYB8 z><4V_?;~4gohYW_S%a+Ixef+81$unEzYTqa-vufGvy{S0Li>k=x9(s13KJBN>rI7O z-uWr>_d#gR;8u@gf|UC$+a6Srb#bGu`%a3_SCpWYnB)grd-Vk`A4#P(LsiR|qio|W zB#QcQ1*UYtwlC4eVfG+d7S@30#|i%3DfC~Dan0rftOPIWoQ^9TQ!3OfG>ex?O50)| ze(VEJeGW-JsneDjrty7~y8nDjq|>A=xwAB-60fvDPEzQ^K+5a7AxLj3*tYONXHBT7 zt&ph(=);DB382M=RGZIkh9h6Cdwau~to8ewO?eWOC-R7Y>@yG{rb_vLBrS?Uc&4)2 za>rCjqBSYpQ%ihQHKF1Q)#Ww*1V*d2TKQ(BTAdexCcROV6W!RS7PbfPvmgI_VKe~` z%J2kb-Y|g(Z8v=@)kD+}$`ksziH5V(n6JG?NYkW5QJJ!=``F7-_=Slpt~hAO+K5pE ztM!b z+ylP9Ai*FsPVmP&*&hM$U}zJ>;_!7L?{9<4J~b7suH!@s?pTWHXEos061^d#AK$)C zPc`AW$R>a{d@BPIgeS5?l$6OF&MT1)V7hwj`h9Y^;0?=AB&Wbwnd;W4!l}ME_bGkr z&=Vva3T0Cqqf0d$Dp}+jKHnBbs4xDM$tq@S0=*=1b#3;Aq3UEJC86jb9>Bkk(^ z$XevfQDwYI+}KBAbsPx&P@q{(i23L~#EE4V?`VqzIAvM?N3x=5l;_%T(eq5|Gz9p| zdZVr1d(uRK#>WY@NgSR&X+E~|T*q6imQqg^7Q5J}nPbPPAva7hFG!<9RgDIou$JHQ zV|@$vd(B7#ES{2n(2 z8NA3s7h!Eghn7%v`$7Wz(;u?neEQ9seg&=QmLDvr8!ra=*1;#~%oGraT`4Yd1PlNxC*a6qDgcefzX^uQeDhgq7E5-jz z%Sx%qs&yGr;AU-xcs>G`$!NlO&s8}}tzkcJlMk*LlmSoDpGQ8B61qFM+uWfvvym&V zKb<3Cx$bM2vY2Bvi3K95P{BI!CjUM!$qz?jX5fA@n~dntZ!)a+P?`st>G|SpKmOzS zk>p}R3AID4+ zXDg(<4il7zn%Z090t#urKQUGhRUB$IUB^YrN{*&Gp7wPZm({bvGM44;7RNH`!7p)T z$p)brz~6>^|BWu_Dqg5cT92=u^Q*!-q$%2b@YQqgT)+vY2nigBklIxr5JxgKL?PyRHShp*${8t24$<~rFyTy&dt>rq=K$7dtQYp9IK>hkF zCPYJ~5fH-6>%Jr?U$dZ!t3PM}4r6#9S+kH`ZN)n+Le&Do7 zQ{(im`GSs$L?>5%XY{rM`my~ zsN2tcmK)O7NSYR~uk+V3sYh9+?C5I)9L26IhJth~N+dcG}-h^YN$WyL|4XBMTkdLtEtx_UY_q`u_Dp?XOd)oHf6QE{Cw zYQyrSd**hq*Eig(=BTFQ5W^5%d?L=e>6q{7jogKPoCSHQxN5)L!bN^M>lKAxAg6NM z)wlD)A63ymKstzOAAXJ-YIRY`al`UdwY<67JGaZ3SN601?H^4yY0;~VZ0#xT=@B^y zJ-*Ow-y>GTLf^%W1N<@b%)0n^kV#Taq~Pi*eJ zP?ID%Kvx=}%6){C$kZ}~PAr_F@(IL7h$iJj2EINedBW612}OkU!$kY*t#7?26csJ` zs1KA=t%H)}WykXwZ@<6X(iAb6&E`WJJbN)2O+|+Hka#@MaihC`7fxpWqD9wHOk&MYv2A`D#m8v~Qzcx^O`of|xDdu_a7ms(yH}Y9o*n^w*w`YGvloG2k4u?GR`L)-Lf!Texq)!mmL%bhbMyKMJ3TX#OS~+$nlJ_)W zUrNeVDud!qkkr0P{BZ!+hyInTt~^h+OJn_R|MPOsoJR>wYW1eT!BnN$Ntr)Ao>*6e5r;}*Y0(c>34^}Lv$HW z&SFnnzjcmFSLvaqm2j~b!d~64L(MW{;o_vKg%NTkZS~Xluu6t#`eK@`ibOvNm^9MZ zh2NGVT^&fsLau7eM_lZY1XM5>(3V;Bh5K1U55@Z7Zu|~n?D%~&8uhVV23{M(ug=8y zli?Il1YX^H9?y$p0qmsU`pwfom)b#PS&g4Zq?a(pXuHuAiU=z7HaCIlB=j-2GBu4s zVkUywo-~n(tQ?J!Zh@&iS#vm+z|MSs+sh-lqt`8Re;AJ_MwGIYY&ZWY$?y6|Q)YLt zqf&;|1tvYdckTkjH4yexeej#tS??%rF0AyM%^qfP&##F{2a@?xzYNcJL*!xL&~Ev; z8*f9LCvc%pf67DFJ}QE4g=)rPcT=G@-IiyM6!fJOkosDp_{KGXQ+h#wcKXgT^iA{Rhuw;#BVW=)Yq!zZYk?wJELs3w zW6Fr~9nLOSZG3#h)GSWcp{DCc14dF!b5Fd?esyb@N7Ud~*T@FN7!9cH7P<|A zSF!?Hv9Ud_)kuM6@rV~>hQh_qX5ge!>n8|u>($hite#igRYO*FF*g>2ap)$0w-hw> zJA3L+k8Q(|U#nMtP}}$L-u0oGJPxi=(-Q5LYNGL<=rU zgi;;ep-}6df~Nqw0X3J(t!q6srK!QHqIVTK=T4=@hu_j{_Ypyxe3gN|ICo4_H)^KY z!x8EqW9kf|FDP!TA&%=_Ed@LW3wT?{F-kh$xk}N~NnKjn8OcMx*D4$6;r85`Su-a2 zh}XL$N{yRLD1XpIK_@Kx2bhiqs@HEnz56BN=>WFzgme%emUur~L~i&CW1Q`G`!e8h zmvdB?)NRMJ9$w8Fk17Z9E^4#DfMZ~$f@j~)fT@LRG8M##GEA2 z*ym#99rl$Rr5l9#A9^JY^yYu6pFP3O?R{=B%;tU{sXepGFFw>RV}uP9#tfwkBCKMX zDl++(wSc&3TbbHVY2y9rcdN5WP6P9%bsAceLwvM66&Jq(rhA0>e^HKbd&C-E|B)U` zJB(ky^aq}I@-H$xEYM;yvMf!?mll0WI>Ia!7f3K()_@lFa5@-^E7G)76^WKH>gP(a zHC<2=(bOPFp1f{xn!0CIw$0+|r1nPwvg``tsv8SA&_+Wn2*VWx~L8RHipec4_eu(1b-i`Yv8j zkzbk+ZeIxnVPZ94^L2D@{q4yTO+0DBQ zyP!sBYeIWtkAoVvF~{@Ao!42RSBi95mDK}=8oW~ zHl=WA!U;%-;F@Ka4|ZawiraFiDdHms7%?C?^h#LsxTnDJSk_bESg%4FAsUT z^_kqwE0u@>1z)bIJ>NEnkLOl7qwv~@-1w_LIw}H1(9sv_;-)^Q;}Qdn6cxK2k?qnO z_iR5&rrqoB!UwPs@8+2h$8Pa=PUi&mf=9xhbSplOk1CaW#RwOdVd(AAWl-*&^c%4)!_MAHj>D>xR2oEaEugY=?IOV1Sx zNB9b)WbEHisfQ-7G(%qN;eSg_Uv(7HG?3KhFW30@;KL0!vpuNv`dvfuM`i8I7T{>~}yFl~r2Zp>wY#=A1RnSruMv!YuQm zZJId>y4E=mRJ6}ILKth;F{ClU(-wueR$Jj!5;A;bHJ=DNk>Gp*=i zk{)cyR>lprNfX@xrij0TuAXxm(n3O7@Z~gvYMMtQqABM?8Nx7)Nb>MzF&iheU2_)a zLoW9zbaa8CX=FdVwA}|4EsU^-O~~YX%{O(yv#vA6M&1n+ap)H-t^t)xz6@K}XY*+(NAJdBChsuVxs0AVMr#}CS)o*nt zM2I$u9VZ_<_k?!usg3xcxFeqEpJ`Hl+eQt|V)!js+SPoK7nl83(Io2D(Pt&~uH z!SOCVP?fw6cCcyp%lm>Mk+yW&aGFwNSkjkIlG&iHRxuid*p!ZLMN?ih@gnBx><)lS zj%ihgHhvTV6e2xTwDn-?`s98eLa*q9(_dcY*dxUbK-}fhfD%l+%?JIAsb_VaQ6^-+8}l1CEw|x@ zsIualr!8P%^6Ag;D-;p0=_yKW6ksFF`rk-T+z8X+0+>um^DMcs*mw3*nIX6H2s}5$ zibRlw3x^3;m;Sw*%D`MwX~5S7elT=q4$=TN*24gYrM#b{&LMzW3E<|>P?O?dBjy;A z0aVmeeizenf89P_Qs(2UV;aUJfMlDquFEi zYG)ECfdQ>RZo@?>Jo}Ma;~Dk*D9x666nWJ={?(L?F?RI^PQ1-BE|dJ8!a;?T87HVx zeDvv3a%(n_(9QKjvRSbppsa5Ed-x^`7^d!sC=(9=A=z{zj zb0COfWd?Gx~2sS-igBR<9PD3s!`Igh!G{!BJXX&(t#B+Mlwzh7JnLsBC zQEklRTQ&V4V&mhA-p)(+Hjv{U^{%s_C^_iPh)iFB=Pf;Y5iw%Sy8%x;_o!U z6$urgk&HXLyJEjz&Q_7X({pNXsukK@aba{9=X=X9Te^JZ!`^qc zt#?5!`t^Gd42R(`1?Etpfl;p!?)aLz*Y4BbBS}dW=P+dcPSgQUDBL(GrQQ+eq z|6%;XPeLjf)(QpvVkyr>%}t(Hj5E`03q_pQ`vr~999RZowkRJ4D=H6l*6uqg+oMz( z6+QJp1b4S=?*v)kew=5(1+K@6qF@_sV0H)fSN5YpabFTa#qnqMRIodUa2@&E??bXenwSE_@?>0o{n!3BR%ed)8XbiQzag zZSkb8;e|tcT|4_4!!fpw8@R`jc($o%%n#;+LMsp1poO#xr-K(y)L^CAvY05wS?I1D;T z7heidR|WmcE5R^MJCm(71zDvHlWogdG}7Os9l$tYVGvsp82pPK4D6{FHBh@%tF`JxTv8nL{-quu z_;4QFUaTcKyiWfuxHeA#F7TAYG2tu~%zcm`u!+o7LBuavcTD_^+g43ig!%3}!n|Ya zZ}x-Y(8!Qb>VS5N4w9JmfNmgao+#OJ`+Cj?dvUI2;{8bgJ~AN^=3)|INPpr-YC2WL z*U1!2KA$$80}v^4D+NDZGY<^%OgNwTQq`D`k3Ppomlc*mLrY5?LrH}vbp^?C5`hP_ zwi1E&@hT@h#b}bcK+_`4mz~+uKZ!^b13yvxlfR7RT9Y; z!+bT!DYq$L_t8>)iWD=UDVof@0j|&hE)kvvN*v)r(SAU*is(|B9G2Es^E{p6cdcCQ z*^iJdPCiJf+}RssC(d9I2cX6lr+SshP*H!P1r2UYrzXnNUk>+UjFzcZH$55rv|{tJ z15jMCLVIb*qmhJM_1bRIOhgFhmg=Pkf6ung9p3sc|JdEI{y$2zn(gMCp&jO0S`Ene z1xW#bSmf@;Nmo&-sZc2F?Df2#{XIf$VzXFnH~K({8NX;L#ZB=K>uHzwbdKdE4wi)$ zw0y0V*4hgf)&q7x-2x4M`OFFZ35Ds7y_|S7jLO8tnq)|ekbfAN6C`IMz6!N)R0t!0&*gq104iO@u0N67+e&+ zUB;W6_?HgLr8q=fh`)v+#C$^8aHjsP0T7H7b*6B%UH}E7kzSJqWBA+awhh-TFtw#hS|K)bh^iiW?{2Ev#RX>9)^kcZv>$QhOa-v z(+$cELtoLaj0>q7%c+9b4D~J1&$I0;U74}zEOiE@V15%|jFde;ZbiiE3HJvH9=%%` z=PY1yVF8YO!kQi#`_-jDyKx9o?1kgvM*00AJteDpFt&=-ix@35kD=3CO#*sS;vw3i zw)F3NPNv4$UjF_qb_Z~rbfmH%^gZb}Eq(<}n*U|Xdb#5)?xGW$ijL7nGs>*=``x=K z$LJfP@7e!a88I8sop2(~z(SpQ%)m;L27!*k{0TK6FeS1%_rtY{F^TSfArpQ-Q}+{0 zekTut&twd~llbUmkxEJKGYV@?S_<&k6@B9J6YSa75m*QchXSg1dgo8Dq+Q4#m|p^s zKv%#+4zW7zb1Eriux{oQniG{0;s?%AprXE)6+S3BD^I8XeDQ2ytm0> z!cpd0;t{3mlBn67ki^B}&Cu{HMZ73+@lBt=kz_pNxPjH91%2KTj>Ofw^}>Q$2@imP z|M&H&fX1;}3orljw4>$Sy&$`+g0G(?*llab{##EL)m3DEs%hUf@R?t}N9{)`!<<#J z$4R~E)!h)lS08`K`W+ogZiiOS073eQnK1?C$$gqd1E7FO6Wj+PJz+W@xtR4j)94-3 zLZU_!JYE=x2;EZxpeSXXC1+I2Y3pnYtkKTK|GpoU+HKW4{8rq?>_yn#z_^RQqAB%N zSqjg5;)LQv)6U`vfl1Ra?P&bw}8F(1Bf1= z5KYDT!kz{nvALvt3f_pjDRU_>v|SC?36kYzR=aHALH&BQK@^V&KrMa{Pp-r)r1jvh_GVCTkr&H?9sq}g z5nLjnAh%e5MWinQ;f8)dN27BxFKE+@RM~8Tr#^5k2Z_G;V=u=^=PpDcU*U)~pM{JLjmb^+QWjr-g!yZ1 zdp1u-Rv+#LFnJtY0vw>fcSt^&Hwc#e`(!4gO9jT(@urM|m2Gao;oc5_4-b2NrQeF~ zMP71}a?*{^kCW}PW_Vn$$pBO+3JnL;P2-D=Dr@R0exPtR6L24l+vHfSUN&pCtt!zR z$5A?NqLUsb?58|?nTKl(a8zf7g?F+)GH|plgwB-tTL|CLSu^btme*t>-#gFNRi%lO z!)6oeK!*0gE-3K%>LqH4ZHnV4rQOv2HSLx>(ID^B1Ck;zVG(U^5|J zK*m}ygFZUFJn`jM99(KfKL^$!4oI#A3w`(E&ymLJf;jyJ`gX7?1PtN&Uqq$VWwT{WPg zI=||KAUW%-7;{W<<|{C{p+_RvvcyUJfv8-WHvaEO8*hGILang;*=` zxTdbhzC(Nocn1?Bvaul|L+YI$AeY27M+Hl12RPZg%y%eDtbx~iX2D~SN! z=s||Kj6{n)JKfc(u&8`7KtSqRxwd@o7B-hRv2h_E1_p;7dnm>)GB`lpyg?l(8EE1D zt?u5l33ZeIBIG~eJ{;DwHWJ$j(2G`4 z(R@2e>SUW@45UacIYp2srzJ~=uYmsx(}3+0F;lj!GS0(*t^Z59Ia_+GGRQXhiro!2hbDP|?#6 zRbUE>MfV&t=VtWZznJ!A$9A9rQCi)7@F0c77Agw$BM<#Ni3LoWN+nc7$u!>X{Yiyy z)b`E0vR{h~wIbJf5n#n=pko6TE+=NSaVCy?EU{>n0B$!7pq9{N$^<^5z+lg%LtMwqKLhs~7L^Pn^K4|7>Jj45NrWqF;x?P=m z#jn?YOKR*@TT$d~dO0GKYX|f$#k$#ogos>>0Wjq6eel!^?1IgpnKI~kEp_el--8Kl zT5Cq^%K?3J#?#~6#uFw$mABw)MPJV$qkQgI)^2ies#0~Dr0DROil|**Y6E}~pTC1M z-~Aa&oA9!<4%sOfZYmJ)6$n~N)xKnv{h~h|3Q=K&sg|jkAaXJ|3-3*sclh9e5y?=b zxg3!V-yZ)C(S``hIfi&q@#!uFg+O|1UZ)p>_06T;H21VYj9v!%{yj zJ8DHzryfuQJJ!p8o<``IC~EugA)ol66Hu_vEBk~HBdHq)5$`OR(_4ai6CftJOUZc_ zi!4}d>F;3B^Fu?kr~*jn{6qPinmBh?gPh7C##M#3u#84o!euLMC(`xBajD@7wJ_$c zO83{mi;iEl63;^ixHvk~8=$e7n{qPvY)({RupaWtWfi4Fg|TKg^)4o-=Y(0HX3uJN z(;&_T;!TU6-pHyR9Cvt4orp@8V5{kWMN*mPm)Ef-X9h`Px58J&y+h;$lpvynIxnybWWZI(vD<*L$%IwGhNPhlbo7 zj#U1(%?~3>eK{#?Uxjg<#+hi&yH$gK6+l+)M+d+-J)?XY&C{Qv zX6UTJbkIV_)0Alk%PB9-=~2{2e5IpwP>Hia4m0&*0w+^&uCTqo9uN?Bx82%_-?HSv z2#{q)6Rd6MVraTpJ6c+w#a^Nw)(quNiEJ)7K6in+HG3A3(x0x?SvA%=Nez@lukK}( z`5X&>@ewi<&`2L^}k_*$fY~Nw_tG(GNro$I`Q**21L{%xOKz->cFB^ToL>rka!VaokOg0n`>bM{d=PLtU0VVro zm51U*%{wa0R*7F7#g~;Y&eDEJqI0uzX+PL8s@_F{(xIWw?0JHfcld$qgvEz~9T1}n z2q6x9+3)VJBdnIa9JQ6!LY^NjcJy+>ZkU0OF@Fo{usjNpl{RVyVgHF_7n=?rWf9_# zfMMdn3X=rbZ7o5xc}GZA`D9cit#Z~fg=D4pM3!j-fbVox>N}Xg<;4=4rD4Y&crU`y z61An`x>K%#xZuxsX`rL{ckY5m@w73(WtS0k?hftBMW*4az~;V%!ZG`s`HJe?suGq3 zO7P)&GN#OLCS$Brk2_6SxTXK`xX}mcdC*lH zldnimHa7Z5omU=Kavh}vc~G1C^4nA63Xq>sGu8CUo?@^u_zoE_u~QpLo*zRq5FNL@ z96Yb2uqOf$%|#uJ4DDfm65SS=e1@dPEnC-&p(ofy9pyh_ED(LrIK z0alxehBO^5D^KK5bQzu6Id!nO2@>EKI!k|o#S&>aF z^2wx70hvxO92$vGhHQSxX5P_Np&d68E2x@J`6Ti{>8|5fFss4O(=3__6uhCj-2fZ~+8> z2GGTovcj`Yx63V1pjga&KlQqJ)zij5#WQ-+g}_;TkQ<5a{^25=RqEi^kJspuahyvnZ>Gjy&4Fi$)8!XeR$v#^FWj0AS}XexOhT0yc&?AlO1r z$bb~d#84D_TJn`v zDI8_c!Pl}iZzVJpy_wYMj-{!yHa+B?8Zk?KcaVuLY&QW)rIWx&yNo}GFbg;vDKcm` zf6&*^j*h_hzawUF2E@JqtThFGpaT7+TsuSIRqv9HwCVJig=UzuVX$~jgsX0$)>Shd zwfVTqaCvHk?05!NJQII6oqkc<&0bjg5FJ1+mh z@7gZ_X|ZQ=)g;Rx&QLP!do^Id?@Iu$Z2237b6QfZ+#4i&A&gjm-H*xU<6o+ofXN0i zoOgMY-sk$v?g8Dfh;gxuPjS)PlzVVK;N(|PS8T4qc@R_cEr$4-to^Ckk+bK#GAu6) zb~W7R^S+ujJ)`=ekAD;hIG?%{AiLD1;QM8RWI8A&NE;7g&J$S1sd!th6>=~CH0wk| z#!O?LMoj>K6X6C}SGzGUNwadO1?Y(D5zhAM+n;Fy>3Oggw4r;~tms${YxuJj#6tTB z?oZUdv4kBa%zlo*HKXcSb7rC&z%=bwopQ!%u|1H409SQkm`aAzMsj10b?6(@I`7l1s z;!Y>0sc0Q${*qT?t||IFVm(ONfkb4%0Tl@>29UlBa@HKA)o%cIBUDkC9N6S_ZpVe62Y{!Dk>4jo_Z3p6$)h1v zDuk2k---SFZBPz=hp^qbsPeG?tK$Z)n)h@sG}klN3)=VStAM#-F#77XR4rlQ^1l;zXua za%h8?@EyPuN)Q;n3!VU1#fc_%^ciW{J z#oUlBz|H<489<{&JW1o5ju1Z=1(ko@&>Nxk>*~2mJY*$6n|zT1(3HIC;>?qJ z)K$&6c()@;1m=sosV(B+wo>ti9KMD@n_Sc6?BtB#H3R6a3E`pySGD68;6+4R39|P2 znnQdDJZ%Ta1W;JTAN~nQk<2l2|2}0PFjvEQMdZh`XFG1(=TRN}*eu>=y|J9#_}LJ^ zDZAm~)T~xuxI5UJr7CHkj2-t@>G|@Z)MG(uTEf8XR@#U#aJLh%$zV0E5mNNC5+GiL z4aW5=73Y%Aj&MvVQ?A>i3>jan5JYaYBSpSz!p~h|Rwxs|nQt<<{)gtNm2&j7qj30OqLHx6ZHE2MvVxCX0?S>eGNFX*}_uBfiPDiYcxvpH_qlw zJ1>i*+M4;|lal^18^F#`&`uEmdA;6wz5`Cj@D7%Q3xuxI+PhA?X5)n`(RIyl+Q)d>!>;|7O_(wFe}LmX}@ z1-~|Z0RW1t4kl$Pb$EK+eUfcNX@sN{Kl77h<#!WL8`4!EMi^w2LDwcN+>O}LnrsNP zdDlJ0D57qKzU?Jk$;hTAg^>GMq;MVQ=sQIHiXi$gY`Ne729gWT)t4412;#Y@KRHPk zKk6C?lk2(-|J>;xzy9&9!`<%LObvx&7T`DR7%5+&pJKLk=%^IrcZ@+4O&qU_OFEtG zq5O9U%z?)bo_|&l0);XHqXpmN;{)BzngHMU!#~sUmsE{C&?Ps(44o8e`GG@2!8Eat%5Ih;PSt_?;9cj(_zBu`Jzce~kC zK66T1$jEw=+~QN%qyI$;`?b&2omCiLY+JGU1WD&h@ha!8s71m8P>5tYK!7Qb&G`KS zJPOo(Xm$3*G#5nf8;uDiP4i{rYUv`zW1ZOcM+#oPSm zSi|$qAIYP7(8h@=Sq+pMdL|#pFQVW`AUf1TzeD#1+1}%_@gFET4{N4$x_*~UgWNHm z)KMG^1ROUYt*?KiP7w=jOd<7_f_D52AWJ>8k6+S3BQz7leWvb|F|S!b6YJwl^$~9P z#hBj}Feg3|*Z-S9;n1kAj))!?-6)W3%GQlQWSIi5_4Fj4?eFP31FhqQxuZDpW>QV* z0FU&tnq2lGFVWVq-eG}qLFcJCXj__!z8&Wy2}T!{M*Rt=b&E5A6Nr8$=~DsuMEYMo z!DK~O0P^fM$V;r_SqkV~BUheYX2PBycU;w-=zorreyC)dlcvH8NI;5R4}#jvW}{@5 z+#4QET`29o{gQf6!z~3dYB2p|BPh0}_^shRl7g znJe%ML(Hwd-@S9XL=S#`oI%|~YOKAQ)P>(2g7G#Bk4V`68tDCmQojP4e1TKX|HI7( zrT6hFrx%AUfH}#Xo28@(HSpnSxI1IGP=AVMa3kW2l@33tnEOBX{?G=bQpQ3Vp9AZjo_AvPj;oR}^G@JSs9(0> zV={%hX_!#&Ch=EjC5y-*M=FWzv$D|s73JE!4MR7Q(jd|$(w)-X(uhc> zbR#WDm$WntFo1N2G)jkbcX#tWqvxF8`>i$0HGk;i{oH%+YuB~+^t$LniidAEb?IL4 zngcST4A21rg$!;2=@b}^)~ITY?Qf3rzvievirp7$MCCxLaNK8ej{oVBEGEgJj$ z&csr4Jgr!Gtun@`j2UcNjrE`r9kvEgaOW^KKX2A;kt#m?&c~-Bx;1Ukj}(bGX{lwF z;psUaO2DFOU8I}d|Evs9TL?bwMLc_NT~T&`48IhQ9kj<~R&~6v!wf|@%7CB96;o>; zUR|>Qmt=#@i^F&Aqqol2gosOUXX{sED-``%(w@p^^D>jj$(w{j+h4Qvo|!b)<-%vZ zS>|Q|;O`}yp2lww>~A~2(jOuv(U#6j#((w83uLMJ^fodhKh<5sdMI;&>doUMi$qoY zkfGZ+br@!7J~Apn|QlmX9Q z#6;?QyP!Rh7Sr}pOBI#R40gVFg;QF^W z!eS^U>P=)E54R33BkUi&q0GAxRLjOL_QpR6>>U{7bgWIX5o{(_7V;sVM)wk9VNA7( zFIr4`NI!U=9wnwd32;I)IQXpqVGx@Gp0Yd_j^>F5n`0-9G7Z>P}pg&2l zN;^rN%C?UAJI@WFXNeglXk>586Ct^xeW*tmmiSx$!)fU^s3v{*t2eam?bJ!q(LQv5 zHAx!#rChfJ;?(Avq=&@SMtPkzftfap6PA1|i|ohoE(-bP-X;n9rHtDWw3a91WeQw=aq0nO$R+z2nHF3pA4iSa6b1 z7F@MVg=* zRqFI<6J+lPF|KAUa==^UA?MIFVBXSkvZz-ekEZVon8q6~@}3g@X)}F7feml{N)S=3 z60w)~W!4-!zNKcv)LXJKPK!+yAa9Kkji+vJ&+W%xP!5Bap_I!;a=JC*d!yj0_yereJQ0kGqLsF<;YbZkrS~nVTNdKZy zeUmBUF|UDs@UsZ@l4t<`%GRWI@0uUJg^>DM2v_Ww5x#2{^T)5AJLEWM=I(?Jsl^|j zCLhiK!nZA;{ygImA_xNRWCcDdRP>4?Z&4qyiz}?rmdn@+psGC>_gzkUehi*x4AGLd z!k4ZKlJO*`oi%^g=>tc*Xw42AT}Tl0dli=kKkE7sPNVE|EkHRF;E#%U@#}Il`O96& zhgjVjg}_C7?0YM0egCi>lgI-m`pA(5hm|Hr(ce^nTBN)*b`6hCksMG0t|vu?5~Ja9 zy366<{IYl|L&p9F$B;Px)%&J%>FE9VwdA`>rm<0=*N!g@b_-W(&I)4d_DXU0`#<&> z*Nv65QO^8vMw^$}*Ea4qc5WK4NXD7eFNfHTkWMycv**v#v5eJxiC$Gl@m4P53)E|*hx%1}!_d`{_yka(cuK`Q1g3IsREe}8}DzWD^ zuUhX&1$d;z1u-P7iJB@p8QS;}#5B}xB7CUmSS+{GPZhn4ib;8 zg*>i@Ba%6Bf@ECC+AvM~vvU~?YXs?__5moy+R^s$6A-YZG6zWL(GE)ceB4-ibs`@s zmPTCDQYEN1b3xW8cilG=j0J|e&ywVQnR|bI(Mx)lvxt{k$IpDla?B?c zqoj+YBuAk|=&TUS5XzH0K3mwi+Bu&A0t!#~V*8cIAN)ew@2Lk^p1na89jZM;n3&?CGp5G*;j&nq(iN{O1(V>W+IG z$o&z}jWlRqYYu6nFJlCIeX>5w58jlA%iW8B=@>Xcwdk@l1*ouY#0}p7f;Q_UM0;%h z%OPB8ThT5b7^Z+-sYyc3T>E^^h4S$n+*Ht?9Lk++s+V@aUtYeW{iMN4r{Fe6BjYt* zYp#^j98P&@7%3~yvNrTbDS?b{nJktNFi{{umJ+RjlgOsJ21(fwwvUt%X_YgX9J}&x zB1vc8AC{^??X*^F^a2!INK-hKvz>epcz1`Y0ah3QxjMQ#^O;eTK;IenW$3fA~kB zGTKYwacl(51fi*D>>Tp*MjxOq=HhVH_tJ^W73Wu`ChJqm0r!-&1YDu|959h^EZBe@ z5KnvE91`B5bZlg}Ntp49$2G0BQVmi0V?Pod^^%3`zG>5C>hX!M-Pe7t2&D#eKmIaT)thjjB} z>59S%VvJi$?VXZ5&I0fAJ*41#V0R|A>qa~36AwZY_=tD9}c+<)< z3KUTl0B2VoatTwcFl8Wvdy5`5%UZ8$gc(>bRK>L3A@n_;l(rZ|G+k>Qmv$ z-Jh~cp6w$0^38u|JN#r^l3Bv)6Oyg)whVp3O5w6kYx;zFM^jyFNYZdr*r$<}zUy18 zqqJHlGX{Ssl#itO0nu6|=V415KvA4m;Xnycff(a581Qzq$kl;}CilX>PeBUzu4O2k zzARX>Pe=NfeM^Epw-(!yH*)YwjElnDB5yef+$)O2Q7dszx*Ho8Y8Xzn27_hf8$n`k zfkE^)4JDN=92*&dXOUR^08b&$(#&aNIMZT;3Qo66Am6^+WwLw+o&Vh`Ph!SPAT?(O zeIG1Y9z5UL8YpNvD971KnG!mruB+3IdkAg27ef^V8p7DiegzpGb|>FH$JG1}qyp zFR;QOHEQ_i7sMx#b&sRFspSHk_T?qc^ZOTM3$N4o_!9z+XZ!w|_VG0Q6hhZ)&rEIM z-YCz!-y)$BD`#?u_(PL^_MRZ1H@wot2DP*bIC$~F|Lss}&YJm0s{;TRc{ZAJK#H9Ksy zUot(`VWnl#&YxTxao+Pl;d1{utbvdpQbQTQp_w811Q2-g;0Id?z*~&#+zp@Ng+--A z3v*KOZN0jJz3|2$wF#dhK7MqSb1tNw#fDJkGa9h&rqlLcywr*Io%-cFX}~Bn-M^XLKkV>|q8+ToRfNA``jG69{5`$SK=^ecV zSc`zTW=*cfBxy>8t2e=<*I&hD>4t6w1_R!FDv_5N0 z$DPX?fq8}c`Hwu8*^s@PzTq^H8oCn)SK3ii-Cs}~-Hu#X53?OVbnB%j6S?1$kv&pC zFKhxf0LQ3iKH!{*i#)Pc_|*l;oWP((vYo+C&r)C>oFzbolx#Q%X5D+6OxQq=p}Xi7 z&lXC*A)}9O^2@vlmTjH;%fD%r3XKcPpyzGY(-s|%Lm7YbA4pc$i zF$y}LEKi9%T{Kxeg$78op!ovTR#DJ}obhY9DXZ?h4KCeJ@D?bKqwL*{m;xxYUgFGR zF^){+oa2wZC;Ch%O8{y8mrWKUZ?dOZ-FGDI>2s5hLa)DZ}y2|`!0UoTz+Q|>$w@%K! z15-==SpYUb;lU2H`{@CF%$wY3KYFp5hC~3x)YDAHL~PfU0z$QPJPDNVkOI{4IhlP_ zJ+;*#P8bA3Oe8Lf6rpl@Y|Lo0CIWFxn zuCpfi30CLdP(~b*HR>-yt#{vSz^BJ4}kUUMj7U1{w1mROP=Nq>zIsS7iJjj${lwmtzRTGmf8K{ zZ*?mrHh$%!F>XF*q^+%ORQujxZfS2-;t9`vf^=f{_GEUi4EQCClcUX4Ul;t^LbjkZ z+s4`1Dj-IN9)U05^|hQJ;HDOJh@7o*_K=+Y$yYjrILsjWhr&N!KY< z9ZL4=UW^)pXCJwGKwo{xR2F88{q1EkR9dh`AQHi`0KAnxI!CNRzVRud5+MpYD8hygWJ z(Pf{M>xH^Ldk98Qx>wDiu+b>Z&qkYM&W@{#xLY* z^%ET*MOT?VH3sz)|gVayFvA!of}&RwPPt| z>1mmO>28B|;DNqvP8dVU*Kwqv6l`07#c4e<6E zbQQ>&Pa$3Lrb>#8Y@cF^CpA~jk~38*+_$1zFQ{$YmY)f|pT?R#GN&1UzrPdpDFfD5 zX!1;DMZW;%iU1od`Up}7>M5{&W2yT3XsID*0x$J=_LCTjf;6|X%sXL|wS(4gjRar! z8tn1=;t@1Wz*neydczygM#9|z7l_>izs$`#%zQGK+wDt|h{pm?3a0v2Pq2Ctj^Uvt zaF)d(m|8gFDRQ5^M2Pcg8qP;3S0DiS*_zAO=TCQE;?iC{mw$9?1=u zS~LAM`xE&Bhq{uDb?x2FC3-vs)<7j%^XchlIYDabt=|X%J;?B+p^nKuUMi>N03NNT zw4*2VJY4BVs|Ufo)l!L>V@vvdXf222%4BcBEI{JU`*3i*GS-~;VFzoCVvEvK<0+ zcxjZQi=RL1rWQje`(6;Z%xkI&OwiulvhU*}@jCgW!cY?x$ip4N9DcE|bwyd)hOem= zW3tJa;8X`GW!Q_t178!p&t!m_&^{$B9&N0E?^S=HH50XT#Q~oQ3I+><4Tm)nR>QbG zc)ZE2FnanR{yo*hKo#a#CRrFNbt8yy534<+U$L0JcjjvOr^we@d*;Mfuy*;H?>EK!W; zd%JnAX!x&-mKm8vh{4TTq)g8V{(cyR8F@acqD1VPzmf3)7~pGbp}1xm`lJ^h_Y) zV_NlL`k8Tkazl)yBkW_eeLS(F z$P(MI;MGTr6hj^2n7e1MG^gsLwmMwy5#bepk&177?&Hl09$J7dxhS;jk-5r!5vlnR z{Sza_D2y2`R6?7TT<2Jf%x^-8tb7p^Z2@WYu5g6}y|n&BGevbf`$+#(H21Xd-QpO} z><0vj3o6s_oMtQg|^TCXPFcblz|28YzPW3)=NvoqliI=rCd^PhyJkV_; zKHN$h`>KMno@w~iNds=tuLk|tv|HH2N_GS@nA+0VHWtxU{R*9d*_hZ4w|>GM6}UeP z(QM+YF<^Jj`r;dWS8Rq7of)?kh`?u5J+W2FSeA9f?cOMF$v{N%QOv{B(bPpP@lN>X zMi=ALmy_q<1r9SeWR!o(1-qgC#3u{E3(@_1R&q?Mrk9;QZlnW8Q+3al)@#J*@Y@j% z>TBO4FS%@aStOs+T6=G&)Bo)>@W0H~M4$9%E-E;sI4nAneX~8bs*XA}xzal^_l=n5 zI4tugYy6a9$OL%wdR%wGjT(z8&!}7Hrg!`1_)mQB0~An9GVw59SNy(g(Qnu$*=Auv zNPRh3wXm=P53AP?V8ON}OlvvpXJs+-bir5n5F7OF;c;UDiP^||6pNLZ-p@?yH)gQc z+{Nzmteshd@`%-$r1EqIb;>DZyl0yfYy-dK`&x}&uDozA_^QPLY&WrMI)YJX1@c^g z_!29MU%P9hOAsUdnaRfJ%bf?J!mZS0Uxkuw-Pz$5Z^8V3{E$@GX~%8e+uB!<#wqT1 zYtc}jA{vN$jVI7Uy>+wynkCUro(4ygf(5fFWU$??1Mz4`$=5g+iG1|Y?ZM$Exz@W* z_k<-O1*16uI#oM~3vlNDr-URb2xj}@S(49Ej4GYM+n@Uas+d zc%N+gz;FBn1z4D2ZoNf)qJ%qDhWzTD2SK6@H^>6l&&HyUskb&Zu{gC)W-ot4WtC4G z;5zzR0Q+ODJ?4czZu7UkvG9)lBTiA{*&aEfV1uZ9E;QbHwl?x}c!&;rp2QA;ui&QP z?5X;XnDOoFlif^NtyOoyy{Hk^oj?WcB~QR4W1hX^0W<=juVP6?MvMQrUVWX=QsyYa zCR4foDD)keAlLOld{oYSyPq5y@xU#&!9R@45-*HizE)VRxFW8q-puQ+1YF03xH0vZ zAq8_u438Fk`r6v%ZQ9Jrw{AE+KW#RO85txl{^PLMJE#4P5tU=E0*?y>V#pfv4nO{$kSoPO`LNxTF}HOb`-nR*#h z)7bMV*iLAFR>qhFm~=QJVfy4m;hI{xoolJ-JFnS`KYV?_P2}@l@ozPR$AxMJbqNZ4%(*!tOy;)U!YttxVi)-!um%PZ|J2Z z%4<^CUiKSjvgi&fvt&Rwh{OFUuEwPS;>Y}$fBdh{!ReDTJJ%w4nk{oO238f(UmDt} z#@>xB){M! z=Q$PHm>V=;T9l(!_AcGDuyNl_8zFswxl)8v5Dpsgy^0pCuC^1i0tI58g@g(LVE-zi zJyleuJVl*V;slt;n-Q5^DG^Q?HY8;e3&m6%LL{HPso5gD{*1J4gkQzvWtz6@HPf%x zwduLBzGF94TQP&cQv6t=A3zJQo^mCc|$w zf=N%V1(junm&B8PZkZA*3T}&!S+o!0RhW3(-@@Ht)H~Oh~dTGs>GiJpEAIc5}L*HVWygvfx`T$ zgMyDv9(PMJY2b8yG_WWLKZe@i6l>|_7{2E9duAw7y+>!QOu)24C7DhZ3gl$^c}51| z=U@Vbwpko*Xdn3Rbpn4@WWXl@VYrqC_|`QrmtE_7?$I+>eO)K-4#=EG5$(g8qFwKr zpES6>;zFR~R1~YogM929oD6KKSd_$P21c;iSRMhc6`*H-KgN0}8o{<6CdEdmg$*_s z{1t<$1ek*^eXTosL)mM}&(pk@znM3`lR*+0NHj3lo^8SQ_s&f^=jmcNeVJ$UpwqLf z?bpb7{imVu&uz9Z;iP=wTSpn!f4%9J)&5@7jc@UpUy*cwyB5~U7d%4y0K<62n%T|< zxs&jlH|`I|26Sb7qqVr?sYfU-!lng!zjk66wJmQo<@A4;=!pYADfQoJ0bdy44}Q%Y zji=ow-Wy-N&I*nisOGj%MfJmD%x##Ctk5omc$h9D8Ms%aco~Rz4P-HVuizcQ?X8A z0P2R*T~K*zdnE~Tnpihm8$$iCD{1p}XNu_m*CKjo!7DwG`77A(Qs%AMb4$%rnrhOP z2sFI~dblP8S<5-(AGXWSy1(yVPthQYMxh2v&>3Huo`CFSesuL6|gGIU3$WkNdN^-gV#lqo%KOgxO8M!0n!Nzs{sfU8j#D2 z2^J20&4B4x*L+}6*T>;=Fg*=0&bX!p0MQJliJRTzR zXMV;4x%efa3v!$8<{6m`mX^FOh3z90&NKRwvX$5&)0X;n;2iu@uxti%Z6s6&qw#!k8hp_vDB=- zk!j;MPtpr{+KhDp)Eva#D*1nEUa1JP;jodB2pa}0DSawOw-TC1jXgf-9`~CoyuO|q ze|NV(v@HY_L5V`+I`5++Y~0x3DXx~I{Z>C`lSZ6_wUh6jU9UR5|67g!`|4pHpf;}( zvp#_0a}CxO)I44nUHKMcumH9Y-P1EWkDX-q`xKH6H0jDP;2H7p@Hdx8QMHev)?0^} zVtifp1he9OxpJ$WtdBOIpq=-BKhNc0&iFm*`;gQv>mK6g!r8QfC053(k4K>X1^vKv z$TcFMmm70oRm?WI^P#zotO_l5Pg`Rht-s;>Kn7`hO~42@d9cX;+PEp)gF%m6-NHbd{g)~Wd4foBy|)jWfXz}c+608pzt?xG%E++i z9DE?zPXW+1{*^c)T?H{(Px3H>+mAIc93y!$1+zRRJ?l{0`>t>yL5#(3ytkr=q<2Y&58vdlZ1+4K= zMUo-JvUzx0Y3^gM|HHKUe0C1}Y0R%=(ATn94@ zTMYhJ+Il&zC^BH;AK9jNI#b=s9LGgypFPom6^KI=3;_e=#Bc5-YF+M*go(~GfS!2n zjj@5rrsMye(^wDLyOOmE`+f*V1cWJ8koX`og1cYriZXZV`>3#hYh0p9#=#<7yx>IY zGy>!o+HAoQDUEbS}1>Q<<|$AH zK#8bZg3|RX|8uZF#yR-)*Y0!hEwE+nKb`;a3^qd>L&{~e>DyL22ohYhrkG{0Kql5p z-427onuY?OVl@eqTk*~zH1Rs6!$8FFV?yG{ekBe5%EGYJt>)AHd!j{ZiP_f=C9qNf z6k`7x{m2Azf@a8ypdl4N$l)yvA&UyeK{e3w_D+MO&NgrdpRGhm!$rM2Y5&9)QSj7g z&dXf4YTAlb0@K*P08_5`1dKfxeq59bJ6*S$aDwi z%ef9RUEJ;8&aEd@qdfP=y-*M+pzAXLmR%^H3JL%)nL>NKSmHnbYMP0zS~k|v z>qGZ>L&X{J_)6LA89kOhVdAUIoct+U0Nz|STF)gdfjXMJJMffJKJST4c>dXtJcm#yCf+ZNyrU%S|^zl{1}AF~y4k?2HPi}CcmUi?$3 z@1#FLdK_viB}vAvFj(QMhx?6f@xwKtt8qLwZAzV+}8obE&Kgz$GGKiYN;un31` zwKl(^?h@^2ZLeOEOOnT)qz-Rf@dnt&yL{Zd0C#m|lY`J$qt!vwndekUqCrP(RqAl1Eo z`u?9EZpVC9R8;$I<+xvVeBpA~?gwFQY4yP|10%VSV9~)C89)8fdpv;VB8AbLCGh?F z$CULm|8(-&1BuFm>p@f?m`b@G96R!JOmyW`4*(Qj&fSrc=>kZ9ixF zju_GM-y>&eL0}WAY%LJsg9@uP$mFF*-~Mie4~#1xtDeZqr6xtB6|8P_;H>N%8r$?^ z5IMxnC2Q><*RI3fAB=#jmw4L%EF6^7M*Wjv{SA^R36PDoB@7KW-I(DgIXp)dY+?p_VP1$*H^xorAlFl}3LwJ>PaXX`i~f>zqvWz2Gk~>JNN_uY0B2 z8g66Ivn*RV_@9L;hPQ872aZup!3?utSky4GyuDD#7MuaQt32ivIA;nbx6uK{)V77o z@znIeIPGG4|80hd;h6&mlga(AsQXd`)zt3v3t2mWGRM#H!1$pjj_jY1ETBN#n1RtD zN=kQf;)|xI-0^xvq1Nwj-v$wDzfNoXiruO_0Pw!@p!D4;T{1dzilLxsC#;TQJ$Yl< z>xVbf=iuHL-wpE%aLRKD*SLQW|6PXv2V+6FwY7kmjUp6&xynIDGe?uhZvcnE$Jwp< z30=@NJ)_}B@)rM;hT>RTyTe<>Q0#)qqn`F*7rMk>z;2)Dp8$sw7Q`V3et!&1*}<)u za*0mKrQ>UAE<_-%N85u6d(~%907|ASD09c&fUEuh5uS1@1YCmk>G~e2EZT=*48oeS zk%U7r#`I4K59&O#qmUD{Ld+)Y4f&?Ong>n9n+D8GO2129L(hnx80|fN#jXG_anP|A zYh8U#mbp113Zq3{ktXdOXO3Cwgg@u}X)E%{Am+1G(98d^`wComVI4AOK|Vu0*pvDh zSoi29&HcA^=Bg%X3<8citu^7#DpF@|j-6}8v;Vfi@&)OW(jz+RP}OkWI}ZaJtVPV2 zj@JF4is|3y1(0;R^dadZv~Pfs;5RP;MQ~Kg?$cwTt{h~a!~dCAAyOB3>eo%TN!ZOt zocTxqEF(2VQ%OCQXHvFos|29?#^slOLh>m z=yP0q)s+Fc$K|ZUOzU(0s7G}ES}8W)r>p?!^e7)_j{MC3yhCeyat3FC*C5!q-b1ju zk50J2sC!4VV;o?`{)y_#a8*v+SKQ2$R)|@Q;ZCm4sM;Vv!gX(6_h|PhDF|IkHJlqA zmg{c(nEUEj^{j)iM7;Ll>0klHTVwLK$nh2;W7zf6xsUaSIOJPt_)fJ6t2?c^x~WzW zM|_ZC+O&ZqgA9I64n$M6dTP3)p6XDZMH5`6WrZ+NQpAiBv46+>mI_UF^H<#OL!qsw zblAH>%I6ZaUmLD?vaoRCzIqLx0c;1sE5WUFkH_cs$K$kWMnXd_|LGe~_a*x6EG;4T%SqgvbmyT{ zO*>(O0}9t;reiW>?;03a)+Z}MJ>TiQfu~P!B4_K}isKDBA1?=LCmhY1ZztIhFD8B2 zw=H&;NIXhd*wEoI{ye)De+K9Ewo;~GYwXizXipa@1#(w?kCB#!sU9Buq9v?%+&*W9 znGyXYqKGU9cLGzT;p=Pe-tm%qD@&Eu=u@UaSAI|+^vz+B_t~;Hy@Z>o<>DEgzbf&+ zoRp=a^;n2G=lod=L#wOUrow=S=2M^9n z^DPHB>hZihKQ>Um3x57gVi=Y3Wc%%tK3~(hSGw|`icXpD1t|IxvJ0VPq7jQ#`>uAw zShxkcv`@7rLvS*A&#e>dcRQXwX4mbKYxUtUO#X)UNx-j9= z+7Ywc?#*X6AN75?B5`BPC)dAkf!{f^CL6WXk!)ylH=<)R{(1BD6o1`(C+1|$7B$>0 z1m^H*NDiNrgmd2XfwxGnxY);!3c%B%Ty$!=v=faSL9Z24H!TI9*3PE#M(pOX3r+_p zZ5Nt0-D5U z_N~zz>4K43MeHENw-eT=3q__&m$fam&)QFEAHCw3V z-K3Ub*{)62oQLYeIxNe=0(m+XNDd|(sXQ0& z8a{zBdnP^8TYr(^Lq3U4qXA~=sZM(G3dEJ!$E*I|*J^^M=i$ITDUT9iXF&=)l#)&L@mza${w8v?iYAsBOmV0Y8vZM`pFgV)b!2(KkWIR6Jz43$d3U( z0mXA*kZKtJl2Bdn0&VHXnl+X;>mx>h4PHB4qs=~kT5bQH(=RNZv~EHD`{%{k|Z0Qq_LEt<=hX%Wkh8|J%s3T3@D3}uD?bh zd04wUY%2^?Qv1YI-B-kFxSuvaH@znAyp7p(=A_Y$w@ zvDmQgZ{!RN1+yXCYwNz}M}U_E2H~%vUQ$OlTlmA6Q1j{<-OrsgJ7Od~2DNuq*+UJB zV*%8>@@U3Cy2cjL?mBMd)9t&}ir-OnQ@^CYU{o$r-_W){wJW7>8+dqp1OG>djv*k# zXv_On{+?V?u?DuCk>KpK=JI=vSm%2%{$rvSAZ#bdu+8+Uf!Uh_-@3C8CVi@clcus^ zgOJ1JewTPHcuST6h>e>Ni3H@?RhT^ zc5VK$DqfuUgAP};Omk@Or55to*4S-_q5shvX4;A(stzwF_$HaqNHsDN!-5$$ciOwTP0fYM0=|v* z5)1oSAeJCeIsk*6aWL5iSz&838-8Px{W@B1TN63q*~8g61y5U#?`4{6n~oCy#mjtA z04C&;Yev&E4ia$Ur1`cdb(r4{@r-1Cr$PQyn*sQTIhO_(I4z0s=9^_(S&69i^|h`r zs+y)+Nz2Yt$};hrL>B?_STR5reNF*MdD(M3!8>DuSNp`$bnmNgR$I#?oS-+2Mpo&D`kKo67b#08+nqGRYU z@4o}NH~}I_k!d>Kl^FK8RdRd9i(=U1wU2{vl%mL_lmOnsVBe4PgC67V+s+0ksq1pti}|B3*1`5Vv|_Fr;&H981V;w%f8v^+ePX>&Fv} zN}GfNS)%U&sqwKkx|zJUN-+9;RU*0$RhuY5?1Z8qa zG`N4wsqE!isBrQbVOb{CH);WXLk!qGWIz#>j9$b=p}L2>bU!yuVnAPf&}X&TIt6>x zy(x~=Zc~#dTm8plZHK``=Zsr7+uY5Vi8a)-KipBj2x|UGVtDG)*5sfm9Tl)8+O7m@ zIlyCn7u@~`3W&?GdUWewzDm`fh{!ya`blL~+!g-D$6_!(O1sED{W6my^JQ?V^vQag zmq!`+(#`c`SKIq)7oW9l6(e(B=2Oa_)L|JL^h{y|ZZ4Oz;WfSHSVtR;m4ZpsR_wXj zOR`YWt~#m;Wgy02ML?zxIE|IfymzZp$e%de@{0!Iai6;ZNK)=S>NN5nr&ZA|t%yS0 z%Tr)jx_ZF-@~hy$iDX_s>9b?JW;99w*!K`rtS&C3+<}c$_hxUnNbP=S2Y)d=S_Bo)CF(@CLh4U5&8$ONwytu=Db)^vXl0E03=(5_ zs3V7=CMT=w-!~hu?AArLe|5+QY zmZK(*1PK~4eJ%WTMN4z{g{bc_&NH`TqQ@C{K)N8y+dPB_()ZoCT3;f;4Sz?j_C#Wj zn*YEyeUZeBHZ~@t^Duy@4I>@|18>7zQNWV82z_Ml%|n(n-{T9MoD`n?j6voU7>hM) zxNmNTF!@>;bzMxhFDmS-mV@F6crw$ZJwC!6d^kzqqGDV-1!e*+z@533w~30Z2tg=- zKNS^KM)7nu7iiHXOinknxTj!yYM455ee6P9p_W8`uK~O<(MESi*~?`&zNeM4a`KOKOD`v9dD)z0^!0!u2#QaF=TjX6 zN@s{@GBlx4Qz9KY1*s3qoWzA+b*nqFw#E5rb{%2uThI+xaoY%6-29UE$M*NvL;$JA zvl`@&e#f~woZ+X`?sI>+ z9}NRwwjJOH`pO=~t-mX@YwKQz*Ex+d+|TV|+Uc%$6}R~s8==0qFzNunNZ?2NuJ)|UBW(BzlbOe8H7x1 z29CEP$Ig1A{!K-;`Cv1Xd;6sXTj*u@cVb=_Tw0w@YGj4v~m;+mYaIm~CcybO9 z0~nPb3tI;i3sI@;*KR0QqEqA7S0^EvC%N|}B-f6pP>4W6vB4tIFf1OoO?!bSce3sn z7oo<$u68gf*=*7GCk}-Phy=i_519$m$}8aa)^p$JHMi!y1C`dn%MYKl+fuvsI-8Pf zN4I9YM=q0*V1R1H;j`s0Mmx_~!KoGE$$QQc8P3VCen$APh8B8yi)DN127CwpVy3M-A4t5?de{LF{vsfgaTo)+N5To5w5j zvNy~gR4fNJ*L&ko-Zi3PAZK<+~XiNXRW*ykU8^`))M> zTz|g1zt;NZd&pHG?%l=iOu#YoA0U@OvzbtL-r7XAMJbfm;ZovX{6cbKJ^2Ab`3VNT zN*XZm-{XW9;XmQM$+uqHTl51z-Fx~0)8NTj`SUzbripKkupyl6b@rQX?&q&I{M7y^XTSIQQJ8PJ91aD)H!$y>5EP2wgT z;&_8E^s8w*Y7He;Ud7kNUEm%M3X<)iUr>A@=mW{%HO7_YQVBs~4mIlg^7|_rjKF28 zm~LnQQ2%j+^A7o%mXOoK;D+#Qj7em(bKS*Ce4R_**JXn^qa+u=AYpCLi(nY|RwdCg zWOw{F9wj5ff=x+J<){rnI#)ng0dY;lukl;hJNXFQ;T913oTm%@LJtUp_s;*dvG}=A zX=}mRezm6jQ`X0uL~9Qf;f`END8pGn36!i7a=+M5==XX# z-KQk?Em&w1{=f*(#{sGW@-4x&vl7OaHXThn!UXt;5Z^avlWcPhf=3dGMm`e>6``;> z0Gv}+WVP?s;(ak9&qH#}OQzHoh;Hj}GyUAc+AHWwd^oUg9?V7+^Aq~|4Q?acdT5;P zsA(PxH-ic$nfX)SmVRz%k57eI4p?P?fVAVHCSaM$m@vRtZN#8icQP34yt8p7q{Qor zYMD8hOG;RTquInusf4Wa1|~dI(-X&0M=N_kU1bIAy?dALJ>M=?%W5kd8!C@MekE1B z(Edeu&{Yr==>HR8aUmm{y?JbD&&82^JVusb{XzJf-}Djdb>Ai@G6jf_DSN|aaMS^L zMkRZD!JwCHq3NnC&ocSssaaQSNwCrDn%%iPHyVQr+esOjc?Q4mD+x7cYX#O%A|D%N zPS~yLdVdkCk4y8RoPyB#!z6!K!zxALcMI)ctYNU(#@Jn7UR5~l2BJ5%lcNduX7 zSi%YLLpRNhKxL_X;}kroy|W(iTniPy5-@XaT$y7Ku@yyb+(x4U9hn+88c?C2DSQgf z>-sV3Pu^O=y}*>0?*q!pN2F&+LW$Rs;368C+%L-jQ9zB+PE4 zN_qThZCNi}^_}IV8-OrRj=se~mn*Bvqh=n96haYen|qe;=6YaI8Lb|r_`a{$%F;0+ zDC`vgeGl-jRx2qGTZ2SdQ74qiM>^%@3>n^hmKL=zGo7C(U;9$Sx^c?HHUM#|lpp;7 zjmD)pw-qxvg#!#v=PRT4c%y>fSuLJuKQvty^URw;NO;K!G(0* z6;HseG&o-E#iXm=TYL%zEAN91ywpVa3wRKDSteJI5kY*66)dH+(b5(fnVHE2js}xR zv|rW1g29@6#5k!yh1OXG8UqD&j#I`^gT{^=g@4wJHs54>cf88?=Ejy^($t^u|B3W5 z4{KBbSw~Hj<>}#7vZmrX$%~yl3AL72-8Y7HruvB_vY|8rWMX2=FhJ!4$$vQuyW*3m z;!e0N061KNTWfdTJe4^Ntkpz&UCt+R8LmLej%pD3oH9lol*J9C>!n{NzFA=mGl#$Bn0L%LJKR?y75SoMXOS@*11TCu)h> zPB)Y19n$Jgi}hDA3qoO2Vw80VuDyzlZq^BpqX`N~ogew8Vr11@@}syK$cS{YfY+9S z$>QhF4Vf0Dtb@-RKJcCj12T}$nH+g|!`eV_I+m>;b_$-~m8~WK@x5r*%;aq2ms)e* zIsuBC3_~1!_LrJNcL5Mi3R&r>bLv!-fO3L%oAGjj?i0$G4ban7OM$xAMUICc$SKKc z_v)#P=g4<4D}*cpc7*w;vDAV*Y5eDByS`m1n-TS${x!YM4~-du1C^9t!xSMI4xQzt zcD%$$u*mPB0V)w)4+>?B0n{_P2q&-g&X-u%k2G3pritOYS8V~YHy*d7D;L54E9$)C zsr=tR9@(;2Ne4;BDJo=hvbPZWh=Y7&lRdICGmeqy*effep^RgTkc^DT$~lK39EY+F ze(zhK$M@&I^T7Mu_j_E|>v~?V`c1^G*xwe?RURlE37O362* zFOS-r){b?{eqXqHDt@W^j9m#Rin2=eHQsf;ZpsNJtUQZ-?|6sDDH{;HDJQ zeQy*#`d=|#(X5W_u3ri1Hn*sAI$mBpseJyYE>4l-c4UywZ2Pxs2J(8VM&m$=g7|X< z?T26?HWjE|a5TO5q(_|Tgu&YC!0^nqno&l-{AKfPVHl$YZZO4+BA_Bpk=!Mt_$4yD za*lPe>DOwBQ(jL#zmkhSo!e3m&7ri1QiEU=5&j6t5ywrg=B9ni-#vL)9fa_t7ec6w zl$cEkWX(Ylm7%RfBBVls0SQ3WvULve+nA7rX?JMU4tU-~`B-*@`PG7msLj!Ir)nbV zcBuWADstOzrVAHfzj+28d0~vWmJe8Nh(zxu8LkwElt$-&9jEXF;AY+uYJ^C4!TD_9 zWHnQv>W1$au{b-iOq=J<X6Q-VU3Ll zzd(Vh=^P|=V0kWjp6hLP$*t+HjU*z)+D1X>j@3PNeHyW_rKnB3;!@n$>StVK?&&tJ zDs2!(#oBL;ofab(0S+n^?AC}AozADD|Hjzd9fe+j&}AWY`w+IyA3B{ zhX8L?KfUiPoi~GO4PjsRz=etnkXO;U;$j%+x2UVjFo9qMh{UpR$|YlX}oi zNk+4sb4rQjME8*C((WpLHV3qs(^#RXzZQv?FSiTW8&uvRX0Iee^cwMp=I!}3*bJ;R z9;4<5%7r_<#~XRe-m)`Va<9wshgoUv>H{?~9>l(hD4?divzIZyhMCeT)$p#_WHJr) zmG_YGLq;2{J{E3U>8R{stE`Ux^qoYu zY|HvID0iTyhq(0E`69f(wyBEiA*`96P)>FDKiEpMi8htq7hOIaUhUT$wcVko*i!R@epUFs3|ctzK=`s{T8B{M&HWnAFxyGfMg^)4X#)1DJkcXN zxe%$DM&>l?V;yhjDJ?}-1~s-GrU1#pc(FqoL{>ezhl+dIukJX@gfZ{uinayW0aUeG ze;st`SYf^IlG=-6D3b86MeAP)30lXTtgxEG6|okvCmHeY_!hd)9sQ>A2kBUEUXpw1u0udq+#I z8Q>eu-cMvOCE9P}WMrUN&j<>|AE#LJ$UzpWhh-W%S(f_&VsP|Ge0QdzD-HW|9Z{_xl_kZs4mb@jla6VI__%fgRQ1aOW}|hJ34{PyXgU+2Doj|Mkr7B2v-VZ7-RxKLa*@i8vt>$_ zEu{dYz3bbf1Pgs2&)FozQ2YyBuwCaYyxe!A8*R=czkNUK@TmKh;|p z5Dp9=GE%XwV#jYI9swGmiwgVK;ZC5&>r-b@b>4ALc;PZ_UP$Ukay?EePRdS$ee0V% zq_e7VmIzpkag{7>cxoPVel>f6Fr7tJ2=b2XWe|va<<1O7hhLy{*2xV;9`+09iDLVf zk1nvJi-81wPdcXJ9N6KQORj8N%a7797N+M1w|a#?RGDkD4rRY`^lV=v6}vGr3j-Z+ z4(NbqKXoX`$yVtJfEh}27YW37x8#I(A2qpn?2W@ML+uH%Hx&46I3g|^l!pPaVO~RP z#bvO(B!MuAnms|BPU=ZanwIhj1&u0pc9QXy(lr)moLAjswgVFU6qZI*yV z$|IQ?&q|=CM^2clN+zVjbJ_2+iod-5q(p%05xW~`C^HHIjdJ_Ot`dm8^5l8^v~BXo zFq5-gjmCJ7HE^%WVJUFzgIP2(pF7sPO*8yqD?797 z*=ncEpmqjaoD~3(W*fHM)MV#rDRiDx%FfUVi97QMNx9WXJ2N)=_{Q}&kXFpZ+C&k1 z8A&xUzZiYZKb1Usr|}cJ6n41>u5V&cE$aDlVEtLKFEn*>;(#=N{`NfsY{O@Cgc#?I z1C_zz-Sy2YNDw*oM@@korJDYtoA$uz&B&GWH09%y$i)!`E^E|58e?v+?1KRKQf_=n z7Zn#ksi3M2ST;E+>+hP|5afTKuGla#BxKL3ap1Lkw~Lx%c~u=kmW5ZTayve9{(AD| zQxXgJP_dS`25)wU#6KIuE{{df^|C780(sHf;Cpe;M%FAx6?X)UT)cRK#pnyhR&3aU zsR7+c3HMmstmpY$a%)2>xo=<~dliN55(B|3EwcDWSj+|0Xi&S~_Hb|zE__;`>G$qS zm9J<0>4FzGJ8-21WmTz-ClnF%DfuMGh3oqh;mLF$K0Zejbng|4&q$(`39}vg39XYU zxE9t(VxU-?&i$>9E2~#mC6`-5>_clOdiF*I9;YW$FMjV9zI0*Yr=1!Iuz+L7YxY(X z^uV~2l>M5Q0dqLKo+`X#7~%0juR^h*I9Df=(&=Yjm;rI{xA4f(73T6}w9g0UTzA}T z?>*K?_#w_gM8NmSvG_{2&gY~AOVHJUOs4jX9}%{%2Qm?w^rsh z{IRS0s9*R`6Vcj+8)*aL8~_A=fJMi4<4AKG)BZE*=pY;*ro(c&%&*6hmoOs#A z0_YfFoZQ#`^lIZ#t0i~O(C*y!vlYKv<{>Oas|}<|7~b4E>A}_pQR(`2W|K@3UY%~P z(y%Tjk^YwdBM`sM0*T7?vP_+^e{(e}>aiAqfdA+Ll6Ox7iJ0nZ(nrN*a5LdpoS+_X*;LJ<2ESlJ9DG z_h~M2C_9{{e2{Oq3#g-^gTZG}|62Te>F2<3lR%Kh*ge;O}vRR)FR31cb%d#?FT zta6!*DfjcZ+7@z+StO)iyDU3>sO<3i4Lt+dON#KW@ApCV;<5mVlT#73T!_U@(60eT zM;mW4)7p)yufb^c`^=f)ulLN^0ibqyKQR@zhy5 z&~07Gmk&d?1=qQUkg3st69Z5!Xl^D6B!dlq*9r>YIo`VlJJ%S0OPPlLJ}aJGxgHMm zBRY3z;K~4%kK5%jO@=-RgLSW8Z zMm$bDgbh_&&rhuajWa9=(ESfq4IT=x&$AKj_}v*UBvBCwTnouo$0f2Kig|DCQJ^9V zNTU9=F*Jrh8pG~I{q;RqYW2p)$d0Uj=0%kV_#bdw1)JuzDmc}C+ovr+XAoBeCaiCu zOzFYp?rTR;`y~*t-$71A1;S`xje-PQyT}8BOmXwx_<@&tX^SIT>9RAcqIXm7 zr54mfA@{Wjh~ZOH;*K03E2y3jXZQ6|h&ZbTPAlYv2lwAW?)^V;HVVxcZ>hK$hjDO; z8Y|~emOL_XdeJ?GcM9>2*;*%;{1f(2sL4q{2ImOrs`eKfYgVeRdCA%yh z9xZ<6mV}A*rTGsqmSp>DMJ0=93HMF$N12ThhUFGG;ZRqjPrea4YE0Ak8mY zv`rL8tddVa6~6jBBhuFY!5A*p=`;C^rrJ^85Vq{ZLp15S_QEuS!)EG(x#~f>B<}I+ zJIf2eyYMjEes~Lz;;B9h`zLAP5K0U4JPuG7Q|z{>@$H{gSv#lsyM10bT1}@F0a_az zp!sx~0X%5Ik=gs?*`*9(s3>YHCRy765m5SSzW09L{jhi}zD7nV`ETDFFpE;N`I$4d zC*#}y$6!%PIvLjbBa;2_AL*L!0mX0TlOL#k-7;1wDDop>%_zvh{JsaT_Vj&cFZ8ri z>wp{sHRyqW^);Zi=`J>L4Pb#@)UcETi$t_;Sk1G4Nhw14wa!{J=vPX5nbo6xT(|a2 zH8TR$9?#*lvDg4&04R&uv3*$oAeTx*_0bU{bpxw4ZN{1H=cq5+D$3DY@)KfgOvswa|9-|fh=@v^1P*81n| zSjK-*LKXP9aZJ`GM-%CyV|gG?^VFKkTzZ$4$;$RORWc(`8#8~r0QO|#7js7u5Zc%x znurnAz)*AN#!qShcbf5(CFv@~%Ybj=OsO^WTVYo3?oi*>9$fpil(F>*p3uIbYIF zwY0!tZ1#|=>d!Ol!;tqO{k0TK&ZI&)4Lcy3tVdb+wWS|*>9*D`^?u!+Mtp_l&r1hr zX4!Eo$17kU^9YFI$oz3JM9z>DGC2lao+R+jz2(=do$PV^6L%z8(&jt=SsFMX`s7g_ zjHTv#i+$K_1ItS_wL53Z->m))Z-6WfxT0|1FcbWJkAgwyEm}3&A-i+F*Mv5G_6wZT zc67JH>Wa?|?6VrciwMCUsIgtRmVyX`QA$#wwYCsX80qw%@c3W^{c%D%!L%p#S3G&fpKN2#gvrC5T`9Oko z{5%LdXOH-f8G(s!=k?7LDK`;x-9;^?HOI0B5h?fm)r)B4cIdFG5tAUiR;FJ$+6NAskfJ4$X`VC*kLM1ZYjC3}G9LxPkN8e({aj zQTwrS_C?UT4{H>$?q&3$7y=K+YzkqFM8UV*b5x7C$G9$~X2FBkN#5k^*!R30g`39E zxXd3}zXUG28iS`KLf7A4A{LzzQUi&2_@5mH918-1=xqc!9K-RXrreXk+t>iRYLAxwqahQ z?5!4y=J%wPAz!O|p&!`3IW5Ipvuc%78()juVwnC!J7gFTKU1~ZPyOzJq!tek*hE0K zK<=&yUs`V9*Fo@Ykw3c39((A%JgC-F;hYzZ_V7Gdsu5{h#6=!;_kFsH?Dy|*&r=Yy zPdo+)wn8aMTEP;%_v0be-@Da_n49`4{Fe4)VsTMPTSWqtvU38 zqN1nX9(R{(e*&>_7(F)v)~{O2UW^4+6so$`3< znnb?#H~R>%5}LQHCsos=c}rsVP@8DL7FZIbXj%(db6K;+(i0cU|cQ4s=cj$;050T~tdj5Su+4V07^0f@Q)3V5a3(0Zfg zjB>`!-3Afuno_szVAI4i$TyjqvU#o?9p4o)u|u%|w5@-iz_`gi?0Qz>M501mE(g<4 zkyCOrR+78G>Cymdqbf<}9oKA&ln$2uVEC%)!HCE1Dig$A4P;wWI9MJ#3`y09Y9 zYVg@efDLnV^8G05I1UN^dmGF$w?SVc;^Ho(;K*orjBN--iYOO!PGO!6-QHGs?`Ec|(m7@5Dxrub z6pr`V>1xkBdB2AN5y#%Zdy!w((&_y%2{CpzVAla#cJe#$$Iwv#|0gFDo=W`O_}vtG d;VMozJ{4z?lexF`VCoe3(N;H5t5LCu{68AF$8-Py literal 93452 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⪼$W10wgmG7l+z2d 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 Nykw?Vu5;tT{{dM`Ge!Ua diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 801f577111..827a1abb9c 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -31,7 +31,7 @@ var ContainerListItem = React.createClass({ }); ContainerStore.remove(this.props.container.Name, () => { var containers = ContainerStore.sorted(); - if (containers.length === 1) { + if (containers.length === 0) { $(document.body).find('.new-container-item').parent().fadeIn(); } }); diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index cecc2c77e5..0f0183be49 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -75,7 +75,7 @@ var ImageCard = React.createClass({ name = (

@@ -84,7 +84,7 @@ var ImageCard = React.createClass({ name = (
{namespace}
- View on DockerHub}> + View on Docker Hub}> {repo}
diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index 9b699f8402..881900d541 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -126,7 +126,10 @@ var Setup = React.createClass({

We're Sorry!

There seems to have been an unexpected error with Kitematic:

{this.state.error.message || this.state.error}

-

+

+ + +

~Dl4vELjdh`g^$LnRF$24z?VfF!M05OSA0yv$K>6|(!!(Iz|pS>yYXfR6}KJ!G1C6W$>>Mr=Rdx0mcO}*WBWw8 z)YBW@%2zmfe3zndnlETrF7G$q7%jDY#RQI=fXKuoOt&m;U0#S8I&_Qarq;zA-H@G{ zoz*zq5b=85kkpF61A``=XYWg&-|xAES6m+w%d!8lbmwv6@=>B3bZtIVK!PY5Z!cW$cj@E$rb_%OfNnztw{ zZXs090iFV06MpU*N@7tZ1NvitPefWei9U9x>3+>58 zL|WPycZjJ9~(}L$%rH{uHfxfw+iY>nqEdT!+&Z z<5ft^w*C1C1V2 z1P&T+U~dZ?GAg3&0uYc45Gey05IIaYgfz{7)T}Asm;fk<`aI^EoP*JI=YT!0Os(`| z$MSeJtqZ7?L)Hovf%kXF9w_h@tkq*M!JUWa7@#ejgYhA!TaO?sg0#{MFB$zh^UhtX z!(l79?2i!>%@YSZjL?0;x$KFFlVEa$SIQgoMui}YwA4+vkZ#&dR%i)i?s=Zti(Y%b z{Gc_0!>f#^jN-K1b#^14-?;ZW(YbsAo v3?16p!=L?Nfa|=jC!o-Vq#yoP7^|>fhW$bvh>tl3{@uByrBb0}_4xk*$Kmnh literal 85142 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

diff --git a/styles/new-container.less b/styles/new-container.less index a00f9c3eb3..4633387b3e 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -69,11 +69,11 @@ padding: 4px 8px 4px 35px; color: @gray-darkest; margin-bottom: 3px; - border-color: @gray-lightest; + border-color: @gray-lighter; box-shadow: none; &:focus { box-shadow: none; - border-color: @gray-lighter; + border-color: @brand-primary; } &::-webkit-input-placeholder { color: #DDD; @@ -96,7 +96,6 @@ width: 320px; height: 166px; border-radius: 4px; - border: 1px solid @gray-lightest; background-color: white; margin-right: 20px; margin-bottom: 20px; @@ -154,6 +153,7 @@ border-bottom-left-radius: 3px; justify-content: center; text-align: center; + box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.2); img { margin-top: 15px; } @@ -161,6 +161,8 @@ .card { padding: 10px 20px 10px 20px; position: relative; + border: 1px solid @gray-lightest; + border-left: 0; .badges { position: absolute; right: 15px; @@ -186,7 +188,6 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - text-decoration: underline; } } .description { diff --git a/styles/radial.less b/styles/radial.less index 0a38398b59..17aa6ab628 100644 --- a/styles/radial.less +++ b/styles/radial.less @@ -100,7 +100,7 @@ } &.radial-gray { - background: #EEE; + background: @gray-lightest; } &.radial-transparent { diff --git a/styles/setup.less b/styles/setup.less index ea89d8636c..d09abdfd4f 100644 --- a/styles/setup.less +++ b/styles/setup.less @@ -63,6 +63,11 @@ overflow: auto; } } + .setup-actions { + button { + margin-right: 12px; + } + } } } diff --git a/styles/variables.less b/styles/variables.less index 86a901b9f4..64cbc2b845 100644 --- a/styles/variables.less +++ b/styles/variables.less @@ -12,14 +12,14 @@ @traffic-light-gray: #E5E5E5; @traffic-light-gray-border: #D3D3D3; -@gray-darkest: #253237; -@gray-darker: #394C51; -@gray-normal: #546C70; -@gray-lighter: #7A9999; -@gray-lightest: #C7D7D7; +@gray-darkest: #233137; +@gray-darker: #556473; +@gray-normal: #7A8491; +@gray-lighter: #C4CDDA; +@gray-lightest: #E1E8EF; -@color-divider: #DCE2E2; -@color-background: #F9F9F9; +@color-divider: @gray-lightest; +@color-background: #FCFCFC; @font-regular: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; @font-code: Menlo; From d23e09151c5facb35c2b01f4a30498389a6092f8 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 11:38:35 -0700 Subject: [PATCH 48/60] Removed mute for start method. --- src/stores/ContainerStore.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/stores/ContainerStore.js b/src/stores/ContainerStore.js index 2d4ec1b621..2761bcdc68 100644 --- a/src/stores/ContainerStore.js +++ b/src/stores/ContainerStore.js @@ -413,13 +413,10 @@ var ContainerStore = assign(Object.create(EventEmitter.prototype), { }, start: function (name, callback) { var container = docker.client().getContainer(name); - _muted[name] = true; container.start(err => { if (err && err.statusCode !== 304) { - _muted[name] = false; callback(err); } else { - _muted[name] = false; this.fetchContainer(name, callback); } }); From f4b1f322f0409c167b629a194aca7b338b622146 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 12:25:01 -0700 Subject: [PATCH 49/60] Changed color of misc buttons. --- images/docker-terminal.png | Bin 865 -> 856 bytes images/docker-terminal@2x.png | Bin 1901 -> 1857 bytes images/preferences.png | Bin 1002 -> 976 bytes images/preferences@2x.png | Bin 2313 -> 2292 bytes images/report-issue.png | Bin 740 -> 732 bytes images/report-issue@2x.png | Bin 1707 -> 1688 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/docker-terminal.png b/images/docker-terminal.png index 1292e5fafdd622c3d8818f28f1236c55d860edff..dbbff04b27b320ad34e670d2d7a79ed9cb644a99 100644 GIT binary patch delta 820 zcmV-41Izs32G|CWF@F+CL_t(Y4YgKFXcJKsz4y&D)S_M4q@VN?6A=_dK@r4K6x61% zeoCneQ7GaE1wpX77F@O9u7aWq6@LZAE}FE9V$(&bQV)#8mf1+uUj<-(cK%l%aiOE?5mS2 z&w<&{P)4&3JiRg6kkSfdsjaTyH@Rv8Gc_uTR-GU+=5;(WIalb&Em~DmPz@4@T7ja| z<&QS6io~G&5r1@jw|Tae+y?}EMyx8OX)UTE+N|Pk|Lid>5+53GbtSC6yb-vIwjUtC za~i>rd`PE;abM|YtH2I_^d1VOUn$%A*6Ne}oDsMKu?|k%!$9yS?6p5L5eXBDfY+Wt zw0?AM;F=J)7eK#+AYO3FzX!m+khkQC!O0l`BHRHT9)Bd_i(Uh0*xz$>9Y}8k#LHDh zhl+L5XMx1YWGcCv5C)n1m=}1}z?&j)^-Na_Mg1b3q4`)pwCq_jfQF5=*ym#aeVl?& zplliDtHs6F!xcqQZzAB0G?#uoH}Iwigrb}W9Y4hN#mZdb21#04&>WxUEV@XrBUujE4zP|tB6gM zSlTyswqjyAM!uUO(18YcA5U07`M-2dWt*+=9qI5iltVnNW4S8$@{4`qr`s|~cDJib z`G-wMiP->1Uqhw{7)0?@(#M%_n#t|JE6gJD7=LfwEl=^$A>Ph0-o8_kmxap=n9qO* zryI)`T-}jUVH2-B#r7ErMEW=lCqPg&AEb+bYLFnPY19_>*$49p8{=6MNJsdLBf{pm z`{R_83Y1z@bSG)_4F!f1l$?;2$`JUkwVc6!@oND{Z6Rx@EOToit_CYLrM5ieV7i8` yhAp)QOhz-P%IeR56eCO9DpIbpQCV9C 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 UXBNn;%m4rY07*qoM6N<$f)-+i)Bpeg delta 1874 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 P00000NkvXXu0mjf7{%1L delta 967 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 delta 703 zcmV;w0zm!T1>^;gF@K&(L_t(Y4YgKHXj4HDp4pewN~s5Jlz<>L*w_T^k4dRYBSAqC zyy;O-ip86U_U1tkN)^0{=*@!=^&o*19&63ibSM1+EfmNwYdBsFPLke-f`{*SLfjl{rVG<3a73uIsF^oA zbUap^iaV7lQO9I91d3bO*qUKf!0dc>UnCMSnvJc-j#frxOQuU_P{1ud9fttX;XXLr zo3cuIAURtp*MIJW!~SwB4%-!|neq}}qo5}>Nizu5@rh#tdskp}k0hF8F_&|fb1jkn zIMPbMb`MfkagI;en^-Ki!;ZjQES^qgNb`MOeFv&aLm7}%u+%|Q=3JZ;S z-;%6d?LzU=ZX((g3BXGPc<*{3P_ZMg#Xck$l^~XyZECC)__euy zm(z45xtPD83#wy}Ez9Wy{KCg}CLHj7uj7rqR^aT(p>MTHEsTcoG_g?VZw#n^Cl~Sq ze(22*LVvE+Luq@H4MSYxSN4T);Be9^MLEZDB>IGa9zJ155W&Z{`!-*`M|DwMuN5%O zB^L-W#e@YSJT4{NFbon4VVp(F@I7?L_t(&1=U(zY*a-QJ~O**0lO8D-BRq2-ERE>B|I1fpO8ps zmk=UKAHc>agdmC02g8#Ol^9HnF=`@$F`$Wv)~HeJE?C8i4+eh{!GIFFTcA+dU98Y8 z!nV72{LWmKZkC_kY1h);hn+ij&Ybgo^K<6R%nHhR{4L%034bZq3LzE~sR|-doFg*E zS=A2=ol2=zWm)e27b-M63t6eu_Wp~mBk=|wTHxkA-sV_w@#OSu>2^P@8yA>Cq%D$&EnyOx zKuswAj*zq-Fn_y9rB=7sm$ltI$k(?V2%lLPXA}gKRkzqOBQ=XrUk+H+u zu&X5E3Crn3c!sd53J|dU{LS_@CJi@)RTPg)e{Vu&!haKRo3M2%J8O5>ltQ=gk>#2y ztyHgdHW@qqRP`mN^-bjRLqLZi-bb;P)L}VUjP!O5!i8T~0m-rg3haq>C?#5jNQc_{ z_J2(c4QUgg*OL{2J#j=2@UL~=p}6RJ(z)Na{aWC!s@x!zcmbfxGsOtJ{)M0JLH;~I zPs8G03V&jgu9TB%$4dH2^ye+_Q&W?b`EHVCaF3Wk&6lwN6^dN|dcSR09R!jclG5L{ z*OeX40VAqHv3YK(5aEioAXCfbh-vl>3|wsNTwd9gBR_0*R0IOyo&`j5FIwFL6j1jMkwH0b?&z9qyT{gbXow43*|{ z1HJPcgSQD-k)ZFB3o1Pqeb9>D@D)mTYt>iX)s7k z1%H5dp(h@~uvp`WeU^}O0`NEh|2)@C3$;G8Bg)b>qSxMFZ6D^5){FVD(Nu|J0{-%< zCFtSXFm4Za)cJliHFP8S_5)i!Lpk?Ct-qz~vRAuNjiEBf1f;YUaW(kwPlu}K=?!ZE zTK{v_CR{FU$Ejw=1fW`n-Ef&lohmnyvwv*8SokVU>KPCqFDq6g;wA7n7|v&$V5KqW*EY76N^dsRV?uzULEm*fWM_@1zK({fPZveh^r5( z!?88!#uxGJ4mK`ak|s|nqChyFfJ`qYDE7ou!e#s*&raYsoXl>H)|cw|M;DCn$CQ8& zF43fIDT;W!@({+b|8o9_9gv9yIOd*@?;e2la2Zw9<>3rplWeGfZ^Kt^K9zAL76jG3`Z{oez=w&Ya_m&oIpgbm)kQ)2~Y z#%`}mxqmgloiSg#PME(M=&sbaEEDz59$ABNqW#_GKPBXWJ~nE_5dZ)H07*qoM6N<$ Ef=qZLKmY&$ delta 1678 zcmV;9266eA4XX{1F@I%AL_t(&1=U(zY*a-Qp1F6I5@RDdq|}9!mPHWK z#28VU2sRoZ1Ro4O@#I4#h6iJe`l1j5F;Rgvq6x5yrQOmt2W? zNrE20V22>8aRePMFV6pUC;;gug2Cvt>}B3hgcQ4xXSw;4ECvU0=uUflZ)Ig+KVwq_ z82o}|-m_AQb;u(U&LMK-k;H?6tARivx4?vja5$Q2XL<^xMLVRhxN#)_)_1nYH!%rC zpeb_gGf>$B?0-^MDE2w#Xk<<0OMgNkC7h1YlmfR9Qi zajvwaFgmQhJl`BGlEU5yS6~+mEm!44b-jI5^+IXhoni80CSBa)B2a&+b+yN~&Z5P$ z(9-P=iMPvF<%Y(z3IT5QK*eiYv5kI=UU>ppU4KqI9w_q{8tp?a0pl)gxENbud+g97 z@WJjrD$)hd1VO+lFUdVYy$@GlXw@KVp5^t_oWB%X%H^iPhyYJk%Oisr0<+Na!Or$8 z+g>Wo>oGOT@?~Yu-s|c5?L`c|S`5Q%==~DeM#Gr(7!kl^-G`RX#iY5~**;K}>Pk{k zQGfAwPyCN9?8ak)uW5+1?PO3UL7M=tI8x9%tUMuTk9#6AF*cHHh2Q@tdQ<7eoY*&# z%xHPq1PbKLO=$f&yxOc=ncFy;Qq!{9)5pI}_JUX*z7$idnywCQ0yxgCS4tiEjjnQC zIiA>#5GPq4n_<$9W@T*xL{hokI83x@>VGy8vmBxHVlFH;si;i=>%-$pG0{B}1G=&a z5=yVM#9ZAvET>HX6Zo!DEUg7526SaDOU_raB)W9#u$(pl456D`0k1cn<~ZE}8$dqm z#1ehWM7KTxC-H+)OmZ7y;|*stP~mXc1C7`ZKwyA)ch(Nt1jV}Dz< zEocaOv$D5CY#v;TXqi8+MWf1~h&BP#Ao%k8RZX%!{qaKdu|X{c}MuQ9xTnDIn8^9U;CLF94gQCF?LR&S3!bmON;Zr9$K#RY(#(+_V?54 z>_X!`s^8=D1a*vzB-0d$F82DoKYy_v)<=}68cA-fJYxdSugU!#Z^7PY#gb&sSO$id zheDx@hDdA=N$(YutwxXDb`rFqthk_axU5ckJZEAYtfX?j(Cr_w5q9(nD69@_jPXZ;^Tn_y&fI+Dp*#-#zRf*tL00VYe%58XFU6Xn$_qg6*CU zBOSf>`@U#uj_m~Sckx@o#-+5ybo6Ueq^$>YrCX4kjo8O!h*iL(y(|;rz}k{r<^Lpe z$MiaREW}v~G>N}Z-imY$ytYtzNlpWv z(-Mpb;0?s90Hk)} Date: Mon, 27 Apr 2015 17:13:55 -0400 Subject: [PATCH 50/60] Removing deadcode --- src/app.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app.js b/src/app.js index b5073ba728..5fdac16168 100644 --- a/src/app.js +++ b/src/app.js @@ -12,7 +12,6 @@ var router = require('./router'); var template = require('./menutemplate'); var webUtil = require('./utils/WebUtil'); var urlUtil = require ('./utils/URLUtil'); -var util = require('./Util'); var app = remote.require('app'); var request = require('request'); From af3ed90280b6405b19d32d0af417d95b8570de0a Mon Sep 17 00:00:00 2001 From: TeckniX Date: Mon, 27 Apr 2015 18:22:41 -0400 Subject: [PATCH 51/60] Added fix for tag display Signed-off-by: TeckniX --- styles/new-container.less | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/new-container.less b/styles/new-container.less index a00f9c3eb3..da3e8894c3 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -93,6 +93,7 @@ overflow: auto; .image-item { display: flex; + position: relative; width: 320px; height: 166px; border-radius: 4px; From 532fc4cb807eeb862c9de763eb8cfaec64d5759e Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 15:46:37 -0700 Subject: [PATCH 52/60] Added forgotten border radius and dimmed border. --- styles/new-container.less | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/styles/new-container.less b/styles/new-container.less index 3fe2054b49..3000deed22 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -179,11 +179,11 @@ flex: 1 auto; min-width: 90px; background-color: @brand-action; - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; justify-content: center; text-align: center; - box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.2); + box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.1); img { margin-top: 15px; } @@ -193,6 +193,8 @@ position: relative; border: 1px solid @gray-lightest; border-left: 0; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; .badges { position: absolute; right: 15px; From 58881f0fc76bf2d985536630dfd011a9854ba07e Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 15:49:07 -0700 Subject: [PATCH 53/60] Border color and text placeholder color. --- styles/new-container.less | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/styles/new-container.less b/styles/new-container.less index 3000deed22..55d28f3921 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -105,7 +105,7 @@ border-color: @brand-primary; } &::-webkit-input-placeholder { - color: #DDD; + color: @gray-lightest; font-weight: 400; } } @@ -183,7 +183,7 @@ border-bottom-left-radius: 4px; justify-content: center; text-align: center; - box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.1); + box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.2); img { margin-top: 15px; } @@ -191,7 +191,7 @@ .card { padding: 10px 20px 10px 20px; position: relative; - border: 1px solid @gray-lightest; + border: 1px solid @gray-lighter; border-left: 0; border-top-right-radius: 4px; border-bottom-right-radius: 4px; From 20b8a5dac60a4f73b51c2b35e05585eb5aab4157 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 15:50:11 -0700 Subject: [PATCH 54/60] Darker widget border. --- styles/mixins.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/styles/mixins.less b/styles/mixins.less index 44e9460ca2..3c27533854 100644 --- a/styles/mixins.less +++ b/styles/mixins.less @@ -24,7 +24,7 @@ .widget-style() { border-radius: 4px; - border: 1px solid @gray-lightest; + border: 1px solid @gray-lighter; position: relative; overflow: hidden; } From 8d40b6e07afd873a88a3310755781e398c56c185 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Mon, 27 Apr 2015 15:52:19 -0700 Subject: [PATCH 55/60] Darker hover color. --- styles/container-home.less | 2 +- styles/right-panel.less | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/styles/container-home.less b/styles/container-home.less index ec6cef6ab3..bc808ea860 100644 --- a/styles/container-home.less +++ b/styles/container-home.less @@ -180,7 +180,7 @@ width: 110px; padding: 5px; &:hover { - background-color: @color-background; + background-color: darken(@color-background, 2%); border-radius: 10px; } img { diff --git a/styles/right-panel.less b/styles/right-panel.less index adbe6ace5c..167d0c66b4 100644 --- a/styles/right-panel.less +++ b/styles/right-panel.less @@ -73,7 +73,7 @@ display: inline-block; &:hover { border-radius: 40px; - background-color: @color-background; + background-color: darken(@color-background, 2%); } &.active { border-radius: 40px; From df58da92ea5221ec9a94fdc2323949deb8b40b4d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 21:53:44 -0400 Subject: [PATCH 56/60] adding url metrics --- src/components/ImageCard.react.js | 4 +++- src/components/NewContainerPull.react.js | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 0f0183be49..6be5466a3c 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -23,7 +23,9 @@ var ImageCard = React.createClass({ metrics.track('Selected Image Tag'); }, handleClick: function (name) { - metrics.track('Created Container'); + metrics.track('Created Container', { + from: 'search' + }); ContainerStore.create(name, this.state.chosenTag, function () { $(document.body).find('.new-container-item').parent().fadeOut(); }.bind(this)); diff --git a/src/components/NewContainerPull.react.js b/src/components/NewContainerPull.react.js index 33a3fcedc9..3327b399f5 100644 --- a/src/components/NewContainerPull.react.js +++ b/src/components/NewContainerPull.react.js @@ -2,6 +2,7 @@ var React = require('react/addons'); var Router = require('react-router'); var shell = require('shell'); var ContainerStore = require('../stores/ContainerStore'); +var metrics = require('../utils/MetricsUtil'); module.exports = React.createClass({ mixins: [Router.Navigation], @@ -14,10 +15,14 @@ module.exports = React.createClass({ } }, handleCancelClick: function () { + metrics.track('Canceled Click-To-Pull'); ContainerStore.clearPending(); this.context.router.transitionTo('new'); }, handleConfirmClick: function () { + metrics.track('Created Container', { + from: 'click-to-pull' + }); ContainerStore.clearPending(); ContainerStore.create(this.props.pending.repository, this.props.pending.tag, function () {}); }, From 46161ecfbf574a7fb1270add8f4161eb97166ca0 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 27 Apr 2015 21:54:41 -0400 Subject: [PATCH 57/60] Bumping version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aaee45e253..40e3876b85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.20", + "version": "0.5.21", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 928e0065500f0cc0e38afc7c164b34d8fab6349b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 28 Apr 2015 11:02:17 -0400 Subject: [PATCH 58/60] Fixing metrics --- src/utils/MetricsUtil.js | 2 +- src/utils/Util-test.js | 4 ++++ src/utils/Util.js | 4 ++-- src/utils/WebUtil.js | 6 ++++++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/utils/MetricsUtil.js b/src/utils/MetricsUtil.js index 3447f0f577..8026fe73c8 100644 --- a/src/utils/MetricsUtil.js +++ b/src/utils/MetricsUtil.js @@ -7,7 +7,7 @@ var util = require('./Util'); var settings; try { - settings = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); + settings = JSON.parse(fs.readFileSync(path.join(__dirname, '../..', 'settings.json'), 'utf8')); } catch (err) { settings = {}; } diff --git a/src/utils/Util-test.js b/src/utils/Util-test.js index 6ad6db2849..8afd27e72c 100644 --- a/src/utils/Util-test.js +++ b/src/utils/Util-test.js @@ -24,6 +24,10 @@ describe('Util', function () { var testdata = String.raw`/Users/johnappleseed/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); + + testdata = String.raw`/Users/some.wei-rdUsername/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; + expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); }); it ('returns input if empty or not a string', function () { diff --git a/src/utils/Util.js b/src/utils/Util.js index 4473549441..5ec0881b38 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -37,7 +37,7 @@ module.exports = { } return str.replace(/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----/mg, '') .replace(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----/mg, '') - .replace(/\/Users\/[a-z_][a-z0-9_]+\//mg, '/Users//'); + .replace(/\/Users\/.*\//mg, '/Users//'); }, resourceDir: function () { return process.env.RESOURCES_PATH; @@ -48,7 +48,7 @@ module.exports = { settingsjson: function () { var settingsjson = {}; try { - settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); + settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '../..', 'settings.json'), 'utf8')); } catch (err) {} return settingsjson; }, diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js index bbd63a99fe..318d529764 100644 --- a/src/utils/WebUtil.js +++ b/src/utils/WebUtil.js @@ -3,6 +3,7 @@ var fs = require('fs'); var util = require('./Util'); var path = require('path'); var bugsnag = require('bugsnag-js'); +var metrics = require('./MetricsUtil'); var WebUtil = { addWindowSizeSaving: function () { @@ -24,6 +25,7 @@ var WebUtil = { }, addBugReporting: function () { var settingsjson = util.settingsjson(); + if (settingsjson.bugsnag) { bugsnag.apiKey = settingsjson.bugsnag; bugsnag.autoNotify = true; @@ -35,6 +37,10 @@ var WebUtil = { }; bugsnag.beforeNotify = function(payload) { + if (!metrics.enabled()) { + return false; + } + payload.stacktrace = util.removeSensitiveData(payload.stacktrace); payload.context = util.removeSensitiveData(payload.context); payload.file = util.removeSensitiveData(payload.file); From 4059ec78bc998fd793c8f6dbce0fc52e491439c6 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 28 Apr 2015 11:02:27 -0400 Subject: [PATCH 59/60] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 40e3876b85..5c2f735c7c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.5.21", + "version": "0.5.22", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From a4c061542e5b31541749398dccb41e75af56a8a4 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 28 Apr 2015 11:07:00 -0400 Subject: [PATCH 60/60] fix test --- src/utils/Util-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/Util-test.js b/src/utils/Util-test.js index 8afd27e72c..471b1088c5 100644 --- a/src/utils/Util-test.js +++ b/src/utils/Util-test.js @@ -26,7 +26,7 @@ describe('Util', function () { expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); testdata = String.raw`/Users/some.wei-rdUsername/.docker/machine/machines/dev2/id_rsa docker@localhost echo`; - expect(util.removeSensitiveData(testdata).indexOf('/Users/johnappleseed/')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('/Users/some.wei-rdUsername/')).toEqual(-1); expect(util.removeSensitiveData(testdata).indexOf('/Users//')).toNotEqual(-1); });