From 482679ad1a60baac6d323e630f05439253ede2d3 Mon Sep 17 00:00:00 2001 From: David Martin Date: Wed, 17 May 2017 23:12:39 +0100 Subject: [PATCH] Proposed restructuring for removal of fh-mbaas-express issue #2 Changes: * Remove the 'sync' sub-folder in lib, test & integration folders * Remove the fh-mbaas-express coupling * Remove all non sync code & tests * Get all unit & integration tests working via `npm test` * Add a sample server usage of the sync server `example/server.js` * Reset the README.md file to start with standalone sync usage steps * Remove unused dependencies from package.json that were carried over from fh-mbaas-api --- Gruntfile.js | 35 +- README.md | 68 +- example/server.js | 14 + integration/{sync => }/helper.js | 2 +- .../{sync => }/test_collision-handlers.js | 6 +- .../{sync => }/test_dataHandler_overrides.js | 4 +- .../{sync => }/test_datasetClientCleaner.js | 8 +- integration/{sync => }/test_index.js | 2 +- .../{sync => }/test_interceptor_overrides.js | 2 +- integration/{sync => }/test_mongodbQueue.js | 6 +- integration/{sync => }/test_storage.js | 4 +- integration/{sync => }/test_sync_apis.js | 6 +- lib/{sync => }/DatasetClient.js | 0 lib/{sync => }/ack-processor.js | 0 lib/{sync => }/api-sync.js | 0 lib/{sync => }/api-syncRecords.js | 0 lib/api.js | 102 - lib/{sync => }/dataHandlers.js | 0 lib/{sync => }/datasetClientsCleaner.js | 0 lib/{sync => }/datasets.js | 0 lib/{sync => }/default-dataHandlers.js | 0 lib/{sync => }/hashProvider.js | 0 lib/{sync => }/index.js | 0 lib/init.js | 16 - lib/{sync => }/interceptors.js | 0 lib/{sync => }/lock.js | 0 lib/{sync => }/mongodbQueue.js | 0 lib/{sync => }/pending-processor.js | 0 lib/{sync => }/storage/dataset-clients.js | 0 lib/{sync => }/storage/index.js | 0 lib/{sync => }/storage/sync-updates.js | 0 lib/{sync => }/sync-cache.js | 0 lib/{sync => }/sync-metrics.js | 0 lib/{sync => }/sync-processor.js | 0 lib/{sync => }/sync-scheduler.js | 0 lib/{sync => }/sync-server.js | 0 lib/{sync => }/util.js | 0 lib/{sync => }/worker.js | 0 licenses.txt | 214 -- npm-shrinkwrap.json | 2421 ----------------- package.json | 26 +- sonar-project.properties | 10 - test/fixtures/forms.js | 124 - test/fixtures/mockConfig.js | 101 - test/fixtures/mockReadStream.js | 22 - test/fixtures/mockWriteStream.js | 16 - test/fixtures/syncHandler.js | 44 - test/fixtures/sync_db.js | 57 - test/fixtures/testimg1.jpg | Bin 136346 -> 0 bytes test/fixtures/testimg2.png | Bin 76462 -> 0 bytes test/setup.js | 18 - test/{sync => }/test_ack-processor.js | 2 +- test/{sync => }/test_api-sync.js | 2 +- test/{sync => }/test_api-syncRecords.js | 2 +- test/{sync => }/test_dataHandlers.js | 2 +- test/{sync => }/test_datasetClientsCleaner.js | 2 +- test/{sync => }/test_default-dataHandlers.js | 2 +- test/test_getVersion.js | 12 - test/{sync => }/test_hashProvider.js | 2 +- test/{sync => }/test_index.js | 2 +- test/test_init.js | 27 - test/{sync => }/test_interceptors.js | 2 +- test/{sync => }/test_lock.js | 2 +- test/{sync => }/test_mongodbQueue.js | 4 +- test/{sync => }/test_pending-processor.js | 2 +- test/{sync => }/test_sync-metrics.js | 2 +- test/{sync => }/test_sync-processor.js | 4 +- test/{sync => }/test_sync-scheduler.js | 4 +- test/{sync => }/test_worker.js | 4 +- 69 files changed, 108 insertions(+), 3299 deletions(-) create mode 100644 example/server.js rename integration/{sync => }/helper.js (97%) rename integration/{sync => }/test_collision-handlers.js (96%) rename integration/{sync => }/test_dataHandler_overrides.js (98%) rename integration/{sync => }/test_datasetClientCleaner.js (91%) rename integration/{sync => }/test_index.js (99%) rename integration/{sync => }/test_interceptor_overrides.js (98%) rename integration/{sync => }/test_mongodbQueue.js (92%) rename integration/{sync => }/test_storage.js (98%) rename integration/{sync => }/test_sync_apis.js (98%) rename lib/{sync => }/DatasetClient.js (100%) rename lib/{sync => }/ack-processor.js (100%) rename lib/{sync => }/api-sync.js (100%) rename lib/{sync => }/api-syncRecords.js (100%) delete mode 100644 lib/api.js rename lib/{sync => }/dataHandlers.js (100%) rename lib/{sync => }/datasetClientsCleaner.js (100%) rename lib/{sync => }/datasets.js (100%) rename lib/{sync => }/default-dataHandlers.js (100%) rename lib/{sync => }/hashProvider.js (100%) rename lib/{sync => }/index.js (100%) delete mode 100644 lib/init.js rename lib/{sync => }/interceptors.js (100%) rename lib/{sync => }/lock.js (100%) rename lib/{sync => }/mongodbQueue.js (100%) rename lib/{sync => }/pending-processor.js (100%) rename lib/{sync => }/storage/dataset-clients.js (100%) rename lib/{sync => }/storage/index.js (100%) rename lib/{sync => }/storage/sync-updates.js (100%) rename lib/{sync => }/sync-cache.js (100%) rename lib/{sync => }/sync-metrics.js (100%) rename lib/{sync => }/sync-processor.js (100%) rename lib/{sync => }/sync-scheduler.js (100%) rename lib/{sync => }/sync-server.js (100%) rename lib/{sync => }/util.js (100%) rename lib/{sync => }/worker.js (100%) delete mode 100644 licenses.txt delete mode 100644 npm-shrinkwrap.json delete mode 100644 sonar-project.properties delete mode 100644 test/fixtures/forms.js delete mode 100644 test/fixtures/mockConfig.js delete mode 100644 test/fixtures/mockReadStream.js delete mode 100644 test/fixtures/mockWriteStream.js delete mode 100644 test/fixtures/syncHandler.js delete mode 100644 test/fixtures/sync_db.js delete mode 100644 test/fixtures/testimg1.jpg delete mode 100644 test/fixtures/testimg2.png delete mode 100644 test/setup.js rename test/{sync => }/test_ack-processor.js (93%) rename test/{sync => }/test_api-sync.js (98%) rename test/{sync => }/test_api-syncRecords.js (97%) rename test/{sync => }/test_dataHandlers.js (98%) rename test/{sync => }/test_datasetClientsCleaner.js (96%) rename test/{sync => }/test_default-dataHandlers.js (98%) delete mode 100644 test/test_getVersion.js rename test/{sync => }/test_hashProvider.js (96%) rename test/{sync => }/test_index.js (98%) delete mode 100644 test/test_init.js rename test/{sync => }/test_interceptors.js (96%) rename test/{sync => }/test_lock.js (96%) rename test/{sync => }/test_mongodbQueue.js (94%) rename test/{sync => }/test_pending-processor.js (99%) rename test/{sync => }/test_sync-metrics.js (97%) rename test/{sync => }/test_sync-processor.js (95%) rename test/{sync => }/test_sync-scheduler.js (97%) rename test/{sync => }/test_worker.js (96%) diff --git a/Gruntfile.js b/Gruntfile.js index 48d0271..4e46ce4 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -4,7 +4,7 @@ module.exports = function(grunt) { 'use strict'; function makeTestArgs(testFile) { - return ['-u exports --recursive -t 10000 ./test/setup.js', testFile].join(' '); + return ['-u exports --recursive -t 10000 ', testFile].join(' '); } function makeUnits(testArgString) { @@ -18,23 +18,22 @@ module.exports = function(grunt) { // TODO: move these to use the grunt-mocha-test plugin var tests = [ /* If updating this list of tests, also update test_win.cmd for Windows */ - './test/test_init.js', - './test/sync/test_mongodbQueue.js', - './test/sync/test_index.js', - './test/sync/test_worker.js', - './test/sync/test_sync-processor.js', - './test/sync/test_sync-scheduler.js', - './test/sync/test_ack-processor.js', - './test/sync/test_pending-processor.js', - './test/sync/test_hashProvider.js', - './test/sync/test_api-sync.js', - './test/sync/test_dataHandlers.js', - './test/sync/test_api-syncRecords.js', - './test/sync/test_default-dataHandlers.js', - './test/sync/test_interceptors.js', - './test/sync/test_lock.js', - './test/sync/test_datasetClientsCleaner.js', - './test/sync/test_sync-metrics.js' + './test/test_mongodbQueue.js', + './test/test_index.js', + './test/test_worker.js', + './test/test_sync-processor.js', + './test/test_sync-scheduler.js', + './test/test_ack-processor.js', + './test/test_pending-processor.js', + './test/test_hashProvider.js', + './test/test_api-sync.js', + './test/test_dataHandlers.js', + './test/test_api-syncRecords.js', + './test/test_default-dataHandlers.js', + './test/test_interceptors.js', + './test/test_lock.js', + './test/test_datasetClientsCleaner.js', + './test/test_sync-metrics.js' ]; var unit_args = _.map(tests, makeTestArgs); var test_runner = '_mocha'; diff --git a/README.md b/README.md index 656c4b0..9ff14e3 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,56 @@ -# fh-sync cloud +# fh-sync -Node.js and express.js based mobile app data synchronization library. +Node.js implementation of the FeedHenry Data Syncronisation Server. +To be used in conjunction with the FeedHenry Data Syncronisation Client. -*Note* WIP. This repo targets to decouple fh-sync from other API's in fh-mbaas-api package. -For official and supported version of fh-sync please refer to fh-mbaas-api npm package. +*Note* WIP. The goal of this repo is to decouple fh-sync from other API's in fh-mbaas-api package. +For the currently maintained fh-sync implementation, please refer to https://github.com/feedhenry/fh-mbaas-api. ## Usage - fh-sync is included as standard with your cloud app code. ``` -npm install --save fh-sync-cloud +npm install --save fh-sync ``` -This will install the latest version of fh-sync-cloud and save the installed version in your package.json +This will install the latest version of fh-sync and save the installed version in your package.json -## Documentation -Documentation for the fh-sync-cloud API is maintained at the [FeedHenry API Docs.](http://docs.feedhenry.com/v3/api/cloud_api.html) +To use sync in your application, require it and call `connect`. +```js +var sync = require('fh-sync'); -## Tests -In order to run the tests, please make sure you have [Docker](https://www.docker.com/) installed. - -Before running tests do: +var mongodbConnectionString = 'mongodb://127.0.0.1:27017/sync'; +var redisUrl = 'redis://127.0.0.1:6379'; -``` -npm install -npm install -g grunt-cli +sync.api.connect(mongodbConnectionString, {}, redisUrl, function(){}); ``` -Then to run the tests use ```npm test``` +To configure a dataset for syncing, wait for the `sync:ready` event, then `init` the dataset. -## Caveats +```js +sync.api.getEventEmitter().on('sync:ready', function() { + console.log('sync ready'); -### Two sync loops per sync frequency -Two sync loops may be invoked per sync frequency if the server-side sync frequency -differs from the client-side frequency. + sync.api.init('myDataset', { + syncFrequency: 10 // seconds + }, function() {}); +}); +``` -This is because the client and server sync frequencies are set independently. -Setting a long frequency on a client does not change the sync frequency on the -server. +*TODO* -The `syncFrequency` value of the dataset on the server should be set to the -`sync_frequency` value of the corresponding dataset on the client to avoid this. +* mounting routes in an express application that `invoke` sync on demand +* hooking up a FeedHenry Data Syncronisation Client to the server -For example: - * `sync_frequency` on the client-side dataset is also set to 120 seconds. - * `syncFrequency` on the server-side dataset is set to 120 seconds. +## Tests +In order to run the tests, please make sure you have [Docker](https://www.docker.com/) installed. -## API logging +Before running tests do: -Users of the fh-mbaas-api can then enable logging if they would like to see more output. This is useful for debugging purposes. -It's possible to pass environment variables to enable the logging according the rules specified for [debug](https://www.npmjs.com/package/debug) module: - ``` -DEBUG="fh-mbaas-api:*" ./yourscript +npm install +npm install -g grunt-cli ``` -If `DEBUG_COLORS=0` is passed also it will print log messages with proper timestamps. This is automatically enabled outside properly supported terminal. + +Then to run the tests use ```npm test``` + diff --git a/example/server.js b/example/server.js new file mode 100644 index 0000000..43d4715 --- /dev/null +++ b/example/server.js @@ -0,0 +1,14 @@ +var sync = require('../lib'); + +var mongodbConnectionString = 'mongodb://127.0.0.1:27017/sync'; +var redisUrl = 'redis://127.0.0.1:6379'; + +sync.api.connect(mongodbConnectionString, {}, redisUrl, function(){}); + +sync.api.getEventEmitter().on('sync:ready', function() { + console.log('sync ready'); + + sync.api.init('myDataset', { + syncFrequency: 10 // seconds + }, function() {}); +}); \ No newline at end of file diff --git a/integration/sync/helper.js b/integration/helper.js similarity index 97% rename from integration/sync/helper.js rename to integration/helper.js index e281dae..a10a2a0 100644 --- a/integration/sync/helper.js +++ b/integration/helper.js @@ -1,5 +1,5 @@ var MongoClient = require('mongodb').MongoClient; -var storageModule = require('../../lib/sync/storage'); +var storageModule = require('../lib/storage'); var async = require('async'); /** diff --git a/integration/sync/test_collision-handlers.js b/integration/test_collision-handlers.js similarity index 96% rename from integration/sync/test_collision-handlers.js rename to integration/test_collision-handlers.js index c5b6b9f..459bc6b 100644 --- a/integration/sync/test_collision-handlers.js +++ b/integration/test_collision-handlers.js @@ -2,9 +2,9 @@ var async = require('async'); var assert = require('assert'); var sinon = require('sinon'); var _ = require('underscore'); -var defaultDataHandlersModule = require('../../lib/sync/default-dataHandlers'); -var dataHandlersModule = require('../../lib/sync/dataHandlers'); -var sync = require('../../lib/sync/'); +var defaultDataHandlersModule = require('../lib/default-dataHandlers'); +var dataHandlersModule = require('../lib/dataHandlers'); +var sync = require('../lib/'); var DATASETID = "collisionHandlersTest"; var MONGODB_URL = "mongodb://127.0.0.1:27017/test_collision"; diff --git a/integration/sync/test_dataHandler_overrides.js b/integration/test_dataHandler_overrides.js similarity index 98% rename from integration/sync/test_dataHandler_overrides.js rename to integration/test_dataHandler_overrides.js index e191eda..55f0a6d 100644 --- a/integration/sync/test_dataHandler_overrides.js +++ b/integration/test_dataHandler_overrides.js @@ -2,8 +2,8 @@ var assert = require('assert'); var async = require('async'); var helper = require('./helper'); var sinon = require('sinon'); -var sync = require('../../lib/sync'); -var syncUitl = require('../../lib/sync/util'); +var sync = require('../lib'); +var syncUitl = require('../lib/util'); var MONGODB_URL = "mongodb://127.0.0.1:27017/test_dataHandler_overrides"; var DATASETID = 'syncDataHandlerOverridesTest'; diff --git a/integration/sync/test_datasetClientCleaner.js b/integration/test_datasetClientCleaner.js similarity index 91% rename from integration/sync/test_datasetClientCleaner.js rename to integration/test_datasetClientCleaner.js index 0131747..88483c6 100644 --- a/integration/sync/test_datasetClientCleaner.js +++ b/integration/test_datasetClientCleaner.js @@ -1,11 +1,11 @@ -var storageModule = require('../../lib/sync/storage'); -var lockModule = require('../../lib/sync/lock'); +var storageModule = require('../lib/storage'); +var lockModule = require('../lib/lock'); var async = require('async'); var assert = require('assert'); var _ = require('underscore'); var helper = require('./helper'); -var datasetClientCleanerModule = require('../../lib/sync/datasetClientsCleaner'); -var DatasetClient = require('../../lib/sync/DatasetClient') +var datasetClientCleanerModule = require('../lib/datasetClientsCleaner'); +var DatasetClient = require('../lib/DatasetClient') var DATASETID = "datasetClientCleanerTest"; var DATASETCLIENTS_COLLECTION = storageModule.DATASETCLIENTS_COLLECTION; diff --git a/integration/sync/test_index.js b/integration/test_index.js similarity index 99% rename from integration/sync/test_index.js rename to integration/test_index.js index 1045959..65307dc 100644 --- a/integration/sync/test_index.js +++ b/integration/test_index.js @@ -1,4 +1,4 @@ -var sync = require('../../lib/sync'); +var sync = require('../lib'); var helper = require('./helper'); var assert = require('assert'); var util = require('util'); diff --git a/integration/sync/test_interceptor_overrides.js b/integration/test_interceptor_overrides.js similarity index 98% rename from integration/sync/test_interceptor_overrides.js rename to integration/test_interceptor_overrides.js index 2d5ca1a..757fd08 100644 --- a/integration/sync/test_interceptor_overrides.js +++ b/integration/test_interceptor_overrides.js @@ -1,7 +1,7 @@ var assert = require('assert'); var async = require('async'); var helper = require('./helper'); -var sync = require('../../lib/sync'); +var sync = require('../lib'); var MONGODB_URL = "mongodb://127.0.0.1:27017/test_interceptors"; var DATASETID = 'syncInterceptors'; diff --git a/integration/sync/test_mongodbQueue.js b/integration/test_mongodbQueue.js similarity index 92% rename from integration/sync/test_mongodbQueue.js rename to integration/test_mongodbQueue.js index b016f6f..0377a82 100644 --- a/integration/sync/test_mongodbQueue.js +++ b/integration/test_mongodbQueue.js @@ -1,9 +1,9 @@ -var MongodbQueue = require('../../lib/sync/mongodbQueue'); -var metrics = require('../../lib/sync/sync-metrics').init({}, null); +var MongodbQueue = require('../lib/mongodbQueue'); +var metrics = require('../lib/sync-metrics').init({}, null); var async = require('async'); var assert = require('assert'); var helper = require('./helper'); -var lockModule = require('../../lib/sync/lock'); +var lockModule = require('../lib/lock'); var queueName = 'test_mongodb_queue'; var mongoDBUrl = 'mongodb://127.0.0.1:27017/' + queueName; diff --git a/integration/sync/test_storage.js b/integration/test_storage.js similarity index 98% rename from integration/sync/test_storage.js rename to integration/test_storage.js index f68d503..8f46a46 100644 --- a/integration/sync/test_storage.js +++ b/integration/test_storage.js @@ -1,5 +1,5 @@ -var storageModule = require('../../lib/sync/storage'); -var cacheClientModule = require('../../lib/sync/sync-cache'); +var storageModule = require('../lib/storage'); +var cacheClientModule = require('../lib/sync-cache'); var MongoClient = require('mongodb').MongoClient; var async = require('async'); var assert = require('assert'); diff --git a/integration/sync/test_sync_apis.js b/integration/test_sync_apis.js similarity index 98% rename from integration/sync/test_sync_apis.js rename to integration/test_sync_apis.js index c542ec6..2982a63 100644 --- a/integration/sync/test_sync_apis.js +++ b/integration/test_sync_apis.js @@ -1,10 +1,10 @@ -var sync = require('../../lib/sync'); +var sync = require('../lib'); var assert = require('assert'); var util = require('util'); var async = require('async'); var helper = require('./helper'); -var syncUtil = require('../../lib/sync/util'); -var storageModule = require('../../lib/sync/storage'); +var syncUtil = require('../lib/util'); +var storageModule = require('../lib/storage'); var _ = require('underscore'); var mongoDBUrl = 'mongodb://127.0.0.1:27017/test_sync_api'; diff --git a/lib/sync/DatasetClient.js b/lib/DatasetClient.js similarity index 100% rename from lib/sync/DatasetClient.js rename to lib/DatasetClient.js diff --git a/lib/sync/ack-processor.js b/lib/ack-processor.js similarity index 100% rename from lib/sync/ack-processor.js rename to lib/ack-processor.js diff --git a/lib/sync/api-sync.js b/lib/api-sync.js similarity index 100% rename from lib/sync/api-sync.js rename to lib/api-sync.js diff --git a/lib/sync/api-syncRecords.js b/lib/api-syncRecords.js similarity index 100% rename from lib/sync/api-syncRecords.js rename to lib/api-syncRecords.js diff --git a/lib/api.js b/lib/api.js deleted file mode 100644 index 86e2a6d..0000000 --- a/lib/api.js +++ /dev/null @@ -1,102 +0,0 @@ -var packageJSON = require('../package.json'); -var initScript = require('./init.js'); -var EventEmitter = require('events').EventEmitter; - -//IMPORTANT: This will force node to ignore cert errors for https requests -process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; - -function getDBUrl(api, callback) { - if (process.env.SYNC_MONGODB_URL) { - return callback(null, process.env.SYNC_MONGODB_URL); - } else { - callback("SYNC_MONGODB_URL environment variable is missing"); - } -} - -/** - * Feedhenry mobile sync cloud library - */ -function FHapi() { - var api = { - getVersion: function(){ - //Getting The Version of fh-mbaas-api - return packageJSON.version; - }, - events: new EventEmitter(), - sync: require('./sync').api, - }; - - api.sync.setEventEmitter(api.events); - - var redisUrl = 'redis://' + api.redisHost + ':' + api.redisPort; - - getDBUrl(api, function(err, connectionString) { - if (err) { - console.warn('Warning! Could not get a mongodb connection string. Sync will not work. (', err, ')'); - return; - } else if (!connectionString) { - console.warn('Warning! Could not get a mongodb connection string. Sync will not work. If running in a Dynofarm/FeedHenry MBaaS, ensure the database is upgraded'); - return; - } - var poolSize = parseInt(process.env.SYNC_MONGODB_POOLSIZE) || 50; - api.sync.connect(connectionString, {poolSize: poolSize}, redisUrl, function(err) { - if (err) { - console.error('Error starting the sync server (', err, ')'); - } - }); - }); - - api.mbaasExpress = function (opts) { - opts = opts || {}; - opts.api = api; - return require('fh-mbaas-express')(opts); - }; - - api.shutdown = function (cb) { - // Sync service has a setInterval loop running which will prevent fh-mbaas-api from exiting cleanly. - // Call stopAll to ensure Sync exits clenaly. - api.sync.stopAll(cb); - }; - - return api; -} - -/** - * Initilisation returns the $fh object to clients - */ -module.exports = (function () { - // First setup the required config params from env variables - var millicore = process.env.FH_MILLICORE || 'NO-MILLICORE-DEFINED'; - var domain = process.env.FH_DOMAIN || 'NO-DOMAIN-DEFINED'; - var instance = process.env.FH_INSTANCE || 'NO-INSTANCE-DEFINED'; - var appname = process.env.FH_APPNAME || 'NO-APPNAME-DEFINED'; - var widget = process.env.FH_WIDGET || 'NO-WIDGET-DEFINED'; - - var redis_host = process.env.OPENSHIFT_REDIS_HOST || process.env.FH_REDIS_HOST || process.env.REDIS_SERVICE_HOST || "127.0.0.1"; - var redis_port = process.env.OPENSHIFT_REDIS_PORT || process.env.FH_REDIS_PORT || process.env.REDIS_SERVICE_PORT || 6379; - var redis_password = process.env.REDIS_PASSWORD || process.env.FH_REDIS_PASSWORD; - var appapikey = process.env.FH_APP_API_KEY || ''; - - // Now build a config object to init the fh server APIs with - - var cfg = { - fhapi: { - appname: appname, - millicore: millicore, - port: 443, - domain: domain, - instance: instance, - widget: widget, - appapikey: appapikey - }, - redis: { - host: redis_host, - port: redis_port, - password: redis_password - }, - socketTimeout: 60000, - }; - - initScript(); - return FHapi(cfg); -})(); diff --git a/lib/sync/dataHandlers.js b/lib/dataHandlers.js similarity index 100% rename from lib/sync/dataHandlers.js rename to lib/dataHandlers.js diff --git a/lib/sync/datasetClientsCleaner.js b/lib/datasetClientsCleaner.js similarity index 100% rename from lib/sync/datasetClientsCleaner.js rename to lib/datasetClientsCleaner.js diff --git a/lib/sync/datasets.js b/lib/datasets.js similarity index 100% rename from lib/sync/datasets.js rename to lib/datasets.js diff --git a/lib/sync/default-dataHandlers.js b/lib/default-dataHandlers.js similarity index 100% rename from lib/sync/default-dataHandlers.js rename to lib/default-dataHandlers.js diff --git a/lib/sync/hashProvider.js b/lib/hashProvider.js similarity index 100% rename from lib/sync/hashProvider.js rename to lib/hashProvider.js diff --git a/lib/sync/index.js b/lib/index.js similarity index 100% rename from lib/sync/index.js rename to lib/index.js diff --git a/lib/init.js b/lib/init.js deleted file mode 100644 index 268228c..0000000 --- a/lib/init.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Init script responsible for setting required parameters - */ -module.exports = function init() { - var maxSocketCount = Infinity; - if (process.env.NODE_MAX_SOCKETS_COUNT) { - var count = process.env.NODE_MAX_SOCKETS_COUNT; - if (isNaN(count)) { - console.error("Invalid NODE_MAX_SOCKETS_COUNT environment variable: " + count); - } else { - maxSocketCount = Number(process.env.NODE_MAX_SOCKETS_COUNT); - } - } - require('https').globalAgent.maxSockets = maxSocketCount; - require('http').globalAgent.maxSockets = maxSocketCount; -}; diff --git a/lib/sync/interceptors.js b/lib/interceptors.js similarity index 100% rename from lib/sync/interceptors.js rename to lib/interceptors.js diff --git a/lib/sync/lock.js b/lib/lock.js similarity index 100% rename from lib/sync/lock.js rename to lib/lock.js diff --git a/lib/sync/mongodbQueue.js b/lib/mongodbQueue.js similarity index 100% rename from lib/sync/mongodbQueue.js rename to lib/mongodbQueue.js diff --git a/lib/sync/pending-processor.js b/lib/pending-processor.js similarity index 100% rename from lib/sync/pending-processor.js rename to lib/pending-processor.js diff --git a/lib/sync/storage/dataset-clients.js b/lib/storage/dataset-clients.js similarity index 100% rename from lib/sync/storage/dataset-clients.js rename to lib/storage/dataset-clients.js diff --git a/lib/sync/storage/index.js b/lib/storage/index.js similarity index 100% rename from lib/sync/storage/index.js rename to lib/storage/index.js diff --git a/lib/sync/storage/sync-updates.js b/lib/storage/sync-updates.js similarity index 100% rename from lib/sync/storage/sync-updates.js rename to lib/storage/sync-updates.js diff --git a/lib/sync/sync-cache.js b/lib/sync-cache.js similarity index 100% rename from lib/sync/sync-cache.js rename to lib/sync-cache.js diff --git a/lib/sync/sync-metrics.js b/lib/sync-metrics.js similarity index 100% rename from lib/sync/sync-metrics.js rename to lib/sync-metrics.js diff --git a/lib/sync/sync-processor.js b/lib/sync-processor.js similarity index 100% rename from lib/sync/sync-processor.js rename to lib/sync-processor.js diff --git a/lib/sync/sync-scheduler.js b/lib/sync-scheduler.js similarity index 100% rename from lib/sync/sync-scheduler.js rename to lib/sync-scheduler.js diff --git a/lib/sync/sync-server.js b/lib/sync-server.js similarity index 100% rename from lib/sync/sync-server.js rename to lib/sync-server.js diff --git a/lib/sync/util.js b/lib/util.js similarity index 100% rename from lib/sync/util.js rename to lib/util.js diff --git a/lib/sync/worker.js b/lib/worker.js similarity index 100% rename from lib/sync/worker.js rename to lib/worker.js diff --git a/licenses.txt b/licenses.txt deleted file mode 100644 index 8522850..0000000 --- a/licenses.txt +++ /dev/null @@ -1,214 +0,0 @@ -fh-mbaas-api - -Section 1 : Async.js -Section 2 : Moment.js -Section 3 : node-optval -Section 4 : Redis -Section 5 : requestjs -Section 6 : underscorejs -Section 7 : winstonjs - ---------------- Section 1 : Async.js --------------- -Async.js : MIT - -Copyright (c) 2010-2014 Caolan McMahon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - ---------------- Section 2 : Moment.js --------------- -Moment.js : MIT - -Copyright (c) 2011-2014 Tim Wood, Iskren Chernev, Moment.js contributors - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. ---------------- Section 3 : node-optval --------------- -node-optval : MIT - -The MIT License (MIT) - -Copyright (c) 2014 John Frizelle - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - ---------------- Section 4 : Redis --------------- -Redis : MIT - -Copyright (c) 2010 Matthew Ranney, http://ranney.com/ - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. ---------------- Section 5 : requestjs --------------- -requestjs : Apache 2.0 - -Apache License - -Version 2.0, January 2004 - -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. - -"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of this License; and - -You must cause any modified files to carry prominent notices stating that You changed the files; and - -You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and - -If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS ---------------- Section 6 : underscorejs --------------- -underscorejs : MIT - -Copyright (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative -Reporters & Editors - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. ---------------- Section 7 : winstonjs --------------- -winstonjs : MIT - -Copyright (c) 2010 Charlie Robbins - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json deleted file mode 100644 index a1b9bf4..0000000 --- a/npm-shrinkwrap.json +++ /dev/null @@ -1,2421 +0,0 @@ -{ - "name": "fh-mbaas-api", - "version": "7.0.8", - "dependencies": { - "async": { - "version": "2.1.5", - "from": "async@2.1.5", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", - "dependencies": { - "lodash": { - "version": "4.17.4", - "from": "lodash@>=4.14.0 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" - } - } - }, - "backoff": { - "version": "2.5.0", - "from": "backoff@>=2.5.0 <3.0.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "dependencies": { - "precond": { - "version": "0.2.3", - "from": "precond@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" - } - } - }, - "colors": { - "version": "0.6.2", - "from": "colors@0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz" - }, - "cycle": { - "version": "1.0.3", - "from": "cycle@1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - }, - "debug": { - "version": "2.6.3", - "from": "debug@2.6.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.3.tgz", - "dependencies": { - "ms": { - "version": "0.7.2", - "from": "ms@0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" - } - } - }, - "eyes": { - "version": "0.1.8", - "from": "eyes@0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - }, - "fh-component-metrics": { - "version": "2.7.0", - "from": "fh-component-metrics@2.7.0", - "resolved": "https://registry.npmjs.org/fh-component-metrics/-/fh-component-metrics-2.7.0.tgz", - "dependencies": { - "lodash": { - "version": "4.17.4", - "from": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" - } - } - }, - "fh-db": { - "version": "2.0.0", - "from": "fh-db@2.0.0", - "resolved": "https://registry.npmjs.org/fh-db/-/fh-db-2.0.0.tgz", - "dependencies": { - "adm-zip": { - "version": "0.4.7", - "from": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" - }, - "archiver": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/archiver/-/archiver-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.0.0.tgz", - "dependencies": { - "archiver-utils": { - "version": "1.3.0", - "from": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.11", - "from": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - }, - "lazystream": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" - }, - "normalize-path": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" - } - } - }, - "buffer-crc32": { - "version": "0.2.13", - "from": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" - }, - "glob": { - "version": "7.1.1", - "from": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "dependencies": { - "fs.realpath": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - }, - "inflight": { - "version": "1.0.6", - "from": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "minimatch": { - "version": "3.0.3", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.6", - "from": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "from": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.4.0", - "from": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - } - } - }, - "lodash": { - "version": "4.17.2", - "from": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz" - }, - "readable-stream": { - "version": "2.2.2", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "dependencies": { - "buffer-shims": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" - }, - "core-util-is": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - }, - "tar-stream": { - "version": "1.5.2", - "from": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.2.tgz", - "dependencies": { - "bl": { - "version": "1.1.2", - "from": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "end-of-stream": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz", - "dependencies": { - "once": { - "version": "1.3.3", - "from": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - } - } - } - } - }, - "zip-stream": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.1.0.tgz", - "dependencies": { - "compress-commons": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.1.0.tgz", - "dependencies": { - "crc32-stream": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-1.0.0.tgz" - }, - "normalize-path": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.0.1.tgz" - } - } - } - } - } - } - }, - "async": { - "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - }, - "bluebird": { - "version": "3.4.6", - "from": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.6.tgz" - }, - "bson": { - "version": "0.4.22", - "from": "https://registry.npmjs.org/bson/-/bson-0.4.22.tgz", - "resolved": "https://registry.npmjs.org/bson/-/bson-0.4.22.tgz" - }, - "csvtojson": { - "version": "0.3.6", - "from": "https://registry.npmjs.org/csvtojson/-/csvtojson-0.3.6.tgz", - "resolved": "https://registry.npmjs.org/csvtojson/-/csvtojson-0.3.6.tgz" - }, - "jcsv": { - "version": "0.0.3", - "from": "https://registry.npmjs.org/jcsv/-/jcsv-0.0.3.tgz", - "resolved": "https://registry.npmjs.org/jcsv/-/jcsv-0.0.3.tgz" - }, - "lodash": { - "version": "2.4.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz" - }, - "stream-buffers": { - "version": "3.0.0", - "from": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.0.tgz", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.0.tgz" - } - } - }, - "fh-mbaas-client": { - "version": "0.15.0", - "from": "fh-mbaas-client@0.15.0", - "resolved": "https://registry.npmjs.org/fh-mbaas-client/-/fh-mbaas-client-0.15.0.tgz", - "dependencies": { - "fh-logger": { - "version": "0.5.0", - "from": "https://registry.npmjs.org/fh-logger/-/fh-logger-0.5.0.tgz", - "resolved": "https://registry.npmjs.org/fh-logger/-/fh-logger-0.5.0.tgz", - "dependencies": { - "bunyan": { - "version": "1.8.1", - "from": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz", - "dependencies": { - "dtrace-provider": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "dependencies": { - "nan": { - "version": "2.3.5", - "from": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz" - } - } - }, - "mv": { - "version": "2.1.1", - "from": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "ncp": { - "version": "2.0.0", - "from": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" - }, - "rimraf": { - "version": "2.4.5", - "from": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "dependencies": { - "inflight": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "3.0.2", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.5", - "from": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz", - "dependencies": { - "balanced-match": { - "version": "0.4.1", - "from": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.3.3", - "from": "http://registry.npmjs.org/once/-/once-1.3.3.tgz", - "resolved": "http://registry.npmjs.org/once/-/once-1.3.3.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - } - } - } - } - }, - "safe-json-stringify": { - "version": "1.0.3", - "from": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz" - }, - "moment": { - "version": "2.13.0", - "from": "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz" - } - } - }, - "continuation-local-storage": { - "version": "3.1.7", - "from": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.1.7.tgz", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.1.7.tgz", - "dependencies": { - "async-listener": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.0.tgz", - "dependencies": { - "shimmer": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz" - } - } - }, - "emitter-listener": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz", - "dependencies": { - "shimmer": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz" - } - } - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "resolved": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - } - } - }, - "underscore": { - "version": "1.8.3", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" - } - } - }, - "fh-mbaas-express": { - "version": "5.7.0", - "from": "fh-mbaas-express@5.7.0", - "resolved": "https://registry.npmjs.org/fh-mbaas-express/-/fh-mbaas-express-5.7.0.tgz", - "dependencies": { - "async": { - "version": "0.2.9", - "from": "https://registry.npmjs.org/async/-/async-0.2.9.tgz", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz" - }, - "body-parser": { - "version": "1.17.1", - "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.1.tgz", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.1.tgz", - "dependencies": { - "bytes": { - "version": "2.4.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz" - }, - "content-type": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" - }, - "debug": { - "version": "2.6.1", - "from": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "dependencies": { - "ms": { - "version": "0.7.2", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" - } - } - }, - "depd": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "http-errors": { - "version": "1.6.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "setprototypeof": { - "version": "1.0.3", - "from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz" - }, - "statuses": { - "version": "1.3.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" - } - } - }, - "iconv-lite": { - "version": "0.4.15", - "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } - }, - "qs": { - "version": "6.4.0", - "from": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" - }, - "raw-body": { - "version": "2.2.0", - "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } - }, - "type-is": { - "version": "1.6.14", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "dependencies": { - "mime-db": { - "version": "1.26.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - } - } - } - } - } - } - }, - "cors": { - "version": "2.1.0", - "from": "https://registry.npmjs.org/cors/-/cors-2.1.0.tgz", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.1.0.tgz" - }, - "express": { - "version": "4.15.2", - "from": "https://registry.npmjs.org/express/-/express-4.15.2.tgz", - "resolved": "https://registry.npmjs.org/express/-/express-4.15.2.tgz", - "dependencies": { - "accepts": { - "version": "1.3.3", - "from": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "dependencies": { - "mime-types": { - "version": "2.1.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "dependencies": { - "mime-db": { - "version": "1.26.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - } - } - }, - "negotiator": { - "version": "0.6.1", - "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" - } - } - }, - "array-flatten": { - "version": "1.1.1", - "from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - }, - "content-disposition": { - "version": "0.5.2", - "from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" - }, - "content-type": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" - }, - "cookie": { - "version": "0.3.1", - "from": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz" - }, - "cookie-signature": { - "version": "1.0.6", - "from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "debug": { - "version": "2.6.1", - "from": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "dependencies": { - "ms": { - "version": "0.7.2", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" - } - } - }, - "depd": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "encodeurl": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz" - }, - "escape-html": { - "version": "1.0.3", - "from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "etag": { - "version": "1.8.0", - "from": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz" - }, - "finalhandler": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.0.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } - }, - "fresh": { - "version": "0.5.0", - "from": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz" - }, - "merge-descriptors": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - }, - "methods": { - "version": "1.1.2", - "from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } - }, - "parseurl": { - "version": "1.3.1", - "from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" - }, - "path-to-regexp": { - "version": "0.1.7", - "from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - }, - "proxy-addr": { - "version": "1.1.3", - "from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.3.tgz", - "dependencies": { - "forwarded": { - "version": "0.1.0", - "from": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" - }, - "ipaddr.js": { - "version": "1.2.0", - "from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.2.0.tgz" - } - } - }, - "qs": { - "version": "6.4.0", - "from": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" - }, - "range-parser": { - "version": "1.2.0", - "from": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" - }, - "send": { - "version": "0.15.1", - "from": "https://registry.npmjs.org/send/-/send-0.15.1.tgz", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.1.tgz", - "dependencies": { - "destroy": { - "version": "1.0.4", - "from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "http-errors": { - "version": "1.6.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - } - } - }, - "mime": { - "version": "1.3.4", - "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "ms": { - "version": "0.7.2", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz" - } - } - }, - "serve-static": { - "version": "1.12.1", - "from": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz" - }, - "setprototypeof": { - "version": "1.0.3", - "from": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz" - }, - "statuses": { - "version": "1.3.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz" - }, - "type-is": { - "version": "1.6.14", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.14.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "dependencies": { - "mime-db": { - "version": "1.26.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - } - } - } - } - }, - "utils-merge": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "vary": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.0.tgz" - } - } - }, - "fh-amqp-js": { - "version": "0.7.1", - "from": "https://registry.npmjs.org/fh-amqp-js/-/fh-amqp-js-0.7.1.tgz", - "resolved": "https://registry.npmjs.org/fh-amqp-js/-/fh-amqp-js-0.7.1.tgz", - "dependencies": { - "amqp": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/amqp/-/amqp-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/amqp/-/amqp-0.2.0.tgz", - "dependencies": { - "lodash": { - "version": "1.3.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-1.3.1.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.3.1.tgz" - } - } - }, - "async": { - "version": "0.2.7", - "from": "https://registry.npmjs.org/async/-/async-0.2.7.tgz", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.7.tgz" - }, - "lodash": { - "version": "2.4.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.1.tgz" - }, - "node-uuid": { - "version": "1.4.7", - "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "rc": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/rc/-/rc-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.1.1.tgz", - "dependencies": { - "optimist": { - "version": "0.3.7", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - } - } - }, - "deep-extend": { - "version": "0.2.11", - "from": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "ini": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz" - } - } - } - } - }, - "fh-mbaas-client": { - "version": "0.16.5", - "from": "https://registry.npmjs.org/fh-mbaas-client/-/fh-mbaas-client-0.16.5.tgz", - "resolved": "https://registry.npmjs.org/fh-mbaas-client/-/fh-mbaas-client-0.16.5.tgz", - "dependencies": { - "fh-logger": { - "version": "0.5.0", - "from": "https://registry.npmjs.org/fh-logger/-/fh-logger-0.5.0.tgz", - "resolved": "https://registry.npmjs.org/fh-logger/-/fh-logger-0.5.0.tgz", - "dependencies": { - "bunyan": { - "version": "1.8.1", - "from": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz", - "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz", - "dependencies": { - "dtrace-provider": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", - "dependencies": { - "nan": { - "version": "2.3.5", - "from": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.5.tgz" - } - } - }, - "mv": { - "version": "2.1.1", - "from": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "dependencies": { - "mkdirp": { - "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "ncp": { - "version": "2.0.0", - "from": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" - }, - "rimraf": { - "version": "2.4.5", - "from": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "dependencies": { - "glob": { - "version": "6.0.4", - "from": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "dependencies": { - "inflight": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "3.0.2", - "from": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.2.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.5", - "from": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.5.tgz", - "dependencies": { - "balanced-match": { - "version": "0.4.1", - "from": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.3.3", - "from": "http://registry.npmjs.org/once/-/once-1.3.3.tgz", - "resolved": "http://registry.npmjs.org/once/-/once-1.3.3.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - } - } - } - } - }, - "safe-json-stringify": { - "version": "1.0.3", - "from": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz" - }, - "moment": { - "version": "2.13.0", - "from": "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.13.0.tgz" - } - } - }, - "continuation-local-storage": { - "version": "3.1.7", - "from": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.1.7.tgz", - "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.1.7.tgz", - "dependencies": { - "async-listener": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.0.tgz", - "dependencies": { - "shimmer": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz" - } - } - }, - "emitter-listener": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.0.1.tgz", - "dependencies": { - "shimmer": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.0.0.tgz" - } - } - } - } - }, - "node-uuid": { - "version": "1.4.7", - "from": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", - "resolved": "http://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - } - } - }, - "underscore": { - "version": "1.8.3", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" - } - } - }, - "fh-reportingclient": { - "version": "0.5.5", - "from": "https://registry.npmjs.org/fh-reportingclient/-/fh-reportingclient-0.5.5.tgz", - "resolved": "https://registry.npmjs.org/fh-reportingclient/-/fh-reportingclient-0.5.5.tgz", - "dependencies": { - "async": { - "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - } - } - }, - "multer": { - "version": "0.1.8", - "from": "https://registry.npmjs.org/multer/-/multer-0.1.8.tgz", - "resolved": "https://registry.npmjs.org/multer/-/multer-0.1.8.tgz", - "dependencies": { - "busboy": { - "version": "0.2.14", - "from": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "dependencies": { - "dicer": { - "version": "0.2.5", - "from": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "dependencies": { - "streamsearch": { - "version": "0.1.2", - "from": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz" - } - } - }, - "readable-stream": { - "version": "1.1.14", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - } - } - } - } - }, - "mkdirp": { - "version": "0.3.5", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - }, - "qs": { - "version": "1.2.2", - "from": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz" - }, - "type-is": { - "version": "1.5.7", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.0.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", - "dependencies": { - "mime-db": { - "version": "1.12.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz" - } - } - } - } - } - } - }, - "request": { - "version": "2.81.0", - "from": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "dependencies": { - "aws-sign2": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.6.0", - "from": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" - }, - "caseless": { - "version": "0.12.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "extend": { - "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "2.1.2", - "from": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "dependencies": { - "asynckit": { - "version": "0.4.0", - "from": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - } - } - }, - "har-validator": { - "version": "4.2.1", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "dependencies": { - "ajv": { - "version": "4.11.5", - "from": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz", - "dependencies": { - "co": { - "version": "4.6.0", - "from": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "dependencies": { - "jsonify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - } - } - } - } - }, - "har-schema": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" - } - } - }, - "hawk": { - "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "dependencies": { - "hoek": { - "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "http-signature": { - "version": "1.1.1", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "jsprim": { - "version": "1.4.0", - "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "json-schema": { - "version": "0.2.3", - "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - } - } - }, - "sshpk": { - "version": "1.11.0", - "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz", - "dependencies": { - "asn1": { - "version": "0.2.3", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dashdash": { - "version": "1.14.1", - "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - }, - "getpass": { - "version": "0.1.6", - "from": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz" - }, - "jsbn": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - }, - "tweetnacl": { - "version": "0.14.5", - "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz" - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "dependencies": { - "mime-db": { - "version": "1.26.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - } - } - }, - "oauth-sign": { - "version": "0.8.2", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" - }, - "performance-now": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz" - }, - "qs": { - "version": "6.4.0", - "from": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" - }, - "safe-buffer": { - "version": "5.0.1", - "from": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "tough-cookie": { - "version": "2.3.2", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "dependencies": { - "punycode": { - "version": "1.4.1", - "from": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - }, - "uuid": { - "version": "3.0.1", - "from": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" - } - } - }, - "type-is": { - "version": "1.1.0", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.1.0.tgz", - "dependencies": { - "mime": { - "version": "1.2.11", - "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - } - } - }, - "underscore": { - "version": "1.5.1", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.5.1.tgz" - } - } - }, - "lodash-contrib": { - "version": "393.0.1", - "from": "lodash-contrib@>=393.0.1 <394.0.0", - "resolved": "https://registry.npmjs.org/lodash-contrib/-/lodash-contrib-393.0.1.tgz", - "dependencies": { - "lodash": { - "version": "3.9.3", - "from": "lodash@3.9.3", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.9.3.tgz" - } - } - }, - "memcached": { - "version": "2.2.2", - "from": "memcached@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/memcached/-/memcached-2.2.2.tgz", - "dependencies": { - "hashring": { - "version": "3.2.0", - "from": "hashring@>=3.2.0 <3.3.0", - "resolved": "https://registry.npmjs.org/hashring/-/hashring-3.2.0.tgz", - "dependencies": { - "connection-parse": { - "version": "0.0.7", - "from": "connection-parse@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/connection-parse/-/connection-parse-0.0.7.tgz" - }, - "simple-lru-cache": { - "version": "0.0.2", - "from": "simple-lru-cache@>=0.0.0 <0.1.0", - "resolved": "https://registry.npmjs.org/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz" - } - } - }, - "jackpot": { - "version": "0.0.6", - "from": "jackpot@>=0.0.6", - "resolved": "https://registry.npmjs.org/jackpot/-/jackpot-0.0.6.tgz", - "dependencies": { - "retry": { - "version": "0.6.0", - "from": "retry@0.6.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.6.0.tgz" - } - } - } - } - }, - "moment": { - "version": "2.15.2", - "from": "moment@2.15.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.15.2.tgz" - }, - "mongodb": { - "version": "2.1.18", - "from": "mongodb@2.1.18", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.1.18.tgz", - "dependencies": { - "es6-promise": { - "version": "3.0.2", - "from": "es6-promise@3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz" - }, - "mongodb-core": { - "version": "1.3.18", - "from": "mongodb-core@1.3.18", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-1.3.18.tgz", - "dependencies": { - "bson": { - "version": "0.4.23", - "from": "bson@>=0.4.23 <0.5.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-0.4.23.tgz" - }, - "require_optional": { - "version": "1.0.0", - "from": "require_optional@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.0.tgz", - "dependencies": { - "semver": { - "version": "5.3.0", - "from": "semver@>=5.1.0 <6.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" - }, - "resolve-from": { - "version": "2.0.0", - "from": "resolve-from@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz" - } - } - } - } - }, - "readable-stream": { - "version": "1.0.31", - "from": "readable-stream@1.0.31", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - } - } - } - } - }, - "mongodb-lock": { - "version": "0.4.0", - "from": "mongodb-lock@0.4.0", - "resolved": "https://registry.npmjs.org/mongodb-lock/-/mongodb-lock-0.4.0.tgz" - }, - "mongodb-queue": { - "version": "2.2.0", - "from": "mongodb-queue@2.2.0", - "resolved": "https://registry.npmjs.org/mongodb-queue/-/mongodb-queue-2.2.0.tgz" - }, - "mongodb-uri": { - "version": "0.9.7", - "from": "mongodb-uri@0.9.7", - "resolved": "https://registry.npmjs.org/mongodb-uri/-/mongodb-uri-0.9.7.tgz" - }, - "optval": { - "version": "1.0.1", - "from": "optval@1.0.1", - "resolved": "https://registry.npmjs.org/optval/-/optval-1.0.1.tgz" - }, - "parse-duration": { - "version": "0.1.1", - "from": "parse-duration@0.1.1", - "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.1.1.tgz" - }, - "pkginfo": { - "version": "0.2.3", - "from": "pkginfo@0.2.3", - "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.2.3.tgz" - }, - "redis": { - "version": "2.7.1", - "from": "redis@>=2.6.5 <3.0.0", - "resolved": "https://registry.npmjs.org/redis/-/redis-2.7.1.tgz", - "dependencies": { - "double-ended-queue": { - "version": "2.1.0-0", - "from": "double-ended-queue@>=2.1.0-0 <3.0.0", - "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz" - }, - "redis-commands": { - "version": "1.3.1", - "from": "redis-commands@>=1.2.0 <2.0.0", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz" - }, - "redis-parser": { - "version": "2.6.0", - "from": "redis-parser@>=2.5.0 <3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-2.6.0.tgz" - } - } - }, - "request": { - "version": "2.74.0", - "from": "request@2.74.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz", - "dependencies": { - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.6.0", - "from": "aws4@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" - }, - "bl": { - "version": "1.1.2", - "from": "bl@>=1.1.2 <1.2.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - }, - "inherits": { - "version": "2.0.3", - "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" - }, - "isarray": { - "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@>=1.0.1 <1.1.0", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "extend": { - "version": "3.0.1", - "from": "extend@>=3.0.0 <3.1.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.1", - "from": "form-data@>=1.0.0-rc4 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz" - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "dependencies": { - "chalk": { - "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "from": "ansi-regex@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "dependencies": { - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - }, - "is-my-json-valid": { - "version": "2.16.0", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", - "dependencies": { - "generate-function": { - "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dependencies": { - "is-property": { - "version": "1.0.2", - "from": "is-property@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - } - }, - "jsonpointer": { - "version": "4.0.1", - "from": "jsonpointer@>=4.0.0 <5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz" - } - } - }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "dependencies": { - "pinkie": { - "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - } - } - } - } - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "dependencies": { - "hoek": { - "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "jsprim": { - "version": "1.4.0", - "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "extsprintf@1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "json-schema": { - "version": "0.2.3", - "from": "json-schema@0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "verror@1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - } - } - }, - "sshpk": { - "version": "1.13.0", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.0.tgz", - "dependencies": { - "asn1": { - "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dashdash": { - "version": "1.14.1", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" - }, - "getpass": { - "version": "0.1.7", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" - }, - "jsbn": { - "version": "0.1.1", - "from": "jsbn@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - }, - "tweetnacl": { - "version": "0.14.5", - "from": "tweetnacl@>=0.14.0 <0.15.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz" - } - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.15", - "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "dependencies": { - "mime-db": { - "version": "1.27.0", - "from": "mime-db@>=1.27.0 <1.28.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.8", - "from": "node-uuid@>=1.4.7 <1.5.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz" - }, - "oauth-sign": { - "version": "0.8.2", - "from": "oauth-sign@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" - }, - "qs": { - "version": "6.2.3", - "from": "qs@>=6.2.0 <6.3.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "tough-cookie": { - "version": "2.3.2", - "from": "tough-cookie@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "dependencies": { - "punycode": { - "version": "1.4.1", - "from": "punycode@>=1.4.1 <2.0.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.4.3", - "from": "tunnel-agent@>=0.4.1 <0.5.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" - } - } - }, - "stack-trace": { - "version": "0.0.9", - "from": "stack-trace@0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz" - }, - "underscore": { - "version": "1.7.0", - "from": "underscore@1.7.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz" - }, - "unifiedpush-node-sender": { - "version": "0.12.1", - "from": "unifiedpush-node-sender@0.12.1", - "resolved": "https://registry.npmjs.org/unifiedpush-node-sender/-/unifiedpush-node-sender-0.12.1.tgz", - "dependencies": { - "lodash": { - "version": "3.10.1", - "from": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz" - }, - "request": { - "version": "2.81.0", - "from": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz" - }, - "asn1": { - "version": "0.2.3", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" - }, - "ajv": { - "version": "4.11.5", - "from": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.5.tgz" - }, - "assert-plus": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" - }, - "asynckit": { - "version": "0.4.0", - "from": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - }, - "aws-sign2": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.6.0", - "from": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz" - }, - "caseless": { - "version": "0.12.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" - }, - "co": { - "version": "4.6.0", - "from": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "delayed-stream": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "extsprintf": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "2.1.2", - "from": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz" - }, - "har-schema": { - "version": "1.0.5", - "from": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" - }, - "har-validator": { - "version": "4.2.1", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz" - }, - "hawk": { - "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" - }, - "hoek": { - "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "http-signature": { - "version": "1.1.1", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" - }, - "is-typedarray": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - }, - "isstream": { - "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "jodid25519": { - "version": "1.0.2", - "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" - }, - "jsbn": { - "version": "0.1.1", - "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - }, - "json-schema": { - "version": "0.2.3", - "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" - }, - "json-stable-stringify": { - "version": "1.0.1", - "from": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "jsonify": { - "version": "0.0.0", - "from": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" - }, - "mime-db": { - "version": "1.26.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz" - }, - "mime-types": { - "version": "2.1.14", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz" - }, - "oauth-sign": { - "version": "0.8.2", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" - }, - "performance-now": { - "version": "0.2.0", - "from": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz" - }, - "punycode": { - "version": "1.4.1", - "from": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - }, - "qs": { - "version": "6.4.0", - "from": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" - }, - "safe-buffer": { - "version": "5.0.1", - "from": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "tough-cookie": { - "version": "2.3.2", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz" - }, - "tunnel-agent": { - "version": "0.6.0", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" - }, - "uuid": { - "version": "3.0.1", - "from": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" - }, - "tweetnacl": { - "version": "0.14.5", - "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" - }, - "verror": { - "version": "1.3.6", - "from": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" - }, - "dashdash": { - "version": "1.14.1", - "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "getpass": { - "version": "0.1.6", - "from": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "jsprim": { - "version": "1.4.0", - "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, - "sshpk": { - "version": "1.11.0", - "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.11.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - } - } - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - } - } -} diff --git a/package.json b/package.json index 8f8d5d9..8a48b02 100644 --- a/package.json +++ b/package.json @@ -1,36 +1,21 @@ { - "name": "fh-sync-cloud", + "name": "fh-sync", "version": "1.0.0", - "description": "FeedHenry fh-sync-cloud", - "main": "lib/api.js", + "description": "JSON data syncronisation server", + "main": "lib/index.js", "dependencies": { "async": "2.1.5", "backoff": "^2.5.0", - "colors": "0.6.2", - "cycle": "1.0.3", "debug": "2.6.3", - "eyes": "0.1.8", "fh-component-metrics": "2.7.0", - "fh-mbaas-express": "5.7.0", - "lodash-contrib": "^393.0.1", - "moment": "2.15.2", "mongodb": "2.1.18", "mongodb-lock": "0.4.0", "mongodb-queue": "2.2.0", - "mongodb-uri": "0.9.7", - "optval": "1.0.1", "parse-duration": "0.1.1", - "pkginfo": "0.2.3", "redis": "^2.6.5", - "request": "2.74.0", - "stack-trace": "0.0.9", - "underscore": "1.7.0", - "xtend": "4.0.1" + "underscore": "1.7.0" }, "devDependencies": { - "chai": "^3.5.0", - "clear-require": "1.0.1", - "express": "3.3.4", "grunt": "^0.4.5", "grunt-cli": "^1.2.0", "grunt-fh-build": "^0.5.0", @@ -38,9 +23,6 @@ "istanbul": "0.2.14", "jshint": "^2.5.2", "mocha": "2.4.5", - "mocha-sinon": "^1.1.5", - "nock": "0.22.1", - "plato": "^1.0.1", "proxyquire": "1.4.0", "sinon": "^1.17.5", "valid-url": "1.0.9" diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index 886b69f..0000000 --- a/sonar-project.properties +++ /dev/null @@ -1,10 +0,0 @@ -sonar.projectKey=fh-sync-cloud -sonar.projectName=fh-sync-cloud-nightly-master -sonar.projectVersion=7.0.8 - -sonar.sources=./lib -sonar.tests=./test -sonar.language=js -sonar.javascript.lcov.reportPath=./coverage/lcov.info - -sonar.exclusions=**/node_modules/**/*.js diff --git a/test/fixtures/forms.js b/test/fixtures/forms.js deleted file mode 100644 index bff5ce5..0000000 --- a/test/fixtures/forms.js +++ /dev/null @@ -1,124 +0,0 @@ -var assert = require('assert'); -var _ = require('underscore'); -var MockReadStream = require("./mockReadStream"); - -var formEventListeners = []; - -module.exports = { - '@global': true, - initEnvironment: function(environment, mbaasConf){ - assert.ok(environment); - assert.ok(mbaasConf); - }, - app: { - forms: { - list: function(options, cb){ - assert.ok(options, "Expected options but got nothing"); - return cb(undefined, []) - }, - get: function(options, cb){ - assert.ok(options, "Expected options but got nothing"); - assert.ok(options.id, "Expected form id but got nothing"); - cb(undefined, {"_id": "someformId", pages: - [ - { - fields: - [ - { - _id: "fieldText", - fieldCode: "fieldTextCode", - type: "text" - }, - { - _id: "fieldPhoto", - fieldCode: "fieldPhotoCode", - type: "photo" - } - ] - } - ] - }); - }, - submitFormData: function (options, cb) { - assert.ok(options); - assert.ok(options.id); - assert.ok(options.submission); - - cb(undefined, {"submissionId": "submissionId123456"}); - }, - search: function(options, cb){ - assert.ok(options.searchParams, "Expected searchParams but got nothing"); - return cb(undefined, []); - } - }, - themes: { - get: function(options, cb){ - assert.ok(options, "Expected options but got nothing"); - cb(undefined, {"_id": "someThemeId"}); - } - }, - submissions: { - uploadFile: function(options, cb){ - assert.ok(options, "Expected options but got nothing"); - assert.ok(options.id); - assert.ok(options.fieldId); - assert.ok(options.fileId); - assert.ok(options.fileDetails.stream); - assert.ok(options.fileDetails.size); - assert.ok(options.fileDetails.type); - assert.ok(options.fileDetails.name); - cb(undefined, {"status": "ok"}); - }, - complete: function(options, cb){ - assert.ok(options.id); - - cb(undefined, {formSubmission: {_id: "submissionid1234", submissionCompletedTimestamp: 12345}, "status": "complete"}); - }, - status: function(options, cb){ - assert.ok(options.id); - - cb(undefined, {"status": "pending"}); - }, - search: function(options, cb){ - assert.ok(options.searchParams, "Expected subids but got nothing"); - - return cb(undefined, []); - }, - get: function(options, cb){ - assert.ok(options.id, "Expected options._id but got nothing"); - cb(undefined, {}); - }, - getFile: function(options, cb){ - assert.ok(options.fileId, "Expected filegroupId but got nothing"); - return cb(undefined, { - stream: "fileStream", - type: "contentType", - length: 122 - }); - }, - exportCSV: function(options, cb) { - assert.ok(options.queryParams.projectId, "Expected projectId but got nothing"); - assert.ok(options.queryParams.submissionId, "Expected submissionId but got nothing"); - assert.ok(options.queryParams.formId, "Expected formId but got nothing"); - assert.ok(options.queryParams.fieldHeader, "Expected fieldHeader but got nothing"); - - return cb(undefined, new MockReadStream()); - }, - exportSinglePDF: function(options, cb) { - assert.ok(options.id, "Expected id but got nothing"); - assert.ok(options.domain, "Expected domain but got nothing"); - return cb(undefined, new MockReadStream()); - } - }, - formsConfig: { - get: function(options, cb){ - return cb(undefined, {client: { - clientKey: "someClientVal" - }, - cloud: { - cloudKey: "someCloudVal" - }}); - } - } - } -}; diff --git a/test/fixtures/mockConfig.js b/test/fixtures/mockConfig.js deleted file mode 100644 index 2669dab..0000000 --- a/test/fixtures/mockConfig.js +++ /dev/null @@ -1,101 +0,0 @@ -module.exports = function() { - // First setup the required config params from env variables - var millicore = process.env.FH_MILLICORE || 'NO-MILLICORE-DEFINED'; - var domain = process.env.FH_DOMAIN || 'NO-DOMAIN-DEFINED'; - var instance = process.env.FH_INSTANCE || 'NO-INSTANCE-DEFINED'; - var appname = process.env.FH_APPNAME || 'NO-APPNAME-DEFINED'; - var widget = process.env.FH_WIDGET || 'NO-WIDGET-DEFINED'; - var ditch_host = process.env.FH_DITCH_HOST || 'localhost'; - var ditch_protocol = process.env.FH_DITCH_PROTOCOL || "https"; - var ditch_port; - if (ditch_protocol === 'https') { - ditch_port = process.env.FH_DITCH_PORT || 443; - } else { - ditch_port = process.env.FH_DITCH_PORT || 80; - } - var redis_host = process.env.OPENSHIFT_REDIS_HOST || process.env.FH_REDIS_HOST || "127.0.0.1"; - var redis_port = process.env.OPENSHIFT_REDIS_PORT || process.env.FH_REDIS_PORT || 6379; - var redis_password = process.env.REDIS_PASSWORD || process.env.FH_REDIS_PASSWORD; - var ua = process.env.FH_URBAN_AIRSHIP || '{}'; - var messaging_host = process.env.FH_MESSAGING_HOST || 'NO-MESSAGING-HOST-DEFINED'; - var messaging_cluster = process.env.FH_MESSAGING_CLUSTER || 'NO-MESSAGING-CLUSTER-DEFINED'; - var messaging_server = process.env.FH_MESSAGING_SERVER || 'NO-MESSAGING-SERVER-DEFINED'; - var messaging_recovery_file = process.env.FH_MESSAGING_RECOVERY_FILE || 'NO-RECOVERY-FILE-DEFINED'; - var messaging_protocol = process.env.FH_MESSAGING_PROTOCOL || "https"; - var messaging_backup_file = process.env.FH_MESSAGING_BACKUP_FILE || 'NO-BACKUP-FILE-DEFINED'; - var stats_host = process.env.FH_STATS_HOST || process.env.OPENSHIFT_FEEDHENRY_REPORTER_IP || 'localhost'; - var stats_port = process.env.FH_STATS_PORT || process.env.OPENSHIFT_FEEDHENRY_REPORTER_PORT || 8125; - var stats_protocol = process.env.FH_STATS_PROTOCOL || "https"; - var stats_enabled = process.env.FH_STATS_ENABLED || false; - var appapikey = process.env.FH_APP_API_KEY || ''; - var environment = process.env.FH_ENV || ''; - - //MBAAS Host And Environment Access Key. - var mbaas_host = process.env.FH_MBAAS_HOST || 'localhost'; - var mbaas_access_key = process.env.FH_MBAAS_ENV_ACCESS_KEY || ''; - - try { - ua = JSON.parse(ua); - } catch (x) { - console.error("Error parsing FH_URBAN_AIRSHIP: " + util.inspect(ua) + " err: " + util.inspect(x)); - ua = {}; - } - - // Now build a config object to init the fh server APIs with - - return { - fhapi: { - appname: appname, - millicore: millicore, - port: 443, - domain: domain, - instance: instance, - widget: widget, - appapikey: appapikey - }, - fhditch: { - host: ditch_host, - port: ditch_port, - protocol: ditch_protocol - }, - fhmbaas: { - environment: environment, - domain: domain, - mbaasConf: { - url: mbaas_host, - accessKey: mbaas_access_key, - project: widget, - app: instance, - appApiKey: appapikey - } - }, - redis: { - host: redis_host, - port: redis_port, - password: redis_password - }, - fhmessaging: { - host: messaging_host, - cluster: messaging_cluster, - msgServer: { - logMessageURL: messaging_server - }, - recoveryFiles: { - fileName: messaging_recovery_file - }, - backupFiles: { - fileName: messaging_backup_file - }, - protocol: messaging_protocol - }, - fhstats: { - host: stats_host, - port: stats_port, - enabled: stats_enabled, - protocol: stats_protocol - }, - urbanairship: ua, - socketTimeout: 60000, - APP_API_KEY_HEADER: 'X-FH-AUTH-APP' - }; -} \ No newline at end of file diff --git a/test/fixtures/mockReadStream.js b/test/fixtures/mockReadStream.js deleted file mode 100644 index fe531f3..0000000 --- a/test/fixtures/mockReadStream.js +++ /dev/null @@ -1,22 +0,0 @@ -var stream = require('stream'); -var util = require('util'); - -//Handy writable stream to test with -function MockReadStream () { // step 2 - stream.Readable.call(this); - this.isCalled = false; -} - -util.inherits(MockReadStream, stream.Readable); // step 1 - -//Mock read stream that emits "something" then ends. -MockReadStream.prototype._read = function () { // step 3 - if(!this.isCalled){ - this.isCalled = true; - this.push("Something"); - } else { - this.push(null); - } -}; - -module.exports = MockReadStream; \ No newline at end of file diff --git a/test/fixtures/mockWriteStream.js b/test/fixtures/mockWriteStream.js deleted file mode 100644 index 507dc75..0000000 --- a/test/fixtures/mockWriteStream.js +++ /dev/null @@ -1,16 +0,0 @@ -var stream = require('stream'); -var util = require('util'); - - -//Handy writable stream to test with -function MockWriteStream () { // step 2 - stream.Writable.call(this); -} - -util.inherits(MockWriteStream, stream.Writable); // step 1 - -MockWriteStream.prototype._write = function (chunk, encoding, done) { // step 3 - done(); -}; - -module.exports = MockWriteStream; \ No newline at end of file diff --git a/test/fixtures/syncHandler.js b/test/fixtures/syncHandler.js deleted file mode 100644 index 3eaa6ff..0000000 --- a/test/fixtures/syncHandler.js +++ /dev/null @@ -1,44 +0,0 @@ - -exports.doList = function(dataset_id, params, cb) { - console.log("doList : ", dataset_id, " :: ", params); - return cb(null, {}); -}; - -exports.doCreate = function(dataset_id, data, cb) { - console.log("doCreate : ", dataset_id, " :: ", data); - return cb(null, {}); -}; - -exports.doRead = function(dataset_id, uid, cb) { - console.log("doRead : ", dataset_id, " :: ", uid); - return cb(null, {}); -}; - -exports.listCollisions = function(dataset_id, uid, cb) { - console.log("listCollisions : ", dataset_id, " :: ", uid); - return cb(null, {}); -}; - -exports.doUpdate = function(dataset_id, uid, data, cb) { - console.log("doUpdate : ", dataset_id, " :: ", uid, " :: ", data); - return cb(null, {}); -}; - -exports.doDelete = function(dataset_id, uid, cb) { - console.log("doDelete : ", dataset_id, " :: ", uid); - return cb(null, {}); -}; - -exports.doCollision = function(dataset_id, hash, uid, pre, post) { - console.log("doCollision : ", dataset_id, " :: hash= ", hash, " :: uid= ", uid, " :: pre= ", pre, " :: post= ", post); - return cb(null, {}); -}; - -exports.removeCollision = function(dataset_id, hash, cb) { - return cb(null, {}); -}; - -exports.doResponseInterceptor = function(dataset_id, params, cb) { - console.log("doResponseInterceptor : ", dataset_id, " :: ", params); - return cb(null, {}); -} diff --git a/test/fixtures/sync_db.js b/test/fixtures/sync_db.js deleted file mode 100644 index 65b4101..0000000 --- a/test/fixtures/sync_db.js +++ /dev/null @@ -1,57 +0,0 @@ -var nock = require('nock'); -var dbReplies = { - create : function(path, body){ - return { type: 'myFirstEntity', - guid: '5202699a891b400e59000001', - fields: - { firstName: 'Joe', - lastName: 'Bloggs', - address1: '22 Blogger Lane', - address2: 'Bloggsville', - country: 'Bloggland', - phone: '555-123456' } }; - }, - list : function(){ - return { count: 1, - list: - [ { type: 'myFirstEntity', - guid: '520269c9891b400e59000002', - fields: - { firstName: 'Joe', - lastName: 'Bloggs', - address1: '22 Blogger Lane', - address2: 'Bloggsville', - country: 'Bloggland', - phone: '555-123456' } } - ] - }; - }, - read : function(){ - return { type: 'myFirstEntity', - guid: '52026a18891b400e59000003', - fields: - { firstName: 'Joe', - lastName: 'Bloggs', - address1: '22 Blogger Lane', - address2: 'Bloggsville', - country: 'Bloggland', - phone: '555-123456' } }; - }, - update : function(){ - return { type: 'myFirstEntity', - guid: '52026a3b891b400e59000004', - fields: { fistName: 'Jane' } }; - }, - delete : function(){ - return { type: 'myFirstEntity', - guid: '52026a57891b400e59000005', - fields: { fistName: 'Jane' } }; - } -}; - -module.exports = nock('https://localhost:8802') -.filteringRequestBody(function(path) { - return '*'; -}) -.post('/data/list', '*') -.reply(200, dbReplies.list); \ No newline at end of file diff --git a/test/fixtures/testimg1.jpg b/test/fixtures/testimg1.jpg deleted file mode 100644 index 2cca8f5b882c9ce083439192ac0cc1ad5c5386fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136346 zcmbTe2UJsC*Dkt2K@gA^>0PCU-isjE00{!prG}354nax~1f?rgYLpg33%&O$U3%|L zkX}Mfxbc0z@B9D%o_od}=d6*jvUc`fW$(52nsYwSoVlL7o&lZ#c>gou|9$u;$NzV_ zapUHVKM5cIPvPdDgnxs8;O0%-=jP2njr^+#TrK>YH*i<|AE)bPfP&~|G2!DIcn<)4 z3cMQ>c-QR!D}V>!25|!q5BPV&9o!@!CcH&-n*?`(?Oy;s9{vqN0$iszZrvooyAR+F zDQ*&I5Z=0bU-$`;nd|3olUKaYDJAU%4T?>ys2rge z)6&(;G_!yLVD)S@|dfCzpbbrDt$lR(9(ct}ABTAa4Bm{MT4;UEL(W4TTtY z`W3~Wk=!J}{dDUlAtBK%;GdD;MnOPG`9$NE*#i+*qIaLaQ9acxX&KsQa|?>47B$Z- zT@rt$71G0muVaae?Ih8|cUXehB~T_s!h# zW`I~L76A0M4+8<3!M}i;xf!^h2tI%C-ZmFesaimaOEscTfKRx}%8h~eVEzj`HKE<} z^EWSPU+q2M0r@m2-vCJt`CsC@b7X4-^Y9;^T7?sPu49PqXjcw6BeD_#jF$OUkfyg@LL(u5)`B4X{ zi5NH3eCGE+^K2G11GlS{0f5J>L+*QUXv}sm9?d>DPJv8(j81|`ifiOk-Sc@tx39__ zMGGF!IWyXL=Kws8$3T&x-&g8t+wIqcPQ&-JPsOM0zYE&ReJ^Y&N}K4mkfcc;0sv0Y z?LIMhQ9jaeCB|#KLFF;u*ogwzxmJBKHf1+OnA_W=!!*k+dTmz2A2)n9BYYio&SsEi z?B1@;mfU6l9*=#^n|rzSLjv55zxPQ%T(dubyZ?UL|9rRU>52g27x>*p*fmpp5j_+8 zZ})EK>58|2c;&hJDG15*Cvoo;F407k@p5PsrY}9GcErAR*FycdJK?hYd;34 z;?$qp(ltzSQM2s9EfqNDK0BBv73Gj=mE6PQpN%@@psQMK;y`lzL`9pt92_+sx%y;F zOZ6Im!``j2KEi^k=FoZWo_@ig`)!6x8h}`tKM;58BAE;7UU`v9Wq z?Y#ezJSr~H_%jP#(ZcAb8*IL%{PzHkCj|6D02iMh<>x>=X}zGg0gC|N2lZKi;L|4R z-akcRF22M*08gIQ1-LnP`WWELSP=p6izqCE$+*V2wk)Y#_FHZd%p`T+BCPLyN1NtN zSS`T^*KxZ;QY9GMV_!qYRr88{g<~3<_9IdCQFygLGoYNR>O@qHSUq7UDxKvV?-1bk zDSVN7(@5*^ZA3+lJ>rNeSb*R2RESdDywFgm7`QujYzg40NbMA}aU)i*0S;C1(fT&! z6TTE*>UhdADtxzKqY3e|d&((p5oI^6s4$-Fc!i^%pQ*}-66|n|=4rSd83cnA3SR`` zy#fH^qNq%;oAKV(b9^m(^TF?zs9!eGa&NxlYp+I(sAnmvx=Y$;+3%9@WN1J^D@mxy zSY#fWAbzz`1=G)7p*=9`fwNG(zL*@PH-PULjBL-|2_|>YARh?a&Jotmz9rZPClTl;h)+| z0imFnw2eWl+E8|wZh_NZ9~;CQM#feW3s7j}pv{(En_1rSeTFZj z^K`4onkQVhDRV5RRo$wNy!=uPL@$+{^{``?KdymhzLjf0&zyXDMgTQ>B)j>pWpT@F zEhP8rS_)dXp>#$8;pMlo-P_O9(f68#UnR!E&YYU|$ulIEBsGVgcn)u`QN9=YQAtgI zn{!sX#PGTyeRbi4W9O+v6Zce~;)Dg-(0k@l*mQbkPT~^JtE{k2C4#3Sg;H7>JV8k# zktr8p(-ZbBmHC#H`DR`p#HX06rV6eBi%Qgk_G{o)`u4!+>RA+gnlz(|)aJP4^~3!T zJFTU72-ypSEtiwcuiuxTYv8mW9efQ?W02Rt_>733%EcLM!R;XZ8VF4m#CEUVDpLRO zRF;8BLwVhkiGRj=@0``5^(c|E2?;GyNT54Lnpu3*5jc|App&YoXynZ;INtTZ0d#j0wFs>{(_JEydHQhbInJV>{L1t1a!E!cQB-IXG8Ty#;`(4c>Yussv1qHVsohr2u`(lNwyK3rr zDu*usecnJ4DsePnIK^ziASvADbk!)j z_`BRyqcS(g#uhk|X7xK%;qm0ndF}+-#RXE-UZ-U@z-6&zZ-I1WMUA9C-=96Z*dO~ zXh_yl_2jc2iKrC<2v*p!Ihs*5MercP7Nc)-zWAjdJahp<)BlVbz>A;$HI*UlBd`6h zowW|NrK~2{&;WkSpP_K7p7pZ3$V#~=Do972V+E<1dT1SxxeH&V(Tcb?mTEx9B}r=o zGyFtQl+hfSFmn1lkj(h?#Leu2E4bKmI&mA^V))aQ$(?}?&Y~iKF!%9)_563~M)BYX z>Ud%yX3MJHv3@ReSt7~HSF+r&Ve-4*3zU#}4OR?Mi6ddapCvS?d$r zZd}FKx<8ZR5U_z}Wv!Y~N!sq5vN@ak*0ET+C4w@cdnjINr;X4H6$}+c-rTwR@q3~9 z)~4g~!pXhq`Zn%a!cH@n8QQYy?`B>jzB7(t$WOZymK$QZ#V5kyXzhr(m z7H>rl77AXGN2*6U4y@1L_v1c`m^FE#NAgT=ety03gZC7NpQnNf!G})kWNS9!P^5wJ zH--c=&?8DQKe03aS;RX*GDhMW;}HEj?M}TOb-ZfP_T~DGT;#D!M@-L65y>0Ll_FVD z@~DWStz}+aBzqjva@2yV;Sj}XniCzPTD>&t%KMuVBKzZR0<&{x?DRDEN2lcWiA}>7O$Jt zowrUUkJ}BVc-JcmU!pR8$w4}tYq!C8;Fd2d>ExocCWcLi=UoFau$zpX7?~>vr!G@j z<1?oj)ur{zhyk|(xP=77?@~U)@s4}=Qb_TntT>Z4!X&?};vrbmYc=_5-|sH;`Mh3q z45du*{!s0-MpniS*1aWlhw#Ds{54vD|m+E%_VRX=x5cF11yF)rHqU4m{>^qEMJYT|Jfkltd}V+m0_Qj53c9@buw*r9uR zU{E*JI3Wci$sqSrKKnUO#y@#xJ0~#etYk-J1`$hC{}4)hZz_c{F1*8fD#!L2aZr}W za0X`qRmxHfRUz#KWOfj(;HTh7qyE0n`}cCHXDX`ifJ(=pPP#ai^^3C#Pz-BwYBP92~4NDv8yC#I0QvU3n(z z71MhA@c~@U@}Cb2ybCjOFWz<8?Zd!AKHP0OTtwiksGW>#+>BbOs+1cvIrOJn?2%vI zV{B_#lS)(D^0RaB`njRKSz{)W-Z;l8YFWDdGTuiKdc|oLnI>>;W z$PP|-y%XGda%Ow*q~TG@>^SCBD;;V!ZCu&^eU*{5lCGiTTa{s1m&Ji-6rTj8aMv|J z7E&0PU>6%ArGr$=Api*?4Pr4}zk*>iL38q9m?6i?m8z*ydh40p73V{{WI3NWYi$c@ ztrf`Z@_vG2$1~~=Z~{BJ6jkjU%`^_06tN@$mpj5C2~Nbar6xQ1XR%4`sEyM!j|S@# z`;nqYDj(jahi<(}PgSE@kxeQ~;E8usb9%JAw^Uu_d1d(yy|Kl$*kmt@cUC(;7#fw^ zZZ2wcr`vj{UxM8B_mH;y04BB1;!0Qb%T&MulIN~=zM_03UF0Ju*QFX;vr@3?;@Rne zdL23GWqoSzfuT)uFMWltmKN#3YyJ;EgoLqdQUk&ix~i|f(K5I=@f5zDd~2jU`ttmD zt2qttF&`>FmA`HtU9}w07Q?!9cTpv|_V+QZO5y0vNH1Ixo@D4eJs~E0|BUuPWhLL4 zt8R}pHFvNoB-zwhdWXfIfHcdzQX)Zjlz08S-5S7;>o2m|?rMd- z-}!OIH=EJzMC;;vKWIudV#>us$CpU;z0B&;EVu}meDXBy zKG6kl7wcBYV(;-`uSib@yLXN{&vYM7TjXoA_BJck_f##M*Zuh_GKYK_v{s&SLFdh_ zM$x{)_4IuXv7$Ir=5k|H$eIAXJHr z!*_8uqQAtYdF@iCku11%?UJ6Sf}>5<+;z%Jp7Dy$(C(x}2%$(k@A)9kzL6|rs&H-v z{eiNPIkC6WnGwFT{$tHYjmx=|ONm;`-pzsO06Lo~NUvPIEOb0?6Pf?iJ645WlGc{l zNHW+(DF)FF71utLOySW_NU?8fPhaq-Uy_~}g==N?d>MFo!gYhY{-x=rPJ%dC522g3 z(32qDIb{1ihr2S>@r}jXCNyeZ35#dLdQtZmjAqI+0D+F3M`7|$KVJiZ`d!$fcGiwc zV+eBD=X9eL!*vbBU(im8UISh$P4jI5TN|4;{~t=e&Bg9oa-!!&%UN@eh+h+Ps`XUv z!m1Q$8E>ypg7A5?g-K=4Hs+x=_p2axq^4WE1>F;AjEOVR(eG4Glcub2?^VNqBk zH%zWqW zWsxz1OY>>s;)W?SA`#LJY(!N{@&oWt`R!qBPQd+2U;b&#_o?*Y{gtxhN*21l#*9mJ zFh$}{C}-qwJQrWYjnEGB;vK|5hPc_5!2Y9&hNkVDfNwLzWs?O*-l@*jWXCHm@f-$* zpt4lGFAf>Q7EC&4LMYLeS1mp2=?O1YIx*mPViG>>!Yfv^4P|Hw#7$#PWEqS-pyQHdZup9 zVaJ?$p}wLYv8*yv{3Sg+t5c14PF=o#6H5T=++9W(q$WK4Z1*ZHbL7z**s~bM8N{so z@3{;0MOkYnd&~VArH`0#2WyM+OJTLh`yZ$4(kK1qBVDDv#+~=1uYrU|h7j2= zwjz-}fb`~V@JGz5omN>iMnxnt$mrJ=*7cyT0h>gTSX5Accuz^ZYdmrySQVT$M@`&u z61f^ZC2N9hx(1Ns;d5X6ITH8a()$N>wI>KBgg0Yo*Z5@KYaX&jBJ-nKM{8(pn#4-{ z@6J@)>Y-ft?Lqu%&G&h(v=U>5bW@PI?(N3k>1h)Ju>6l%L90KOmeiDM6Mon9vZ)#f z<&ap%sg}={{u)tHK{IMyvIR(3B-S2ZDMHPW$$3on0??@Mh*0;cLl^~CB_Pd+)dDfd z1k1Vxq6bHg2(a$X6P~a7B&}qPT*RuH>Kuj~i*~>1W>I+o3d%!NddoLK}h-=1xO zb%Wz-o>@`z-e1qcO#j9!7+Dy?aSNAhPAaxKe47>M$vLHZE8Lp&)|#66e$F? zX135|h^}VJ`?ast^os&X(vIRvGvBVI;V-H$J@@$r<*z}j3?w%{SDJ7QW@sbI`z2S8JU)C z?AZ7;b6s!c(;`~R=x=(IAEJ1m$sMC=RMxXu9x2Kx@H|8?-5K%0VB_AMbHk4DNe6^f zPDNc|=Zf`jb5}#r^r2|81TCb_5mJkUp{zw4iA^^mQ|duK;$7P7+=y_#O|Lt&n!$MW zcu&xsUU6cbO4Jz9iza`=6=zn~r^b->>u2G|NWI+zDK*!K?d(BfwFFWD@t@1CiLWcO zGl#tm-pr?Bl}3gAo`t*a>g9C!JSfCTN6=^v&p{j_R^ReSkqms!s0>kdf;}N0A~`-h zkXa0Ft_pMPfCf!PWlUj~oduoCaDv+Ma686+Uq=01$5P1*Z<5t(ADs@f4IYn~cC);W zPDim==Qw$gJGQTCYY^05II=r1po+Q%RDB4WFi;F1%x0p)JB<7;E5bV*v$nV3H{;!) z+Bmth>Uc-5^isc4y06UWH(T3Mr3`PE*{`MF;?U0Yw-r1c0`X6@i0<8%n1rTJ?!-?;#zAY)T-Iol%0b6< z#Vf~s;+^x}PUMNz0~f<;8MNs~D^H-8epSt(i$ZXv0jrM`>zhspVq{>F|RvtNNP z?g1k4s7&!l$NX6uMdpQ)FRil+#$ue>)wrv`SDzg$oSadMl;*-XO2`19-3}zwbpCp; z#nNo<@~(zT|JDnJPUcDQ?5CS6clMGJzcx-&C^vpAdE&is#vW@-`Wbf9@CSfH&YwVP ztZ2|eB-D=}B^-1`^H*)QPH(;@u1Pp&I+P0e8&)ASn>7Yod^w6mQj9HNH4&0S63S22 zD;mHXpFxr(9Ne4EC1NALCQcrFtvkA+#4$V{9UJ-|q|5?D{2r66zJGuo`d7{TGKratP$qfM zNObU?J#arAXAy#J(Hj4&lOH+1lw{Q^)OdLPZ z7efQU3jlZ)?i+}A2ehlvf+l3}Pla$kd0FUJkTZR6jbn_nLQyL70(D07my0?=uvu&8 zL61YQN|{Ma+ykrJ+Am^UGP{8QwT}sorTQF?V*?VzCN$S~24?FcT@?;%FApE|JLs#F zO=jP9trG92Af6S^8E*y{)D^YqY{jiDsq3O+OtrXYM#>&IP=h7bYXeA8U+xm00m2^D7|o_d5F@88euntTF@#=41QtnKX@Y51K=Aj`K0T zcFL}rrlv99-qvG)(Qz&ixQ8QZ8Z^jqssV~TE=7QFbIzzGUk1SY4@LM-v+|nqQ@qaC zz+2Wv9dDbZTe6OjxXK9!)h52HDpnkpyd9f;1>5T=Pc^xFq@8LshOV;Mv-Zg_)?0x( z@4-aZ14`@OLOPpvAy*pm-@>j&VdWebDSI*DDWWe$xA4tqk= zOf-vLysWw@2@Z86@7v7Ea3JQUTrY(d{pXH~Yv89U?)i*jW8qUa-`?e17%t_RQPFTw zE|c5mtvd;Wok~M>)R@#}7luQ~d<=h{M5|}ru6Mc%-|AHL_rh|`VTWc_DB3VW?V4?M zo?F8R&L*oWiN>oic~H5RZ9HF#KFRlg8-?yGcMh5?&# z53t`!BF@b zSivzPZ)GlEu;cABoois{q>L3Sr5CiH!P;UsP{^d~(9bS#u4fJ$l(} zR&1p5u2$rmB=-Q-R*iv1dDa1cM$}~oYdmVlZx_Pf>c|xg|ErpbgU6@HH{Ma;mqZdh z9rsxKaBtqCXk>@kwtZoTGhH~-rL78=EqImh*XQVZoUL)UY;v$; z#&vOv?&Sq!nvo!+5%>SK_57LRD~9{t0g!S=uDdjzM-&^`^2OT9g|YXB&V!5Dv( zk8r4M()!==lJ%EIO964$K#w14JNX)@b6waoYw~o*y-e}fz~%bolWQOxJ9-WLc1(UG zipgO<-%&&3O!@6?6UUhL(JBAd?fEBl{1H7lnvmAD(XBN)*(2e6I*%1pM8AEFDsPV% zl5;w!s-~$Fehv67ypcbEOv5pbWnAq|s1KM^LHdO=+gO}L$aoAjh>Q1mnr43NiQ^Z0 z7WU*m2erK_L`QV$=2NYyhvG~{r-BF5r#;gb5_ReFf#iB}hXKp-r6l!zU80kNjE0~3 zct_i}u__r3i3g>)3EK$$W+>Taqp$mB6e7517QYsj?|vaW*ku#WAJM$K(BAbiYHsaw zq{v+GLdN*EHH3)wDV0e5H6YZYsnV_ZUgM%3+tr0BmG!s=78P4zX8|MdBoy<)sq+~Q z{p`$w%3m6$W(>BQI2kM*CT@;GyeyW|(y2e3)TO@B7`}@LPBl)eRe_*zWGjtdE_tRb z57cOZJhI`^f$Kw5r^D%aTh*n{7g;&Rv+&q9%c(ne;{%E$#rqC!i(Jsja&SDXu+y(o zP!vvEBT_*Nrk;T@w6G`s@2B|oItd}_ol23Umt4`_2@cjapOz}iC`>Y)1St}>8y{r$ zipK@Qi6Cq*y>leXbc-?oi0u*4A1<>oM3Nd`cUo5ziJ8MQ@Rvo|W=(uj5+yfx2NDQMy49Uv`#K2b@JUGw_D_T%tn z7Nf?Z=u1UWN<$JN&9BAPwby`Vj$#&F<;<%8?|RgZ&E6nU&ZjfW{SVcJ!wy~qFp}6M zuMwd>uR+?UkxpO783lc;X<`IecUR~;C90^Rm0GyapXD_KDOg0VM4VKdaGURb9dSe9 zsRMcsT@*U#G)N!VPXkF=hx&1HojIt!?8!pt3grtBSFoq2M%J=u5r-~Pxq6f?Bczdv z;~@#Vg>{V^nMbq?C+;5)vC`U$QVwzq+IGmi>Y^NlTf{itRgbi$bU|hMf`u4UM3&sV z)+ky3Xh)GH60{erP2$KwEFM>8K|x?4&sIsYq}XT--I@Y?HNLGZ{9Ylg7uO( z4jxnsKT43_Z0f!o#rCOVemgV3F$rj#b#Er(zOSc+bwgkz&mUG#V948GHS+T@c$~g?Nz9d_cN1Y!-Vn<_tS>CXsdKaJi zOZiD-eNwlb?rL}qN9Jt$i|;w>C+wuz3s0$xDn9e@Z=1#j`}@2-;rrXbkBo1fQ)QI1j|3O=7 z_yA`wWnQBBUa6quHBIe$M#Tf#&&=xtyFU?p!dWqafBV+q9*(}W7ogu5R%&$jC(T6d zbEWCkGnVf-IOXi-dbm)UZ`b;2T=2;52mG<*#c24w{2x|^6^)&LOqMt%5n~S6E8Xr> zk!85K0E4`12gew!{cl&OAh#EVxwZLp0?QF=o~KO0BddRn7{&+f5?%QBx$x_QDoS+Y zX1~+?v0nu4ngoQ5PPj$05Pimh2TeEMS+4NkuCBNdQ=g%fe z*n;ECGmGGXugtP9@)N5C2IjMkEbAa6$$Iqnv={5#&hIVZ+>%0?LFHsFCd2+3x5!v) zJjG54OvNT%836#!&kew5P*!0uQOvgzlfs@2_jmbaFTMu6(fV1|7q~X$rDU0~WxVE|E0!3rF!`SB{hN{NP#{ zK5UH5LgSeGIS=)QJntPTNS11r1v@)TY{N8AqjjyS>P!K*t{$Jg={=Bod1u6N{f825 zarL$zHscmaIlZDFd735M#LJJ$&O%7)t&Vk^E5aa4xx(Tcv?u75>R;1eKV3NKtYmrA z5ITbi8?d)z)GDo0c$Wc5wLGh(bU~`+NP8MpXGzVAMrLvMXxKLWZd>f_-1q=zkxA{A z99r6QES6Dvjea92H@XDA#A&H=kcE(D)7 zVnna*Lbni#O<}6-4xLjw668e1(q0Q|3BrsV^)DOaom;^4PE@x0xwdV>m zjDriGwbSTC&n1PUNM2w0^XQ`o9E*&bRFix2MpY=jEV>&}Get-u!HrL4(ej8p9cg8vMyx}?Wm%0wrSXTa#gj&ys$Z6KQY?SwsIq6NnwC^6 zP{k^9SccL-qDJDBd+u}%om~SrKd`oq6o#Z|#o+8yU1fCbmDa?O zJl$L6tx&FEC*jDYdUq0OGrRJ<5%8GpXvnw~y*`d;Qm9@~@=P2&L&JySE(Pa_D)-vt z-!s=OBp#PCIrZ*1heu`iRz_Htl1`BGaXJQ1y-X$hm=kASLS-4h*~@Gw)aNSnK4G5a zwf;4LutJY7!ycoCN7{CAfBoR>86En{DF9W!J|>+tF}%pWnBb}wzOht{uBL1Jpbu7ZfCDsQnB~tXis4w+@{P6MUEY`(EDobM_&!gL z9bezrqP=8gMgKS$xdz@b5?=#Lmudkf_1>_#rWMv}fFWuThhI23`AW#+JUd-j=W!4n zr5s}q{OV{Obs5Qur6M2KLqGEdmGQD21TQ~he%EGRSw)s&X_!8>?Fn{GtDdLlq*YGdsvrAY zDca0LUtV%#MYOF;Kj+}G`Pi}e`)8q|Y;{w&&I1(asUXUE+~U~(fPU#ld*?}2OtB$q zdZ%f>slK7KPvX?f>(u;^NpZ+jLL|dB3>k&`Y~#|_>fWN=qJz?m;;9(UF^L4JiMo4& zMiyw*a@i90V_P|wh}9n&XU|7r<}gDmKE90amsslD30O>15Fa}<+v@pphc$EPa-_7J zRcbh(g@*6b%Wa+_aEMkmP4`Bs%|-edb2l1x1Hu~BdKNadlifbtHsZ@F;lS3{6$|6)^8d8+wcf-)>Ngk(gW}18*dH^dv>3>Gd@aQI_g_6 z13BKY2x?wwj9i}OHD4ipZf9{24=p}>DNe5uVo=s@fQVe2eb~rFd;3uTO$!q2{5&?m zuOar(w+U&q)+WUzXkKkhoHwgNspj#0X>l}9O)DbWhC1&(Wxuoxd)zo$P69je0W+RK z-E`pD3EL4c4|t(Ik%Vq=t39q)JyRN3gDsU@e(XQ2g;XW6P`=^OMGjn8Al*vN$prfr zj(6F%nwFI0Gw*61qk?hRpp9Tp!O-P6wog@D{7|7G~d+b>MrUnuIfa1*3$q(FaQ4f&SgNbOMNJ0loBQOMv~)<;#GAj1Du+x)!y zrwW%_c->OFq`gALdF8?H3kPWOzWOpNRHkscaKsU9RWj+1>>Tv+ZR@VoV@`8OoVTnH zrpz!7Z?!;bC2;BdOyDrQvv%@kOe-?8Aa#2=eghKda-~2G?NAe`vhlRXIJ});vkHVcAK~EpHHW{QU8+d&RL^ zk5ff~5}eyJjuES><{VN`mK?hK%7432|IH2Y%I8$HzD+@3keA})`<15v@c2)?R3QL= zu$irmnHW&buDsvEiVI*0SZ$`y{y2q>yUb7CSjCbCD*QMw%(Gv+gNxeP`_Zd>!V|CA z09PA~yRj6|5e+(j1WvI>MpO(<4pLU2JlBbP*#P^4RT5-HO{hiKG{9Oxbat*_S#>sMvOIrO$*!9EfoHn zvDWdZ87Rn1j?Ww-epb7-hSbts?GL^KIyv3dQSO+2ZgLraLxBISmo*t><9BgWh9*wn zUYJEH6B~yIW(XHJ!eNd1dGqfXz)b=p!qc6wVEguZt$c~u zpJ0>N+kfT;B%ad@(BA-643z=+Ms9}z-~WWE@B*drpWV_RzHgIj{TZx)ySbOCz&GWh z?Ifo9FMPRmiEuaQEzFbC(+gK;L)+7?rQhVm(Db6|xgb4Fib$|gJXg3RmJ z8-^C;Uv~2PSAw$l&&0#~gmqk@A&RMPt{+AV<>)G>b@lw!8EgHSTZY1y>9*a%JI35q z?CYjC!WNm}Jy)oQ71G`})bDJu=Wcc=iA3$dBPROjpTx_ayzsn>xi7Okg2S_XMQ|p_r=K-c~;|>{jI!8#$XLMNM(*j05u24 zIg3yI+^;=Gzf1RW#=iOSnH{-<4w%#0B_ihCp<7o0P;;d?8jL#$v!mRWtJkZWvTJJQ*gy+-gyv1~MX zq^s=Bhfwf<@Imbr^YA0lFBqxS0LOMdh>**)r@dpw0Hv)%+Tsd`V@hIY5_A776FW+~ zMcWhw@2h;~dG=`L%E_Ss?vvyejE_<2!rmBII#yP0Vx^AG=yt0=#1D5z}AleMV()2OMpu+Z` z7Ott|+!^O*G;+32h3b%s=B#%W|E)YAu(@EfT?ug=Ydxoos}>|FY^jFa$x$aW5D7h{TH$-}6~Avaoi?0ZDV$89alG1xxYD7`E4> zZ4^Q6%M5M9?XP0XUSlj(@8+xiMdjt*S=B{>mowQkE@6Dw|R%SIC5SuFc}^gcS+x2|uV^8{Tg zMdYYx!3sjdjTyN#IpR7ehL1vz|%5q9jxi;LBsvugOW1uW5t^cs$>(teR z@QU2p3&>UTD+&MO%udqpvbPJahEwSDN9<>E;P!aFIUti&M* zO&*OlGc$0S(+<^)&A`18`i|;oxn5fRZvMpHeO<`suHHuYp$({JFzL+mp=fMbteTeX zZdreim;cz#wwL5ZaKQIQ4tdSlfZs>*6vADQ*KVF23G;4aCL8YKukccqDqQ`f@C%?_@YR|%?Rd?t2s&*d*hqz=gHt$oNL5Q*# zUPB>#4+`n#YGeexW-iKRWTF=`(6SQF>XwpYHDr|olD_r*p?$C(U&#u3j@Mn3A#st& zu^ipBQRMhHgS0Kp{11in!})62OHw`jS;si)aB#;Bn%^w}Ax?0XX(L=YjViA;5_>af zC*pu}Lzv{zf4^LKf^$ecH;xDgWm3o%zvD?6#j&Jy~Ksc3Xuj9xvCcf_%#mzAUbus8K8E-#qjI)JN;2!{v>?O zx?+OjsG7#6AfXsvXc}}|8`r$*9iAF zIBpU$&0Np|x1k(}AB#z`Csxh)MYr;p$h8ds z5YAGUu=CN_k59Ab<6p`fMqN90i zi(XQ@#m+Y4C51KKcQ2wePok zK6!5uuBN`2^&wDm*e}^I*jO5?f>Z8;!m5kygEny2=BVMKwzuuFzX$<*01z5Cl-$Go zlP8|vtJW{`r{(}dVYtb(s1XgAd7?z$V`S2>8MynzC@a7o<%!fU{)hSa6QKQ1=_Njc zs(#91Db~nnkUV%-(zp}@gykT;oQR%=i7z*Z;DWcT6@jJ6xau(PZ%#su9*rL zs}cHdp@@L~39Tna8PsuFg?s@t{y&tx2|QH&|2BRIcanUYZO;tjPt;Lq}!Gj5gtPGMd(^zv9Jcnpq1w=av@ zqCg8-do5W+ZR_`WV^r&9dBBQ6C|^tHFS&z@{(LzKlY{XPLv=X{h{iM)kn{WMp`y8b zm?rkIZD!Ov(E`PpcS4icpL?2nH%GE`Qastq$Gr``*K^e{4GfcK@!2@Mjrq%WzbmTlbfU+HV#>TukMgnp%8nF z*Gq`@feSCtS=wek`2?PWj^+&S)=|U#as7owqQ7O8boXxtSO(DWho93V z^lL&|fH`g8>ALFAW6QsNzK^4XvNog2t|kV|5d5v2m@uUa|8Qpie7Nv;*tFo%1u)>t zLuCq_F|OvNCEtsPH?qu*8hL39#FVKfzfI!kykctx9)|sBiGKK_bG+)QM(KQeq_FG#78@;dQHY_a)BrvC1Y$OTAfC-cthsZt zevPerU0Vk8y#3TR?seLhaU37Mmx+qR0eUw(Z5c|rP5iJ|?RDZhkIRV!_YU7(yvllS zadGA?s0@TsUCloycr^6JFU8;|L4>9z6B58Ex;%1YjjzC|?t#lMQ5v~#Gj+OrJ#%0F)1l#CxBO@Q z{Fk3YZKj6-V+t9sc5*ktJJ84U+<23_HH=skKWI-A>j;ctjaS=@Z_IV_I`GG@|w z7+1RL1&g6?!|#?R!F0tW@gPSjuT{{1nRrpilyo50Ro7ZP2wA~)v?+5Xj4Wb>Hoaif zUi=k_uyy|B&I*54k~@j2Lo6mQL#OdM)oC3|h$g>eoYU;`@H&42s-du)ebHD=aoVb5 zRV!%_7}mt92~NZ>?(fDdYv^FdQT!e2|C*D}yXWsd^v!~AIw>q8Z>M?-WH5^l?E6Vg zkscw{%SP*?&wEVqBgYNo&c>C$Tf6>X;SmMP=mzHHtsl+p#iqmmh%mWg<-Wvd=@Rf_ z0w(`QH))~j#(P=F23m7AfY-?PpCiwuV=5imr`b>I>ch!Qm79)Br(kE}*y%}@uk9~SdN>nMD@u>} ztK#JK`*|RY^txb=X&4eR6`kXI%3m7_n&M}tM_H@WCK;Vuy-3sK zW`nVKQBNJppVTCjM=vkrtEJfC%|pclK>+{}D*mx4dA63lzll2r_v9Dsu5e9P&paqu zU!!t*Q^N3rX;!4Ob3}3LL$Ml4a@fM&$E^OB&=K6{%aoC#fq!K}*z6`xw{j(jAx0Ws zNo#wmijga3(P>u4Rh&#_|xhl&TE#jdQxBAjz*wrxiN*;k<|7Hg8Z}hWB=4#2jp$=|DoKVFOd1$Gr~X)_286+&$jgbjFz{s zmcJ!VpDa!bFfBMaH@pHiMz;^=!|7Xu&^5x04+L%z-`@RC_osh4v&sih{>pvn}?yl^eX*~XeOtIW_^f>aZwe&msC4UD7KSR z1JDU4hD`2&iW9M;W6ED@6%LQOe_DI~r-=HxxKCjP#?>f_fljhVv(8_F%|7)M9C zFX$M73KRoh#1xyPSQIBFSn3U9$8ca6WIZ>uO_SoM+{)J=ehaIyvL?yM%k8uQp4vB$ zV2F=0(hAz5p3&3Dd=5dJYBe@gVJ#m>>j(~5?4wcyQSm@jLbBi!9#g_xe+$ckB3~hQ zccUS1jT=T_%3y^b3^0W1{()?%$zq}Og01T{rRTXdyvS!%!o)rNt?~3|w-5WQ22XoGtR$`mMf1OXXci7vic{rHCG|55tO*9Vt`Y`Y23U6k z)I+5WmR4P%R9P8z_JaOO(NV!VdP*dO61ElHlN^w*XUL#WmF+`iQ%8*0f|AOO;HVbwDJI(k)2xyHBlST3_sFebXC6?1Q$ zs;Fy22s*@LD7RtZ^`&o1g3-gaP$4A3^56dWsk{7aZAwo-G8Z7|u$Gt3wX7`>!W^ii z4{_cH)=j3>WfDV1bz8~2sJjhF%hb>P)}VFSS>baIy;^p}0H!ab*3SAgKx|=0oI98& zqn8?>|Jlst-+nFx*+*%RcCq@wnxQoLs1XWuD3Ab3lYcv?5=y#zK_};+a)i7cFPTCr zPZ%A2kN}F$7h+)*4St%uKy^{Uhr?A#Qu!^Gv{AQ!+LI}Yw6bJoUG!oEI^;j_Rk(!{ zK4G2jW0;iTMbC$;J?{a!MqXBbcdz}>x4ixyriX`97WNN=T)X4*TTDdAI55eC6q=$v z$Em*5eDSsW;bA>buK-h0`JM2hA`&NJ$inr-F~c#PDcOSqjE0g19G_Axh&Y3s75wTL=aO5ya*(nbKx94 zvBp;!r4a-i)?!SzAqJ}~AO?Jp_uPaDp89FE0b}K`qK%FWso%XHmiH&H;5^@Gq0+St_b8sy*cyBj2u71uYDEUAT*2GSkX08a*3$Z@Mw7L^_ zH!jiqs7KT4rX8@cc>@;aj2Nm^>~x#JL`;X9VJEK{VhUYMESb*O*(Rr7<^y<)Vq82doRgXE;6@r%0@y~lJ!Z!wx&TPp+&yrc!r zd|xtBi;oI?4(K28MpG?cE^nP~w&wL=-_LetXTL4W-IV2K=M14zShBkTsY>+qMR8R+U$>0O z_H8Sm72sZoQi86byPl`IcldpuK?7x7{q(eCY)1ShjrNtI$EWIoo6VMrD5EE!5=Z3B zDeU*Q?eLztF1S%`;(6^~YeNa~s+0{v{>W{oj?G(ozzQo(B}Z|4m^ly#eMRn$|-y!z08fC1wy7ezsr8+V-u$tQN4|Ut2)3iPcinMq>t@Uh(SfmVO>a2pa42#@UuYDX-EPM zJ4HV0Z*tRnCSX6C5Bvj#s+OV}6MJTz6}LGAQyx|hkkp;NdqC1s@LJBz%a~X&zXKXt zMl&uiU{ICTAI_LqG!(LyK!#@k59^ppz-b$#&%@3{$pqH|(0{HhTGka7vY^~F1-wEb zRpHdY(%M7T`8RNBbq`W;={ADu+5S?Boby(=@AdHcALgu8Q>rfi5r)n3w9o{Zr_{ zs^Gpl%F#IkQ8!&Rqwwu6-c|v)n-D}@xupbgghI6XW<7l;#PCz;zzgi(j-z=L6@X0w z%$0|_N#77G=>v-`+W#=vTBKe!$lFcMfSWj|j0t9})#q3J|Lr#LL(0FM6T@o&coLNS z5N$$_0Bvx9k9ZiVK9!t_j2dOj{pG19@_R|SZ_#Al;r3CCVyqM&_9z@RY99(=a`SKg zQXh@WG6~W+KebiUR&(Btx#D$%<}j%??;TM_oq}E2BIAAWNLn>qbaQ~2U?1!EZ+CF~7itrViuXC6Q@wsi zhOsI>09r9%)r=u#HRC@;4%OZF+htTRG&R5_ll7!oY{M~FBfe($-V2a-57l^s*^g@> zx*HZ>@cxUG{3lJ~vYUK%v##eI;x%qj!NQB(#5&xRxr}KRP4C%Y{%-8=2 zzV>jbdy7AdvaPjG<$}GiO7Z&}qJy1ddFbcsr|w#jLiA-!#I1RbWz+({*s_YQKu#zf zf5A3u{X*kuMK$QA&d6h$`(4inv&*-sI62WYZZ3(0qBY?B_Eu~%gPLXn+zuzKZ4 zf?U&j4dMK;uJpnHvRD~%gwRnVCNyE`NdX-&@MeDKemPT-jmY_1|UA4*UAwnOfhoN^s_rX!Ms?FmhE>CgAH0L02{V($;2f5Y^{P!SfJf z)>4Tz!rl@Bw3RSKs|2sBlxmO<4W_`dH@p;jWMs${HI`(xj5U$0z{cH)E;b4W?<{JH za=U(`GJw*MaotU%e@ z0>E&$4Mf`jL%;Sg@C&9^APNHR;zG@i96(oC{7+v13&SnI?mt!jA+!Jeu7|*yUXl@G zEgrOC#jVX~QpZsyZAzoimI-DhSeHl}_Mm&`XL7@{y4~YlSB%bUA6eRFb-e!y$Dh`w zL~F*5U2uOVMmXzdgc~wRVY)9)P_~v*uFq{XHoeY&lBkp0{;+^v##W@NT6_*oJ7%s* zWFnE~Vsd_p@M1>Wc)7)8msJnlw5b-wjfO(+lKHBXUNcpY7Pgtf-Ilh+vE6OTo~(Y5 zWEwum#UP2!m}5BQ`zAko1`i`x)`x^-7Gn+|vkCK{Mt;4DnoT>UgE#2NF=hl{>k4`q zcsOSY$i7~Q2_e=l95nb0yvKeHM0Ag2MJE=;9N^L>ptpW_CCYuE581*Dcpj$%pqjSV zCz78Jwm!y9-~?_#&zNfuZk*)B;(9n%0(T*`aV;*rij zvo!pMJ5~Grb{brQO)tP|X8hGxi^y<@KqN8-#-caI9!GxS4K; zDUt6k@B9Xs)$iEbN~Fp+d!&85HO{dlKj}e;;A1-HunjOGbBv*~<`q%++cYbXW50@z z#>6n&jgwg4IPABB);a}%Vy^@z`=@D6ot$r5HlH9=ia3_M%s!x;G`Rt)bfBNI7etlo ztF71qi^w&Luy62yibHEQebZ8`e2G6Lp2tPaS2GW;2nOEk*4MSH2_={Xp^)I!bjZC} z4|Uy%V9m(8W1c|||-sSkq7O(i|2&*R~JeXC$$6pm2nY>I|v0IxR{I zV+JvRFD=l~(1X80_=^yJ?`y$ylQ-t<0Ch$Fnodhq__nxSmtPz@TeASvlg#?qpCNiY z1Lao#4Ch3J(#{jQviWO)$L4^9)8{7GIzy+A*$`#^F6@0|h}4=GjHH$L)%Dc91C;Ck z|AD03w1f^Y_N3k*%Bl#&_Ulszvz`u75Dpn64EK#U)8E&jC;!`>s9e}ZzJCGELryM8 zHL)Wa>l$^u?f@QjC^A3NLPk3}S$rvBDBL;!?lya_O;W8H>*%W3xqA?FV>He|q@o2` zx)`lTQjIahDwkm_202oiFau@q%PcFvs}6a6jxfN_wI2exJ+p`{NdN{WXcBrVDoHyy zwyXZ@T-AOKDJEGTgfN5t65u^pHR#ETtCQQxv9KrY)HnXoqDXfs>6k2BWa2dd2ZmK| zk+zbDJa`gFwChxkw4za-< z0Q=HhhT@~HD03n%AwgY5wqJ#p8&JT%Fi2Mf30E#O3NCy=3~ysoOqs9< zWcss_Xt+#Zr#2W8p5H_@mfLI>KKH=X-cQok@hV|tW%AUi8D*1e^=lwVBI0$do(e4) zj8n8juyl=}1Fzp}mGW@50zE`)yoWPzY}X45WL0PMnWbiQGr-W#H+w#oP>m z(f1nQsdIlO?H)z>x-UOaQ@*U_sH_;osR29fe!6yG{|+LCRHE)utdNL8AP2BK$rU@` zu=Me|uV01Z4zRU9BpDXBE|K_5QW#>3Db7BZ3!B5|0xk?-4K6HXnfb0=&Q|H)Jj#VD zwg>QAJAla7#o2w1Ku#ks_?Qyh-cqi`0}5=3w6=2Yu4O2Mtw1Z4crMjXhZc6tsPKa} z+uq%pHWY%aBh4xErRQ3U_0OTkMv7Rx9S4)0I!dkS_(n@IP#Yp3L0bxCb?3uDkuQ&w z7gNK@UsAvOKrCN`Uk^fdzqYYwNvS-C@(nr?8x~PCB&eC~stGBRNA-7TO0xvfKpWb{ z?B$qi-{HseAL3AmPRw`!MwR{?hjj?q{8pH=FKKCPcZ=dc|J8RJmwn#U>?P!;3SZJ3 zA_YN!hx~s!ct4%hDNiAE<=vtJl%EUrBYsi^0O>7(2aL&){ewAK!TSAiU{B0U4YwNr z(Ef9rWc9c5F#Ack*8M1OP^L8Vp6Pw#=vH$jxS#)0o@r&I=3v7dMKWJ}ToPI#Oa}Rp zS_#2=PaJ8Z!9#2)2bcgV>`Pgl2w#aBxZVwh0q zlXs>=k*x@cef1ozZID`G(xUL2y8wR}9VEP8=p875B8T8s0QGRHFy46FIH4v04`mfhs4{%Jm2mfei0 z)GSI~&ROP}+G4RUb$ul<({6M5dBo?iaZuu~v3NAk51@JUzz1aW|7$A%{vvWN`&m>z zzuu#2WxWHj_hTe`hk}#qiPXD^#9}q0`aH?lHIyKtQBH?EZ&*&3l_jiE5p?P(W(=z>dA4{&%h9U>go}0Yb13rm zq4O^xIxgbxMMF^ekG#oq>ZH7&JFsj2i1)kybL0tarA$#{q)1*}OlXzAR6+%QJOP)o zaYMsYYE!KpOM)0ml4djSVjS9M?F%4keo_K-NaA0s`Lq&5p|e0QSTZ4e$Y=TcV;Y4* zq|UolUv&aeQ3>MI0*2zW|1ACg%kQB7IOYLgO9y+;w}#RV4dB6eeLZXs{)(EcrwsNC z0sE=&nk5)c)it_hFPTBKJ;XOanPckZVK&?o=g3irm~DS9TJ5GpJkmx<)&uo~Im4lY zMc!z`j$T({gCN?jYFv~?R#6g39-tD$uG>UVaIkSiRj6Y9{CjTsC>x)j0zsuUd?~)q ztTpCq-gC4iC`0XA4U(;jN#ZpuTijM+lwfLj-D z*fJ<%u+Sl+#gaxqRirFjV_Mp8dRe6J4kE7E0Tq#?YjKk0EdGKvpkU{zQP zv2sLw0e4U~!(QZ7pRv}u7gXEe)yG0Se}t={LR6!Iv~__Lh%eA6qe=IP=2 z6%~gqPA0+!v7^A!EcPonVg10Vl^FC%%TM~j>-jNa@T-Tpl%!E+-EK_^?b8&@*}>-iQ}Mz2*IldIb8;oP~RH0G#S_;V!BptQ4eikJ~kuP;4va=vw! zwThx|cMB9E(%ReEf9W)qz}RE+N8oPH3JM+$^)rmdD*KxGz&hVgS8pXCfqWT{ELwXy zdnt32Ys!{;HDt+V$Z`Kn9s?ohD1NC1HB`fYmHfFQh~jOh+fZt!M=|K)XV!T=EjfX$ zuhUnl!ll*E)dA4ZPXs@eG4R%=r&2y=bY0kKp^4FCK82RKZWI`#)V{@}6HqtsM8Sl+ z7D-l!3TM1?b&oKLC;?2)AUZE2{~OBtg(DC{(p{Hhn1)vGGx0;X0S$p~Et3pSZ zLSf?@;|l|$a#7BOJFFLZ+1dr2_Q1HCvNc~e8yJGap473vtA9f?XY59s0rQU#bK5A! ztpJ=i=IN7e44DP&hNRB6v_BGyQ{Qe-e1gx;GEY;lmAc(s-_oZ(I=nVx8z4L9R&cyV zygIUgIfx~r^`_v4T{MG06(e7gFKS(?@l1^~C9ZB)bTz3GR2TbP0UE>mGSz{Hx<-;)#rz9hEqH9Eh<0%elSK(m3U^B|BG zo?>^i;BSixdO{4i;zjl{O;%5h%NI6B|Hi1Bam{zGxPuBwxk<5b$srF+xTVj8%Ghe} zm2N3Z9_)K0YAqZ@PSs!QrKE}YOmEtK0fdb_L8tap6-7@n>i)Krmru`J>6S`mw0T-` z0XD8fj;jOJ3-(Wv;nE5|^GFQUTiziT%>OpqO$WcI3;QR^nrImV_GD^{u;P&J4xGmQ zRmwS4zIXTtAnd0H8f|`NkGxl3m`R;n8Y6xwE?lu|Pm+n^E7}Uci?nIaO{co%7sD5p z04=Qyo>+b(eugyE9Ea;C@ZmO4{3Retl=an0CaZKNsW{am+-4Pw{LVw?k)J!QuxPaD zLm-Z7f8n&ySzDl{kj+0l0*_8^2xBX!yH+J&I_6Z-;yMp?zP$3<)K;-%0vtGsG3-G4OJ}15u>wBW&Ikj~>cP#F5WXrS zLvj*EiX<(LE*e0x(L`mNqD5V}QwwVawV9ETvj&JrN`E5DA!e@$KbK;yEy-4&;74@N z)r!@$ilY_bQs_dF}@r&NqpbGP}=vK|6phUPw@3Kd&_~YXt1zSZ_V4`s53sI zZpyA~j99XX`j6SgX+&a6_mRa`IT6yF5>dD{uu@7-38DfhPs}^$wWQldb>s{6R&j40 z>bXKtH|3D)wtOw$TKjq}gJ!EX}7#x-GvM;bEqRaKV8+YQH(yg{S`c+y8%TkkC4F?}IZECNKixq3}d;`xiKkHp2h zY0iaH*_;cMsbkAK$Nk&6%gMD_W^Jh@n2BhX?Y`{l^B@gVdf6?~ft25FDle#1;i@q+y*)&BZ$!O}4*v}aN6q$AY)>|=?Tv185UXd)r_O~p-m*B^ zup0B}(BZWxbYJeWNtsWQLgV&t>D*}a_mGBbgqQ}6{lmIN8{(9AACy`5ZUZsZV?t5T zi+!$?sZGWCREuBkyE68hpQabpbJ48~oDT!!vY+3*7?f&(Bj+Y5|DMp^llNp1b(;Sh zq8|9h+m_Pc-~U0(VMDC(cAc%zZUp-UI@*mS?Mmm*cF@=+U0wNjrEkHJ9X@D+Z~wUs&2plSOYA-W!W z$&EKmT?8fd5f1=ZA*8KNcW3=$SyNg$i}lffQ}^ep`z(6D$7G}KR=(?huN_}C=_r$A z9&QptMEPL^QNR?>EBPwC=Tec0X{ugUO{C`hUV2@!hL)GzCzNkz2a}^>-eb}EgcAuY z@zb3vrh;#_os>!5fAP()OWU%a)oG-QH?mvJ%I)sh*D_Z5n(^>9dHeEb;}4Z66HsR6 zfT)}THbu$>;!ba@$F7#+%>r9So3{QkkX3 ze{bDlI{?9L>N#(>-j^&teju^_;qR6fib9apLLuR4-+ax!j8aKNB`6wi(a+mKb9bb- zrH>>F;g)_5yeV$yk&cC~8 zt|pi*_np5DqGhD=G0dt%>Y37wE^VLa2|VeF)P&Ta*9^EdTV+t>O#$huERd)w(ehN+ zf@(9RFJ1zNHNTN$xPX}}(ezgy=X_?kVCl-5rM##0s1=c^$vXA6HtA3fbW}DVrOBAb zPWVS)CGB&J#lVnu+f@NuuXj`rn2eMX42M=`ZoofAjMndVGD>!;g-Wbd&$-qf-i#6p zBmzHMauQg_2$IaCa$DJvH>m)%=h0>-eL>kUs5wrw;+K_l9724wnoXV*p(jP zmsA^a?Sv7!H#s3~+WIzf1{9khlpYol*|2GeUwryXLz*lhKseuccY?FTN0zy&db=Z`>Uks7k+mrZa4O z+t>NWlEbaWYxFV+)`cobG{ZeIYk>Qnm<0P&`Dr@>U#utdgh*xRoQ@HVr)aC zubG7@39sLzwtD=yzrTpd6?QM8KaAU)- z@aMO#@8?mXF3giHq)?lPshB-k&^PM4>ISt6U;Mojm&ShE#}U}&Jy_k{XZ)GXv}&c| zW4h|&03?8qVXJQ0`o|fqf2pXZwzb~8>W30XjF#%PQ1Z`g{Om1%ufBm6@c@?Q@+WP` zuM8f(<*e4>Sc?A}ifqtf%Mh@uy8oH6aea3Aj{2?pDdw7FA6~JiQMVUXF@*9dZRvtS zFP%=j+@dy>LRHbCz79)|S}IQT8n&vKZ)@;{Nin;Rf58hg7q1SHba7J#L0_|Kxvid> zc*@>vYTt+VMW)YCql&Jl=mh=}9Bsl_WM7<{G^po1bMo~2T#avp@^9VG?7^HHPzcC# zJ+G`ZYoIGiGT2J%N*WK?onK0yA)%+pw%owu;bXSDc6&5>szaMAp+o48(C>JL#dRm$ z8iJj{y!vj|;@31FJd#TETyavDSzRPgpFzwJPer{q%0STVk0Dl9Vs30-)850@#bVv9 z!wO;oQ|alE2;Yw4<48g!2l?$j4ozPAB7cON{b@n`(=)EJ*{)pIPP)zg>J#aDT5_|* zp8K~(OMX*TU&a;Q;pNdKYq_yGjkfg$?TB7k=VbEOiX-4Dwo^3c4D$NAFWH*8ab2{# znS;ea!6nWlR zdi{)(dqotSeBNlSVvtUb0Pzx;vd>mnV|(aXF|mj&@;4M@A3Rn*%5ETRY906M5+AOT zceb8w=ZaONa?>E;yR+Fwwd3?VzFwKJ!|r{WjHt@T?`wq+o|5Z<9LgQ_*fnE@v5j zdlp$2EBwNwjF@23Kles2dJsAtlQwn+dw9<`~nXUc*~be!+wPv zqF~6N$#!z-Nn*JsL@#&||1%zFE(@G93ZMsY;xRWwbzHuxR*X~z^8~i7)%Kk~zC59G zth)O7b3YJJ03I|301qOxBSUt!&Lj?q69-CmtBQG%rfstv5TZ{c;QcCUS|wrN^swV) zPEJLE;It>9Cdax(P|IP-g14>liu@h1U55Q7~SK({zqkVp>XkS<-Y2JD|_|A+6+p;Vv$yJqAi#1N#` zc>=@gQ0j$U?ZayC)=$s$1RQp;fo{D4kmLe6da@|#rC3Nrvl8@(D2W>~x1GLaw#Vck z3%C94jdIA~C*eg5nx6{RBn~H$Tc6GiNS&QA&y}d#85Glcg7oj=Sg-A3Es(i0QkEyF zTep))@b%)ZsI7fYmC8m?5(mI&E-cXCcel|Cs0xMJ-z*$3zLuqk>Gn6>7nRGv#0OiW zSADKViiW;*=3V53(;@@FS2HAE6;?%)WrK_>#^xZXOn~VCY^Y!oe`wLTH3L4!HZN&;Z{q$YHUG*nHFQ1(k1xHos6o`sJ+kYHZsTo z2J1EtHX`;l_8$f4tE=eF~vitkp`sMPO&?HrGgz7N#uLHy4|9$NTv&4o}6I z#Jjc1?9{a2eI$1^XFq-uHoAAG++BXnQDmT;k0{>Y4aQ0oENXqk2&j=S(}b%ve#-hf zDHf+SSPxfs4=Kh}2+4MWX=h}T?QpHJ!s)V?{mlul_|y8f)`SwzIOAvP@ba(p!CoV? zpQlETAwA4iYxvO$3PSIPRL2cD6^q5O>Jb&|@{SW3GFakFw}^qob{z^WaPcDRUqrc| zFB|%UKg@}*Wt6uDvF{hGpH&92sV?$! zj8;xHjmDt0boB}B`$(_PDS%eZW*=-y)M<=)Rp|6o*uZ2a%Jxk6O(9{uXZRJN1Que6 zZSR< z(T^YfG9ep%U$9_|`#70p}F9W~xjGW<0 zxYHCK^}6b3&#n~t%LIylpYQ(9DDQo?*j~=QJl$GNH{OU%W73Atu;zNA&cqI@p}sr4 z7;>WJhqd5H|Dj{q_od~%XKCVQr2Wp?ue`~(`flmb6PRZJ(UkXzGaYyT1{& zjn8lDP3^U+aUB$Iur6{b{E((5SUVx!>a}gr`+KqBLjpVFa@6R(_n)k8n;mOwT-F1- z<&b;{XYoY)OMCtw`9{NBp6LMFNXXLsd+09$QztQ z;0~$vInmRwiGV;$Rf&XjPlQ`sSvQe?Yd0Z#_vP%Pmh<1-^o&bnEbyNU82049`kWCxUu!h7T@V@bN2nmz8rgG zmmoyIJpqQ>|yn&b7^FG$Lh}2Jd;LpL6-P*)VlS zgR;*kbYHjhY|))vVJSj8`f)1nWJu%HQDc+jZ*pVDUKk5`jK{n0MN7RN`QW#C@s!!w zCh6MXdF9gmspXj9Pb!bu85MGSqK?eHH!F_TP!-rH{bt?zW$jz2w#AwA9vdD>`-b8p zzNeEn-3SQesna{+0|7m<%cFdG-@^TR=8bPGDR9Q!$sb#oI7J+bIHIwA1{K*-aq(G1 z&K+%?!hE&&z(bK-{q)EPDe_sT+8+2IiL=$qKaJ)1`8BdX3XN$YM4wqWPWxX}{JeX~ zD&JFXe7MG9Y4MrvtirQT6RAJKUt#ARP|N-sQKS26&tlS8BMPd+v&BDLIwU_*ZxN|K z@!|T0Nbb9|P9}7?@nE6U+^H+Q$Rb144s}I+tzg03jhW%nc8?N^m3u2-Cfr`?-Gv?A zm=Co=x3Ci=Kb^QSm9EX;_eO?t9-gy-CKOEQA!1l~(-EW3vxO|yZ3vph0 z<)QYK^86#^o5uNo0J&P$gHh)z8j^ar$Xnnk0Z9vjL9P1mcF@?qq7IWnN3YDNDmoTl zh4(y$4pASRfF+;X)SU(|AnKPC!1SJu4Fj7JNd2Y>EPSlj6+*_)u@(IA8o(B7rdw)izLbTOF9{{o#r<3gM-Pnf=iZ6@e}Ck zt%3LWCA=u!X$~G_Zaj0~;TFdiN`>aAe+M1*z=R4Wp%=_`!Jh3Z@)%I@c>GuGh`oN< zf6~JLwWOg<$N{R?1<+yB>nlMFLIOYts|5Y`1N9D?{f{#=FB`l-f11iJvs=V)87l@+ z-w6y`?LjNkmRZ#Fjc{WYH6a>IS{qNT?5x#$96t^hnV%Ph-81kUD*Boz&Iq5DvSNr2s5C!)Hop>7Q5wk&f87v!5f@;jc8`Ud&U>I2qLI0H zlwj{QM=Bg@qWv{jN7G&1Qc>3)dNfirY-%hm`smH9RY^y&^I&_YGKez*KLVZgt95c3?g{kZlzKYMm#5 zF%I}Gb#a2bLV0y^+yDMpoPpsOcBbQvh{(c?G+ZZ8(xdr{>X-uRYS%=~6(iDI!8s{a%uSSuY{ggj%ImlZ$TH=K2eLKPNszSdaT z+daQ|`mQWTQ+3DcrKdUHRPbSo4c^ryolH^1c;oYd&yKyn_6S*QU{!tl{iO?2Ny?@9 z9}EkohIIO()<$yOT^StV}eYOS#M!BjbTD`USwoEfSn;%ZMZAVVvh+e@>QX3bA^fV>{&s<(T zlM#RX*sAl$^w%?vRV5UA>$57(Nl23>E)3UdV!xcf^13kYwBCB9z07>8z}?bHTQ9fB+U?Sd=$WU^bL#gK+%i-?TZj*is31KJ z=E>^X9YgD=DA&2Wiz@1#Zf>6gu}IwBb4h$m^!;(Wxv#TBEBI3xRF6{^*!? zVZD$KYOi}pk2*_aPI~;tXA8g4@Tr^dA6OYMV^sfX{YCC4%JQy@X?w}Dc)#nuZ`xhv zh3?EO^`K+HW*$4SgYTMR9b!;5%yp>BqunBa69wj8+m7 ztm@Yn?{`)PKKh_*FtZ#tT`V0~BRZO=6F)H<)hvoUdHiwSLjOlAdoC8iX5l5h)FQ0W ztiSa~8B$1J*>Yj{z}qMsHmlq-pDLB;;Qb_|Y`U+L*!^83Wci}MeU}_sz$(?C+$e0LZ=b=vZtv67vAa7e9=DCs zkjJK@@=FSq3Hy#B4a-f0otu`!8V#)982Gci;b zKc3HD`ekcO@mJ-GzSOc|vGReV*c3B~W_ylEySw3(ZFQzwkF`I~Uf=22)08<5{gPws zcQJCT=6Lc;pOEf~FpQg~FP+ZUIetcX?fhy=R%htzjb^)jnHAp&eJATm`5^l?3r*dWE#mrWTyUFdC9?4I3s96Dd!{$jsWQyx3skQRy zrH+fz4nsqGU(&nx-*6ly3UgD{7PVbSwd*Oa zHodMRme)Nm*c>jbc)wQR>=jpm??IE4v!+a^ajiA>6}P$KJTs54oDorI_ZTS-Db;7< zP%FKNd75%H^P`_YT5!>oS9Ct#n}g3w?Uo)l(fY&~x45p6AbK%muBT9kt{{gbE3?~q zbEaN)*Jk#1j0&&BFT+VLuO>Be^--Bksa?9iG7L|lL=7C3@2LpgJBx&ld)TF)^WRGA zkKmOb3*PW{TAf&(?{D9TOa1o!+U2_jgeR`zy#1U{JyYy9$y-ld@pkg*cOo--KYpt` z>T2dD#Uy5Lc?GYN;N8?JOr&TJm(ezsk5>!W}>Z!gcG1yMrtMobL0o|`FY zv)~t_+5}&&$|Kk1+0Ax#WYpb&7x{V#A%m$VE0=*c|9#e)bYb}FMbY)P~){8jLg6}8K&g6l- zD0AnGh7r{c+kkkVY@_)vd-YhYx^|i45~;lMdc&gl*T#=?1#I7!U(gFr8?*j_iTmo- z;#$v@F6BS`X|S&NgEqeSur230w@eZPTH7EY^;;0v&GCrTV0qp)zYvG@XuDqqzerco zXSVo-Q~Ok{B#W9$=!$IFeSXp-V?O5!8ycCEYXugj-8S=+J){T*8S~rPZNBZ`uiVd= z-t|2@{KB@%Qw`}WcqLPJFRhE-aL}bM=wic)FxKeSCw&97#^2BtIsc`;&X(8n4SJny zDdl(XUs~Tcy_cYiog@SF`N->t)Jfu1E7Pav=^c;6DJYE||IR?VoO|1)CP?AUXBmOh z`Vlxx<{;O1M@f3M6`cAD<7F$sPkS#eF8;!8@>5q2Jw^Z6eRglcobcO%(b1rw@Two4 zvP=HF|D*EF(civ<=Cu*RBZE;_3<6`jev*Rcs z;^)MZq>AzBO-1#gj?QmhTYazDJgc`q?FM9IoocgLaal+m71WEz&a!iBSr}|(T=`Kl zC2@Pe(Bps6^&U`7>}}g`)NMn7tw@um(!0_-TM^iR3DRqb^xi`6ZbeY4ln^>nV`!m6 zXc3X#I{`uuO?t2K4DRQB-fw;9oUBFGu!PA3Gc))9zOUC3&t4>=W!4TNoXc)?S|Go(=B>+lTQ>sRvbzXarjN0c z2|F@!sw^h%E>RuQfqmE=CA?DxQ$lZnzE6u{^?B7V5EJD!*mWtPI^~fX*wZ=J7_gca z(Z$EazI;650g-+%-q7j1mid`x{AyLQH7nT3=eSo`?~^`j8?%>Zd9}jttkF9UItCmN8-jfTXWqS~g08$2Ru8{*deb z3c7v$KFNB`L`SaiYl11ewHfG|W!WQOLUo$RE_&9W(;kl=&lyFs3KA{ZH=v^VrO%&^ zE4;aMUfeXJ)4GnI;IN_r%aq3rU1*Vg~7tAUL=BYN2ij|r#miJF+>0{La6zUg zcpK11NBEn%SWVl5z<{nW))8N1f~_bzzhR$0R2^GR&&wVd-ai(-o27K~rKO`riNnL! zYZv5S#m40PJ3GV*BhA^4I6zN?!gQq`WC3kAyLE>Lty4h9js3f`8qF1;>FD|IlE9j& zUjRgtGTK@)4g$<#^_~3CkLYnMFI#=YTa$p8r>Z|lzi~{-j=a)kv4F@ti_5s;+B3b_ zgBro>MP0FFYA<2eE$UC=6O{DIs;kZ78Y;xY9H&asM7;p;b5?BSi5FKzxb;hFd}%*O zdnK%n{kqp`H$k<7pWOG^){)pNwn^W#*U%0{D8|$Hvh3$m-FQN=rXhf04mYvt%QOZw zVv5^<N7RG~p1?!%rl$8>09sZ_V0P!H=j0^6YGs0216q31< z1u{6^X8d$#2Mp<~5Kg6q0#CY)*FdO>48+SMQ)Q?hIsxJV<@SLeqmGS1PSs*Rhbtts zh=XnS#D5S@_GAL+?9�ZH0KLvbDGDi(Vyk=A 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

f$$d3cN(~z* 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

v^BIj0!t7 z{@Ue{`f< zpUIFXLLk69N}KbWt%{*Y>DS1tGTy>< zACTx8hAoLU-vdVBd*yEVB_~u+p*@J=Xm5stBk< z9LZ_K7*t)xFo{dLej{=%mp!~?HW-Ma4)orjCgqom?ZJ}?de|XjtH?Q!09h@A zq4i6s>$6d&(}kK9+JB0+IHIsIDtV@RBC5^@FL&OX%pl@fsW4#L?Eo?i+DRS#BfkVq z-*F2%*LRiHA-~p0R~l{hdxU!HjXe<<+HvRI+158(v-14;NxEoSmG6&IczEUm)RKm6 zS<_5$p;F5_h1gPaMeb7rc8}O_G(lk}Je4P(6_v#Rlvkkc&Ht2vI^coBa+-d`M%--j zWK8DXnpQ&{wzRgGwfDF!;@s)OsYX#1J#_FC{d9Sv@9n`X)AY)a+6U7en~h^-{>r9n&_ z+I)^`N^&9P>G56ERQ$QV2;(Zo$ERk8?*se4TP=U4n8CGk%Wzu_nKaQ73ZLnXtd~du z;1)Vm7E4uq1IgF)7e=|5htG=~9_$vX)he)H@QbU!iiLoW zyUa;}pDTPI8tc{~qW^gi^lD969cpn2fe^K}A>g#w6}5jI z%dc%rK}~_GAd0G5SPP1SH0*5)^!|iNKvDe#L{{X)fUast&esihga(@ATqL)9X?L3( zNQ#p>G^C}Ze6~=DfF7QZ^!VSgu$o+hlhV?@EXk*3C@r50mwtUl?6V~yFmhk3^=$ws zNDB?w{@#K;(lt$#_oH1RCAY*SzErYEa-7}ccO8r$v~)W+)z3OT0Y?XN(FT*g<1v?S zSlQQSh~Ly3@$sd@`Xj9G`1tjc+FKG-Ye^c%2|(r*t*w=$9{_(~ao&N$!#U|uS)@PA z;7@&USgVcQp-`WDv+_(-A1vPdXeilyWK{Oiqn`$Hbij!+N%G1FnFkV5{?;G_5AIfp z)Wq$s}9diO^d$wi%vWzbY|dP=Pj&@Cqn(!;nysa-wM<<RHsF+UguqFWJ9SyaE8^Ccbx}1r4ZY_4q`n=hnY(1}jF!(GP3I z&g-&$Dqb{Y`Gc%;BYSTi>wx+5)NPEAUiNRVtAI5>s=mI{8=~7LZwt&R_rLpB+tIQ; z8TSmNqi9glFbQ+eGqoVb5$ub0mJxp^yC)xtvIBwEfe9fV#ocK-7TUu|+U=AbVQp=N z1_P$!@2PXSDh6Uu{OVPN$2<4>TN=rf*8QD|l@n$GE#8|a1kvhABpO5^{@!Ne<9kVw zqq53W_;@?t7+rW%2XF~Kp8vZPc1?68J{`6>9L0lplnMIa7)kt@LLu!NR_Z# zNPjM=xP7vUl9e*G?ofL;_;&A2MwEX`;&uK3ik{Z&LIY=_tC{RkM^j4|RrU1#(^^?) z&9Ili0-PAM74V?U9QBDXOD8!aXM`@`VSqO4VBV>HY-1v7EBU!rUtcu`kN%Cc{im{{ zD;p&`7%-28e}Nz38PZj8>l2ImlB-kNN1A%dheOTv`JeT<>y2r{>L-l{KgCnrSFMN) zzUyYzhkFw+lG%U6v1IKOW(A1pTh3LZiwr|&_>g?M z`KpqE{&;{rfOn{T;|4$1LObmAze$#%Om8*hg2x`#x zj`237xygx@Pn)xEAB#|ofb~ss?|fWjnXO_hPbVuO#8asW3Y8B4Wjc4;*?a9}a|;*) z=SZQlXyF=RCaqlKhaQ|U7%y8L^(Ud((-1?-QrgH%S71k|Qv2;>(Y+pyMs}++O19dl!+)d>*~|7@-nuxr9QJ$wc*4kgLqh+Fr0|US^?Xt2b(QnrE2bt z%^m^5^CoHUGZZ+cwx_;-ZcfhS<17$p(2V$&Mwp2#m#eH#!dK45rC)VwPnYc|9*3-l zB(G}_jCA^PC520YkUh_3o|j#fNhO8joTKML$F4Sf;Gx~YjwAD878MF|D48a~h(4u3 zJeq(?WbGro?2dW-#5T~_lG@Gl)=y)MA6a}ozg6QkeAL36{vrM~0v)HFn9L%leWXvD z-2AqY;)4`;=g2S5#Mv+ENmfC?K28hUM;1t40k$@xlp|mTdDI9NaN@VBLgfRp=l2>4x{_km$uOc*HBVKLMV*aXXel%CtNQ z>@`*zrTKLEM=5++`kvpuk;-}d7HkF$j^KR53Eb}*j4D?z+U{IrKVw?cKlgbu8-Dt=*KR16dBkr6a028feDdMsdC%(C}nQ73AOM|ufRw6Q14_1AWS zdsJu#d0yU;-p5eet{;8`gFBoDGqJvc__2{SXGzfULyzg4ZF156Q)~>6efW zS_VaQg+KXRXW++nG7GPQo>}hrtOp#@(e@0MHUks2y89oZH zAMc==b@`^&m^p0`40O;hyNfz#n?l=P*Nz~F~>Jo0PK#Vw_+y6}< zuYjhKy5#$kGDjloJmyeqi|9UytKWd3PxTz0R{0`IY=lI_bm?`7q%e%5#7dk+kBiz^ z%o#K_TO;uKvsrn$9AU7XPYxCfru@#w?dELbrm&qq%g|-#&)C_1=GVTgrD(ezbH=YT zVGk2Es3Vsk$T@P8>6|aGTb^%AVGh^+IJ7UWNC5^ve~k0_!n!_S=S5#f@+G9$ky9zlpZHZ?;oHe$VF` zadM)72ucOAE3azg0|a3xqp)?>iC&RE$!x=pVbop~sJskIuFwq_JyolTV` z)v+Y6D482h{!R{870|_aqzW|B9sbi&?kz^HrV04yPecF@jsLr#9p`LL*R!Szh8`EV z;MkTwut>E3?f=&%wV4!%9g>>=k6qbg-G~o{6ZNe~e5AdRxudPW21zcfa(Wq14vQHf z$>-?7B&F$tWsC@}ls4ETEcUf$l=(!|(!De^!|MsF)Jp3B z=Ldu5&$GPf##c<+_9;jZbiM^m-!6iA7|VzmG@3Duf?(oMW>#iAlUO;pjp%7_So(zg z*zW^!Lrty^jE?Vo6p1^V>b`Byu1E{_6GXy(KBrn$d=Y0yc)0Tt|86gIRl<)MePwmN zD!MC^$#~LUMbev;bNxHhec_XA4a(v|T7nfPBI{c4t$ZOXNyRu_;K3i}kA1FYk7W^m*D$X&zLg#m7=g}gVUm~7 z2^MAI`>8)GvuJytw4MwT*e)8iTebW(ED3*=WCCzW;c%5Pw1DQG3`Y_b*oC1?cftja3@SaHvtM&;8NA|KG3_a02v zDFqXLc!Kxa0M?=P$x}-UA8W!iRo^Yv>?MGT(NL(ND^^Uq=E<1ZwXSPLdXS zJhpo0|Ne-amszW{=@$mpE6cm0xjS{MIoBC>IIH$w5Bwx`fHn($D!TJu``J|aU81ty ze*OnZEfM={UEYGB^APW2cOyyMy6N~3D$uYIcM-yEt2$sNG%-a#ea^bs(ugvOy9Ve- zi|z@G@DnYe4Bpgps7D9B`(IbSe%*Zv$p=f;5RapI#E5UZG4vIGttm0{zzHlJwPaWh zcdQ?+zWqMjs(W>;jJ}ltEmx6c9785t3`)4OY{*?WzfscfR+J;%xL+@#?b*7%+e#>w zd-S{U?a)Q#v8_Jg-|-@S{@jE}b_`UHR~Y27ubFqh=TL#A)??=2)Hvm}Ee5aI;!aFc z59-S^99`G37fU+*aNfTCDfrC*D=2gPDMTh5AIeoc%U<~3%>+SBnM(b&*RFYz8w-ZF z10PoQS0p?Z{Ia`C830Iy4m9I;CB|oK}9;ra13-OUXa#u1g&*$Ye;CNDdxV)RGXtk)dBF#C-;wH@Z^Zk)PX|cSnS;J zp&&s|0?RKRJocfTmYAsNRt5kX_`dv4PlMozxCW`80OORu)2Q76nmiWkf(5FQK74f% zOhs|#M7_$p`7k?q545NEv~WysaXl~5)Obvl)=x;D?S4N|IZNw;@+)|)iPw)=u!8${ zLYBrBd=YZKjZtpmTB)BD@g5DdVa#N{CgBLvBPtrYu%)oSW>a%qHZHisBn&+V7t)(C zy{wN0XQ-osKgOALyh#le64OP~`UD9{quM-MX@4L4Q}yLV9*&Su!BRx1DB%|u?~cRb5*g`0+q%{r z5H2$M!YoY|^$FD(>6SL3d*~s?Bdpf;#qw|uY_I}`f{*~Al0?W)JVcHu72876H$nb=)Ni>wG+~u0%{(JI z==^P(LFA|95 zMs*M|>RA!u4cl67hDQMrm^eEtJ@mu#17wf9&~OWO$is#YxriaTxRhA;v5(l%v;rHdX3t#EpmXIV5THf!%N`Os1BeJvoJ+&^_xqu@ zA~k}O!mn2ybxVmt4@c*9wtQuM%*xATX&JA)sUfn8akgE>Pu^*)NCl~%e9U>1uNIyL z#0rGu`UYzwTbB4kWi7WJ7uKu#9AlvKrq-{3fB+%Xs>JW*gZMgf^r0u>5xwGh+VRGZ z)IVhTviu|1_s3t~#QOJ_oVwF=y?+IUs>D05JXtxQMcAHZkI*SB^WP^JXH^i4Z$4cY zpkle?w@)2V>)$>I5tYluDk0kRT~=R}r8ozxSwA7E<>>44PC-zHiq8ELXn1;fj7k6E z8}bcDlZ*dk%O!+ED{Vi?&S|0`LL&3!_u+*vXS$C(^VZWd<)@hE*#Iykq|N{GQcjT1 zBC4u@1%UolB#rcgDv?QMZ58}<@n!rdwdOa1hA6+|)-l2Y+!MF>p=8>&R)P$!1jPkP z_^e-c(kWh9yf^#2QtkHTJjwxwoanyFXc~DxkGNBcZg?qi@l7gExHrUu{3^s?IZ@cqp-69NqXB~z<_~vtl zVE!%>76h^0;@SKJ$U~T)>)`}}9(T$KIO7iAaUt*XZdC7O&!zujsdSoJxGdEP0-8LK z);J=c`eh7^sXB0?BzJG|J640lCzo3Xj2%7;mn#cLM_e%T4y=^^>+d6}w@)yb1CdDx5{V{e9V^-Al*gGJo%AA6Q1+;4ZwI&jt zZM`U!u*-y5QkM@F7Gdx)jl=Eg?X=P^yB5!8_8g68lMTMEWowK*oLE9EBM$V_V{~pY zY+94sUisu?9Ul7fV`tQWan$x6`E9Tg4jfz4&XI@#Kju#k`B*0neYJ35giqK3??5~(6u2V^R1`1!& z35MooM|`f?iBr#>aLkKvU+~l_204{EF`H43iC1!Y>)OyjfMj=CBO?p+HJ;Bw9m`4q zH&W~SRm)b7qPdX7aKqscxqA}Uw&Ac0&PmO23|PyN8E2q;vyvAG6x(a+;IKBt2ks(M z9Vp&%X?4MTsNN%ZpX8dfuW#?eJ3Y%R!B&ywTIul}(4frGsF4@bFzv9ag9N#FA;p81 z$!BtGa=F@7+T51ZKohAx{UjJ>r7tU|oMhl}IrO5s3_jX&L&G5BSF4(1$4HHF{>M|6 zFqjy98Y^4=MY`wYXK)<)8aJ}t+PN-EZ!sB0RZ2dM?fb`%)en|L$@upK=Iy`wE3P{b z{@vI;^_i0?ifrTy9k->XrzPuOJCxQSZr4ViX0Qp22zzzx&&RMuE7|7mV9>5teWA$L zchP$~+(}_nmmbcI=J95b%3f@cq{#feqrs8oQ;TpTDz3M|-=f ze@2YF0RjZb{D@rp+HkdgyplN_GrQJY#9>$6sh?v=HsxFHd4`V%U18_IAH)$9tHo$70SXnaWtRin(3X& zn+K8pybE>IdbemjtT9S74}pNtwQhL+^^uZ_AOr*K`_=FMs`7EvF2pMg#Geda0sUL6AZ*DdmbZNlB^O1whcoT04>yV>YG@!er(7z<-u#P90(vk+cAElO^O-M{*AdVW5k7e=(i~I zC8?Xcf1)4#dMWiI?aQne^D-uPD=qURmDdy>yS?Y_Q!oo4NXr4l8m#Th{{c3^RUXGp z;{@;X8PRwZ%!hCV8q5ZsfmetiVr=cn-;dLvpwec?{%Mm|B$<5R3kKucPU=9v8$J~& zsjzn6rNvyqz6WpVon?te2DD5IP3H808u+gT0uToHgTE7{>;dq3&h`T~)5UqNdUP|D z>&HjvKP%3cdye^g=~|M6{m`%a^t#0k;_s78ZE{bXD?tk3OdTFq+u4aL`Huq@p@-q? z^87mn^*a92a>=Nz%{f;SPS3VK*c9g_kA~#tHo3OpYY53SKfTu;lL|iGr&xaeR8A{5 zg!Ca3e*$MT{Sqj?jZohX%Z;@=nM*y4KC0YT&u-R0@(^V|v;Ef|Ae2^~6#o)>)JUbS z>ruDa4GdmU=+S|@_2GPvLoeo+2EN3zRYC;0B$V+=Z>+!0HeNvK0~+_Y++{%F~ z-V!Tc>R8m2(I?|Z<*U99Fh**bW0t}#v5N|RtdhcImSUK{2oq~HNzyyvOjLcS#AZ}D z4`zI4-DYvX63K+_Ng(wf9T2K-r8V21)rI`8W3l~P0Q$x?IojYabJwsK|8JWVUf&XB z{RXn3JqID>P9O*foZJoA?Ar&q(fZ6Svzw-hEHCid;4hHNwgo)R3wgB}aA{UDz%^DU z*AsrhN~rXYIjG-aw>*+>C_^^LdVA~S`r%VF!%O9CeCY4nvHi-kE~3N1zmH)Dydio1 zw_9Q7Q@``l*@!}Cv^}ChhWIyE94{V(k-Oj1fd_xb>iegNuS?j`;)|D`m575K)_Xh{ zxH94AtFcEzMVRK;$I~v@Vj$%vVP;TkN9<}d64vP z{Ufge*9C4Nb)PoXukb7NaAJnYg5^;MFc^9Kra7kn>V=4lFn##ORnFA|cIEv#W9Mt* zU&6#kPZREZ;JhS$|EVq_=^`Hvfdj3Rk@Xkbgh1lph*^N3oFcJ z!D?g7`hggXN6FNs29Rpap@x77gZtV9>KMI7BMSRvb_5lBTnzFXrViZZ2{ovXb>81( z>?P}f#xD~b6TEn(&eSAQI_*B(wHS=>SxREOjxsv%-{HRzhsC@g%STdI3xPY0H3Cje z_zd`=Vly@IvWKVP$r~k01eGFgt)Mj8iBSPZDaQca11z4>k0^zI1U7psTNl5{+v4^>5c#IQYuafOH-4a?BKjAz`2GOw$Y zUIyP62a7>i)Bkb#EH-?93F;vD+&jB{2CkeQwk|hm=#3OT2t;th)_TH$VK;8hO@A9_&im~UZ)PV5m@Sr%XBi(Z;%^l5W z2nAi{c8h`J%KZyjr=2jfac`6M^qqXNrSfbr*GX%^T_9!~3(NKyk|W^+Q?|v5!3vJD zc^-RKbyX`&_fmKgjiO!a_G7S+la80UbQUHHkG?`&8?=I*3>_qe^eezj3qxtXD@sC6thbHM!(p-KqGE?gq0WZ6w6^yZTv`V7`GUCnsmu=VK)7Y=KX1z`{d{cu+huu*k0ap)ENqM(t*D{wRMu zT>#~&LU4zV3yoINCRgz@!`vkoJ%9uSKfb?yyW3}2L{%)^E~`?VU@~3vj0VgMS)S97 z5gyIwfv-AKudlDqwEO#ezaKTpyjrNqNhfl*p+;G7xZsJ|LvIG(X!-jjKD1njkt4oOkbwY;|S^L}W>XYF)cF@ZC?jH~`9^kWmZfag#QgTy{rX?Lz zL_7Q2DzB~*^Ad+~+VBSfin7JuSOGu>qs8>HvU*=d>`SZOWOYh%;6GmvnngM0AlDO{ z{IIL{Tv(QtmQaPD=A$O=#mlb0)%HPaoNk5P@-VtlDyFE_Ay?V^bgPF~^z!+%ZyMEBYlSIl3^_n+q#WTHQAYa_mtQc`#;i_^eu zQPVSv~u?U`Co_}78->dxA z!KtRC%CK+q(i%NG`IBe$o{ShDOYq4P z9WCTH5iuSRPsVz{rmxlInwp-)@uwQknBrMOQb_Knmp(qd`GHw1TIZkyIb^K}4ydlw z(gZhNiOIIOwfsp62~$yKr&uZPyzzWGc&G{)6&q{e>q{3I8L2{ivbM%Nak24JCQg_)~#ZcCx6?sP4fB2JiK%gUcI7X$9;CZkW8;wxD2Pp%gpt*;xfvis_ zHLLNJH#qF<>#L zcNulS6)@D;3dG#^$SJ9)z@Sn7vX$YbBKD|iiTGRWEJn$wncnFG1(~N{W=Z!?@DrN? zJ@sRi?VU!gQPp>mu@B~-k{-b4bYkCxC@4>i$d!L~&&_ta;z&HKU!Sh;s`mVRx4QN3 z)fbbYB5XiIDk{j7Fn)({;|G{hy1K&%oG+2NcJ=dlh%qo{)7u_YtymRqS<$AqZuOGo z#pAKY43QE_%k~PO7i5-rU~zZyJNoM(>b!!unO*G(C)=GKb&M2^E4Gjez&Ozy-54Rc zPf*bO1xOI;cPz%V#77`Pz&f4m-D8k^@6AAKD~wJWio|Isp;0ZZC|H-#_$C^kp}@}0 zo>k0+&!U5U8Oq+T3^u4LYz=ENuGFTCdu?mIy2_4~RREqQ5hnb}!KIET4pR*|IGcR+ zOm)l`mi!tabdS2R^M5t|AM_?AV2G8t$@977Tt5v}02$+*VITp)RY~*n^Ko(GGT8`# zUU`e`1AHAyAC1sqNcdmPME)y~EWh7=V&e$(bFws?h^7zi@>O-)>_sGQFLs}Q4bVv|tF zGby~e3wZUkOgTJT`G;8@MfGUt)Da0T^nz(0%!HUr@=7~z?%ly+V*Yn`Nh|QV0J;tD z>ktjCvud_~ThD2n`@zkPye+8%&P*rf0!?5=xyBeqR@T*rJbX*lmi;)erF^bDkm>!Nyk0v+d>!WTtkLz$}U>-c|* zCmIUdE!rmQE=TA7bD6rJ`+WGq2-&jZ(*7kQW5nC>PL$AABWBW!cROAQ7y9=p8#M z(H5M7^JE^J{eN13R6uslWcwQa2V_X;mr!e5N_WK#+6~`0S?%_^*)6EyLmLOKr}A`0 z^d9;GFG<%BHvuK^1R7E9Wzz?T%9G-=laQ}=Ej|TwwmZT}NX96^ID_uF7`ugvJpzS_ zTFt6UC4Tt?%@^TB5X(WAPUaD_Lj^F1zY#J<#3=pE@13*spZ-|J{=Da(K_KhtrzaiU z{1_3C0io3Ipa}D3@1NE8P5H9gB3a-Mxr-rAZqOuk_{V*{EyXU{K(qVjwKP6d^0%S+ z9zmdRfYn5uME1_5@yKSTRYfknoL@fMLO|8n5vNejc+lDh=WdYpY?0R1>axOR!Nq$! z<`39e68-Tk%6~`v`)W@FIV;ybsMy(6Gv|6fXEiJ`MAp`vI47FY|0Sx!Gp&B*N}`VH zc#;YQ_8KT6KT46J@CYR^okWsIVac@;pH|MfodH}Vk3>bfotO2Sv6rPnm?0}@krzQH z`{`gt@UC0t4g<7eosVg%EduqOCKG=GvK3e{-UNYSYrPytgb} z^V{+_)>V|Z#zdidBo6IzqoEK+j_;b}hj3Mx`smEVk}uT(4asb8vAG}+d1^hf;Xw|I zg%;DpywZAM&Qk9DcsOzLp@f_1=$1|r7DNn3*5x@|N;XfuzM7}A)a*?2H8F#eG!2!e1#C+6R%^I;4_G_Duu_~>J~pJlg{!Pgc8yZdOMm% zt^St)FR9A7jySio6zEiX@E+(>za#(Mn|>i0KCWrM!uAN>?2!?}6v9s}5*`3`AT@u5 zVo-7D=b#%x<+-05;l=#}qiMl6a=!_qm?}LPEv3ei9rYFH!g@O_KENpf=?yQ6* zW_~H)Qgl+@!Xhcd3Zy`Nla!3w+}u1DQw5EtQ8K(>KV()Ela5SyHLsvG9G8AYlWfaB z)_P}L>L^Z?opTs?@TbW|gV;?bqMT*-0uD9o+5e{Y`mq8HuUu+z{=SbDE-@*5_G{!; zemZ#n+s{8&MeXg378VwlsV-0Xtqen~41c`;!1_BCi7E7A?D8q{@Bm9UICtOFkABQu zz_`JC6x{Enj%esczVsXUMJl%;zA@PRCkB-cybBv{f_tR~{<@bC+Bpyd~U z>IyqTD(7Swlv)wJJo5Yi9hjM+_V)2P8!l7`vgnVo!XXA-$8??+4t6H04n!o>`^`Y0 zoSRfezeK+}P<*)2jck3c^x|14-XM!D^Mm|Y+CWnnhV3(&y2c4Erg0TZ-sBeo{M26p zOQSG1u*ftxc(Pc4-|eBe?8X+Nt*e4!s6=!~ zH^KGd1QE;4R1%*nki%}_Py*81JwPT@Ui7PnjlW+%s-7Gk+1e^k+0Yh38jMw!%~aTF zs$4L~_6G{+P(3^lRjKsNtG%LH2FT&z;hDq#2(+Mi$7X`%`yaPr=$gaG=7oHfZK3s?L4+ z=F+KVBpcQl;aHH_nejwOFr#77!$=k^rvT)}zJmiE(27W;^Y=*;?GSKV72*5Rd6^+n zRw)n^66fs=ydZYBZO9VyW~nvIxOHvm|Izf-VNrh1+q=Nhu{26IQqmm@ETPiU-QC^N z-73;8(%s$NNH<7{bV~U?pYMD9xc1`Dr_Rird+xbs&X+UG+H1AKsfQq$HxNqh^VlubjSjSoL>{6Y;GVo zHucn)5$pds0v{hiFs_%<)P<3>)wgq&LY8{lAOGIxe%JaJ7s%hFYf%oo$QAW-9p<%G zjmL6TpE%zNX9`ZO-6kC9(1DwJ=*ebmQ_QHxRDXV0+ee4qIp3cf-}{NtxxjxeV#U+e zqB*1|s^WjG^QEa7R7g5u00KpM=(6H8o|$@s=OI!swlsica898AR1|V#XiIc9Eb{A$ zGTtl})m7f(NUK~XFM`r0K6sMXXqKYE9dXUHb0;S1SBb73yM279Z*Dz8+fwkRw@F`1 z_U_S4!Ia>V50u7ix7IijDYCj~|4X}2bC?$<2_O&s&CgP#V#C79T-Gu1Kvx8cT7$b1 z_#lP=521FVIGOIhC?w!}Yq!ww^2U1ma{$C*Hn5c0Nl6QxmQLjvo@NUvq3doZ+Y6Jm z$EiNCoLlji6Ei%}mW3b?C;tb?Frpr$h{5$Tk=0xWnlXhXB?R4HEFs%PXe>61|D1+C zkqNn>rWfs*cQez$*xkBixCTxxk^Rge^6K`~v#T4GIyxMv*>c@Z1D(+GM_1!#*^gy4 zT~|(4+Vye&BYm)IUrMb|7$kB?nqq#|?-tsTZ0YI(Kaclo*uDPzhKgv=cgfX`o1MW6 zI3R2Oay{^6>45Vx4H*|^v7*XwJz=N~x|Aow&;0zL(fR{7`_RBQ;SxX7hhY*bbPCOe zXhNiesetq2zwRjc$qZEc64i6qsPw{6sFw{VPUN2xECFj$yx7rOWa$oYNKH=<&S&CK zz}IAx3hmsJs~IvVQg$oNS~ZH<^ITCm<~0!-1~|CpjURw-RI z$26de%3SLcPHvMHrN0?TZTh9O-M2oDp2Y>@$%&q3AHs#v_d`($dIs;);6sChTX&Bb zI^vnTlfq}LUU5G#G1lIH<#TH>3PN>>!&m4y)c}ZkY;28>9rzNvP{L`*dSE^u1;xD@7IK#iUD{YSkl8&8TzyZ;)R1+dvHa#UhgJ0<$HIkki%_@D`&seEjk!I6a-X-QUHwt_03J-n~mq- z<2mC7?8%+cm|lPderLss#6aQrUxkfac%N7Qel(g6yl) z#`xO7#l=PP0?tA6<7wL!5-RxKrMLeF9h%tksJzh|I%KtsC&^&8FFLd$zw35cV|U`$O;}kJ+`?AyoAi&& zHId7sqR>DC6_k_C57$S*i_h<8d(RG$=61X(xn4EwslUB{lRN(Hy%_yXdLIk*a(!rI zu*)zFNPk*-xYZC9it`RH@0C*Q1e6Agm?|29(HpZcmN1l+&^(Pbb+la!Q{ z_P$z#prY5tFAnd<8$_6bGu1$*O(`zL_Xplt@-e7&wTKiR1Qntm`p0%tEvGGLPz#n$ z9C_;C_@|F7WJlyviwSz9tJaKG>+J16w-!Sz92`>@ms-0&Ot{8&cC7ve{QZGy=xGf1 zgF>;S{6_Y6prYlK+-oCL`B6U#v_Ap~f5i{xpU>fetfAL;!G|FOE9&|YzbgyZfAuL= zG-8`tk5opsWV}%8ZB7*hIKE51L_$?wd+oA6o)*0L;?j%6IGO>Y*I0Fkd(8A8puld> zm>~R_P#y(xlenXb2}RGIJtRpCZ}|9<5Vv-lO!%fjU|;<0t2f6HkS$7mgkR%n+=SxX zm^e66>L<;S(u!?WhYXD8C-x*CK2-B9NLU2)W?PWSCvTnM>|=)eyNQ*H9}U=BwSZd0 z2vVuGFa}oWrGu)vy1w@UqjiuIq)!$-Ilrj}y_)=`Jo&Iqh9hzg>p6b@Y-}8XE}po! z^T?Rj5f<^dA{puhGBwg6mgYwH5S3S#R)yeLo3*CN=m@(QTm9+FEH6%DRdirMJ>W3) z5cyMwJXC92cl+{q_V!^s@o^1gwgY1YX|7h&_^OPgEF1B zVl=~j2hnkAz3X|9LqV)sPj5j)>`OtM_b7Th1=_pSe_}NVh&vl5^$npydxoWlFj>>vBvy`L8luAQX6E*| zsI5rLXDFM?7d|9y*ztczMr5|f72{(6S$RFOS0@Sf&w{W z(~#!Qa?kS>fR`%`I?zF>yJQibb<+$$qjL8yCr1vYixNoQX5)Dp0qg{D5QRCty`>{v zs9WFCZ;K#SB@i<)vU}9-4b}4X#Z`=V$r+Xx915u!8627#VfS*|@)qCpgrQ+vMqlx1 z?>0Yu>N)-=j)qTk$>`F8%wOJ)!(#qP_q3*NTiN`3Njy~gLUq_k zDy0!?>^M$_QOE`TYA3O2tbM)$LC+GNlYMtDvT1(i2#H;ql`bACfro{q2cJSV_SdQB zf*(GmWo1(Cnx5*OT{#COmYxqk)v``Y#18zXGFVBArtb07HXqZ{NC_#jJceqmh&y*t zxgfdt9TBO8uxqAjVY41=smRb4O?IwtH+?s6o8+~0ICXZ%!o#pMf2^Hq!ftp&9-SMC0LLD^H9bcm?CMzPe}Y;+S#k4o|1i-d2)glS*`pqQF2B#y1cNhENT zTPfB~UvT!6gswgtI*ty3#+DyVLJM+WR8$lUU|IwL%pqb2%o4n#$eCtMEhd8xFz}^j z2Juz)_Vwh$wa6n_so-yE=k1`H zFE0|=1PZJ_yqscU2Cah#6%))xAoye+G5T;tWslnY^x|+bodok{Gij~hV^`LLts5Qk zuU}RV=Af=T9bc}m%!JKo7;_xCCCo@|wb+oFu&XHXQ=>)H-O6h5^=RuP4q)K$GkH~_ zpM|ZKQxpJ0*M0XuIVVrj?xOrP!@ciPuXy8p-o{sXrN&oAO*XMGUNeP0Qc(heCY&%I z#M!P+jSx!uj~cwUV|rz%|5j(y4s>UuyIkdQx)#+JfrH|)j2xX-N2d50R1y{H;z{2( zoiw#)^xKE&*zz6py}LHwD{ix6(USl}`>dLSL9Qm(EyXUr!9X*~H$>02GYJzsn7>@S zNiyj7$uGe0I@ehR6i~TyJl4?DAW3*c1fnhgrNc=98qn2rWB)$dSmG|0d*Z&TwJWj$ zdn*p}d;->IZ3&EE%Kw%Z9NM8!ccqrPBNb>XakxU=WKWu+?bh-TZv53=W5cNrOQDJo z85ud3Y2ZFYeKP4_rYd5`FOun>uj^!<&1-ZBVdK1y^i3#h@K?tj(N6&a-uNqWt4PDW ziiJHVr4SUtcfng1oR~gNt1=Smd8Il>V8$_7C&gCeFG)$ba>)cs58L(n{x|dAB?iW1 z)$3?TvZ%eNl7*oiuK{DGc?};8l)mN&rc;sVt^Dy)TDXz<%N}R$sD7NZ$NZTimMvz; z&|0^K63FdVY^&BqI$CamckRK6q#Cqx#eUJOW0Df{MkF#Hj;)=jj+Tda5!w#!#p)-X zR`|dsgsP56TgM5ssF<}(jfD%CeX!2lUYG9)?nHHTVz2xDw)(DDrLWIyWzv3qzdfQ9 zPZ+PB{HJeM!V_Jo4U(ge--h}%Q z99(5wX~BL&9u|cwyIvkj@17EMUSZ72t4LP$DHMcwxXU$qaGQateaI!K!L#o|`Pd=_ zU#BJf&cU}i!MPs~%1*}4CrSPgwBHR-bZxsG3xh z9f5q=y*G+j^syT;I)0dE!>)fQJIrDTkKc9cRVTk`U@vs-xACg70!Hax4v7*h0zLhj zWYY3z5|%V#rn4~*kd#X`rs`*Zf0Sw`B{!viP-in+NS`lA>gm!>e^V>RgMv@b5hUi6 z-;{($S1bIEvExlJIxcu(B5nSBm4iDdd0^LIqQ7-a()syjQ3@Iw-a!NUcOyBd9_1Tm z0z*)lf=um@dCvt~Lz;r+*1~^jY>`c6lfK)4-uj~62oHkaZT+dVIYEcshg92>dXI%` z4~P&qQkscx`{jR7N0MWyp<2}UBv&o@a_0X}qUk(xV2pV}sHHMw>j2}Zy{Z^!X3~ZU zMKFCtX3fVjLO_bjzEPxZ9AIm@;ZMaIoq$e!6CkUbHIjk`E zYC&*}1%f)AdDCb8;k&9j2L1|2tnl@;j$5Az(e_gPU zZ-OXJ@9UzV5}NbOZWBBA-;|qO?)0d-N`=v~%GS~n_u$QzBezz!^}SoaHPHmer+5@Z z7&uPU7duwH*;`*oJjKsAv2&i52khc!W)>RMHBc1?M&0QcRVmM|$h$>h2nn9-Gg>B8 z-L(XRUsIZ`4Jq)iBT1b9!|*p~a_ZgZ(64%@fK)r*nq?0M2eys6cs|q$e(4u&%!j9S9PU zm432kGdsKLSze`h)u()J@PNPapl|kY43fWZpr5`cUY5C#;yTWheO1-l18X^&dj-|0 z2@n`MJY-^T`@^;Qm=4#R+~4#zWHWtd@6B~{)f;Sh%jU*mwO z)w9V{Wi1x^u5tAN{AI1+Y>sWbIkabh*f6%Fq(qsIse_ZMEE7qtjz=drxWEeSVsLAr zw=N*(J073AbDdM*536NA$EW&GD6T^zM^-TjCX5qxC484HV8G4K!=tfx4GX1#xsCXU z2G$$u(#CKO?Y+0(nk)Vm5Q{n}I8`Ynl!a|>Dln-J^X8Ur8gQQY;&=EqnTFYXn|MO=?&TLk7fSt#dBQO4tKIxaa zxj6x^b0aHT#46B8GNjNv_)7r?zkV%qjE-9VmzJR`>d3+4^rM__DYCUK7e5sT&$+tz zN`goQb_%k`zCNbIy}a0{YFQ&Jo}J=J9ouVuKX;ig-4{9Zxw#jlT?dyCeY^~ZNDl-%LgE!E^5yv!6qBq!LqhpyPB*MD5XBu4hj?XoyC3H-)t4vuH)A{{zZnsG>Ap+=U;-?{#V#> zsIT*#1p=|Az8NGJrXUk^HDbJNhXOCD{&+D2DHtbPl7oFEe)Y1z7yl6ApK6wlTF96# zn`reR`0y>bHBZTr#gSzLkZ|h6_0b9E8Ubk6B-_d{KXAtTAiXl}WGp8aK2z?HR zrBw@!!ZP%2NO5V*Hhj8QNpzIr1E*w-%M6qKF~~? zLcEVgYSeDB_K>aK1x6xlfN~Ns!3|ex86sYaCb+tWY5;l+e2)>i3Sk+S*dI=!1;j92 zn>j?F^U2_#@-o94q;g7{z}SQ5d73}lipH5c;zF^oSJjbXQn|eueJ7E*%Yxl-Ot1|<7&rK+dNKs0guyj&vrDgNR&?zo;r*S(ErI25x8Z`6j#8?uox4{ zB^B5!xB)#UGUs7~Suo6g1U;&EHR|m2Z4DegQYqK;+;*$998*OP43(vUi#D7APEYe> ztbO7_WuEo>p85Hdl0gDNS=Yy(#W1w@OxDzqFlBSA{7oqRE2CerYj4a5_#1n_U%;-x zp~pU_`Z>;aY(fdEWOr5otpwCeD!dH7@&?`=0FB!CrXQ(T&j{kh1b3lH}3f=Z#{Bq0HyIbYJMO7{+? z)1j1VX9dq*rZ6N4)b;04|23cE3c@xDY(eby8D0>&)g(F%0?9@!iuI2}r%lIX{8k0j&m|(BBXDnN1!^oX_U$17|?kd*mn-1+w%^=SbRBB}&}vqzmSzOE&lxNq{jK~@Zb;i&QakXrjy`?>%Dd;U#7 zZlt`2f;$v%#IlU3*k7O7t5vv|bR?fpO;b&`me5KcaS7`&;Ee=Vg9KEa#fb7~6nYST%C7XJv@YLxDX{o4#cp zlVtm+*LPR_0tS!D_`JP{RVT@&M}`oNJ%9a6m1E{~?h;;GE}Gy1ALKwku}!|?2v>PU z#huHsw^b`Yyfb#$=b64ku31ulGKGK!wX~Vjms9bp(`Z)swtqPT=Q?N0SevpOFD!oOw*$QSr2hsTSQvs5Je)Vb0vQ9en^zg-@wQ%FANC)2yBy$nBnoSyM3GwNCO$N68jRM*iDns`T~9B|i#aF%_4$Yccqw z%I(~x-HG0OF-XeE!7;snC5J~fGc(#4HZXP^%F)bfi}?*e%bK3{7u1QMZ8G-?%89}i zcPU??Ec%1LFP^=?qkJ>)dE;@iqTb-R$!qT?$+Cc)B&Bs718U4`_T}x@lEUf2GzxY8 zV?p-0T+1#o5=9L$^w3f+5UzyW?J&q0zt6>oFd(nlrgidQU9q+Cy|ISSvc|}@y+XND zz1@D5Pvq#G((hr0!Z{hY6patMsqO74IllG`YBQ(}53^7VU=sqJo_Dg>nHU)5THRPl z`%OE&7R{pYa%ekgEVcFqZ&g4L6PCz`bee(%m_Us|rj#tmNeMM3@0)@Y>K;&88qX}q zeEArOb$$RGJzsKdGqz`hl>Kr=i#OVZ|rvFAG;V*XqeTPV4m2! z922rP2NAPfnSSLa@l@{y0`-CqKO!X|$z?jNxuGl)$o0}sJZq^O^+BPG{m*TQ>${I8Jd z_gkd%PMOM?>GT}psYivgW5sASj6DY6{F;Tb``l6+*>cL$T_8b{1K|GSwba}o3Oa*Z zs3nBDmDEL?`holbyPp_5(A;NCz(&5yr1K6rFg^+=yy9=NsqN4MXUr}R#$G3LbpF;L zsUvH)uKB6M&}*uksisF$s#54+QP*J1@u#V}+e?|8^YGIyj_h`{Zt&SLIw*sfo4G!C z4oy*376;j=d-uhRL}sX*Qc;&HtsjtFM(DIx8Ev5yVIgxVLhJ8oP$dX#TdVM%<5q8g zBgV}^UgnBbk@Kp6rqq49-d1)yk97V!GoDxR zf&{4>{+c&ZEP~UekH!zTde6|&h~;=bhX7N==&NPN3UF*D0QhT*_V1_;9vZB5SmGby zWuY}M`%7Gsa`ZF0C9j@}eb2(O=uRJ}{oEqf`tRExz9 z&&BHFE5^a)RL}7+UMMPpe9;+LC8{s#y6y_xBypZfk zDJTYc7xh9M1FkaEAMZFP`q^qDO}S12@3`fc%7Yc5{+QY@)VDM&?0+(|tg*MsCoWdn zRkm-O=G8Tg-Q4O;6dm}AMGoEN>-3=CN4|65!R@q1(g)z2w3Yo}d_Oq@B~fywC;f^| zYa_xT|MjYRqJse7bt$^4eDah*)318A7jHuuMZm(Ir{yb_*jv2bGy$kDbRu-7`Z z#jBZlA(7>)o<5Iz@Tn$*@9S|WWU!Sh|0#>QByI6bQzxft2aR&a48GG#HD~$<#M%HT z92bu&6j5sC!PvNrVb#(NgL00!DYmNf!3L-md78ynxmWTd(@8zha`j%mcR4~F_);Fd zv*%#5nXuhLeLZwg3nw!Iab=T7=&=*0-Sn+{oNq~xiFj38{1Y!uzb}&TNDK%`+7y-m zfl{dg(Rd2*26&23W8pYjd>e_2ER(Bko^RQkw}OZFz3-C7_TE3g&K(kP>2(=ciIzU# z<%Q3uJzaNq7lMyV6CXYXms4K!W)uN?7SdrmNz3hut@Hl)D?2;8``dNo^U}+io@Ra3gfN$~ipVI?CBVQN=;_A1Mhl?vtt6nPWP zU-55v(E>>3W8Ju5z=UNky$>-EzM;CP2>z50S#&JXIHUug48P2Co}md@#%=?2DARzZ zOh?aQL!dIqM+DWI2RAiWyu-$H-f;IRZTmKa%Wxn`VyZGE2Z9u-7%ML?zZK0=S^SrR zqS3CMud0bG1MY@GfG7#ooxaQKO48yyT$AB^+1(Q)7w2NRtIoOaXEXuqQTp@fAr9Li z%)pu=0z_RTn_S@aTTIZshQ+M-8vDoj?7-mP}ZA*cPk&&y=vR=KbEDv6I|0qQ5`$w(60F z>PFJopWLvJ>F(@S@!)$t+Vz@qz0z}?;ANW_J4xRh)2jxIn^f{v<8|WVY$r0-rteR# zG#)@Dc;5qx^$KoUTwFAz7HGEzm{(v|NHlNx{kRP>&>wh`zebI%CS0ycqOAi-1-pgr_N_RF{gaMj zh~c}9t0{5HHqW!urEufvr0 zuhNYT6H()EDWi@XgX>MVtQ$@aX9|`YY&9qDZmP|9Az!ka?sC@+f|)`%Wi%4SehsC> z8J2JjDJUqYBV{%D8escmef|2iR!k`oLgx|sTF5wxa3y~h60@CBeR|-FNTcDUUk&;) zp6`rH7GVF)FyOy>j%{btSsI@~_7%SZ{`$L$bPlAMDvk$(Yr+IwvZ>Ycrb`?wtZe{j zqXfzwocJ8H?urNILqa1d^VDSzo=P?rN15|nVX27mVJ+73eJ1U%uKvzem6!J`I(e-k zNpyeJG>H22*z}2ItZ;h|DAR3D9(g&+P=C4xW7kusp>BjHOsh0G@2Atq>(O-L*rvbHzJluG*8 zxgM2spy?}uPsk*R7vL{%j_lOsD6)_f?MJb4^--ZPqa`%?U%!56yakTv#yKTXOz*g%5}K zB_sv?A_AOxd2hhZ#x|hpbl>oO&RWl7+1y><^;AP)O`4|g*f>^(F!)@uxBbq0xYqd~ zJYJgeqKBjpKj$8fiAliX%S($Y#3q-LlJfqU7##Z%Q_c?U_^m01N7^70X#@C0Ws)dA^JWCi}zLb9V zP!{Ve8&B5r^QYQ!CW%I-jPU9j5!9tCTAcbhY?MdFdMTasJsA=Q(WIzcpc}pc#_;7O z7wcHGo*I(>DH_18m16F$K-Jo0 z@8k0th^}RSvjqdiM@gGA)@oWYR`%&p4dqhrC_YuBd0A^j=nQNfkGmUBm1Lzhxweq; zD6n*VL!^VX26M=~a&Xj^XsjH%_yw&zX<_lCr4a)}H{Hcql2VR)Awqw=k2ih9+!28?BcT@1P?HZR^Gx z@vMTA5iK|n&|QOJL;DNWXU;$eO6^_!Hzc>k=}Wmj<;%w8Kvi%rW24XdPD6>JR#T0x zQKB;06B!v8p=w1kiYb zMLdFB#0;lSw>u?Xp!F1X|Iyr!RR-)8=lk_fK*Ew(I9RLiFVB53nu%Q-)=wM+bP}k1 z^|2m~y5}-=6|t2nV-bU^^v9D6n>1|`Ukf>4L}D5dYr|Tj7c5M~c(^Oc*!3g&I+;Sn zl8)8C^(wCgIenafu&_E$NAV4k09_)lU&v19*q(lehqKxb^yBFm;lkaEU7qH4D>@DHxG053yi{LF88R_6<*E!0~;-OAhbk>u)J9m zS95bnk@cWOplzeQiwoCu?~QO#+<}8t=e$LfRi3;!k_zIA^r_J4yu8RKsXpc^@lB4w zYWvm3M$}+MbiA?J(P$_|u5-t+)iT!DzAi$jb3ox9MG%r4ziT!lMwtDofaj?mtF&|? zp9%pd7Z=`P-GA&S25H=h94>k2e_w|%sFPAZWHe}V^yt2$JxJz?0~-rVLgh>Nf!Ntp zmP47x>Fg|?yz8<4N96L;!tY(LO^HF@soVkz)&Ig0ls#QL6Fxnsaa)dh=WS^F(7mdWG;?$ zU*y`)PXdQT{qH7ULqB3N>A(c2z~upd4~3@jD%x7QEs0Hxjj0>+Y2;SByJ1pqygPu( zvf=XdIlmgOD3Nl5WpFWs?bpuaA|{5C?jk}A&L9ag3W{zzWkGgM)-E8nG(U^et8V?Q z@nS+rWx69uB9sq8@<0Oj!Wzy!fde*(w z=@&&0-$2T)xLlWqIA%A5f}hp$2hDFVOKhVBB(iV4G>X{Ly_}cR8@dhC4nWNp`V~Z| zv~L%GU}tszao%pl+}y}0m+i_-YY}bM1JK&dKEAfZT(veWd7G5#q-GS`^d~^tOE>*_FpoSWf^_UqK+b0=AepV5G{XQjx^r-gZ6&q+aIj>2c-NQA$N3u;Y;{l zj5^CO=EC$f*wQ}U($UJxQm5zN59Qm-_#P6VU?Uo zk4A=5cJklXcRdeN(`!7o<|D}h`$Dkgn|xgJ`MrXtjGQiijV%55*`t6 z`T7N^chMf{{H=2d*?w7$@LUvdxHFc06-2ZO%nJ)g!gSGm=@4j&hSmfIA|GP z0Yt;e@#~j?Tr%yG&>1-?C|v$;p7rhlpW2h*1bhiMxRzB`%ro2_rwKyW7uaV8KJrP= z0>;C$fl~im$3=Pdg7o(BBRd-#i86YsmJvare0!vZyJT-CetWt01a71VLkWyNKpUu& zHoVoa0T|K!*1^ha+$Mou4;tDC7#n)B9(x4PKQjC16U-Et&*U3oAwz-v=gYJSrXZGg z$AGz*dY4kR$bXs+Sq8FR8(T{;lg)(VY0j?d#oFpV@R4(|I<0k=bC zvtH`*MnxnpakFKwmGJ0Adh;h8Rhl3QJTnkADh)P}S~dN`@?$Tgy7IY)JTo{TY`xvUR{qK8lQwRdhn<3_RoNX2l(R<6(x`9saWP)J@tcJxldlCXU4z% zO|y}mQWJx`UX)7$4K7CX7nQV3b8Rm(+HqV-TrX8&1?u9)&TJf7RVRSvk^{5gI=hnL z7$t~^mFoKbnqBiRCN`sDX5@cPW}!W!P1EV1)oiXmFhrXf5z{zr0k&AtOa7@iTNT6%QGR6l;x@J9k&e3nu4j=|#&ae>uyKd1m(s zsSNlX^B<3jLDaIz8~d-PKsD9X$~xUc?|>*1qZ26LH&yR^+!}pHfLS~<<%lE!^`8n! z`ET#?lF%5U|odSn|orqaI6?a$xP~1~)giK53+bwuT)mmBYS$yy4hyuTs_>1?yM7 zOmZFQnR@c5`N(vzVCRMX`$U@^g9*4_V-a(WJ!z4(WXfLYmEIQ!@^Qn&m(@LK7aUf zF^<(WzKIZ1udQHeXMD2j*N?o zTZ#nYpaZ^>o{HeP#C-qFF|$~O_7}D>EJid*Xv3D;bv=V^=I%NKQAzuwbApYB`coDy zEYRxM8>vGvPq`b|hu@#=Mlu;imp_SqnC@algZ2_5Zy~o_UO0`HI70~~;+u70Yncs# zFP@!;pPv+>ai~%AapejhYx@N^v^kt^(xY*TEi`pf)z#zn{B+NR6dwXm9PQrBZ1NBy z&W3Fo=A*?&A{0Twy%#4}qVO4=ehnwZqeXCdnAxqKGJ|&j`OL0nt&l^abh{Y+HbN4z zV=&dzmKsWbpLNDA#eDzfA;YEq%M3|4c&xTt%lWZsg>2~vA>?MVBJy7%lFxhJOe$xp zAPB0q_(RMpAugqQQ*aXy7;K1S&_4=<&TB9cjCvTi#yOG@b((A4drS8_(wk>4etU!Y z1{DC65*L)Z<4a_e8VXMp7Af>9M;4jhcEBELlC)_(gZt~{^nvmfvYrC?Fcf1&mAg)%TZ8CSq<|ybguLG#&KT*gSLCrwh7w-F!jY znL}8%tBv-coi_q&5%#O1)G#u6(5Eup`*w$IZ#1;7v@g{KIKdABY}Kgw%#HSU-)&>C zwhRI46nGP=a9)vKxcYoDsRrZhLF4a~y^4SUU=GLwLj0gUz=lZvgv0l`Ir;gCb$hn$ z#}2MUTZFAZ_steNt-OR)W2C7k&M}c!p7f~s$p&P*HZ{F54jTOBCHHaV8&^AsFl#Z4 zG0BDv)opcCz>tlKp>7v?y z#eg3gXG;A@5?|)tBK(Rdid)=w)2k`nu@BqW^t#v~qJr_1xRY966>WA%;&Jr)Y^o|D zx%Jo_3`A{g*=To%c2^(1{*yo{9uG(cI6Q*;){BmPG%dPpkTJT6-7ySj+18k2ytGw& z@qLT8K2O;Hw^uP=*Mdfzx2{^Flx&Cs)(%KnCo@yz8Cdq)su70ztbCs?hCZBt&Rx-4 z3~|3A8RSjl<^EF!iS(I5oRL!n(6G;HYHDWkl$gYvKmhr3ABKfBwKDCLLgV>~pH1pj!Z$!;I~q}DE>y@7k5o@Vz5Zoj`%~g3>M*kW(s@w zY{~qhJ`;40itU+Uoi0k~w}C0nW#3NoW4Co;wClLtSM#Dh=1~!P66(6aO$7Z)%+}&* zX9a}zK1LpV?T6prRG0{i(k+TzEmK{c#B$!ccD34YCt*o=9g$OF<=bg< z5di_lT5aWaJQkMWbVcRpS0#i{D(0G#Qv#|4EwVEv60gzpXdukr*IO8ebnap$O&u7M z$mkv{T2$>$1V~>{KFb!|R>C9>&EUt5*%gsqhCP9G{0%^av*U|VV}?+PE#O#sMix)r z$&+q!ySKlYa*~zozrs@u3uAFuYQ&OBQ$x+iocluocA4D2-?1PsKxv!CBV}AzTm%Hn z*psWeQ?$eG?aNh_pQU4GQx(*x6Ct4#1utRXC0Y)>-H|>2o&Km{NJN{$98YZkl2ID* z)zM~i(atx19zU6;#F!F~Izcuq)ZQ4vt1!QKM8j#ecB-=7QC>pFHzagolDW!Eu(|s9 ziMqJVPK*Ly#udpH*Uix>PK#fS)Wz>wpTH~fwQu9Ye3+xWA|l9}cU_9qIsrvySM zYAC|iG8!(WN>kCd-JyhCfbMY^*_p8cY#lg`;CPF1hLRPCxT*?%a=gxPf^#?N{;4q< zY&exn^F#>=wL~)qEl~Q`CHv3cEc<#tW$>MN$aX(G2&tA300%?=M0a_*zo-pZPouhH z$>$>oRYVE~-C*J*}|y$e_8;(&c-)F6g6@#aI6C|78aJ&%*@z+bOZwY z(B>E%3POk;-Qa-tw@8*CQ7IRO_&&)9QJ;z)o;`t zFlTrwenms-Q$|YD8tW{lXmX~$JzR+ZRTeB5&{}Ln5=hM02z2#e%4~M}`wmr5h8rty zdH0JLEqmn}0h_(ik8YEm@;UEjUmn`IhG_&5t1K1;LCSuhB>?qjN{ zhp~>4*99y!#tjTe0|hT!;NgMD1cU%H5~mK<9R}_Go8-U|s9uBo7#&#hS~Sy@qzHGk z!44$eVCOf)6dnJM$KI+?uoZh!5a1X&czGcbP$3J*j63-c#VqEVUBT#3Og5rNitvXt z*LOvD3e+Gk71dtK{g}_W_NzeS%76XbV7I}Cn)Y^i?J5)bc*K9jy7#gjR&Ru9(3>@g zoU-V)-oJyFM!g%YWmT4R%HQNE4HBtRVc z=X!PD`D)Xo0Dk<-MUd|EJ4{SW9y&T5LOKA=Gp#?`yz9=3oNK^e4+-4~M@7S>;dq5C zB2K+C#rN^j0&qBCPi$Z~l6^x!acT7T@87L9cyQ5QqjZ|C+{arZhV9f{o4xBNOb%qB z2P-9pmJ0sDnhT|gAlH|KUJNzbABL;cJ^aNxxPLo0_{m;}Kfr8R4Yhho%fKLnBIMOmv5|w){O>2c`cYxYlQ0n*d0CHQhKUE` zbcV@n(bf7#Fs_md*?qY2Hfcr_Rx)O@8f$bC;|Ch{uO!I)6%^q>XgH)4IN)Hz2zThM zA4Qx}#}=_792oor_=nj_YMr&+A5Vb;psSe`Aojr0DhRrKuSFNh{W_J5n$?T$Me>am z<&09nj`D%fP*P+gRikF9B&RBkOp>WAVNEV@g#9xhH@2M2eDgO0uOntO2+03|T@8ef zIdDDoEgFG62}y4NNiSI*Rz!}QFI&S(8gAUp5pzMo5IDq2`p?w)sY#oF6h~LhIrDs| z@gy158IB0eCM;BD`fq^L_s3@$RRr}Hs@D-ya^n`wKj5)zz{$SS>#=@l)=J`7$g=@d0Z4JH_h}Y8jIBW^ZusIG^){@Dq=dM5rKKrw zIp~Z^*+ebt_{7B5(~JDjP&%v{IMtGK6z4d69V@@h7-aDI%f($Q1S8NoUBLU2?mzX6 zx*n1sFm>q7F5wJR2!(=2Uc@RDR6l$CF+Y&DHc~1%^2!`7f(|#r3|DwXt0jwyY{4#G zRvrU~lp&xr!>ga;;^W+4rg;e2`zVjkQwPqcYk~kh8m@}+U*{o5Y`!RaUm&sSo+}L% zW@-|M5C7LUE5q>f-N4~z}D$H0JntX2X#;j~igyi$9Cm4H8% z*zF{T=d4BKtd(4?gjcPJSEGqHVk3!UGO;h zX(^Bjb*a&wG;pDu>U8VsfRPT9OU71;21?WyOUE^?b^QxUeO_7^`{;(j5N)x^Z8>QK zG;{(7JAVI8&-(VQ?0tM>bCNuR^Hw+buoYWf9YAovcp^1*duG9&)`<(m^?sadml!l< z0!CkHTwi+dBcJq$!MkpX8Y{t9G(oePzXXQbtxY#-IUJV-YTj@G&o`ui!9wnqp-KQL zQ9~awtG#y2Q)bd7!3+J?(7^lu`QD-mDhJO)9z+9~63-|LXxJ<3MHl1keyjH=rA6zE zk*ypAz`$BHxZi>~#2Lp8w!46XM;S`2LQwPRUjS1yg0u?2X(}(AM&ea*IA>SomamfG zEHO|NHnkYE1Fyh(yOj`-F6nMWKtLp%v$TPXwLd;>aDk1N+cCC>6>#T)LfVnZ(V3n618qk-LBTk3;h zkZUF&rGEjKFl4#2Di`zR=@aGYxrBv{eB<0PRb~|5O3yS-n`c)saE<>hG<~A8b{tcR zc^Qj_z8M;fQg>5xzhf@Z!(~B?PaMhjM1fC?X#3VVhJ0sak$jAAxZcrX;g8M?RM!h5nE z!-|OAcl9WLImWZ?jJU?}>+6FB4m#bj2o67}u;h#QNg5WvmQRLPNKOPf@Ok5nTl;4On`=kEA4)Y6s!V68!Yx?1b-N&oLKT_I1I53I;YY%Z?A%u zWg)Qk1qB7=zp%#Yxx~cOzIdXTf+jZ@-3K1ztA zzBq9>((C=mc@|b`k`>4)MlV^=Y26H zS9FXzg|PM42l&Nr!CwJ%Lmz5A2nXWgFd#juA?pm$#~{+o3oB?suFJZlu4NIQsNAAl z;mhXE`&c1Ch+T+79E=aQl9+r}Zsdw|3^KUH=TKmTg{W(EUV zh^&F1Bu~Gee*krz;W5`wKj~hX14+#2+(2n;c;ry^yIcl^7mo-3g1$DH*Z?LnI5;>< zeMVAAZEbR~KytsULx~q@FB(E~g?;MZubdQHmiwyyERIKzUTrQGLv6VjIJCW^38t#@ zGWR`(%GSYvRQ!5igRSvzu+T%p!{)#Fp2IzUemS9TX>Cx*aqUGQl3tFh?rCzIZ!%_7 zCU@O%f{WouIG$&PFyL(F9;hGP?-7W^6Q9x|OX?qnS*W;tJb}V!;P-+n;L$^=#gmIs zlhz-W;&h^!=jZ2p)B?{_%GxE~a86b3~bf5bUHM zflUZyvmQLH0jSV&adT^yKZ;{t0+;65oc;WX4;bxgK{D0ePfC&TOrr5y*hG*bEa+f^ zSR7{9KN7MdK&iPPJ0D<8Qd3WHzV1q%?-nIUYR{In%MRoM^2_8gN?->Y{H~pFsin(dND?ZPM{O2+?G=C#X?14uAQ*_TE9`Qd9=4klaHN2`< z4PKvXS8of1(~yU~dO@<{Xq_E&sMS>LP8JtP(~Z=}j*cpziZVeH7h2t!D1#o(p7)X@ zC^KEbAKUya;2LWiM+W_AVX7KCV2~zheJ(jwG^K1}U_g5A*CRDl;ML2Q5`Fo|1CI63 zoUN6bEUEX1L#I^7AIEgUV*lR1#!#0gyR9mY1?T`uXZkhhuFwd;^&ClP;K#{nwO12f}|hLDd(^A_&9J%|I3TGQaMOQXybCyzRtVKn%5n3FRFDzliqB?j7KU&l=zWiFbu+R5{*fKdPDepgwAUA7^QFQrG5_uYO4tjP2ZX6y^VT0LjUk|Z#Nnj zkO@N{55*x}bTY9zTUz=Uht;k;cw~u29ED_HdE(u7CS;ZgXiF@KPnql@P}T4X`iQ#@ z0;*^iQ_jw*aYAj8xP#ldxkvg_Au-3gS;~z2PT10uV99Vih@ixO+gV83M=oQKNia>4 zw#uhr`)-@X+Y_acTEy{B_fuoNh+@myC8fWEhBAFILiZEf`f<~qhA*oC>5cY<#V52 zSN9SZoK_luI#LM6w(6jxvmgWOXNUDE?AtFGp*^U%;OQz^8@;ENw# zsBQ8N1HEv{^uJ36z%QcV6+(T7>gGdFjtNC~R@M+CE_9r)r{Q&iSqS3r^0nrf{^1*MOGU0NQeKXV9n!$*eyaPmR1SW9(p;m*a0WF{s8nv5pb!pP2vug30y#gy z?`vz+s(FG09{f;f%PX4o*IQT0jbuYzMpa+RAyfMQ47t@7%5a$^v5z*02yj+;W&8~q z3W1Tb2FnK@5=k5i99B3uuo6({2Wc4R!WOK;$4onxrz86~ZJU2mV|qw0luGfWnQn?w zLyKtHmHjBn168r7#8*52S!TX`xD5`4C&`QE>kqkSnxrwT>Qo(73Z&|(Ms0rsuaSTc zCz`5p8jFEJmMg5~m-b#z1r&F2U?#j0W^NYwp%Br`q`I8_0Bj0z$Z^H2$(vv(cDH43 zpka$KEp%v}le>eHZu7G~#a8TWj`{fFs+37lg~>4#Ho&U_pEs3=aLvk|#1{PHgcs0%>3I!H5%$UH_Y#0--4! ze#z8rCIuJq*^57!KIt-ynifD$I-`--;7AZMl7DmKz%2doSgr|1M1aQkb$^rJgQTYW z%3#yD#L=%AlOWWL?@^_II2} zJt5oVLH)%32*?ueapO0no;Je6t#UTiv=t|RSAonjbzvA-;=vDixPh+}Tt%ecbFDd( ziZrh?&Eo&$91;EuTQ>50SX>9Yut9)!%S)46=d}yxEb^Wpu|*?<7C96-1O%85qO*6@ zg3!ssJhc}QoIH2;7-)$={6CWPu7<70%LW1C5KZU1nwnlW@fyTLNmo(GnBZHfp}%fE zheP>Gt-29tB;KPVK0N*;*&-7WE2}zAfuLa1nm{2dDH^qXybn1V{C~-C@RVmjk`5c^ zZMNm>W6%80P;Wm2nllM$%+13Ti3zOKqH#U;2fE-{aS>W5U%!UdG}Q$CskEZdJTEaK z12#338T8>V3#;Iq9mm3c^O6||-j17n5JS3+5GPEO3Ks2O*y*|X(CLVeBq^ei;(>v>Xvkx#b00s${nGkKU$I z637iXu^BoQmHZllew?&Cky$pQwgn>;O3iBNb-ol1ZT<|*_*uxp&HEp#D8heF^xt&9 z6v`IFFnh6kf-B85!nL*uhtk1Sv3^f4`8KY+90XB7JyYM|s?31%gOf<)Y~5a%iADRu zKfg1g^W8pws0mXG0zAmFJg{$irNQkLXVU^4P^i1X&`=gS+&|%>wag9zr(^!f zDbpk<=2en)P=gQ5Th?ngi6Ek2OBu3VG>OKHPfEY=;f_hvPup_iCp8Bz=4-pURR7-n5*$Bhq(iqPBVaPW~2MvQo?#qrMvqZgk;u#)Lasu=Sz|=@w z5YUTnjLs$pw~QA`9!d1qYW-x*@e@ zd_Lj2dh4k(?cnQ0?kmVEbSjwP_J_q?7$#Dh7jMoeVxZ!-W0`U(X_60 z-dYw>J*Qc{@FqDkXEj=^#YMK+kst~MfPUavhVG&P#5$1&(Otd}K8~{rtNf6I=6h#M zO>P=kWU-qi8hn^~8->SjAOakQi0udFoonEMRFM-mdW)ZUuMjHYvBr2=`;2bxYj;Et zm;HCLLqQf!dO4ztVKBJ4m|&>@dZ`vqY|xJrtaf^9zfNXu#7~Zf91L38H7esx5Jg%Z z6=Zre={u1z;ZA|SdXEsfI!Q)NGED-!nFs)r7yHkpZ2)pEgG{#}oU}g4jf(j}a_)OH zMBDhpYbnTm!bMk)>|4QSqYdir0cCHC`d9eH6wchD!qG- zI{@H@4^_pcSOb3mHCRrcblMF^JA^$Bsz0_WbEe)gh8&7}51qEJ?~3GYlhlavrP5)j zFb;gBy>LoDo!5FN)2}Iop%~$WL3&N(w6)ndqj<`305%hsIuC>r&81dLX?uZZ>p$q6 z!;n!eyiW3?NPlfhst7v5P~nHnohH^O4P=;5L7Py}Kawl29r?foeMyqi5qb@hxFDD= zI!2VZU;~*H0HEA=y1*d%0K1Z-;i7)nnU%aD1upS{6~+GpXai7ps_<3GsZ;_mdpKK7 znNp0Mr~RbL#c+eggd9GDJamUV3w zk~1t`XN(xEJ!9eCosWynnPL=wF8iCcxRwx1IK*Q(XZjadFFu@}J{t)0mm#`a?}e?W zX2|&fb)igwy0~Cod>bqLR0_y($Sz0Z+jNhdt~7=!-T&~&_yw+J-VCC=Vvr)DzRy6r zrlL|=##(#fOeT`Ktin0u1HTPr2Fs|>!BVs7>`_jH%Lk?^;Co^Fh=&r2jE<6c)e8Z& zm-R~)k}sn9%oI412c5@5f00+agIZmJ=C5r(NbjHnf|fRE9`%Ty?3R$<2y6K;2vn5n zTrIZ+>WHN-nORxUZD?S2xgvgqtwtRCPVYrR)mt4F*}44vsYCcn?+yJ01l}PQ`mwlI zy_?DIV(;B(7>k%ZB6|*Wh93p9cG|G&eerQ1#rn5Ie_qExnPL<==u0={O5(I$M1b~z z+1c5$wuMVJHa2l>?PAR@z&pei87xW=CG{X`BbCueR4oM{1`S^o_|wAT@Hs|M6?GwC z1Q*(UkoQ{mNmcvKK_ogCf8Qt*yo8*Y@X9~YwPWm2&`M>Ovh7Q#kB~Ve8G`@kNk5l~ z`(Z{M)_I)lra=-06wN^8am2bo&&cS|#krm8chlJjU4lB7phP&-@wfM3-EiTttS&9! z$uBKs9lAi1fuR~1X;H@gJn*g*zW8U;VCi-%$k&%itcjs=VdH*FaLwl)AN&hJoM1 zn3a{)EA}`eCIfOlp)VuDkgz1vtsV|-#KPmQ2=7A&Um^HBa~DYRFIvZwZOck+6^=?6(~d#QXEV*@U=ep1f2;4 zd=%IDLQ$annH%))R>1#;i_&`yrp(^<($6>hIpxpJZvOTyEr<%F)lM5eK8jr(i-=ZN zbP)Y>K3Z^}b(BqauBSb4T2ReZ!sGZXUQmE`)D?a!YjYY?<;jM zlSAIPHr_Er@MVjEDfh-rV>f-5`K`}^L)qJe@rH(C5~X09IFPe^qb3p|Sx`$-aJLu&hjhx?ea>3mPkr72pr?K(okUIJ zt+%WTppH`A`iJy6FXHX(z3!XCcxqEe?SxWwtc8UXj6yvbqN-1h)HXTo`YAI6{ph&T z?9IEu;as}tT{)NsvCnf^FzrYw2^($|$id^nwVsNK9sF;4<~SYa+C2_*jDj971%mzw zgJzL7_36^Fh<@`W*I|kumoWr((e{0t31aad9}jKH`(3`W8#b*0t}PkR!B-#^MJSp> zSLpp|t)0%+7YXrqrP@;__0qn(d|}_n&?L3! z20wVV3~SwetbQ;W1;Hi|FAJ?X>kN(avO*>Hit+N-)g=N%R=yzLw+VVEDxs-op+p_e z^ar{Wh)FgIEUthB&)nKt)`PjaG2q^F3DA^{Y`b~itVd-yym^>bhXfH~6ut{<(8Lv2 zC1j;-6lSD3uC+a|oZ*1?yapG?YMoz}b6=6GN{i72i?MZ1RtLi zmr?20uLPhkA1@sHX7cGl4dkFXgqxVCPYd+0y9te!-7045VJu!)5I*W5Qb8t}hAg-PQ(wpPdhB9S~FLpbs zmY$2=ZH(vbtTlXO-s#r<7s91p3H`C18D7?4tDM;k-{w~u_bM%Lyd0xfHrv89GSw^9 z#0FQ>_-ohJi{Q7j7O(t7ew9Pk+)E-7NDwSJ0v7prc-FEe{TY3IeE~ob2lSmLmJ-74 z9v=^lnOt$tnq&J+0M>=B^R${W%zlElwl+fC|88&s?3_`lgIKGAFdeUO2Mp;1_scIj z%|_qyhHrixdx`R;Yj9H%=5{c?_%_|X(@7isYxq5np-^P<2yI=4X^ zok@MUjerH%uB;$muWX>zZA1?AclY=Eo)MF~KMEMe;OyhDVVhS2g>a+8_tl}o+r3Cs z1EBL%E2<#2`e66uWccfx$p?A*P&rB;c);CgJdeQ!zjjp{FBZLLi!=LVoeGInLL#2t z7T~MQzm;f(u#LN3HI};fv;ITMDK0;0OOn2*fCSo{@mjafYK)CWMQ*Uo{i)tv7RDkV z@8C4-alPM5SV~VPd^qQP;sz_=a&@Tx%o83K7Uq(>c(1nt8gNY>Hi#;~*1fW}wtl7n z{k63t19}oM$pwNdYPv`@6~VuE_oS$aw$?VJA+Bu~Kvud@F#hBe1aCZ_dG^6Na}PF3 zGR3uj)x{cLhsMgg?h)}Wb&<@dBozq4`3NOKIY`^(=y+Rd&gGywI`un>Q)XE4Pj$b_0{|f37fV zuBGkgC-h9@_};^V=HujM-7sZ;Zx|AhC&^F95-#dmLXqGV;?gX_9%SSc|8mU5LC@zy z1(jw)&0a^Qm`T-K^<9et4^F2VY`39ro^!`H?6UDl_mBEETji>0Dx0;q*_ZV)1W+YpFv8r0inp>sf zRIT?8tE=P52uE1Hm#JUofj4C@O^?JJWC$Se5&ZFbnQcGQ1_PiVdxKuo-En+sD zx2MZp0Ydp_u{NJdOOYgzpD`xS?Q;OyPSoY{$c&A=rsC|2w|{V;9VNMC|8z$66f#Wd z2M#8|S74A2m)nT|6Sj;1`Owl5Ii=s>%jfl1dO=x(j&Pc9i|uDr`_ukw3;ltcvLv7B z=+=7^#f9H#+!bwB`N>|}^0eo##UGjn=e)xls|~9BcbOTfR&Lw$7gCzSu&mkryK8x5 zoSmG8UVXe(zPP@Yn&AQAQ9%I>xu`!ezzdykFP=Oz{m5|oChc=Ujox{B5}MvkXAs^| zJQUZ};XFP*0`4TS?3^4J$liO>1mSb!c=Ffv>Srj0ncf{jq|zUwa1#c}A@0Hw0Vwe} z{Bs*G3nBkX=X8TL48+mTaB^Y3eS{vm^wuQtwigM9{j&2U0835eGIgJeFAkj8 zqoYCaP~6p(Cse6j8#KtSuSZc0f%8ttXtp1aJ$Q^oRy@BXb@YNwJM-c)yD4;5$EP|mwe`v1a;R2ev#dW8)t}fAz4T2hVU;++|I=pdA|D9(L zO*EgrP?>o?P@R6)g*7$KqdTB-vU7Uck7Z$IX12bFsj`MeD|n2K^rP5JXjyTyH$us^ z(05aDDEdDe`6Wgw8V>`5oo1O5)^c;>pre(qz%l=rPVU&Hz(%;wp=ZN8z zCAjcy&d43ZsbxKK%rh=KGZWmE#spYg*7m-QI5saw{`#c@ba3mp?uW5%GZzM-QEgghOV(&bgDP97Obp zkBbpdUCNZ%93UA-IaUD^r-z^~#>sD76Gf)VtLykP>4vPo z@6iWss8G$41|C?4Q>E?;C0l3b?!#^+#uT*C5wIk}yzdr&{feCH{&xwy9k)0Tc&-8J zX{jJTxWwove~*&?UKkHcT}P(4fH^J$o{}kQH*2wYkuc>}&@M z_dCs{7TbXItH64G2wbJlj3L>fHX2sXNzD3i^|#EQo75 zqTe#yn8c>Q*yOYv11R2bK#jirP>GV+>Gx}H?$D_zja<-=m8D!_U|#e4*}h&}U6lhR zO>o?PA_}fJtH897kwkvhpcE7oySuyMhK6K3N9PFrM4ToAAdZLuH>t24+J2QmesB^9 z7NQgMy#Lf~(K(;ng`bl6)iAS+FmnVk_V_U+^9{j=bFXt-_X}gq4ZIIEb*S}xUw>V% zr}ZOfXQuS5ZnOFSYUDa*Q;{y5Vt)3Do}D#YTU+LPKfqC71}egUN?Rb{?xK&nMIUL%yZ)A(wR$|cu5ds|@Xb&uL1a-Nx>p+p4l5o7Y^|jRe+6~L zn|Gsf^2h_Jt6z_GA*bU?(IcC`rW0&|^slZaJg+Ed^EEiT2JIdIc?TxQ1L6*VD?ZLf z9d*zDOD=rkGx_X3ahKR_{QdYOT)$Acul~u7^m#vk%Uu9GsiUK#jLU+wZ##dV&C)5T z&AtUCWN}xrOWnx#9WM(veLK^;mUYx%Gu`P^u(?q5Kgf(-Onw^OJtB{o?(a8xnM&pu z-=U%CsPUnIby0qIDfp#;U(WP~ULBGGh5Bgd8 z9G2S%*xA|9x;a+9*z=y>KKuMJ!&E`!0Q~`{z9f0=)hB2|H8n+M_SHg!J3b6nZZ)^I zD^wk z;=K|5+$Dnp(4pZ7r^$)&b3mNA@XNAJ>J*b8_3_dLL##BIMqGuSUm)pPV)?6C+(DIG zxd_#yvvKr=tMI4igL9eTY|f(?+ZI#7kz6SWF+Shx&lvjq=G+l78CFf(s*Au~Pje=I z?1F-VgsLp2<_<`m;^5D+q4Dry zGyKLwp7x?Bb-kbUKBp_|p!pZMFM5COb4hoZE$vZPYEf(WN(V_lB>0wN&w}xF%A0bE zN7~+dY|vg&F*=Bg{h?E%Cph3%So6&ryk~zBkYy7_OG`?GOK(}nZvuk^0atVZE?o%u zutWvp>7sn1Qf0X~?8q-~+&+|pF?Ler9mn4btFKbr$L&5>mj?z4zBBc=VVj3t%lc4* z#s#DQUHi$F0CyU`aO@CAEe(eNb`lx!G~E_^5{=;CU4PSn|2rSik5Q?(*(K&c!HylT zs!4x6c)0!hd`e1W<<2zCH^V&4{TpdwiNay$`=X0u@R$Rg4S4-kM;?ra&fZRKh?=vU zeK~HtO?a`%vfZW@F%uUzuJeftVmA7VuQC*WR`Qar%&u(HAPw@-qdVJu3hpUYteLx0(MF5gkx==>v34!?`5Jv5^Ozsi zo7!gmdm)2CogVtL+XNhXAm2D^-4sbRfJA~^$P?WH0Q!3dUNcf~Y{^qw7}mbyK{A)R zn+A90o;Af=UNyYf)Q@Ks z(ZGba;eEXUIfaUKO+X0R&Z+VJ*-P?-P9x;o@#%xFzHe?j?+Q>te2tMZQ2pdoVX^+8 z-DGR@T>m9>`>>J;u2TSJc=zBy%G7j~KuwyF_8I_eK;``zx|&-+^Kfp2%87E&LPLD| zh-)TR_j$mffKN{4tFXDT=A*ZQ9QVC(+F9!6{`!iG`vsEZM#P7j*?kVAf5(s5w#a+P zwHZAP)}IHORREA5?Z&*TmYxJA7%1W*@Qnc7)C+iT<_A=_xB-3!)VPT$1)?1-N?l$# zJjm+F3EiIwv!4iz5E}8{8oQFS!Up@-zOw7mGv;A+zl1sqn0SffO<2?qHE&<~T^6a% z;cR8(I)9gsKB-KM9eDc^T-5UkoayD|WvFbCJuE}Hxu#;SSP&(+QfnY0BxPRA1Ew2i z`s|%K1x7CVIl)YmxxrU{@|v%8w6(=|=619$N5^}uMT&3+AqQesve`u+LkFIiJ57{s zJ3dxWC5c0Dt^#g;#irf_PV_Z@hy5pFW8P#bQeR@%0*L&7EHB3$A3K4ly-rY4iw49m z#H6Hsd+X*r32__xt!#n3#hdmVRp*_`y^_6Os$>+t>LBO~>)`hc12ycYHRR4vttO6` zJykZg`w~+1p=NISPW17c+F9|Zk^+ta*=>WQj2^Xf!Y)U`(>x=Xo%GkIT;!NV4GnlA zA|lTb`mZWO0%^r9tXqFd;6D&kl7|P{!}EVHK7CM!Orj%VTc;J3$jg7jIb)xv#@OOkyb)IVI*wIXQ=rPd1&j zhDpUcnU34g3i}}D=4();ti$OfoB`Xt%BKW)#SK&xX?gMLehJ< z_tMDYm@OZUteX_G-X}Lbt-+D_Hgun>{M$*80fti3azO2?EDy)c+qd~7zvCTHF8fi) zVX+PTmqUZxePDt(x?^?)X(hz|joQANhhY9;e-N-)FZDsg+F>WQO2?qbjgGJ^2I~!s z?JP!mSqw0>LqkIV&4qe!LEOeTv6&^gkpb>(uaaQ=C}*C4Sswd{{*ULw{t=>}F^8G`z={L_L@vy3hVK8ZzL( zhcrCbe_nd)L-H#bt~}z#Z0`NlBWk}so?0B-up!Q?I3Qq0A8PI||D3NL>%zt*VZ%Ob z6l07itkrcyeBAngGRk>Q=w^kRtj-+X)WrAfV(J=u5G?-wtzl|vx($u4{_aZte5}AM zMsh{M(%o%b#~n!dBib7vIsnV?VOxs{rv7FCF?-xcdPBK2tD&wC=27UW7N~z-)6UF+R^oRYp5;d?%?Q>953tfUHqRqOoL0 zrBK#mQ@z=*-jvPX>(Up75R?A7$Qw~n`Il*pfGaCImUXCY)gqoHwOK4=Ns?Bw4K z1?=^iQ*W=Pcrd_5+d4W90)6#kaWMu2UjuLJ%7;|`Z3$ok5a2T)Z0kmVl#$cy`X@Z* zJc1F?v@1ahhNiS)bfdZCuby8Wfrcz^G#_u~s*BH1t$Hg{nD7#(O5~%8qAeh_VEy+H z|NcI&7_tpls*%siP4%v)XCY}iB(NFSIJ=SL=6;%4S~B{YIqHWR0Sn54QGYi#nT-Sz zN}|!`MMNS3`g&(2C>)jfMy%Wr&=xwLGTz?WCAV3I3Zk)Gdw%}@(h8;u42TUOj+gsq zihO4CdG1lu`tQtng^Riz+xLB>R;6!A0-4P&T&6uqp>ahBX#EI&gJ1iA_vYy6`25|# zd9Hi*FMl^-OxZTtyQcU82Lrh4phqY(Cs*3`9JWc-Nc_YB^&XD&&gTb}&q$?tPkD%O z-NQ6e{nmG^k@mKfKXO__4JP@I;p7lWU)uAQ@Oj<4Oe!btZU;?P_#gNcaNQq9(av#+ zYuR#{=LHOET?@_DZF`4U#!OtVDhmqCX=oNeO6EC&04X=%9v=5?n}hITWAH2k|v9X+eWY(|Riu$YO`kZM12M=Dzl*w|gIuOJ{85RW0t7agBZO{6Ymi zkzkR1?|vuST9Lep^6y=hySk-;(dXfNU(A@l5b*N8tj(5h=r7e5sqv|9T-+13&f{&e zan47okl;vJzVqY+eaM6XpDa6BDcjC;&EQ9kv0fRQ?JtRKZGr=vXA$A_N%GW`2}K~Y z15zfo4i4ef_f~?1cYpr;;R0UKd%-x+n6x#+V!OvfYCUZ``rTaD6En}{M*&i;64s6N zMwD$;ajLvceV3E`wJ+63^52`;ntRQc({(f5Ft2HPk5dyE9|PC zk!`cP7Mf*FkTOP(DjMRg+8im5wJY*JvlDJ)aBFZGxK^t1^I%D*BK^V39$X@*BL=Ou z97+;!{+;=renOv*kpgLllYt4(^DL;80?AIU+Pe!yeMwV*@B2I^W6N#p+b;lHOVro4##WlKK#!U%E2Sj^4Jpbwr7p zm0|1i6DGu(0);G?=EEe5ywS@#7A7|MLf9WP>NUXjsAOc8+R9CAYqpq5Egc27&PDn9~vX z&X-E(FgIne+|B}&kE__;DtjJiDba70rE)XcU@9`-Wv*8nfX&$ z=h_~t3iGaCX*?#S^qHtPGm@tzT0*Kt|?s{t5>tDQX)H;ky-gdH?)- zld@nVQOwk4FNX1&vgi^w|JRxz0}zBYf}~V)zwM9FjEWehEDD7}g*nO&e)zYLJA4z0WzM}R{BE8{cdOJbvAIDmR z$`L*^Bu32z(idLvr?b-sxW~)ca}`Rp;n+}qUWwCUbMP^f4Qyzy8XCaFw46+0sKgbt z#n(KHXNKnRBi^`nRRu%Dy{2#EAQ_LFY56Y{$Vv|cQ?S5eADIJd?tL?NNk1DNE3Q#J z=K4ccave-lK2i9;qfz&!45s){^Nv|Za%m-YivT1n%wQ$KB*_ZYv0IH)J&3z>+RkNQ zH)(`!_nv@3o@tmaSy_-}0=i zvG|nJoNSUHEC$+-MA+S?zRQk})Fy{8D7!E`yn~FN}8I)Gt0 zy2tKW^<<1|E{`eA_BVye(k0@4Lhdo!^Ju;d^FCv*Zn%3EBOyuTT^RnjWWFI4i^{S1 zNNnQR$XG8{)Y5%>MwkUx7=5`l484*gDJhJ!&==HYuV83^2+^r>>&T8mmT-EGggB@x z7_;~PF4}*@*vsMzpslQXyv8Tn|&&M?DnUiOGLO zA<%^Psy0E@jHJBwC9vF+^42Garav!JD5^y0b?Rf%GQdk$h*85{kS+dv#G(yA7$UC zaTwasop$AKEtwP4mFYCRnZx}di#tUH>%GFAz;c8%wU#%nWo$v$mjnd`1Sqr&cwG%# z4J*fRuAi>vBd9sZ-aj?IvJ*D_xtlf5E407~k(0kggnY50G(46qu!8q*6rsYw!7)~y z>ELGHR~_TYo3xGZ=+sHU`V_u5sCFc0#3bH5g2^oUj8qN>nqSN?4YaP@t#1QQ(Vk(n@dF+D!)M z?QcgN&aRh743-BzmM z%EYoYMQ`I6Xn96wR)$Olhx;K4S|<5F~Q9r7Sq3(TKJzS$t4(s1FsJ-RIZm z94>k%5e=Sn>{xu#7E zRzF&9{zXfST2S{{#)J5I`sOn`6FxvAe5$WdfYoafyZMyDlfR6%#d`0zGY!`2-6xW($Mfm zD!OeIHuniu-SqC}VO;mi(ejc%bwMg77A-vxp4T<10y^CL+@o?Pg6AF-cJ7U#oJVMt z!IhF;-0phvu4Lbq#?qEZ#>V4zO&-O85ERb3J2(ff>Yg7aY~P7O&f@bMZ`Bb@fAMDq zS8D3MxUYd6zqs~hNWq@#I%1&Cv!^(c0$=yS`>eey8L!3a&i$zg1TMc(JBv?TP=1lV zXNm&=^1?afH7_NqoD-xk(hVtwtke**1l!h65nfWg?^w8@LF?$Bjgxv;ll~@MS4Imok9Rh@V4jRs$tJx zMZlv|7N{X{no~nsTQST}RTr)yZ|$mUM@hoymKI{23<=4mz()FiuVW3^?fH`o;q#lR zhCq(a*C)_Fb=Ct?Eqiy<@h3eP{iuz&l1_MW&(>iCNI=T)R=koDwPy&y^Pv}O5WX_* zUg&Hf4er_A6qJ*9_47(*%Bw+Qr9SwX_nn*)I_xwX{_w{w!TIW{{M2H3tKN?tnil(a?E+%(iN=$WzCslFx#H@ zk^wqePG`k%^(<$>pVBBWWSDNM?2NGb5zxE#E>gp+$xpYunkHX{i6-K>&JAYflX8^J z>xpA3+HrpkU!(!bbT~Luj16wDXK5-&t*Z!8*gu-13r6&e8KjI|LuU5tVCzw?;Cx0# zSYgZj_k^(3-C#g0{~RN;I30D^3fK3p<`bHODR?lwibBevt-;T}!3P7=Dpe&7>-bLY$fnaVmqg#MKu4krTbr{fzL&C~X@UoemI2Z59%qmz!)_ zVug+X+a_!_0rHKJit6BxXFEYJs(i$Irt$kI+$lZ?mGSWz1mgOI$x`I-cGaR2#)+FX zBg|1B89uCB3TWR#jBhq7J#;(%j>UHc1$vKqLyyJ^o1J7gRdxtqY<1uP5eL_2HAKc) z1v|Y%8?)gqm!bxbshCZSf59}@Ca-+T41;{T{1byTUhG17KuA03)A7>y7T=ytkT1aHTo^V0Q(bEhhx%859~E%#u#zFULZqV*ZwdntGf3O zv$R@RO$1n%w;G!|5UXYvG_!!Xz3O+e*Ycz3VAS-TGy;rYg8y;|Fr!2*gw6+rZEFQv zI;vtKaie8>9#Deew(~7Uzg~O7t2f2!d4#wiM^`NV&!;+|ra+pZD@x?336_W4@~ZYt ze01xIWfAw20J_Y(KV+&Lj4ZP}x)u8d`GJ&PHQg_sC_3^2k2P#=&i^V@|)AV38K6xz)&^hkN;1Y9Q zlT*CAA9j61KrhCRG;A{YO&RD9&CiMBZKAi3UpkL^G`Ayg8_ik%WxepyN%>hz)Y#rH zgX_mt|2h-5e*1VyY2UI?oXRz0_rDWKO8g~tAG>-aeK4;^M~Lr5ioby7+SRe;)o*Ro z9K{yPDb*uV``$T|IJx(OlyqjelJT8x+c-KQ}KLm0}0zCf&oqfzoT;scgb6?5Duk^Q8~`{wB0>&G8+V$jE7gMMCs2YL|TYCtL9^&PtMi$iCnl$BG3%h}v$MSdBWy{$d?*+}f zESfU}5|p zwlg;BLYV!sSM6WWT#=H_v5s=9Y|W!RM+}M!TQXqao;0spBcFw|n>UP9$NlgF5rU*L-CG&ky-w$dQQ0f!Jzk7Zms-e+1a_+ITRk4$h^na;g{;1= zf$!Huf41vS1E!v(v0l22+>6XQ;zs}F2!p+OtJP6ZDo_24?EZW*s86w)Gz6x<@P)er znm(46*taQl(Oc}E;Vclwu~JiV%^O{lNeVv25;X0ykDS{C+rEv!RV0`_agd>>1dv7$ z1&`+d^pN$pP84XwISMqgo+(#K^1(-q`@Rb`QZ^@;02^yJYrVqG!5ac9H5Qx9wg;CD%ix1qx?wh{;0!PF)n2hVbGx;Sx6s-Cm`QH+r8zA-mEty$I zOc8zW7VZ2wtz%tGT{gb`pT94Ka4&=!m6Lex_ICfuSfTh@amUu8)LTFbiP12zB8 zT3NM??-mkM%Faod68?>no!UA)mDBosJ)ko9WS^`X5eHdHhC*J3;NY67HA;U!EWH? zebIVB$ZLZB>9DfLzwhN!0*8jMgfYW#Jr}=8Q(VOJn-mn0UfB#8<@gIQD~L*GZNU+v zA>ZFBi#~**KodYvl%q&mli2gfD&p*FHxqeRfIek0@)s;wu-{5%-sesCrF%=iqOs z>H6l!Z{!39vZQ}YV7B|6`C6oe3l^x-pv3}&M))JbMHC#oO924opaB9 z9(>wEg>t9-$f?}Sbcl5Ufq`wp?#2AIcy?p3RCdcL$nM{}@?w{F}1MNe43tjRIyjt#ccC)I;?1z7Y<9qne zHj0gch(#QG2KQLVSSUr)&%2PgFGWITS2e6+ye~aS*x#tQGg%ExyEVh`s)IzRdz#Uf9bpc_I zYlZim#47MaDF$~N8zQf`^PCz+-E16dATINoq@C0xWc@h(G>anIGDyni!>92CU(h~! zRv&Pb3^-MnUnpqg$$ArQ_#^PNVpFT4%@+Dhd-A$gljQA}WEsw8h@qU}0`3I&NB_kT z|0j;BX~SVZghA2a&BV@K5&jp+V1ddRxRYe;QSGLRH47|>urW(6-LFdvy!V>jwA546 zA`0H|2;1s3$Z7gBp62h5DVjT~%&%&};&wNrbw2Z-hg%|yFTJ)!EJsDbxqa+_Nwk}3 zZ65jA97aj$8${Miy1#U&SUi5rw(N;ZjKMzrhhS2aBOSmE}y>!lZpXt+lcx|FT@EUvB1setGITfc?t!4}u*2Y^MY-uh}a zJf2r8j4%rlSmkrPrD&^s#4InY4st>-vOavBYlU$6CG(9ao9-GlF2Q8_mS|O+j^sGbU0Wl*AGK2kJy6JkLK^3ISejfhZ3PM7grnJ|E zp^ZYvAkD-kf_$S#Mp9mX^sah(fs%#+mqzsgQ0Papp zwa7q&7dkhdqo~oVEt1n65m)Vbp6{z~{1GROW4Y=Bi&!(*?r8@s-qD5#@b^sZ$uPY| z9QpN2--IYj=4TWNkE=Je`seeo?@9NY1s_~21@|x!<8|4zC_#h$A1m4k02xRo4D(uu zUelUs+BCD)=6isT)bmkQu2N<3*Zh7@ukwQ`{;uhV7Iv~9u|teZ^(L&(So_rXpe86( zp!-|>BbBn4?4_->Jl`cYp}Zg9k3=EwNN#pgwl?Xg7|r4fH6nt7 zKh7pt>3iur*eZlvT+CAZS3quLPq!f3DASiOh=7_zT0*F;`s!^fz`+WzCwnc>b%#RT z@mTja;M1fM&9y`f<`5x%cTDAnqM7U!LF>Q9Eji-u<38~F6+Ji9o}=emGIt<21xI)fu8)C zoBmQu)O1eQWB_!9;g9Hra#glH89+r`=2t=_yNs$Vs-{x+WsIz1VGhWo{beQd^)`<# zG>h^-U<)-JZQM0vx)9Pl8Q996bbT;&*JgnfS6s?e_gAnY{rCJ)-D7`O!fSg1SFN@ayewx07)d z6Krd18S243;{!?9P%{p)N%`aAcRjQ)bdQUAFkSqKJho-i7Hgcu{(Y87n%5dZ3!nt8 zf`S1e z&C@Q76n1YtGuJX2FUkICDJgJ$QZol(gMb}#vcgFzv1=Q5;@J)%_2xlRIv?M^pHJ(b zz?@}|rQGt$swrDXb^tgD$EFt=a{q{ceqMOWwnqslUhI}$(&*#(M~|yKBl)X6M5w9K zNyeEU>8Gx0wIkyB5(+~WFIlmuFzU}uZ~=!JM##?NLFlb*ag7tCZgI2tY#MScnjv7!tZ@G{-C5?; zFRn2R$VK2!+dxB50jQ@}ib(T3ThS*Ni=dPIFU2PD#?Br(Duy;ux031Gtg4FUm({Sa z{G&_Z`P98j@#y!V4xNM(7bt(p+~Tr3pU#_rY4Jv9QGSlPY`C&Q=DQLuM*?A@KZh#6 z3}dmZ0qG>k#k$a&rkq~&2V?igzE zc;R1J8b!jiP-tFYVRg-%V;J>I0ENjASOVP2<&>4E44$bz0zLEm`X54LWIw->Zozd? z#H)Yqd0^JLMsdp6rC`;|Jm1QicDV!2JxYfZB)MPHNdHvl)?e;8`NPlAD^zz;Z-se0 z7XCb*1{U^)3ECme9L0&%Bro2o#k)jZUXD0K!c(8og13OM4VGsbAk?V(oYo^$;75Vy zJ?4VOx$;PH$Tk)cfmQLihCQ6WwKh8$ z!QR#tLM~m%Y#z;vMYYe`@Bm7pst<06~VrS|o12PDpGR)NH=oW)Y=a zLu<2wA`;`LUfw&l!<*z zd*h$>e_+QJr^Lz%-xH>B5#Vdph3(Qn-buK^P^F$T?VKf{I&X)-PL<$VAGzVNbDro9 z_V{%p*zUr2khZ9p3281znY>amb6&hx{8t=OW5a@lSG1E5zntdhs&jGu?gf#2Us?My z@(ZjGgRV?$WXs!sp4P7eG-4$VoQep&Vp0sk;twxYhP|eyZ}a_BCm`u~M$(*S<>b;Z zV^MsTEWj}fdGVnR&hmd^tiZ_IV5CQZw{Fic3LHzxh|Sb1&$Q8{bwq73AO$UYl<0?f zH52Fd^~Otv8w7ThkBfIt|7Q7)H94Six+&tlMv_D4q0n_cq;FZuBvbqwA#0%jKd zQk~h{B-27LBAh-z7l`$_YC)JLCqC4{RP_wppvHT^;7p3f*Ql*d=$zUU2_S5=Bow z)T+bSaYL26ErR*Z9de3AJaD9jGfHcTRD{cyslMVr4oe$E+Orbc+p`RdZeF{XD#RxU zA>W+}g6{=@Sh)Nv&csjg;D=sqiT0Vej<0!p(JF}IUn|j%m#`V`{&-&%vU8P5P(%Pl zcOF|3x_T(kqc2=rwh4vB+B)!TwuhG_+(X9zOVX@un0C!Nek%^d#ly<-W8;6`jo<)` zNW$+WfPrwQ(I%R zY6C8v2`s*AG6AFvqG=b#>)@@xzm`g#yRYveO znHbTMq}z((9p_!&p1=JQIZlALa)EJZmH9*i8P>4e_!c^?D8RTU^ixO(a$=08gp%}k z4~42;UZu;s97fiA#MOmpcSzIiKRmpee@NTK{;d-?cb^6}#?6aK-iFPLJcceaim8}f zh9{T4DyJTsaGGn%#d+ZyrEgx*CvYJW8fi)0P%Ibpc+9u(ICtx(fc<5>3vS{@@ufy4 z`JEdOS)1M8;ZC5l=r??!$>fZ6bWS!)@7It0^h|9}MunI@)8U^icH9b{xHyYp4g;r& zr3~kA`bE@84O;Yi(s>roxd!Uj|J#S?g0NFw4{9oxvx4u#Lu_qfd$@;x9ElvcCjm6g za~?{sr0-0Z%mm#qXVwk<6Rfy@pi{H1ornVMl&O|r!7K@Z_CaDlqv>N053ccO0yIIG zyZ}YcoY%*ifzE^|@f|2cdOSJ`Ng>!iW41V(s&(FCJ6BY2hArVC*KnZxVTmy2R!ijN zxYm-a{=&{;)$FkKCp}4Jzj`@a8raRqN@Kp4l zFUhzEXaf-7mG5VT}Ds$iDah}fpQiKf=IqRYd=(bF!ar(WXQ?Z_Po_8RBA){6qVWOB zY=tC7NXb)`&9-*t={i>UiLF3sn%`ZzHDFWs>AMHpJkXX#M#nVz%9_)fZ^39`yduug zwN^Yh?$hc#B-#>94{)@tzNo9s3*C)2k{qtTY^xx7s~;xsRxUtCIleTUpP2pl18P6( ztbPu(grk8GzR_cn=RMU%=E;_ykX+%~h@fo*E-28S&RMXnR41J3Apx1Uatn#j4^sKr zOY9N7U%RWPl*`&m2ad;cRk>=~8Q+A-rnGyAi|fNobcrw6gAh)zw<{7l0)ow%ENeX! z@elD`pGGh=Rl@G7(xJe?fEEF8LLcY7M!79`;4Y;z7V(Vl>qY% z<1l|-A0Sc>8aVNV_b}&3-F5=8{I_-f_>KmyX)}7`=F)zc3#O|8$6HEC8zYtws)pr2 z`@t^bfD_vc4iT7|s*s=;B-PKYo|iAbLTLA0Fd3@ig*b=s?v9-X9+;26hL3FmJKM|K zweImq+u)(x@rEEI+-O7|nJ#; zZL2ZgX{TMFsJ=3e-}!rp^I&pyKGH#ys*^9|MQzr?ME09w;3lX6NtK zRo(8{%_h6BKZnR32WTS+uTPf*pC3=$KySm|vI0&>nB1n(iz5Yzmoyl^PLYJ{ja+qL zyL!mg_3)=@3TLdoJL9G=8n%IXH|D^b+)VS?2Hi&v36CN#-L^pnqt(dF-P>td#|v~+ z(?G!>@78FSlF9gz)cQKvUJXH!e*@(Iamdm^u&1nq&h8Ye)h<$f4uQ6mTB-xF+?B@OvFSwMXAZN_$cYa-kQ&}?sFmj$U&>aX zjUAn${A(O>>sI-H(*R6bam5fq{%$EB`J$Qp$OKaTm4!*^BJx8U9S9)r!={j9gG5wx zI5!ACc`GZmASF3J2;FhgihQd4@Nc!)X^bFA`>GZW*0)T+W8pptU5JdSr>aG7_Y<$6 zLbi26*RRDtTE>3v;~)g`u9l13C{m*iIH_`oP+em%?vJ>s)!rNf`TR|1aP$zs(tuiRRO+rmEbhU@Y+RF?#R4)RlocC1zUz1e7SHky=Cg?3!56}W zTRLQqjq3(4B+Mny$&EgayQo&CN*q6Gjc+m4Ka!juAc~TSly16#_AALutkRTYNJI9B z1LP%d3X_VIKAk>%x|JMQr7Z$E3aokUIH12!b3H+#@8t#PF1voi_t}68F^)lUsMTm7 zAJ1_-=-#I$pSS}B9Xz8J2va*9fpb1OomdC^Eu(cjefFgpMwpKBYam_p1+OP0^X+NxdXHJ zbfTFto#c69Jmx0haRJKPm8CVc$Vdg!MYdCnJxRLTf71Jc^YhGh6Yi`|1RqN@0C27U zXYuV2ok1I@@4r{Ash|-ZFy>%ioX|}w6XdUN;93rdvF=&hZE+@7;BUVm`}GSZ{D|4h`-ZoHbK`HD@JHWjb?zy-LjUtf{Y$JxvLY(cXtf1!Qv`ByMgRQE~ zTBXf($m#Thz1R-%0IM@)IG>0Jm!_zFn3}5kHc=Vh<3qle08zKIe@~{mk1DlACM)as zr0DwGjqf!|uDNuqUKL3Duel>4hOqgnTjezJ)p~)ScZ6Sin#=RIpSY7tk+$|dPYuJt zS7A>xJL}m#(Dks?(%k*(sz*Z2duDlK3@{hl6&eC&9|nw+YYuZK5Dl{CF9(Emx~K%) z$h#H&aA_$*V?Dpgo?D5V`)+h~<8~8qdP;zduToFLWAh_T&+H;Kd{ z@82d{Uxx0&Va1+oaERMdFA^;|o0Cd=@L+B+yU{W5X@{#}Y0GsRtIBlzueRlI6Z7ZQ z6&CJaR(bZMEGM?_(_U#WYy46ApyB zNSSFt?jv&F%*W;Y6zLHDnn`5UyEP-raZl$33CNL28x zY(4yEcChKsV8mtjzY8OEHC2`}bJQt*$rJ-C;CzZmMBT1WXZ1|+qOk%(&SxQFS$kp!Id1ID@^I`tHS+QaK zj5+1H$1dwCyz}+1%`|xLUte5U5a&>%bZggSh+AyG?X)+vwluH(p~HW(M8rFb8PbqU zM&?pF_q%D+(E9kvm(#?2r|dxD#?`DIoebeRoq9{_oAs-PkLe7hn#aUlIP_@E_g6bi zN2^4ww4?mJ!#2Lgg-c^IE)6s_Mv$I8`vL zF%CCmVV%!oYbEBdwPogadItLv(_iqKY;yDXxLX9N8 zJ|eOYXc)X~^sfT98W6OQ18z!+uHmC2moJ{1r=*0PM{}|UY%E)quZWf22e0Z+;-XtS z!w(i84HySQ^Dw}06z*VJ!>9Z^;f|U?$C8G zmqzC1EO^~H=T1a3qouwUJoO9--g;I|tjw%_H2ZkDr!( zpX7^l-r&<1R_{F4Y3Ll`7lv%fMB6}Jm?HO|58n84V3G0I?`zd+xv-kJxQy!T{UPBf z!LLoki>-?^eBM{6+ndv$S33JDLGoz8343cW`95wN9oCH0clN@aW4!T;v8h> z7ce@Pd-EzpuP8ISk@*K~_3LxpnZ`q}qYUdQm1~TZd@QEtH#21iUrJ4{EL&t+Ew=Li zm@^fA(Yb%)Y3zw)Q7*&Hg`7_rmESBTR~a4#y?ZWu>>(2r7iLp${e6OQEiGd$-BnWa l_w|MWFG|S&n_uwj7$_V2mhLE{d(7FQ4fU>}s&!oM{U7zQ8pi+t diff --git a/test/setup.js b/test/setup.js deleted file mode 100644 index 2e344db..0000000 --- a/test/setup.js +++ /dev/null @@ -1,18 +0,0 @@ -var exec = require('child_process').exec, -redis; - -exports.before = function(finish){ - //require('./fixtures/env.js'); - - // Start redis & mongo , wait 'till finished then run tests! - redis = exec("redis-server", function(){}); - finish(); -}; - -exports.after = function(finish){ - redis.kill(); - var fh = require("../lib/api.js"); - fh.sync.stopAll(function(err) { - return finish(); - }); -}; \ No newline at end of file diff --git a/test/sync/test_ack-processor.js b/test/test_ack-processor.js similarity index 93% rename from test/sync/test_ack-processor.js rename to test/test_ack-processor.js index dc9cc5c..706cc44 100644 --- a/test/sync/test_ack-processor.js +++ b/test/test_ack-processor.js @@ -1,6 +1,6 @@ var assert = require('assert'); var sinon = require('sinon'); -var ackProcessorModule = require('../../lib/sync/ack-processor'); +var ackProcessorModule = require('../lib/ack-processor'); var syncStorage = { findAndDeleteUpdate: sinon.stub() diff --git a/test/sync/test_api-sync.js b/test/test_api-sync.js similarity index 98% rename from test/sync/test_api-sync.js rename to test/test_api-sync.js index dab04ec..c3f24de 100644 --- a/test/sync/test_api-sync.js +++ b/test/test_api-sync.js @@ -1,7 +1,7 @@ var assert = require('assert'); var sinon = require('sinon'); var _ = require('underscore'); -var apiSyncModule = require('../../lib/sync/api-sync'); +var apiSyncModule = require('../lib/api-sync'); var interceptors = { requestInterceptor: sinon.stub(), diff --git a/test/sync/test_api-syncRecords.js b/test/test_api-syncRecords.js similarity index 97% rename from test/sync/test_api-syncRecords.js rename to test/test_api-syncRecords.js index 55ae571..57796ba 100644 --- a/test/sync/test_api-syncRecords.js +++ b/test/test_api-syncRecords.js @@ -1,7 +1,7 @@ var assert = require('assert'); var sinon = require('sinon'); var _ = require('underscore'); -var syncRecordsModule = require('../../lib/sync/api-syncRecords'); +var syncRecordsModule = require('../lib/api-syncRecords'); var syncStorage = { readDatasetClientWithRecords: sinon.stub(), diff --git a/test/sync/test_dataHandlers.js b/test/test_dataHandlers.js similarity index 98% rename from test/sync/test_dataHandlers.js rename to test/test_dataHandlers.js index bc3a7a3..ae02e5b 100644 --- a/test/sync/test_dataHandlers.js +++ b/test/test_dataHandlers.js @@ -1,6 +1,6 @@ var assert = require('assert'); var sinon = require('sinon'); -var dataHandlersModule = require('../../lib/sync/dataHandlers.js'); +var dataHandlersModule = require('../lib/dataHandlers.js'); var id = 'datahandlers_test'; var queryParams = {}; diff --git a/test/sync/test_datasetClientsCleaner.js b/test/test_datasetClientsCleaner.js similarity index 96% rename from test/sync/test_datasetClientsCleaner.js rename to test/test_datasetClientsCleaner.js index 5787882..c0ba853 100644 --- a/test/sync/test_datasetClientsCleaner.js +++ b/test/test_datasetClientsCleaner.js @@ -1,7 +1,7 @@ var sinon = require('sinon'); var assert = require('assert'); -var datasetClientsCleanerModule = require('../../lib/sync/datasetClientsCleaner'); +var datasetClientsCleanerModule = require('../lib/datasetClientsCleaner'); var datasetClientCleaner; diff --git a/test/sync/test_default-dataHandlers.js b/test/test_default-dataHandlers.js similarity index 98% rename from test/sync/test_default-dataHandlers.js rename to test/test_default-dataHandlers.js index 02fc3e3..ca03970 100644 --- a/test/sync/test_default-dataHandlers.js +++ b/test/test_default-dataHandlers.js @@ -1,6 +1,6 @@ var assert = require('assert'); var sinon = require('sinon'); -var defaultDataHandlersModule = require('../../lib/sync/default-dataHandlers.js'); +var defaultDataHandlersModule = require('../lib/default-dataHandlers.js'); var id = 'datahandler_test'; var queryParams = {}; diff --git a/test/test_getVersion.js b/test/test_getVersion.js deleted file mode 100644 index 3967550..0000000 --- a/test/test_getVersion.js +++ /dev/null @@ -1,12 +0,0 @@ -var packageJSON = require('../package.json'); -var assert = require('assert'); - -module.exports = { - "It Should Get The Current Version Of fh-mbaas-api": function(done){ - var $fh = require('../lib/api.js'); - - assert.ok($fh.getVersion(), "Expected A Version To Be Returned"); - assert.equal(packageJSON.version, $fh.getVersion()); - done(); - } -}; \ No newline at end of file diff --git a/test/sync/test_hashProvider.js b/test/test_hashProvider.js similarity index 96% rename from test/sync/test_hashProvider.js rename to test/test_hashProvider.js index 0facc7f..27495dd 100644 --- a/test/sync/test_hashProvider.js +++ b/test/test_hashProvider.js @@ -1,5 +1,5 @@ var assert = require('assert'); -var hashProvider = require('../../lib/sync/hashProvider'); +var hashProvider = require('../lib/hashProvider'); var defaultHashFn = hashProvider.getDefaultHashFn(); diff --git a/test/sync/test_index.js b/test/test_index.js similarity index 98% rename from test/sync/test_index.js rename to test/test_index.js index be708f7..f2ac7dd 100644 --- a/test/sync/test_index.js +++ b/test/test_index.js @@ -1,5 +1,5 @@ var assert = require('assert'); -var sync = require('../../lib/sync/index.js'); +var sync = require('../lib/index.js'); var sinon = require('sinon'); module.exports = { diff --git a/test/test_init.js b/test/test_init.js deleted file mode 100644 index 25f9b01..0000000 --- a/test/test_init.js +++ /dev/null @@ -1,27 +0,0 @@ -var assert = require('assert'); -var initScript = require("../lib/init.js"); - -module.exports = { - 'Test init without environment variable': function (finish) { - // Make sure that env is empty - delete process.env.NODE_MAX_SOCKETS_COUNT; - initScript(); - assert.equal(require('https').globalAgent.maxSockets, Infinity); - assert.equal(require('http').globalAgent.maxSockets,Infinity); - finish(); - }, - 'Test init with environment variable': function (finish) { - process.env.NODE_MAX_SOCKETS_COUNT=30; - initScript(); - assert.equal(require('https').globalAgent.maxSockets, 30); - assert.equal(require('http').globalAgent.maxSockets,30); - finish(); - }, - 'Test init with invalid environment variable': function (finish) { - process.env.NODE_MAX_SOCKETS_COUNT="Unclear"; - initScript(); - assert.equal(require('https').globalAgent.maxSockets, Infinity); - assert.equal(require('http').globalAgent.maxSockets,Infinity); - finish(); - }, -} \ No newline at end of file diff --git a/test/sync/test_interceptors.js b/test/test_interceptors.js similarity index 96% rename from test/sync/test_interceptors.js rename to test/test_interceptors.js index 0e0053d..b68689d 100644 --- a/test/sync/test_interceptors.js +++ b/test/test_interceptors.js @@ -1,4 +1,4 @@ -var interceptorsModule = require('../../lib/sync/interceptors'); +var interceptorsModule = require('../lib/interceptors'); var interceptors = interceptorsModule(); var assert = require('assert'); var sinon = require('sinon'); diff --git a/test/sync/test_lock.js b/test/test_lock.js similarity index 96% rename from test/sync/test_lock.js rename to test/test_lock.js index 1118064..a6884c1 100644 --- a/test/sync/test_lock.js +++ b/test/test_lock.js @@ -24,7 +24,7 @@ var mockMongo = { collection: sinon.stub() } -var lockModule = proxyquire('../../lib/sync/lock', { +var lockModule = proxyquire('../lib/lock', { 'mongodb-lock': mockMongoLock }); diff --git a/test/sync/test_mongodbQueue.js b/test/test_mongodbQueue.js similarity index 94% rename from test/sync/test_mongodbQueue.js rename to test/test_mongodbQueue.js index 4fc536d..3b480ad 100644 --- a/test/sync/test_mongodbQueue.js +++ b/test/test_mongodbQueue.js @@ -11,7 +11,7 @@ var mockLock = { module.exports = { 'test mongodb queue methods': function(done) { var metrics = {gauge: function(){}}; - var MongodbQueue = require('../../lib/sync/mongodbQueue'); + var MongodbQueue = require('../lib/mongodbQueue'); var queue = new MongodbQueue('test', metrics, mockLock, {mongodb: {}}); ['create', 'add', 'get', 'ack', 'ping', 'total', 'size', 'inFlight', 'done', 'clean'].forEach(function(method){ assert.equal(typeof queue[method], 'function'); @@ -50,7 +50,7 @@ module.exports = { mockMongodbQueue[method] = fn; }); - var MongodbQueue = proxyquire('../../lib/sync/mongodbQueue', { + var MongodbQueue = proxyquire('../lib/mongodbQueue', { 'mongodb-queue': function(){ return mockMongodbQueue } diff --git a/test/sync/test_pending-processor.js b/test/test_pending-processor.js similarity index 99% rename from test/sync/test_pending-processor.js rename to test/test_pending-processor.js index 46a5780..f65eb34 100644 --- a/test/sync/test_pending-processor.js +++ b/test/test_pending-processor.js @@ -1,6 +1,6 @@ var assert = require('assert'); var sinon = require('sinon'); -var pendingProcessor = require('../../lib/sync/pending-processor'); +var pendingProcessor = require('../lib/pending-processor'); var syncStorage = { saveUpdate: sinon.stub(), diff --git a/test/sync/test_sync-metrics.js b/test/test_sync-metrics.js similarity index 97% rename from test/sync/test_sync-metrics.js rename to test/test_sync-metrics.js index 0135433..a1a85eb 100644 --- a/test/sync/test_sync-metrics.js +++ b/test/test_sync-metrics.js @@ -1,7 +1,7 @@ var sinon = require('sinon'); var assert = require('assert'); -var syncModule = require('../../lib/sync/sync-metrics'); +var syncModule = require('../lib/sync-metrics'); var namespace = 'fhsyncstats'; var tagValues = ['tag1', 'tag2', 'tag3']; diff --git a/test/sync/test_sync-processor.js b/test/test_sync-processor.js similarity index 95% rename from test/sync/test_sync-processor.js rename to test/test_sync-processor.js index 119fa4c..63c8409 100644 --- a/test/sync/test_sync-processor.js +++ b/test/test_sync-processor.js @@ -1,7 +1,7 @@ var assert = require('assert'); var sinon = require('sinon'); -var syncProcessor = require('../../lib/sync/sync-processor'); -var datasets = require('../../lib/sync/datasets'); +var syncProcessor = require('../lib/sync-processor'); +var datasets = require('../lib/datasets'); var syncStorage = { updateDatasetClient: sinon.stub(), diff --git a/test/sync/test_sync-scheduler.js b/test/test_sync-scheduler.js similarity index 97% rename from test/sync/test_sync-scheduler.js rename to test/test_sync-scheduler.js index a3c94e5..de38792 100644 --- a/test/sync/test_sync-scheduler.js +++ b/test/test_sync-scheduler.js @@ -1,7 +1,7 @@ var assert = require('assert'); var sinon = require('sinon'); -var syncSchedulerModule = require('../../lib/sync/sync-scheduler'); -var DatasetClient = require('../../lib/sync/DatasetClient'); +var syncSchedulerModule = require('../lib/sync-scheduler'); +var DatasetClient = require('../lib/DatasetClient'); var lockProvider = { acquire: sinon.stub(), diff --git a/test/sync/test_worker.js b/test/test_worker.js similarity index 96% rename from test/sync/test_worker.js rename to test/test_worker.js index ca405e8..bc5338e 100644 --- a/test/sync/test_worker.js +++ b/test/test_worker.js @@ -1,7 +1,7 @@ var assert = require('assert'); var sinon = require('sinon'); -var Worker = require('../../lib/sync/worker'); -var metricsKeys = require('../../lib/sync/sync-metrics').KEYS; +var Worker = require('../lib/worker'); +var metricsKeys = require('../lib/sync-metrics').KEYS; var processor = function(task, finish) { task.processed = true;