From 86fbbadcc051e8cd4f8199aedd256a23b068c94a Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 29 May 2019 14:53:24 +0200 Subject: [PATCH 01/45] Ignoring IntelliJ conf for convenience --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b284866..b52d6cc 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ node_modules logs/* !logs/.gitkeep /docs/_build/ + +.idea From 37077de5db7c9da1aa9134812fd46bdb51463f2a Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 29 May 2019 16:53:19 +0200 Subject: [PATCH 02/45] Benchmark implementation for the tests --- .env.bitbucket | 1 + .env.local | 1 + .env.test | 1 + .env.tpl | 1 + src/adapter/RandomSelectorAdapter.js | 22 ++++++++++++++++++++++ src/adapter/index.js | 2 ++ src/index.js | 8 ++++++-- 7 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/adapter/RandomSelectorAdapter.js diff --git a/.env.bitbucket b/.env.bitbucket index 40a5183..e983d52 100644 --- a/.env.bitbucket +++ b/.env.bitbucket @@ -8,4 +8,5 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY +SGX_ENABLE=false diff --git a/.env.local b/.env.local index b6a3ddc..bfe3777 100644 --- a/.env.local +++ b/.env.local @@ -8,3 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY +SGX_ENABLE=false diff --git a/.env.test b/.env.test index 3ad1908..18bd71c 100644 --- a/.env.test +++ b/.env.test @@ -8,3 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY +SGX_ENABLE=false diff --git a/.env.tpl b/.env.tpl index 322b8a6..885fdd4 100644 --- a/.env.tpl +++ b/.env.tpl @@ -8,3 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=0 START_BLOCK=0 PERSISTENCE=INMEMORY +SGX_ENABLE=false diff --git a/src/adapter/RandomSelectorAdapter.js b/src/adapter/RandomSelectorAdapter.js new file mode 100644 index 0000000..a09b117 --- /dev/null +++ b/src/adapter/RandomSelectorAdapter.js @@ -0,0 +1,22 @@ +const DataSelectorPort = require('../domain/common/port/DataSelectorPort'); + +class RandomSelectorAdapter extends DataSelectorPort { + constructor(sgxEnable) { + super(); + this.sgxEnable = sgxEnable; + } + + canHandle(contentType) { + return contentType === 'random'; + } + + select(data, path) { + if (this.sgxEnable === 'true') { + throw new Error('Not implemented'); + } else { + return 123; + } + } +} + +module.exports = RandomSelectorAdapter; diff --git a/src/adapter/index.js b/src/adapter/index.js index 6dbb732..87acf36 100644 --- a/src/adapter/index.js +++ b/src/adapter/index.js @@ -3,6 +3,7 @@ const ConsoleLoggerAdapter = require('./ConsoleLoggerAdapter'); const IdentitySelectorAdapter = require('./IdentitySelectorAdapter'); const JsonSelectorAdapter = require('./JsonSelectorAdapter'); const XmlSelectorAdapter = require('./XmlSelectorAdapter'); +const RandomSelectorAdapter = require('./RandomSelectorAdapter'); module.exports = { AxiosUrlDataFetcherAdapter, @@ -10,4 +11,5 @@ module.exports = { IdentitySelectorAdapter, JsonSelectorAdapter, XmlSelectorAdapter, + RandomSelectorAdapter, }; diff --git a/src/index.js b/src/index.js index d031f5b..6d5d16c 100644 --- a/src/index.js +++ b/src/index.js @@ -15,6 +15,7 @@ const { ConsoleLoggerAdapter: Logger, AxiosUrlDataFetcherAdapter: UrlDataFetcher, JsonSelectorAdapter: JsonSelector, + RandomSelectorAdapter: RandomSelector, XmlSelectorAdapter: XmlSelector, IdentitySelectorAdapter: IdentitySelector, } = require('./adapter'); @@ -44,7 +45,7 @@ const { RequestRepositoryFactory, ResponseRepositoryFactory } = require('./infra const PersistenceConnectionInitializer = require('./infrastructure/persistence/PersistenceConnectionInitializer'); const { - DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, + DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, SGX_ENABLE } = process.env; const persistenceOptions = { @@ -60,9 +61,12 @@ const responseRepository = ResponseRepositoryFactory.create(PERSISTENCE, logger) const oracle = new Oracle(web3, oracleAbi, process.env.ORACLE_ADDRESS); const urlDataFetcher = new UrlDataFetcher(); const jsonSelector = new JsonSelector(); +const randomSelector = new RandomSelector(SGX_ENABLE); const xmlSelector = new XmlSelector(); const identitySelector = new IdentitySelector(); -const dataSelectorFinder = new DataSelectorFinder([jsonSelector, xmlSelector, identitySelector]); +const dataSelectorFinder = new DataSelectorFinder( + [jsonSelector, xmlSelector, identitySelector, randomSelector], +); const createRequestUseCase = new CreateRequestUseCase(requestRepository, logger); From 03afcf5f4b8dd7026f873b5deb3069749e8b551f Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 30 May 2019 13:33:59 +0200 Subject: [PATCH 03/45] Bugfix of naive implementation + refactor suggestions --- src/adapter/RandomSelectorAdapter.js | 2 +- src/domain/request/RequestUrlParser.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/adapter/RandomSelectorAdapter.js b/src/adapter/RandomSelectorAdapter.js index a09b117..9ca66d2 100644 --- a/src/adapter/RandomSelectorAdapter.js +++ b/src/adapter/RandomSelectorAdapter.js @@ -14,7 +14,7 @@ class RandomSelectorAdapter extends DataSelectorPort { if (this.sgxEnable === 'true') { throw new Error('Not implemented'); } else { - return 123; + return '123'; } } } diff --git a/src/domain/request/RequestUrlParser.js b/src/domain/request/RequestUrlParser.js index 9f53993..3552738 100644 --- a/src/domain/request/RequestUrlParser.js +++ b/src/domain/request/RequestUrlParser.js @@ -6,6 +6,8 @@ class RequestUrlParser { const urlRegex = new RegExp(/\(https?:\/\/.+\)/); const matched = urlRegex.exec(wrappedUrl); if (!matched) { + // TODO Assuming that it's url based (not the case in eg. random), + // shouldn't this validation be done per provider? throw new InvalidUrlError(`Url not found in ${wrappedUrl}`); } const firstMatched = matched[0]; @@ -14,13 +16,15 @@ class RequestUrlParser { } static resolveContentType(wrappedUrl) { - const typeRegex = new RegExp(/^(json|xml|html|ipfs)\(.+\)/); + // TODO This is duplicating information, and also with hardcoded literals + // We shoiuld have a mapping of contentType -> provider somewhere + const typeRegex = new RegExp(/^(json|xml|html|ipfs|random)\(.+\)/); if (typeRegex.test(wrappedUrl)) { return typeRegex.exec(wrappedUrl)[1]; } - throw new InvalidContentTypeError('Request type is neither json nor xml nor html nor ipfs'); + throw new InvalidContentTypeError('Request type is neither json nor xml nor html nor ipfs nor random'); } static resolveSelectionPath(wrappedUrl) { From a355220736ea4adba2952f38c1b542f27cd4ff76 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 30 May 2019 18:38:16 +0200 Subject: [PATCH 04/45] Implemented a working fallback random.org provider. It's untested and dirty, needs some more work. --- .env.bitbucket | 2 +- .env.local | 2 +- .env.test | 2 +- .env.tpl | 2 +- src/adapter/RandomDotOrgDataFetcherAdapter.js | 28 +++++++++++++++++++ src/adapter/RandomSelectorAdapter.js | 2 +- src/adapter/index.js | 2 ++ src/domain/common/usecase/FetchDataUseCase.js | 10 ++++++- .../usecase/ExecuteReadyRequestsUseCase.js | 10 ++++++- src/index.js | 8 ++++-- 10 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 src/adapter/RandomDotOrgDataFetcherAdapter.js diff --git a/.env.bitbucket b/.env.bitbucket index e983d52..8a272b4 100644 --- a/.env.bitbucket +++ b/.env.bitbucket @@ -8,5 +8,5 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY -SGX_ENABLE=false +SGX_ENABLED=false diff --git a/.env.local b/.env.local index bfe3777..e86358a 100644 --- a/.env.local +++ b/.env.local @@ -8,4 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY -SGX_ENABLE=false +SGX_ENABLED=false diff --git a/.env.test b/.env.test index 18bd71c..3b04c6c 100644 --- a/.env.test +++ b/.env.test @@ -8,4 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY -SGX_ENABLE=false +SGX_ENABLED=false diff --git a/.env.tpl b/.env.tpl index 885fdd4..377e358 100644 --- a/.env.tpl +++ b/.env.tpl @@ -8,4 +8,4 @@ API_PORT=3001 SAFE_BLOCK_DELAY=0 START_BLOCK=0 PERSISTENCE=INMEMORY -SGX_ENABLE=false +SGX_ENABLED=false diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/adapter/RandomDotOrgDataFetcherAdapter.js new file mode 100644 index 0000000..bb9140e --- /dev/null +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.js @@ -0,0 +1,28 @@ +const axios = require('axios'); +const jp = require('jsonpath'); +const { HttpError } = require('../domain/common/utils/error'); + + +class RandomDotOrgDataFetcherAdapter { + async fetch(min, max) { + try { + const config = { + method: 'post', + url: 'https://api.random.org/json-rpc/2/invoke', + headers: { + 'Content-Type': 'application/json', + }, + data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{"apiKey":"00000000-0000-0000-0000-000000000000","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0}`, + }; + + const response = await axios(config); + console.log(jp.value(response.data, 'result.random.data[0]')); + + return jp.value(response.data, 'result.random.data[0]').toString(); + } catch (e) { + throw new HttpError(e.response.statusText, e.response.status); + } + } +} + +module.exports = RandomDotOrgDataFetcherAdapter; diff --git a/src/adapter/RandomSelectorAdapter.js b/src/adapter/RandomSelectorAdapter.js index 9ca66d2..b541f5e 100644 --- a/src/adapter/RandomSelectorAdapter.js +++ b/src/adapter/RandomSelectorAdapter.js @@ -14,7 +14,7 @@ class RandomSelectorAdapter extends DataSelectorPort { if (this.sgxEnable === 'true') { throw new Error('Not implemented'); } else { - return '123'; + return data; } } } diff --git a/src/adapter/index.js b/src/adapter/index.js index 87acf36..90e0722 100644 --- a/src/adapter/index.js +++ b/src/adapter/index.js @@ -1,4 +1,5 @@ const AxiosUrlDataFetcherAdapter = require('./AxiosUrlDataFetcherAdapter'); +const RandomDotOrgDataFetcherAdapter = require('./RandomDotOrgDataFetcherAdapter'); const ConsoleLoggerAdapter = require('./ConsoleLoggerAdapter'); const IdentitySelectorAdapter = require('./IdentitySelectorAdapter'); const JsonSelectorAdapter = require('./JsonSelectorAdapter'); @@ -7,6 +8,7 @@ const RandomSelectorAdapter = require('./RandomSelectorAdapter'); module.exports = { AxiosUrlDataFetcherAdapter, + RandomDotOrgDataFetcherAdapter, ConsoleLoggerAdapter, IdentitySelectorAdapter, JsonSelectorAdapter, diff --git a/src/domain/common/usecase/FetchDataUseCase.js b/src/domain/common/usecase/FetchDataUseCase.js index 1d87d37..46b68fa 100644 --- a/src/domain/common/usecase/FetchDataUseCase.js +++ b/src/domain/common/usecase/FetchDataUseCase.js @@ -1,6 +1,7 @@ class FetchDataUseCase { - constructor(urlDataFetcher, logger) { + constructor(urlDataFetcher, randomDataFetcher, logger) { this.urlDataFetcher = urlDataFetcher; + this.randomDataFetcher = randomDataFetcher; this.logger = logger; } @@ -10,6 +11,13 @@ class FetchDataUseCase { return rawData; } + + async fetchRandomData(requestId, min, max) { + const rawData = await this.randomDataFetcher.fetch(min, max); + this.logger.info(`Random data fetched [requestId=${requestId}, rawData=${rawData}]`); + + return rawData; + } } module.exports = FetchDataUseCase; diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 3e36d82..de76d1b 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -47,7 +47,7 @@ class ExecuteReadyRequestsUseCase { this.logger.info(`Created response [response=${JSON.stringify(response)}]`); try { - const fetchedData = await this.fetchDataUseCase.fetchData(request.id, request.getRawUrl()); + const fetchedData = await this._fetch(request); response.addFetchedData(fetchedData); const selectedData = await this.selectDataUseCase.selectFromRawData( @@ -72,6 +72,14 @@ class ExecuteReadyRequestsUseCase { } } + async _fetch(request) { + if (request.getContentType() === 'random') { + return this.fetchDataUseCase.fetchRandomData(request.id, 1, 10); + } + + return this.fetchDataUseCase.fetchData(request.id, request.getRawUrl()); + } + async _sendResponse(response) { try { await this.sendResponseToOracleUseCase.sendResponse(response); diff --git a/src/index.js b/src/index.js index 6d5d16c..b1df7a6 100644 --- a/src/index.js +++ b/src/index.js @@ -14,6 +14,7 @@ const { MarkValidRequestsAsReadyScheduler, ExecuteReadyRequestsScheduler } = req const { ConsoleLoggerAdapter: Logger, AxiosUrlDataFetcherAdapter: UrlDataFetcher, + RandomDotOrgDataFetcherAdapter: RandomDotOrgDataFetcher, JsonSelectorAdapter: JsonSelector, RandomSelectorAdapter: RandomSelector, XmlSelectorAdapter: XmlSelector, @@ -45,7 +46,7 @@ const { RequestRepositoryFactory, ResponseRepositoryFactory } = require('./infra const PersistenceConnectionInitializer = require('./infrastructure/persistence/PersistenceConnectionInitializer'); const { - DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, SGX_ENABLE + DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, SGX_ENABLED, } = process.env; const persistenceOptions = { @@ -60,8 +61,9 @@ const requestRepository = RequestRepositoryFactory.create(PERSISTENCE, logger); const responseRepository = ResponseRepositoryFactory.create(PERSISTENCE, logger); const oracle = new Oracle(web3, oracleAbi, process.env.ORACLE_ADDRESS); const urlDataFetcher = new UrlDataFetcher(); +const randomDataFetcher = new RandomDotOrgDataFetcher(); const jsonSelector = new JsonSelector(); -const randomSelector = new RandomSelector(SGX_ENABLE); +const randomSelector = new RandomSelector(SGX_ENABLED); const xmlSelector = new XmlSelector(); const identitySelector = new IdentitySelector(); const dataSelectorFinder = new DataSelectorFinder( @@ -79,7 +81,7 @@ const markValidRequestsAsReadyUseCase = new MarkValidRequestsAsReadyUseCase( requestRepository, logger, ); -const fetchDataUseCase = new FetchDataUseCase(urlDataFetcher, logger); +const fetchDataUseCase = new FetchDataUseCase(urlDataFetcher, randomDataFetcher, logger); const selectDataUseCase = new SelectDataUseCase(dataSelectorFinder, logger); const sendResponseToOracleUseCase = new SendResponseToOracleUseCase(oracle, logger); const executeReadyRequestsUseCase = new ExecuteReadyRequestsUseCase( From 1fecf73f55772ce0c5cda33ca9d8eb95920febd1 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 31 May 2019 12:34:44 +0200 Subject: [PATCH 05/45] Passing value bounds from request, cleaned up request format to 'random(%d,%d)' --- .../common/usecase/SelectDataUseCase.js | 7 ++++++ src/domain/request/Request.js | 8 +++++++ src/domain/request/RequestUrlParser.js | 20 +++++++++++++++++ .../usecase/ExecuteReadyRequestsUseCase.js | 22 ++++++++++++++----- 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/domain/common/usecase/SelectDataUseCase.js b/src/domain/common/usecase/SelectDataUseCase.js index dcb6970..57e793d 100644 --- a/src/domain/common/usecase/SelectDataUseCase.js +++ b/src/domain/common/usecase/SelectDataUseCase.js @@ -10,6 +10,13 @@ class SelectDataUseCase { return selectedData; } + + async selectFromRandomRawData(fetchedData) { + const selectedData = this.dataSelectorFinder.find('random').select(fetchedData, ''); + this.logger.info(`Random data selected [selectedData=${selectedData},fetchedData=${fetchedData}]`); + + return selectedData; + } } module.exports = SelectDataUseCase; diff --git a/src/domain/request/Request.js b/src/domain/request/Request.js index a80896c..6d09566 100644 --- a/src/domain/request/Request.js +++ b/src/domain/request/Request.js @@ -22,6 +22,14 @@ class Request { getSelectionPath() { return RequestUrlParser.resolveSelectionPath(this.url); } + + getLeftSideBound() { + return RequestUrlParser.resolveLeftSideBound(this.url); + } + + getRightSideBound() { + return RequestUrlParser.resolveRightSideBound(this.url); + } } module.exports = Request; diff --git a/src/domain/request/RequestUrlParser.js b/src/domain/request/RequestUrlParser.js index 3552738..ac123e8 100644 --- a/src/domain/request/RequestUrlParser.js +++ b/src/domain/request/RequestUrlParser.js @@ -33,6 +33,26 @@ class RequestUrlParser { return wrappedUrl.substr(pathStartIndex); } + + static resolveLeftSideBound(wrappedUrl) { + const typeRegex = new RegExp(/^random\((\d+),(\d+)\)/); + + if (typeRegex.test(wrappedUrl)) { + return typeRegex.exec(wrappedUrl)[1]; + } + + throw new InvalidContentTypeError('Invalid numeric bounds format'); + } + + static resolveRightSideBound(wrappedUrl) { + const typeRegex = new RegExp(/^random\((\d+),(\d+)\)/); + + if (typeRegex.test(wrappedUrl)) { + return typeRegex.exec(wrappedUrl)[2]; + } + + throw new InvalidContentTypeError('Invalid numeric bounds format'); + } } module.exports = RequestUrlParser; diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index de76d1b..6fc1d31 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -50,11 +50,7 @@ class ExecuteReadyRequestsUseCase { const fetchedData = await this._fetch(request); response.addFetchedData(fetchedData); - const selectedData = await this.selectDataUseCase.selectFromRawData( - response.fetchedData, - request.getContentType(), - request.getSelectionPath(), - ); + const selectedData = await this._select(response.fetchedData, request); response.addSelectedData(selectedData); return response; @@ -74,12 +70,26 @@ class ExecuteReadyRequestsUseCase { async _fetch(request) { if (request.getContentType() === 'random') { - return this.fetchDataUseCase.fetchRandomData(request.id, 1, 10); + return this.fetchDataUseCase.fetchRandomData( + request.id, request.getLeftSideBound(), request.getRightSideBound(), + ); } return this.fetchDataUseCase.fetchData(request.id, request.getRawUrl()); } + async _select(fetchedData, request) { + if (request.getContentType() === 'random') { + return this.selectDataUseCase.selectFromRandomRawData(fetchedData); + } + + return this.selectDataUseCase.selectFromRawData( + fetchedData, + request.getContentType(), + request.getSelectionPath(), + ); + } + async _sendResponse(response) { try { await this.sendResponseToOracleUseCase.sendResponse(response); From 9d66a287193792cafe1cd664851e096a15833fc5 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 31 May 2019 13:28:46 +0200 Subject: [PATCH 06/45] Test adjust --- src/domain/common/usecase/FetchDataUseCase.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domain/common/usecase/FetchDataUseCase.spec.js b/src/domain/common/usecase/FetchDataUseCase.spec.js index 4d1c637..5fc64db 100644 --- a/src/domain/common/usecase/FetchDataUseCase.spec.js +++ b/src/domain/common/usecase/FetchDataUseCase.spec.js @@ -18,7 +18,7 @@ describe('FetchDataUseCase', () => { it('should fetch data for request and return rawData', async () => { // given const request = new Request('1', 'json(http://example.com).key1', Date.now()); - const sut = new FetchDataUseCase(urlDataFetcher(), new Logger()); + const sut = new FetchDataUseCase(urlDataFetcher(), failingDataFetcher(), new Logger()); // when const fetchedData = await sut.fetchData(request.id, 'http://example.com'); // then @@ -28,7 +28,7 @@ describe('FetchDataUseCase', () => { it('should throw error if data fetch failed', () => { const request = new Request('1', 'json(http://example.com).key1', Date.now(), RequestStateEnum.PROCESSED); - const sut = new FetchDataUseCase(failingDataFetcher(), new Logger()); + const sut = new FetchDataUseCase(failingDataFetcher(), failingDataFetcher, new Logger()); // when return expect(sut.fetchData(request.id, request.getRawUrl())).to.be.rejected; }); From 1b4e16767ac82a8fb8e441e0a3b9fc58de113126 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 31 May 2019 13:37:23 +0200 Subject: [PATCH 07/45] Naming adjust --- src/adapter/RandomDotOrgDataFetcherAdapter.js | 1 - src/domain/common/usecase/FetchDataUseCase.js | 2 +- src/domain/common/usecase/FetchDataUseCase.spec.js | 4 ++-- src/domain/request/usecase/ExecuteReadyRequestsUseCase.js | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/adapter/RandomDotOrgDataFetcherAdapter.js index bb9140e..17e8723 100644 --- a/src/adapter/RandomDotOrgDataFetcherAdapter.js +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.js @@ -16,7 +16,6 @@ class RandomDotOrgDataFetcherAdapter { }; const response = await axios(config); - console.log(jp.value(response.data, 'result.random.data[0]')); return jp.value(response.data, 'result.random.data[0]').toString(); } catch (e) { diff --git a/src/domain/common/usecase/FetchDataUseCase.js b/src/domain/common/usecase/FetchDataUseCase.js index 46b68fa..67aa2bc 100644 --- a/src/domain/common/usecase/FetchDataUseCase.js +++ b/src/domain/common/usecase/FetchDataUseCase.js @@ -5,7 +5,7 @@ class FetchDataUseCase { this.logger = logger; } - async fetchData(requestId, rawUrl) { + async fetchHttpData(requestId, rawUrl) { const rawData = await this.urlDataFetcher.fetch(rawUrl); this.logger.info(`Data fetched [requestId=${requestId}, rawData=${rawData}]`); diff --git a/src/domain/common/usecase/FetchDataUseCase.spec.js b/src/domain/common/usecase/FetchDataUseCase.spec.js index 5fc64db..6c146c1 100644 --- a/src/domain/common/usecase/FetchDataUseCase.spec.js +++ b/src/domain/common/usecase/FetchDataUseCase.spec.js @@ -20,7 +20,7 @@ describe('FetchDataUseCase', () => { const request = new Request('1', 'json(http://example.com).key1', Date.now()); const sut = new FetchDataUseCase(urlDataFetcher(), failingDataFetcher(), new Logger()); // when - const fetchedData = await sut.fetchData(request.id, 'http://example.com'); + const fetchedData = await sut.fetchHttpData(request.id, 'http://example.com'); // then expect(fetchedData).to.equal('{"key1":"value1"}'); expect(sut.logger.list()).to.have.lengthOf(1); @@ -30,6 +30,6 @@ describe('FetchDataUseCase', () => { const request = new Request('1', 'json(http://example.com).key1', Date.now(), RequestStateEnum.PROCESSED); const sut = new FetchDataUseCase(failingDataFetcher(), failingDataFetcher, new Logger()); // when - return expect(sut.fetchData(request.id, request.getRawUrl())).to.be.rejected; + return expect(sut.fetchHttpData(request.id, request.getRawUrl())).to.be.rejected; }); }); diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 6fc1d31..672d057 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -75,7 +75,7 @@ class ExecuteReadyRequestsUseCase { ); } - return this.fetchDataUseCase.fetchData(request.id, request.getRawUrl()); + return this.fetchDataUseCase.fetchHttpData(request.id, request.getRawUrl()); } async _select(fetchedData, request) { From ac8cc817a81661a15ca91e38e2c17ac35745cbd0 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 31 May 2019 13:44:36 +0200 Subject: [PATCH 08/45] Moved random.org api key to .env --- .env.bitbucket | 1 + .env.local | 1 + .env.test | 1 + .env.tpl | 1 + src/adapter/RandomDotOrgDataFetcherAdapter.js | 6 +++++- src/index.js | 5 +++-- 6 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.env.bitbucket b/.env.bitbucket index 8a272b4..1fb5bbf 100644 --- a/.env.bitbucket +++ b/.env.bitbucket @@ -9,4 +9,5 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false +RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 diff --git a/.env.local b/.env.local index e86358a..a8828b3 100644 --- a/.env.local +++ b/.env.local @@ -9,3 +9,4 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false +RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 diff --git a/.env.test b/.env.test index 3b04c6c..e346d50 100644 --- a/.env.test +++ b/.env.test @@ -9,3 +9,4 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false +RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 diff --git a/.env.tpl b/.env.tpl index 377e358..2c9c3e6 100644 --- a/.env.tpl +++ b/.env.tpl @@ -9,3 +9,4 @@ SAFE_BLOCK_DELAY=0 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false +RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/adapter/RandomDotOrgDataFetcherAdapter.js index 17e8723..777bac3 100644 --- a/src/adapter/RandomDotOrgDataFetcherAdapter.js +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.js @@ -4,6 +4,10 @@ const { HttpError } = require('../domain/common/utils/error'); class RandomDotOrgDataFetcherAdapter { + constructor(apiKey) { + this.apiKey = apiKey; + } + async fetch(min, max) { try { const config = { @@ -12,7 +16,7 @@ class RandomDotOrgDataFetcherAdapter { headers: { 'Content-Type': 'application/json', }, - data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{"apiKey":"00000000-0000-0000-0000-000000000000","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0}`, + data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{"apiKey":"${this.apiKey}","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0}`, }; const response = await axios(config); diff --git a/src/index.js b/src/index.js index b1df7a6..e140776 100644 --- a/src/index.js +++ b/src/index.js @@ -46,7 +46,8 @@ const { RequestRepositoryFactory, ResponseRepositoryFactory } = require('./infra const PersistenceConnectionInitializer = require('./infrastructure/persistence/PersistenceConnectionInitializer'); const { - DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, SGX_ENABLED, + DATABASE_URL, DATABASE_NAME, PERSISTENCE, START_BLOCK, SAFE_BLOCK_DELAY, API_PORT, + SGX_ENABLED, RANDOMDOTORG_API_KEY, } = process.env; const persistenceOptions = { @@ -61,7 +62,7 @@ const requestRepository = RequestRepositoryFactory.create(PERSISTENCE, logger); const responseRepository = ResponseRepositoryFactory.create(PERSISTENCE, logger); const oracle = new Oracle(web3, oracleAbi, process.env.ORACLE_ADDRESS); const urlDataFetcher = new UrlDataFetcher(); -const randomDataFetcher = new RandomDotOrgDataFetcher(); +const randomDataFetcher = new RandomDotOrgDataFetcher(RANDOMDOTORG_API_KEY); const jsonSelector = new JsonSelector(); const randomSelector = new RandomSelector(SGX_ENABLED); const xmlSelector = new XmlSelector(); From d8851f336ebb9e84922abe233989ad1c981e90ff Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 31 May 2019 16:08:06 +0200 Subject: [PATCH 09/45] Random.org integration tests --- ...domDotOrgDataFetcherAdapter.integration.js | 32 +++++++++++++++++++ src/adapter/RandomDotOrgDataFetcherAdapter.js | 8 ++--- src/adapter/RandomDotOrgResponse.js | 21 ++++++++++++ .../common/usecase/SelectDataUseCase.js | 2 +- .../ExecuteReadyRequestsUseCase.spec.js | 4 +-- 5 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 src/adapter/RandomDotOrgDataFetcherAdapter.integration.js create mode 100644 src/adapter/RandomDotOrgResponse.js diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.integration.js b/src/adapter/RandomDotOrgDataFetcherAdapter.integration.js new file mode 100644 index 0000000..7091031 --- /dev/null +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.integration.js @@ -0,0 +1,32 @@ +const { describe, it } = require('mocha'); +const { expect } = require('chai'); +const nock = require('nock'); +const RandomDotOrgDataFetcherAdapter = require('./RandomDotOrgDataFetcherAdapter'); +const response = require('./RandomDotOrgResponse'); + +describe('Random.org Integration Test', () => { + it('return first data item on successful response', async () => { + // given + nock('https://api.random.org') + .post('/json-rpc/2/invoke') + .reply(200, response); + const sut = new RandomDotOrgDataFetcherAdapter('some-api-key'); + // when + const result = await sut.fetch(0, 10); + // then + expect(result).to.equal('2'); + }); +}); + +describe('Random.org Integration Test', () => { + it('throw error on failed response', async () => { + // given + nock('https://api.random.org') + .post('/json-rpc/2/invoke') + .reply(500); + const sut = new RandomDotOrgDataFetcherAdapter('some-api-key'); + // when + // then + return expect(sut.fetch(0, 10)).to.be.rejected; + }); +}); diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/adapter/RandomDotOrgDataFetcherAdapter.js index 777bac3..fd5c2af 100644 --- a/src/adapter/RandomDotOrgDataFetcherAdapter.js +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.js @@ -10,20 +10,18 @@ class RandomDotOrgDataFetcherAdapter { async fetch(min, max) { try { - const config = { + const response = await axios({ method: 'post', url: 'https://api.random.org/json-rpc/2/invoke', headers: { 'Content-Type': 'application/json', }, data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{"apiKey":"${this.apiKey}","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0}`, - }; - - const response = await axios(config); + }); return jp.value(response.data, 'result.random.data[0]').toString(); } catch (e) { - throw new HttpError(e.response.statusText, e.response.status); + throw new HttpError('Error when calling random.org', e.response.status); } } } diff --git a/src/adapter/RandomDotOrgResponse.js b/src/adapter/RandomDotOrgResponse.js new file mode 100644 index 0000000..8f2496d --- /dev/null +++ b/src/adapter/RandomDotOrgResponse.js @@ -0,0 +1,21 @@ +/* eslint-disable comma-dangle */ +module.exports = { + jsonrpc: '2.0', + result: { + random: { + data: [ + 2, + 1, + 4, + 6, + 7 + ], + completionTime: '2019-05-30 16:17:41Z', + }, + bitsUsed: 3, + bitsLeft: 1748546, + requestsLeft: 389135, + advisoryDelay: 1710, + }, + id: 21686, +}; diff --git a/src/domain/common/usecase/SelectDataUseCase.js b/src/domain/common/usecase/SelectDataUseCase.js index 57e793d..ab578a4 100644 --- a/src/domain/common/usecase/SelectDataUseCase.js +++ b/src/domain/common/usecase/SelectDataUseCase.js @@ -6,7 +6,7 @@ class SelectDataUseCase { async selectFromRawData(fetchedData, contentType, path) { const selectedData = this.dataSelectorFinder.find(contentType).select(fetchedData, path); - this.logger.info(`Data selected [selectedData=${selectedData},fetchedData=${fetchedData},contentType=${contentType},path=${path}`); + this.logger.info(`Data selected [selectedData=${selectedData},fetchedData=${fetchedData},contentType=${contentType},path=${path}]`); return selectedData; } diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.js index 47c9e9b..b2d7201 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.js @@ -27,11 +27,11 @@ describe('ExecuteReadyRequestsUseCase', () => { }; const fetchDataUseCase = () => ({ - fetchData: () => Promise.resolve('fetchedData'), + fetchHttpData: () => Promise.resolve('fetchedData'), }); const failedFetchDataUseCase = () => ({ - fetchData: () => Promise.reject(new InvalidUrlError('message')), + fetchHttpData: () => Promise.reject(new InvalidUrlError('message')), }); const selectDataUseCase = () => ({ From 9daae9f7cbcde45e8597e91553c5761a0f8449ff Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 3 Jun 2019 14:34:27 +0200 Subject: [PATCH 10/45] Minor refactor + better error handling --- src/adapter/RandomDotOrgDataFetcherAdapter.js | 10 ++++++---- src/domain/request/RequestUrlParser.js | 2 +- .../request/usecase/ExecuteReadyRequestsUseCase.js | 7 ++----- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/adapter/RandomDotOrgDataFetcherAdapter.js index fd5c2af..d8dbe29 100644 --- a/src/adapter/RandomDotOrgDataFetcherAdapter.js +++ b/src/adapter/RandomDotOrgDataFetcherAdapter.js @@ -9,8 +9,10 @@ class RandomDotOrgDataFetcherAdapter { } async fetch(min, max) { + let response; + try { - const response = await axios({ + response = await axios({ method: 'post', url: 'https://api.random.org/json-rpc/2/invoke', headers: { @@ -18,11 +20,11 @@ class RandomDotOrgDataFetcherAdapter { }, data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{"apiKey":"${this.apiKey}","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0}`, }); - - return jp.value(response.data, 'result.random.data[0]').toString(); } catch (e) { - throw new HttpError('Error when calling random.org', e.response.status); + throw new HttpError(e.response.statusText, e.response.status); } + + return jp.value(response.data, 'result.random.data[0]').toString(); } } diff --git a/src/domain/request/RequestUrlParser.js b/src/domain/request/RequestUrlParser.js index ac123e8..8ebd5dd 100644 --- a/src/domain/request/RequestUrlParser.js +++ b/src/domain/request/RequestUrlParser.js @@ -24,7 +24,7 @@ class RequestUrlParser { return typeRegex.exec(wrappedUrl)[1]; } - throw new InvalidContentTypeError('Request type is neither json nor xml nor html nor ipfs nor random'); + throw new InvalidContentTypeError('Request type has to be one of [json,xml,html,ipfs,random]'); } static resolveSelectionPath(wrappedUrl) { diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 672d057..290dd5a 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -47,11 +47,8 @@ class ExecuteReadyRequestsUseCase { this.logger.info(`Created response [response=${JSON.stringify(response)}]`); try { - const fetchedData = await this._fetch(request); - response.addFetchedData(fetchedData); - - const selectedData = await this._select(response.fetchedData, request); - response.addSelectedData(selectedData); + response.addFetchedData(await this._fetch(request)); + response.addSelectedData(await this._select(response.fetchedData, request)); return response; } catch (e) { From 41efe36b554afd396fc69301c492b68251459dca Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 3 Jun 2019 16:39:26 +0200 Subject: [PATCH 11/45] Removed redundant method --- src/domain/common/usecase/SelectDataUseCase.js | 7 ------- src/domain/request/usecase/ExecuteReadyRequestsUseCase.js | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/domain/common/usecase/SelectDataUseCase.js b/src/domain/common/usecase/SelectDataUseCase.js index ab578a4..e6a16d6 100644 --- a/src/domain/common/usecase/SelectDataUseCase.js +++ b/src/domain/common/usecase/SelectDataUseCase.js @@ -10,13 +10,6 @@ class SelectDataUseCase { return selectedData; } - - async selectFromRandomRawData(fetchedData) { - const selectedData = this.dataSelectorFinder.find('random').select(fetchedData, ''); - this.logger.info(`Random data selected [selectedData=${selectedData},fetchedData=${fetchedData}]`); - - return selectedData; - } } module.exports = SelectDataUseCase; diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 290dd5a..e7e9a83 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -77,7 +77,7 @@ class ExecuteReadyRequestsUseCase { async _select(fetchedData, request) { if (request.getContentType() === 'random') { - return this.selectDataUseCase.selectFromRandomRawData(fetchedData); + return this.selectDataUseCase.selectFromRawData(fetchedData, request.getContentType()); } return this.selectDataUseCase.selectFromRawData( From b77ea26b07cf922e1ae7ed0b72a9f016ced2eb8d Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 26 Jun 2019 18:04:18 +0200 Subject: [PATCH 12/45] Implemented SGX random data provider (not working yet, need to fix *.SO's) and made Dockerfile install SGX stuff in the container. --- Dockerfile | 35 ++++++++++ entrypoint.sh | 14 ++++ install-psw.patch | 77 +++++++++++++++++++++ jhi.conf | 67 ++++++++++++++++++ libs/Enclave.signed.so | Bin 0 -> 241688 bytes libs/EnclaveWrapper.so | Bin 0 -> 24760 bytes package-lock.json | 41 ++++++++++- package.json | 4 +- src/adapter/RandomSelectorAdapter.js | 11 +-- src/adapter/RandomSgxDataFetcherAdapter.js | 30 ++++++++ src/adapter/index.js | 2 + src/index.js | 6 +- 12 files changed, 271 insertions(+), 16 deletions(-) create mode 100644 entrypoint.sh create mode 100644 install-psw.patch create mode 100644 jhi.conf create mode 100644 libs/Enclave.signed.so create mode 100644 libs/EnclaveWrapper.so create mode 100644 src/adapter/RandomSgxDataFetcherAdapter.js diff --git a/Dockerfile b/Dockerfile index 22cb780..a827830 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,38 @@ +FROM ubuntu:bionic + +WORKDIR /usr/src/sdk + +RUN apt-get update && apt-get install -yq --no-install-recommends ca-certificates build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev libssl-dev libcurl4-openssl-dev protobuf-compiler git libprotobuf-dev alien cmake debhelper uuid-dev libxml2-dev + +RUN wget --progress=dot:mega -O iclsclient.rpm http://registrationcenter-download.intel.com/akdlm/irc_nas/11414/iclsClient-1.45.449.12-1.x86_64.rpm && \ + alien --scripts -i iclsclient.rpm && \ + rm iclsclient.rpm + +RUN wget --progress=dot:mega -O - https://github.com/intel/dynamic-application-loader-host-interface/archive/072d233296c15d0dcd1fb4570694d0244729f87b.tar.gz | tar -xz && \ + cd dynamic-application-loader-host-interface-072d233296c15d0dcd1fb4570694d0244729f87b && \ + cmake . -DCMAKE_BUILD_TYPE=Release -DINIT_SYSTEM=SysVinit && \ + make install && \ + cd .. && rm -rf dynamic-application-loader-host-interface-072d233296c15d0dcd1fb4570694d0244729f87b + +COPY install-psw.patch ./ + +RUN git clone -b sgx_2.5 --depth 1 https://github.com/intel/linux-sgx && \ + cd linux-sgx && \ + patch -p1 -i ../install-psw.patch && \ + ./download_prebuilt.sh 2> /dev/null && \ + make -s -j$(nproc) sdk_install_pkg psw_install_pkg && \ + ./linux/installer/bin/sgx_linux_x64_sdk_2.5.100.49891.bin --prefix=/opt/intel && \ + ./linux/installer/bin/sgx_linux_x64_psw_2.5.100.49891.bin && \ + cd .. && rm -rf linux-sgx/ + +WORKDIR /usr/src/app + +COPY entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] + +# For debug purposes +# COPY jhi.conf /etc/jhi/jhi.conf + FROM node:10.15 # Create app directory diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..607e30d --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +source /opt/intel/sgxsdk/environment +export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/intel/sgxpsw/aesm/ + +jhid -d +/opt/intel/sgxpsw/aesm/aesm_service & +pid=$! + +trap "kill ${pid}" TERM INT + +sleep 2 + +exec "$@" diff --git a/install-psw.patch b/install-psw.patch new file mode 100644 index 0000000..1bdbd18 --- /dev/null +++ b/install-psw.patch @@ -0,0 +1,77 @@ +diff --git a/linux/installer/bin/install-sgx-psw.bin.tmpl b/linux/installer/bin/install-sgx-psw.bin.tmpl +index 3510e97c..751831ab 100755 +--- a/linux/installer/bin/install-sgx-psw.bin.tmpl ++++ b/linux/installer/bin/install-sgx-psw.bin.tmpl +@@ -30,34 +30,10 @@ + # + # + +-grep 'sgx\.ko$\|intel_sgx\.ko$' /lib/modules/$(uname -r)/modules.builtin &> /dev/null +-if [[ $? != "0" ]]; then +- /sbin/modinfo isgx &> /dev/null +- if [[ $? != "0" ]]; then +- /sbin/modinfo intel_sgx &> /dev/null +- if [[ $? != "0" ]]; then +- lsmod | grep 'isgx\|intel_sgx' &> /dev/null +- if [[ $? = "0" ]]; then +- echo "Warning: You did not follow the document to install the driver package." +- echo +- elif [[ ! -e /dev/isgx ]] && [[ ! -e /dev/sgx ]]; then +- echo -e "\033[31;49;1mWarning: You may need to activate the SGX module if SGX is enabled in the kernel (e.g., sudo modprobe sgx) or download and install the SGX driver if the kernel doesn't have SGX support.\033[39;49;0m" +- echo +- fi +- fi +- fi +-fi +- + set -e + + PKG_NAME="Intel SGX PSW Package" + +-if test $(id -u) -ne 0; then +- echo "Root privilege is required to install $PKG_NAME." +- exit 4 +-fi +- +- + PKG_ARCH=@arch@ + ARCH=$(uname -m) + +diff --git a/linux/installer/common/libsgx-enclave-common/install.sh b/linux/installer/common/libsgx-enclave-common/install.sh +index 296879af..851d520b 100755 +--- a/linux/installer/common/libsgx-enclave-common/install.sh ++++ b/linux/installer/common/libsgx-enclave-common/install.sh +@@ -33,11 +33,6 @@ + + set -e + +-if test $(id -u) -ne 0; then +- echo "Root privilege is required." +- exit 1 +-fi +- + SCRIPT_DIR=$(dirname "$0") + source ${SCRIPT_DIR}/installConfig + +@@ -95,7 +90,7 @@ elif [ -d /etc/init/ ]; then + else + echo " failed." + echo "Unsupported platform - neither systemctl nor initctl is found." +- exit 5 ++ retval=0 + fi + + if test $retval -ne 0; then +diff --git a/linux/installer/common/psw/install.sh b/linux/installer/common/psw/install.sh +index 59f3ed61..8ba940a3 100755 +--- a/linux/installer/common/psw/install.sh ++++ b/linux/installer/common/psw/install.sh +@@ -96,7 +96,7 @@ elif [ -d /etc/init/ ]; then + else + echo " failed." + echo "Unsupported platform - neither systemctl nor initctl is found." +- exit 5 ++ retval=0 + fi + + if test $retval -ne 0; then diff --git a/jhi.conf b/jhi.conf new file mode 100644 index 0000000..ed7ccda --- /dev/null +++ b/jhi.conf @@ -0,0 +1,67 @@ +# +# jhi.conf +# +# +# +# Transport type +# +# How to connect to DAL firmware +# +# AUTO - Choose between MEI and KERNEL automatically +# MEI - The most common. Use /dev/mei directly. +# SOCKET - Connect through an IP socket (for development purposes) +# KERNEL - Connect through the DAL kernel module (mei_dal). Uses /dev/dal{0,1,2} +# +# AUTO is the default. +# +# Uncomment one of the following: +# +transport AUTO +#transport MEI +#transport SOCKET +#transport KERNEL +# +# +# +# Firmware emulation IP address +# +# 127.0.0.1 is the default +# +# When using SOCKET, connect to this IP address: +# +#socket_ip_address 127.0.0.1 +socket_ip_address 192.168.56.1 +# +# +# +# Log level +# +# OFF - No prints +# RELEASE - Recommended for general use +# DEBUG - When something goes wrong enable this to see why +# +#log_level OFF +#log_level RELEASE +log_level DEBUG +# +# +# +# Daemon socket path +# +# Location for the Unix domain socket the daemon creates for user +# applications to connect to. +# +# /tmp/jhi_socket is the default +# +socket_path /var/run/jhi_socket +#socket_path /tmp/jhi_socket +# +# +# Applets location on the filesystem +# +# applets_dir can be read only. +# app_repo_dir needs to be writeable by the daemon. +# +#applets_dir /var/lib/intel/dal/applets +#app_repo_dir /var/lib/intel/dal/applet_repository +# diff --git a/libs/Enclave.signed.so b/libs/Enclave.signed.so new file mode 100644 index 0000000000000000000000000000000000000000..cf1fd68db53f70d588547e72ca53cbdb8bcda4b0 GIT binary patch literal 241688 zcmd44d3+Pq`UgB|8wg98s?=K*Bw$f07i~bejZjUXg&CMap`a*g*~)TRTHA!hjg} zdCqg5?L23h$+CQHWRk@qML)^XH4@$JnwP{tE|D?$Kgl8`NiHcz>V)5mqzk1EfTrN< z61j=j7J)i?wTW_sjq2s_X8v&PA<9LsQ3~m56?td7d{xg8Mz4}&XT_)<(VF%R&rkcN z4}(XqZ>FKlD0^5*_<&7?~BM6XnqK84?V zX0r6%qGH1J-j2Ln^ct-<9`!^PFYtf-riuIsqP;)k%Tdw4=vCZGSI(b1eaKZ;&YwA8 z{@jJ$B?Fe^3>h%wsw*l=uNcVs-5vNz#-qkgl3uTUq2yV!;p0)(4?a5aL&k!Zk1x5; zhdk;b(a{-S$x|yD> z;@S__%kk}x?*IY25?2Sl1MwX!V06h5>7lsh;(IN=E_~hi(q{y|dH9aPcQn3Z@YV1g zhi@Ui4lqB7V>lA!%!uMtYyG2~-G7aD9_|Cw$1mF12Y~0Mj_wNEY57&hv zO_wr}z7@|*W_w?5>u7Y6-v_vkxLz0&g2zt&tG958>j%l&Tlgi2Y^`7Fa*}3`DZz)&d{)SzS*`N4s-1F7#4;F0t=CUXD z+&a0(3o9>r$~?7u*0G0PoxN+*jeCZoT+OCar);A~ZC&>K$!(6!YrmMgWL(qXN-M8=`(H22x=_1! z&D*OV$@K3lANlyNANkK+{BiG*ci!=}?e}B;52mbYn78J&=RX^K{MNUhTr+LXy}Mlf z-kr97>*<+qJ^S^493>~_Uhw?d`}#iF{J=feJhT6f`={J`-l0LKF5J-P*PfHFxMISE zr5`-qb@D6!y6yMiC8tv_{HA;TIXUCx( zMg*Lk8a{J?{~YpWD^QU>;_@?!5gt1s#K*;cCFuYLAc8k`;qd9gDSj;QPd&}?yZA-A zq_d#M!pk2Qcm@jk?I(CaJL=Qt2JnaQyEbxoh*y&g(eBhDQJxo-ev#fl zKH-rB-=coBHkrexW^%-h=s$gy0~a#o%bXR1nC)(m#Z}UK8!o zm_VQFQLMKlONxjmM6=S9$YXT&;qAUj0|q|#3p&$&=J)Si&aaw)uN=nPt>a*6ui)p( z1bz4&`DxOzR#B|&GC=UTF(?=&`n57DuWLB|NkYC;MZ1*)IeedS{c%7ec<3Bv5=@f^Vk;KUX$$JT8`taf|5*>?omM zwE|DJpfgRBpN#6~B0`GB;{q(b4E*O%RPjq62C|EcPjMwWr@qeH9V_^7jlkddD~C@N z<#QN*2sMG8MFLObqr807?tT(-u_ySGErOpXgk1h3@OJ=Ph#va{&YyevMLH<>^QM#I zZ#;)rm>}qM{g=bHiSmO4-&_g&`AW#QF+tDI1wDPxZha4qN4OJdqoAj907u*?@Ye}E z&rx85&n$kCE*9+;CbauRRPIR}!31F!2c!0q!QuZF_%|S*$t9ZuLYyq=Hi2hq0{*uI z9_bcdzEbGbU;%&g8BQR@G4wfrFX0cZ=7{Y=?iZsvQQ-{3-&q=x;P?8Aeie##r;75g3V2yUe{(?ZIcQ<3$?1tw zwM^*S%88<10?#hN&rpKgZK8bR+r0b;QGTu{pQvvyi++Xf5%^J`J`V}~42cQc`{*Zq z&P3Z4^svbe;D(S(b^@QvFqAU>Pv`ifc62`K5WI3aM_eiJFB0^u6bfP&aJpsXZ{m1X z@{8mabT(ei3%)Ags|5bW1phNt(6chZ-Vcg?JtyRg?ywK>kJ@bzaABs>%Yx4z3wU&% zvrE8_rgM69L4Qxk{T$4ODx3N+y!FB$7YMs^9pi+%Sgs^B;Fj8TCGb;;`hk_aU`ULQ zm!V(e4_z%BKbm8o6j45u(BEUi&sU0eqkiBa@PX{2<`l;x&`8Gxp892+&bvfLZ$bZ? z67T3n0sm0Q1+z;Aaf$xch<-ID_|Ml+o%(AR3nF%2O*&7=t8pd=MD4nR!0!@%%q80O z33@{7c=@PaEn)rY{s()1SIDbT_{nJ8wL{=v`M79T2)={R6PM7dsiNIwfRp{YgnTa% zaOww>qm%Q;#nDNJqjIm~1vh5#>syS^oux|`^6~mP|POj-%f;MW$k#6LMBzjQ(+5Fkr6|8f@F7jaEz$B?6pz3^Rg|{@5#b3< z5&Rcyy-?62wetS{hhHQ`@S*WT4xl)XJ{D%b=StZ^z955r-WPIg9K{iPftNmtXty%K z?j9BVcU{EG+eP_3Xg3XU&fWyM?-k`Mb9wn@j$S&9ThcdsV;=^w3;1iIUn`^jT)?{u zeF(k6`*ojyFN^BQ?;IYryTPJg^_sEaa=c%YZhXmg^SgH_uA_@O* z7jS8AS=o%TQ6-)t&oqy>qR3M|cj0VlzOxwc3U_`{@u(36h2^C)N-8SU>!hVQZSWBV z?hzyBE}S-Bno)+j<(`QZGo<3;xeGld^NSahESOQYl+ffaoKe2C%u_r;9qkyHQ%o4g zs&V+$g>yY^)ut_4Qe0kAM%61yV&H`(i=!ABsS`?O6D5nw%iJXuqh>5X8^x$fSc|63 zD#W!>3i0#P_USkAbsYJDzFN z=a&o|Lv1lyMwWnW_w2Wkw*dxI?&dLJsd@!^) z+RL+`a`Ub;M$SYfkV(7*-GaJy60Ini;Vqx*Sz0`!v~=Fwk~VD{>s>H$PI<|+nH7XC zzF%CY;(!o`kZ3#70c#_(eQCiN0C}I>Ue6q+9~HBg6niQ>GiMYpDk&!=kY<(^mntN-O4i1l2_)o;a!*E~aOtZP?mc6kHUXjrI;5 zVTK}2nEQ9AY|-@6C2jl|QRW>nzjVgDiZ)xQsHi9z6txC2CNeW7!7`MYF>S`2lA^h{ zF~Z{-5aveWIIBRJA|}cX^_h0&FC^uj8Q04M`Gbrr3KI2;fTP>Ujx%B50XQ9nO==|xCNn4DK2EBn@RQ1BPJ=9_RV*kjEr)kNSN>dLB-m*)W|Wk%a-0Ox7!nC8 z3O4=GD+x_Y$Uu#=^Z4xU=1-Au#zXuIXHF}b56dB1+T2ULMl+ERc4ke?$f1AGlBlV> z7tSPGkFSqTwec44X@BZq;`$P^mG(fUTE#ay%Vx~yF061-QE{TFGTPddK2E|y@j=1B z!9&jG;-ZZSN5)!XU2cz(S#H!9%`TojzjXSv`NdF!X~h+D7f|Qp5eWqWL4V|PbYK!g z35_oCtc$9~AN8GzarKEaYB-9Sr3;EHJkw^(D_&UYnLBG~@$8w?VWP!zD@ezROO|*_ z*f;~jm|jsqMax-}QG($NXwVfFOtL!50EMm~=T8O$PE{M_ld$tuJmjikbZtf{2H_HzQ76g-?pnkc&DcKLyP!;6IJ0EQ$kOtHlJeOlGqt(XE2MTTPqcf%!?+GjC?Ob# zCdF-UViKozMCn2dN=%}O=*W!}#>En4G0u}>lS=(jIvCi_0(8e~Mr<^9yYpfa8tfPt zC!{z{YV*=Ji z*i@9=@srS% zh(WTg!)*g;BF`5vVL?^@4|9)F*Ph+NT_#Erx`c5BedDSVRf6`N6`?5?Ef_zdZCun! z5J{Gndq8VN+#t}-rGSpJsA?Q_#AU|M*}L= zmJsRiImj~z>3Gkx=Zcl(qm-6!c65we9o|6E#3;5A}eBKgWr-;t~ zY+^nWg-7qx65x$u^YSIJUKTCCVF{n9tV)1OOF6tQ0X|H?cPGH-3%Hp8ue^)nX-R7BP{3bGfV-CQ@~aZycZl+J3Gh_{zB>WFQs6NY;HD_wk^s-RgSTrt)Q2f# zR39b^ct!$T5(`8965vw>JSPEux4@$$z(b<^0B;m@+Qj-ul>aW;NW>>2 z0shyh{wKf{0XO$?Ib!)h;wuUajnq20&ze3`Yu`-#%Dr4j(fzFGHUKXa_q)mJM1F-5 zv<}2|ea$B8+;#kZI<9o@+$i#KrTZ*#--q2RfmYAZqP4V&rRcwz1F-HB2zf4$UpE!w zcAHs%SIzkb#g(R<)?U+13W)_1xmy7gZs70Lel zQA{*&`U9$NE(TV#GVxTRz8?Wgeme7px{?HT`FS^Cxq6DP?)Pn{NPF6jeeuK7q}hV(HZG4BH* zXd2CUzEHv>3n@>ZWg`L>b~Urnq`uy~0hOCx68(2ioTTc%7qRM!{;Ns*vqb#g6n%~j zcs{1~6x2G7lR}_(qqj>z;5$zTBiXH|WSXf&h)EO@3-cuDBSv2{v6+JzG{(=w_PzoG z+qFjwrS^PhZSScV;`sJf#K4K|O>$2}2PYMMoB_nD{;Q(zRD6eR<_yvBHRx!XCOQi= ztnm(KZJgG!72gIM@0t5%2t+cw0LVH`Ia73#2`i>g?(5yxsd_6k2xNRQsfgNE0?o3Y z4)G|#9y@UXS--eHqK<3&K}G+@ybMf)3??i3KE)T#C?99O3kVbJM$er}a7l)u@6q%F zD68m8Z03s#n8M7^bZ?rXANd$Uk<8&Z-W3SBxx`u_v3$v`cQmI^zd>qVv={DM+{H0^ z8Jo!#G`$|C)@ECTPt~`(^*a4$ML+3icCSvT-`XXv8n3vY7 zIK%RzA;tN#{OGz)_40e6cHM(L5Pyg@=1EtQq!?v(U|$s?f^!{&#CU{Up%TRda?Gl`6hN7NzQdbQG;r?Wc=pilR@UZgSbjeGxY(*VTNXjKQQWrm=HtLd_?h#a$m}L!4N)>`{mi_&i zsy4%S$^KrH4(7MQ;Gq!P8>rdAqp4X-i%WhWtmx}p@_ViF@*yawIzN?{4`4O&91vu^ zy!n)1j^Gbr& zHrdU!D5c+&nWFekr+h#Zk%N#&ey!<86n(F1`O18<1bDK(mIE_dTU%FC5yy_TyyQ>j z$H;VqBGZu-rJs#=kwQSY|AabbttA>f7Vu!ZT>bl*)>hT|3o9pAAHiLuPh5TQ96W9Q zs1F}0<$x8LsO@NN3Ynz?a1bHRys5v2_5L@3-&sBR^qE%q;Sg-(#O|2CIo{4-T+p`` z{e+@_(b~xAli#y;db^K=VFMB_(tq=ZHF=J?5Dj}-)|>nKjZb#o-$g}f_-hc zR4g*9bD=^s?ibpWp@nI(|4kHEs&2FAsUyb80oplHjN$#1q1MYF$BKMKe#83N8^nwB z^8rvSdn@lqvq_$LO6|8Pj%L-ksRu^HeWw0fYb%Yhdp&~*z5WwPxb*<1ca;T36E_~3 z7EqxWN}A$SY_dNH5~eV9p&^sTkNv}9`5tvuM^tb6IL1Up->uX(rnoEbNJ*1q|E=J5 z(_X6gpSXJ7S3&c$s2Q2ZL`8fL=03aude#GzM(}VWSmF(>p}f?z-8>JL93uwpl0B|jiC#b=h=+=l;NVUlf@k_^SiZfTg=WA) zjh;;(AlLF67^fK({WN13C|-hEe^0?d zk*e?1e?uTZ16~{(^LIN!<~>&@NxqgOHeh-BDn`NXI0EIs+r*z>i8+PhM2bp)*VIvm z0;{VPV+p+dk~B}I=_Qz<;8scV4A%4?pv_PG-rB0KYkFD4gW#wGfj8Bx$G8h8*BM%Z zz;B%=)D)Oiqw3$w;pVCzTCsoV+hkFKBjvtFdl4Tt7}o#3+K1wni@@|ephbj&VCHhx zfTkagj38H`A2e-%G<|8hp=mYn>}-IH?=y4mW}TCDK=$7N5jDHAEwXOc?F79vpgJ1E!auLORS{e6*!ahkp;lI{R-B%P_4FZVVK@i3^3;2n>h`#1qTgR|Vq0L;*W5o5c|07f|FNn7E2JU!E&oe~17f=lvs_4u% zoTr8EjgE?Oy-jf(Rh%1T|9>ebu*0)RF_JjU+bQxYfHfGh;G_^ThCDYY1}Yp=oS%6k zOo}=Nw9z(m?r5mgFeRLli3%Y3+otnkCW|366P3M#+t~FoW0&U#?yuN_b6tJ`rX9PgHrWrGs~T8 z_aS{^6J>gD_vJqHpFR>sb{P0h*m@>ZboV6w-pX%*9iGF{e;;cmaO_tcksvp@Ez0-yh>B5))NC!q5N}4i1=Gj*XAs| z{gkQ=)QKtX8~L2_W;Hmyg^fcaaG-&-pW=w7&E~(s7K*=uqpZG`O<8A7-5*!OI7%ZtzMmK3b!21>U z5fruwtr9uZel&iLV>@>b{~1hez_lSD(T8PvMk<&OIZstwgNEVy?@2>H6z9qEE0n5b zY{d6wD#o~Mgq!6T0lw&bMTaAVf2xOq#PpSUX)x?67R9lV+S`GJaqG<*7#RGct>LY_SNed{tLXZczz9yf;C z;NYpi-qeeiLwFr+;%E8&2Y3^wEFQa&?k21u3&y0qY+_Rho})v9do$vc+WjEwm{G+k zY3$mrgYcY)?+083-upJdPC~AB*)D{e5Qt}}V@Fdemun!Dr>|SmFE2RU0{>v7g!A=U zckTWTdCsjB2Wk&=(2r$pR~k%TqlL{U9HID#a26XMFlVPZl+An>hu9sP70cK11GUP~ zIcf4EnB7gzV3Rr}uvva+9Z}W09-b>|&#vZhM^EQiKbd|m03Ky1Dq?mxbaL91=&Udg zVGT2P82;%Zb0mtX`UcEdrox3T?WQ7jmAwwX}K<(6~Mj zy;Y1m?dBf1bA;9Yp6HqCo1ZxqCi;`v4_%CO28habh?ad#ls$%P8#|h|fszqu!11No z6|}Tv5T3@tz|$RgP^K4AdkBwUMczVvrXMVf{2fyH6%zjA49}N)U^T`I*-wKZJS7lz zKFWvtb%5}Zdkz8#Fa)z-UQQV_;5F1jgRj#??`NKmHo?~y=@zzQ&Bqd!3jri}+4BKj z)Q5{XmX(X2$07cf1GM7Dd;pCi!e5ax!@~u3cz;3E$zw}6uBLZHe%x@}ndaHPVVRQm zg0@jO^BDEQV>-TUx{v$;h_w&}^YM@xM%}}!&}(lOHhSyUeYit`MqJESP$2R%*k@Yo zh!42Ejc0BW{)I|p5eg%H4ON2Qxma=T^`C2+;0c^Fxx!%*4wG*}u#8i$VfK?qZ9+F?+F}#o;W^=Xg=mK;qpGTU{`yjD;AkN=bPt%I+$^)lJyj!h)jl&)P$|KVM4>`?gYA7%&Z#z zOd7Q@=kyL`ilU3innM8<1)j89!{?Up_W^_DY z-6+)NRV;V910B$$(zkWl zxyKaWsSb=ZJ@@=)V3%_zF})kC7`YvAPchJtt`-XZ#Oh4^8ZGN0)DaEf*Yn~k^tUyB zzl84NIE0Zl-r~8BhyyX75qF0Md=96iAjq7kqz`H`nwV?aWP{)^aiF%nVetI z-m>Aq{44n(p1qbB3u85(jj(a%AzHCQDKG~U46AA3MG3#JQRW%E1Tw$7g5jY|v6~Y% zZ#+Am)x0QCB){)UlHU*c8h>w3)g!SY2sR+lfE}g7feidY3nbr1l(HRAFF3++AKN>lw;da_7EtmKBClHU?pLt^#8!xjI;c{02Q({ZNl(6 z6$^F1*pF%j11?@-91)g=Ql zl~as|`Gq%QxU!Yr^=)}fz!;b9XoisiBj@=!tS-;@g)pQ&O!O(i(b=qJMc+ykUNMeM zf*vAK_loh!#>)f;cO!|Q+@&%4&=ZnfONv}g&t&N#CD=W{dK|R&LUAJ{Ntscv1g+;% zT}ypyV;c(!Qv{jv`;{2fq*=~&i#o4zp>pI|pgK$YPlMys{)(|gr>Ed7MdpbjGkB59 z&r)QLDB|KpIx?GVvXZQzH=fR`>_kE@kPz+n`BWpATa8sgvoovZz2q#2TmQ<*J6OQT zyEa<=1i^#33RVAv<$2FWSG}nI60iOzbX8+pGt9K>O^_+5Xfq)T*m5a=TnQDIP(&#E z#5L3{A?OlxBC%=`s%EuSy}Oc1b2Ub7PkimmsCJO+W1AwS2}RnZ=-W(d48IaoXr+^> zn=fP+rI@7a)PoMv=JUkvtwN1umq_((^ItXZ?p-ky8ZZ zff$;8Q8ZSH1>$=(9*81ctWoYRq5iiqGCNw$7m9Y2b)iSQE{NU*2d9fJoYvxdSQu4^ zYY^j*9)CmGZEeH}D?6UBRlJmq8LZOQ0bgipe5nUeDxzWZiz0+?@HN`u0KJ`8!KX`+ z0-i~D2#b6s{ z)<3C6Ft;;e6Enzaoz?i33&elth}(?sHeUUcS5bW|uYNYVibVDP|C6rHpo<&d)c;rN zaT?fSn$xBp&HXr^zM<^1X}GWj?v+=?N(l|G6f%x!`0^Nn^t;jUNzg1lA{`~w>- zvAEjOwz!J$uM|Pd=Jk9Dx#~Nb2ehpsPe6of!nZ2=M>&|AAwtb&mxue|5*MfjY^cRz zRVsG2ShX?}(l!E=-4?4he{g zlx480ZPp)1qiw`CAd98+z_~FXhEE#62p@%dt78)oGENL9};U6 zs9Z5ru6PHN7GEl=V!TbWGQQx!{OIn)(~MoUQH0h?YMAwyyS|T55}AcyRQp)^b7X`W zoW|){;lN}RNscN8!dt4s!dpA>PiNgIC2U-E&<(pl434D5x2eY3L{^*69!{czWG`=* zT^Myj^Ijm4hRrTKn=|rm>QAhhcH{MdJeGA7QersTgnyD{JWLtUs@(3rq@D;V25VL_ z)bH|!0<5&YeGO|6WTdd%Aj?I7LHy&Y$)c87Xo8|7GBy}+3R~=l0l(fAEmUnFLv`QC z_eN-Tskb18`dxlM|98asiwoPu_^ zMx3X~V+X>_+kU6M(ZLhgZ zbu{LhY{Ym&qJ1KqsluiOEw=kxZ4Gc$Ge+7pe>b?q{|C(t`_ zmTy^FvbR7pM%h(M3!2dMkmnlt{nDJkkDeiJUrtBa|93Fa_oGD%ru>N3B{j>$X{u08 zQ#aNhR%8_M*%!)Dogwd$Rk&$A3mqxz&^Md>o{Q5W`)h$sOCFgP*M$N-Sq{*8d&B`G zY~9z06~HMabQ7JH1MgB9TGWeHR>QR5gmuQva^Nw_qy;a?Llt}g`RlOM=SoqH$u`Ce zPo~lyw_@2HMSmS(cpX1Aw3)gq+6cpbHRV0PutT0CmcWoWLRgvesmwzBBrMmsu$qgt zuMkM(B9H^`AkD-e2k4n?IuA)3s?jxIh`QJ=`)NJH@gvIRNUDAsXL#P}l_YsDj+CGZ zlY<-9m*d+AU09#vH02c=F z9j*CT>b0!PckFP49L@QTFR>WzN0Sh@@8n+=pF3v8uzNMj!PbK{1z6N4xu|f8s zD`1GcyV#*k@=*miW2kq}^o(=tz(TNwbxE6g0-(JxLGx>jFwinAF2f4CXL>I$2<(vk z*Mfgkx<%8!U}aH_6@Q%-m;D!`0GX`NExtEP$1*|BWLu;Z*T;SoVto~v=aH=`&N}bUP_O9zSMm~gMQrZ6;L4H!|9?y0IM8=8p1zRV z29=riq>+0cR$bQ(DZ#< z&!X-8U;O|7Pyc%SS^qBlKl%q#mi|P)xU*mfxV7Zja1>jGxM;M#r3n1KgV>F}BUQpmf4!2m)f~jo%l-*u;!m{sJ4dMLK5(V&9tVk_xs%~O zNppXLNzjg`e;+)AVw^_??Qfv8@6`F8K{y+LLVKEe#FqFK0~2TzqQQg}>PE^<#`}Hb zalrUd@z{9655n&x_ka42r`__{v0h*9;3xagrZ1hR;hVncJJ53obZBn5H;3s*Vkc-e1#a*v#{;VPy_K!ODD17ro~<>@p(5oP=DO zb;WP}dcAPTI0Z#65yIi)Mf@?Vv+e6@ICKoxXEOKH^m+~GxfP9=59N~T<=%vJY+rXA zH6P3^qyh~n5RoA)6ALj?oP5&Hsm9KFb7UR3$<9Lrb5FcL%sz~Tj<#ctIGR9FTKw^( zyi7WQi42-gNal`HL>ZmP$KXW6eh)gEk8^h-{Pnug-G1!o1jc>Em=Cpv-tR@2TFu(~ zz6A%pari=UHdSnh@}m{b8mAhZUoZZ(=?!xs3@oM_G_F92UrzC*VRceTJglQQ!pflJ)_TR5mqGimRhNLQ0F1WDyC<&a!CdosaIFE|V-Fk9 z$TNy03Gz47shjjV!RE3R|bF*Np0y$TRJ+yXDslGZ1{@*egyR z8P8OrnqrhL(Tv%OW|S6c#^TAEv23bhEG|=wNAG6Y)ivz$kH^^M#g+W-C0xcUhJY@c z(>5;BxtImrlMp3Uq6l;h_czDgJ9E$R^^v?u$8nesS;LVPlMp+v|A(WOY(JpdS_?Y@ zFMEN5?;*)v)K+6)mE3zuudB8`%d)*kpw+XGl)UqBwv(T42wSHS1bPRFkBudZkR)FV zXdyu*yTtR8i1M)Y6Bq&|%?|ZUS996xmt6feAbG(aoiyXRw6VdP_9+F<205@DQ^x|@pzqHT z>*c_u9RSgXXB6m#X-z5A0ET|K`awd7v$)N*NuIw$JJ0a*X!YnMeEdjsv^$QdZKpPQ zd+WfMU`nSvoE!~K3@c1X4UKLZ2w$Xe%^04h3>}prFLx4Vy&Qv58SDm=Dg8Q-Oy?iy zc^M~ZBZb_$joM{4f8+@l7WuLTAYj$tb=r*4jt5}gWaPYd^?4vBk14`tO-Xu z$ev-TvuI8{n8f?QXAg>gy)CksM31qn*0d4T7POm7JDGCz7idZTD75-g(gVH0ceIy# zRWGEoYTa2O)>EYc7P-f_-!d}T!>#Fi#s<58P4qQ1<{6_>^s$KFM)pGusL@C}UGu03 zdd>sF8f*CXQDIfz;kjyiWR(;7S#=m+8xAyOay!=a`U1-ikajJ`FHEAkBACS-H=Wh0 zqbQqcptIh)v%p!4`!u<_9%z^>!$=UfRlN+{9*M`vpd{gu*#JwCs&)#P*D0iT1QQ}R z0t|o0I_F+P)Hya|ViFkuCNV##*i^mF?Q6soxCJx9FfE5LHNmlAc64#O;@b>W8H?Mr z$VCjDOHz_4d$FDP44%hpQ{)6ts7_4yZ^@SZL(w8k0CDK%#hn%Btr@bv4BRq%r;#s_ zh|WPOr;fL4(Pau(V;LpmMczoh8$P|7N|~eIIs{YO-Ed<;{ggf*Zm|A7)p*3 z?7B^HRuR`^zlvYg8Ih~m7Mn94x;+aZP0#Pg78T~8PJy#dUT!D-L%gHvbFyh{I0t=~ ztLcmz@Y~T2d^A=kNO7)09VXht;H#>;`f0i=J906g!q2L~?jgl_eTH1Ug_XD}1fjqon`3f3gC$K69?S)V8P0OQnP-(#rruP z;!&M@^K^bx$D&!Y}>Q?AaTd}A#7IXSMMeHfk5evU;yq2ITn4&y=! z&qY7o*^wzxOh*_SAPN6P=ul)|tpC8@PYYhhvCwl@QNG}rG(+uIpf?l*3n|z8qY9Se z#!fel1=N8@32hiG0VimY1N!D(1p->#4WYc=9V1_2ERT+7hJtn&CU`1TXy1-n1oS2-yV4wg;|-ktjutf*+XUCU}Y+)pCk{`xj|r>J@N&Rvd9~d>FAz4@>lep z3Ga4>0!rZzp9G5exJ9tW@A7e+0gf-M>9zTekm`J!DMsKRn&JP=tj%U*3P&| zk^}U5I<@L|6O_o+C-AHKe(xq%e+DpnO6?;%U`G0a8hT=Dz${$!`UdkQjKrOR=0rWt z16yh_+^Ip&Mg<-#4Qo6I%Qne=dXu5zw2na)x%xGBgOj|0=O`scyxRTA+Mog39|Y1m zc65Z!CZ=>jqzWIU*eqbEruUQme*-n<<(OJ1&fRkLG=^cfa-v>yHpJe|WmAZ-PweSk=h%E){;&>egoWmfIEpx# zsS(B=1au^Ar!@u02!mfcF$A3Eq6QYn3-U!udl>>7CH~arW zuEqKt%ma&R*6XpluJo=|Fg~tOkdLfsl!d^)Cv-EP73=O`kH3=W6z3PRuNM-{Ru}S8 zE*0WWKxRWHPigOKd|B~x{Botqid$87)|s;F%>)r4sTThn>?~+IjWr4Taa}EN4Qi= zSaY7P$WfS|LU)&`ctRS-bp}5`T1-#WSK(dtz*5f4A>}V{7Ug(?8YIm@M%a1;aK^DV z3#hkbBn@klBq!6&eZxZX{SI^7QSRz6Bw0ZzyyZkgeA` zz9hYe)`zeIWB51Ha6l+JN1E7pr_lI}vqUr<&WhlP---^@I366Qg&>U3-yp%p?VW7c zc^9=5{V3c7smO{KaH|>VTknCSoO|VJdVX4i$DrYMg`Ihu+cD#vl8xukW&a&SG5od) zDOA(0EVr>1;+eA;anBJ->GV2-QBasKJ@bqaFrmU*@SYcbBbN| zzXvv}`t6{w)sw3_Ps!CU6Aoj9UDJyZ?Sv?*Lu+)n30UpGj;L+~%7?Iohi6{y0u=lv zXzClVEzJ?(raTkMiRFQGR9i<@?%M(%h{sIXfT81x!2>QR@CgmePh(u<@f}R16=Nk1 z5C2QYvvF0()rO|NhIILPs&hO-flN7WJ;$s~Ng}7c1O>=f`){UUS;sTc5MqMZ=;%=B#;&o9v%YxgiAF+ewxwqQnaEvzg({o! z`Rtbcep*8_#y~!w$kp_exZ=D4L+NCenhg1jr4-_COgPA(J*CDN$fuU%^BLr0lC3+B z%hi{noa(#<@~Q1c@)^na?WXA^i?7iLpB zKb99v8RBl(pBLCNj)np`a5V_c>$F8rKZNBqO>B7{8@0=Io!mV&4YFDG2bfAp6{S4q3Zbx64>Aw3Oo|< zwE0u47dy9jW?`nq>frekYa_I@UH%v4sY)_EKKO;ae0N*}2jCg|vJQ9Ak5*glz)L2y z9U2p@PwP{j18kM*m!`eVt_+*^Da}HLg!4rs(q8K5>4Xu{*VvKPGK0h00q~@4>XV>F z(RZ=oIBOs5jz(nCKPQg<(C`bj|2ugKXZrR4$o3y$K5jH}w)%d+Qq37Wr<_b`%I4|> zKZ&Pe`J&1eY+qu~*U>e7SdLu%1`rv8=K>FlWrE#1H5|mg1w8K=Iq(ILbi%68c75U55-1Y zvkmtMxTlh-!7u677g&7?CcBGZGW`_-!9;m5d3oe@#CZ_FY9(CzA9#;=!C*IVBzEn# ztHEV&VvHuaDe~~GFLl&{Zp@3`r05oB2J}{v>DFu{qxz?WCCClT!x?joHb+S+{%sU9P;fWRc1A%s18%pi@;OOC+7|g9 zK;ICq8tD_UXsZVA*ce^s3#@}Th8cFM*R46oV-i~ojfk%C-Iam9T!Ea(bcmj|wSwtn z$IPk3<|AVL7S?kBnK0TTv=Qu|1!Y40*8$UlORm@Y=YG2!jeyIRpVZ!1Z3IsGP}Bvz zMQP{{3*@?h4H%_VocmCdJ5Ve~4`<<#+22}eM}gcsLjGwO+N zu#(9lR1I%Y=)Er13WaSe7QwQ@*1w@JeIg^sc_9?T1_UB*MIQrILi}_mS5!nzdI2D5 zc#I70A0zC!=ztgn^kczcL(p(90yXT<57dFRr!fdz3c+B$01@Qr*8Nq))=_a*MuAEC z4hA0ZEiRFhKQlIMBam}9-dh6(lCxV&0K;0$tfyxhF3^*6a0y%gf?xVzKKBkv5fh=Q z?^1=J^*wf}k&2Q1|0}X1E`*8*w-7sO^mtA&5p3WoU?T50qM~=`;L|-4dmn@w|>OGOkXgF^CR`pIy zhFB7&Rc`nTxJR;DRquWdqCU8OBYkvb)IFv!_lVIua7qrm2VQi-c-kM?h}bklD4ISx zL)FKp0YgSaV;YUXFG#@!Mv0CvEv$djaVb|nEUhZRag^cxk)2@(VjmqhSf4`hcs=T> zw5SWUE8)~f7p)sX6Cd-d-v+`M$4<55SXM1~#zy#H_tEGhj_2&8P@I;lQ}0-Yg^9DR zSl7vZ`hOQR6Q?LaJVz{ygC=nQ*z zvRwfq^xfJRRj>&m1)F*3}#}>}JdUxY|)iatE*@F%V45>$JPTVixH4 zvO2o8BPtZYpBLzA2EJ(#K2e6b54E=52?y?b72S>81Zv%@s2SF>W3yvNM5RI17>AOn zJ6XvusD}elGOtq|8d3Fkn6Px~v&fEL2L_j(04TBz<0NJ+_DDXsi1-N+_YTa*!N*7w zgOH9wg!e+FwBU$-F@Mb>dsF9m|aT4!6rM|&q)Pu zimHuZvRaGXtdu&o#y%H_pq3yFx`(Nyb35rC?`O4*$RoRIh5IBUC1Z^mDg?*(NuEGv zd(O8;&Lhqz=U#sY*|>EMyX2~LVQVBf3N`yj>Mkt6nd$^wt|l~!eihbguFH<@S3nHi zkr`1Czq?n_T0C2pXTFVv>XBLKKhy4?BgbL`dkH_ff841 z%opqs8(3$2KljSQTMe*gb!=@^mA_!?U%{(x)sHnC(2qfzKO;4RKbU_z{6QIZuv}sX z%Vj4~x&zz!Axk&|R@AZCccz!8)Al25)gkK`y^F5l2OLt@k13YsIGJo=GTFgof}j>L z9Fxg5lF8^a1o++1qJj<1&^FFghE+_6L z=dQht31l0)oWfM;HA-RoCmP#Ewl$$3wQ7{ZC*v3%Ie6MOok+HcNLK?T<0#gph4aAX zqog9o@UkB;QUyVQt0gcuR%#yQR>P?2`y>Vk1gLE<;OVeiRLhe!&u}hP^ggSm~OHc_6e((~n2`vneEm zFf>(1bFwcJ9g6&bM)`Utw*aOpcpu{C$k)(0OjDVc@iQ&JJ9ki#_M;RLD@3Lr0;$d~ zz*20etpuq|%tKQzqZXFqtq;h>N{k_z%{UfN@hUJR3r5iJ_N7Y zqBsX@L{jzZtX>M%uL@(_n1}~%Sx~zcZRTOcLen?ngzM-rLut_>Fa}U2_Ay~-G#Of( z{1-$1j9YMbI*tNi4?fep9RJt_^|7$SLD5%qbk9^RyCS!+LG+B`+nO9vP12iN?U92Z zAB-8Jd%(fK0o<*{x3ytY@4-H5fNe?{<=EA_kr?P1rs_ZATxfwY0h@1owBRk+&D-Jq z5yuMP%4 z2f38s^+(wOA561G!PHZ4VQv7ihjCNKql)7bW#||ewwGYa&Au}HVq<7MsT3BWaJW{k zra$Gv$cor-vm3`Sa2OY}=lukP%Rmf+5CHPV$-Re(4!8y123CWe+>rh6;|Av^uqsGU zHsKx%p~2c|V;pWz$HTX{ZF4@4fN+{#VO7GjzHMq1mIJ9Eu2YN7qv`9o_hS?8@(e*a zHhg^aXQA}rrzzOEFgoh_HM)Qm(k+SwZVA0&>!8je7|Lv#_)+V|Z5hn{tr!XvigTA{ z+z3-`U~9>v5e?MI)sKNTZl?FK)b%h^Kc)1gFw=3gJ}UcLAYo%P?F)aRIPaf~Y}wz0 zX<-3vU|ok>m9^Uo%TZ#LRQ7K`9o5+)R}Ud<%ra@El&!a+T{~+7;jg|lW|=jt4sw%t zE-Z6tc7#?JqU%6GgSf$hq-s2LEBh})CYx-sbxMOV3lViQR%(#%Jre1F0yWY1ikPc^ zvS8AT9@9$!iC3E#^*_u05@Hb>IxwfT#D&M*Y% z?-g-k2fU+y^osJ14zhXqemeLj_S5M#xhhsMsxM}ByrAJI2}HjWcG>F5XFOx8*0gu4 zm&WnzFe!l^@aRm(V-UM;Ua<21SABO)VKJ2=c4KMUY0S&uk2JDl?BDLO~>?q2}w8hV2KW_0;Ea1?| z^e6x+NANM62Orn78S{voNCgOqMh;_x6B`gYY>@*!pa&XW@$27)CTK$-@CqO*j7Ede zM8XKw`6;cjbV}<>RQf~?+!C$yGpqEQ9H2L6w^bTNdj8Qd5zU2t&Akw8HMEAeMbHV|CORRQnAePSp!{IUR>cV&sQ#U4Y9%alT3!z6~p_4NOyE5RywP!R zP~>LlRC7Kpq27l~M8>aH;IQouOrRWZC?}f9IPhB7P4pHp7BhgJWvX+-qEz)m!iG2bha^N6s2id3v61}E0f6_u>`GU9l~<; zFs#I3UL0LSzX}mY3paPHW9fL8EggU~tn+{utIp?$Rp$}ekymI6KVN<(9!v@`7+j{DPY068%}^?v#{y&*z!V6>^#q}B9fy3Zx;2m>dZ2{Dcx51)m7dQ9w7?e=7yEv6hV0F8oYyp{mq0^&Xd@fk!9 z&3sq5P#05M&A1EU%Y(#Je*99d-i8kG@MR-X>dM2PKUtR!) z0_RD&n%+*QvO~)B#?u1*dYV9Z24h~mcqy8&7wEUK&;{Gyn-|XpK0ELt)Z<|bgN_Fj zvybuFnvweWLaeOe_>~&$+ClZzC8>@*e1n|AQmqrT3-ZRotxvUCB2SZ>Ktl*&L9{=B zuJd`Ux#xQx-vu9x#fh{xXJ>A)?R-UCoLE1z6b&4!eek#<~!muG*5UbqXsEnCG3CT3l~aapcxF)`l)k%sh%+C5+A;9L;78 zhAh0JSi>?3jOW01IGC+yjK!~QYNMk|^uo8~Jqx_?zz2R{3-+t>c|>ktc!2 z`~j;VXobxvlW}GOIIGt%=?oqNoT$g}Wu0USMF;R5c-Q^OUW?`x1iM~?MQdt?EgzA< z99SDf0|-c_V!sRse(w5kN%l)AVl4^^$%UwHf=4KQxciseiCYl#+=uOwy3+D+%H zE-;7T*(Mv^el-_oDYf9# zqjKO`qA6H}oO-W{h2)mz+GP9(2Zp-fB)d3#FIV?~mN#3Ur)p{tk2ZPk30oh-9epCV zgR-a}*H1(WsU3X}J@#Xi;mv$|l-^tLuNbiY?TV#A%i0eWwA13LJYp~N;QC%I>wuEA z9UJ-H>u>_$sH%U(HyY22EM&MPwlY_po`ohU%o+nIb7)ci8tL6w7UsQMs?(Er`cUK& zRy&W}2F?ivbG;>a2k#GXS6h>mPI%k|76!O6xF;$w&#E|}`3_VWF1@0iw%=(P9WsEKI30WMr=z>@Ml`3T&!r6r+G-g9%N~eelOR+SnY+=ht z{qG#uI?mBxy8=&IVTB(L?lH7BbN8oE%0~&A5H=!`td>X@Kx)LZ+x+0~Lg2vM(>Q1;*cPs^wRT%3SmSzN5*BaTx=E?*JBzzH8AekmD(fw_|~2zl!hyeS~T* z?v6h}!4X2IS%D|saQeY_s*86E7TGYE?(p7^VPiB1(YNTE^0Ml(w(7@>!EONXSX_ZV zs)zm;L|%D%aZ2>b1xzLN#ofcBXs(67R2pa3OEclRqfZCMjZgZ~$Y>^PKNUqte`*%j z&ZZX~KjJM3^Z+`0(gUwZet1@mm^$o1Ay`B&re5TC4C^Ka;^$=7@bn?Db;gW7VD|F> zfZ4>~z)Hv^5p`q`qrnB&i$69n&)-5Sf>dN83dg9O#oiyg1A(UHR8uFmUg6w@_xJn4 z(78<(`MpuC@_S=jbLu|voZQjELmU>#2JAX8`88Giem49PI0x5{4y+`=- z>(rKmwKV{$(Q(mbD7BiVu)ZH~DCQVe^Ee4;n@GSA)r7}AT{!be%Pr^#cAN1aZWx%i zc~7a9`p6C7ID5oy-&gnxqo_ZKe1h=%5B$N4?(q^0{Ur9&@O}%|-M3vm?=#Sr@iSCrgvT(U}*Jrjh85YpS|}mxTSWgcb^EcH`srT zEuK@O3F+V_T<};a&P5=hr+$v#xa02he4Ut?ut)6DH&89|l+{E!{dvrQTj2=gyM3%H z@XGZ#NmM=`YYkUoCpL)Ui;HnCdm;)!MtHr)<#5lb`Rvv@gk4hqhKrGU1Ij|oaFVGb zsTF74qP{ritm?bVJ1bdr*kJ1n0b!F&!!O>tYrgpkd#Z2>kGXJOpPq+9@P~6K&LfK> zM1ql5r)CxZ1$(3yJ72n$cINn8SCvL*;kT&#~W7Z7t6KC!)shCp#y;xJdN_0XHXry za8{a%YcBobsp}{V8Uq;Vjejp-{PnO{dFN>i<9vJt98JrCO@PzOX0h?cQ!Y-S@1R}w z*8>!`?wa0*Xn?Gl-G{B40Fa~<4j@XP69mKMeO%)E5EzC&hpi8>8sszRr7eEcCd79! zs72rjTNkqXq_+E8=-wq7M)|RHZ;#zyL-&=j`zz=kJwz*EYj3)N8MB-2bdw@(I^u@d z?yHM`T`lb4a0YX_?H)+BIYJ_iI9mM|`~y}Bo|I03e?F(i=!naq<26mqeBAoOL*rH& z7S@|HH&7_zlENL)Chr?)#tU`oznw$(5PZ>Z({@3x`3hx_v4n6Di-Q)4E7L)LPh3o0{xxT}NPfjL#8%(?|dD{#cPA~ zNhV?fVj}^+({FxLFZfEI^iI=7C`YC8kLvl2dcH}S`ETm^U+MYpu))6S&ZDDB7J9ws zSKVpOU09-eQ>*T5#D5FV_olpQX-XOx^4)nD%KJ8O`$PN~%su(vXUfB5@A<1pq6|xO z{#O<`e|H4$ZXy?YfY7T)0?)ksxXgRjBcv-5Vlu?=aF+*SL5D9K%Ql3nDyy@VUeCi_q0 zLP3ipTk7@v-S_10&g?+ceGib~{pti+8z#qJ;DUESfWdG^RRAVQt4KQrZ6;=}(r^Ay zF9_+AHjrzsBv74x^QU@2y*}x4W73Ds>+GIvy}qvvxw-V??bDoJZ};>#k^dF-)N@|* zx-?I>RV2R?>xg4Agwas-tpvAF^&9q zxD>Vj!a*UEf~d*jJx+yeAfgv;0fe}Y)Dz0dRa4)@v@b8y#9MX_BXB(mTl~c}uoeH- zWI|iMO@;v3iQ8jHF--EaZhePaU+>2GEBvt_o|c;gUSS4bkMm_jaV2i>iVRGi5LMf# z3zY=e&N_pICjPA2mb3!>bJh2$oq?0^Ajanf`cBpNnTr8Z0NANvm$+&h@IlL%O#sa< z*ZUT#S@kJYhTx=q{||fb0v}a%y$w&20RjY0P*hZ`u?B?#H8`|IgEa#aG7}~Q6p0Ed zEgE~FghB$Gn*=NmU zCKmy}_kI80_v6hkv)5XC@3q(3&)#RBbN1P1pMZAW7i< z&0$ML#wzFVnxj2$jnSc@tvts4-v)bL1)7^VQ3!Kx5aUUrZc?rXyO~x0+^Tk_JtPLx`#1R6+9r&Xxo01S$nKZvSM{A{T@&?eG<~%4??J)NJde_lk3H z`M8gTWA~%=DsLQ0UxEIL%(STL1vuyiJVGSuMO=|1R{5r2*(AQ1;#8cO8F_VrTsQ#d zz&4Jeh)M_M5cE=PevU2AwR~~dzb}m$4>j2OVbTCP2Z|GNzs9PA|14;;6@}hZFpHwXYH%;gVsEVo_ z_NM3LANz&Lf#aD+v?{L>-|Q3vu*QlQhLeySY{_WW1&1{rOmxQ(#l|&<*2EN{A|qM7 zO=;arjVwv%j+H1Ihq);i%@}MhQYMi=^^{EP2cRRjj{Ub z%>C*SWp(e?tWjm|#=hCz+>O^|;|oI9=X7#tAMLxEM{9O(r+&%8yKx(63>9~Bm?%Ts zbi{%Dv2_xzl*S>BFomh)&57TyPAcDk`%axzHiD~Hrjs3&Z`~d)uYuW+{1fcnPOI+vG0r+Ti}><(Hb4Em2@h-$=3q*6Ic~yn>4W!q z`ZZ(O$Sn*c{$<2l^QyT`zcsIsL=qlG0t%gpLW`nvce-+$T#_=@NVy9s$4wD7+84l%*&EB~{t>ig%vhxzaS7^82i`ZV5&%jxKL>axyoU^CKNxrQB8 z==5huX>mso08V^&+6cjA16h~IX`;e}6kxp!ZkeVwCW8zvdz90S+j4d}F}-FE$m zBdRKWV9XXHza#3TBkHJ>r!C}jiDc{`r?0`*V3BD9w>T2lXzr)clf|DEXR>e_S!B@9N=WBsEvP0v?b7heh(mB+5`qUOBX}p*Ncv!rL6?<~KH@5< z2DRs@3xDhy#cJB~{032#*4%#rRQ{KdfchqTx;YY8V`@^a*N?v9e+bu+!TzQ7d6WYa zNRmNv4N?LEhtIbz;>wECHK_7AG=t}3*hhUdCI0cwNw6W zDkWIH;J+e}KY+ipC!W?gwMPG2;rRo2`~RZiL-DuutVhe(w0i$+m8R+k1Uj!c)vF7r zttX&BdbK~J-Skm$NKQczl5?=i30wllS4ep+`9~#D6G4dP(Tk{LI!pdhlc|XyMDs&v zhW3Ym|Lxgp(OCI?~+1{QLGpG`vuev#r4f-g}#!VoVmh8JkxH*rw$ zZ?VutLW_k?7dp8Enk4ZFKaj?Xp6P#x2K)}xBToDX_*IWlo`2OH&=QGX`~zvR=;i(o z(O*k_FH|~J>VKiqSyKNCmF7zQFH~AA^}kT*BB}p{N*7E0FI1XQS{bQy67aAQV^{>X}5B$5( zXsXnIk<|Y}qm!imW2OEV8l5KfufITPuGBj?Kh`)K-(1JUh|HH_LktJ@e8u{3?o<-VqAzU8|fxwFKPcQO|v304H^n=n0}I&kPW&EE#f zNAA^_x>k>acV3-+Emw)UeR0l#Tlg3wcZ=vw9u*mp*)M|qrb))vMh^k5~>Iy}`d z+Xpr|6L-u^U+#Ov70F;koC=dvIN6a`N+m~L9f^v|RpBBPmZ-2=ihkrH|9kM5^Vjgg zsjtE`>#3t}`ftFaiGbsRM{;2||8Fqy6o}4D*1P%n%ABNAPA*K1R38#YHJCgsBtK*< zXFTPPS8;eOjr2Yt>5%arU8CPD>70^|^dHBpH>MPAtO;aHlcv=BcOtSlEsD=?@%`y) zAe#kb4Y-5zkIQ{?2B?jg6~nnR#c;|@%9}G_1du@pWDo)wgjlw!9>Ac`D}sd*AJ)GQ zmLLY|@9(aJq(FNqJR0zDwKX2QRh+_Ovts81aXhRMJeI3C1COO4=>a@mk#qx(zd~w* zM;;=J;XUx06_O4a(|;+|{$B;tnQ26ve=H(YenVEd7?k*b9VKiqB&q*}O2mOw|U814~JeZ^n$Qr8+m_1n=;6n5= zM$dc$ewWz2Pf(b1BW=)0&@rs%_4uW;;+b)bLIqYL&GjH8S30DSYP|Vccs0V?9}68z za4QFr3&2rUXEA{#o8azEK#+-|v!;zjFl#b`pzC&{Vldf7+`*zvaQ8vU^&pg7Sx|D# zhLWqLV&2vj!(PfQ6$_MVo`gh8@i}GHrL*yy4+Q7 zV|$*^HY|otEDNr;yAOhKVPiA*q3|B#R6S;p)_+tzx=b~?OeMNZi8dgm9(|@7eWnt9 zri5Oj5d01$p|^|-w-lJK@$`7OZ%BW68?6cR;U&Y3Rz(MU%wqJIMd&fb=rOr=@2p&H zz=Mm?T^6Cc6r;N!&Xqg!?NCUEs`3MvR;$8UQE*wKDp_~9elUsgkX-4IR0Zb!GYl%3 zPvSyYE&)aVz#>gmG>c$i6Ij^2B?vMXBbc@b!K`8ghNmsPBc)#KyE35Sx(_O@2chE1 zf{JT4R9sS#$Nyhf1O>#+h=UWO(6C1Ls77@W1B?-*Lpl_P_WH{!t*UFxkEMBajBy}%271$dl{0#vHPN54>W!iyz)lh)(1F$PW%S}2EM5-n#UbPOIryvE zum1$>^iQAf-2s2s!QW-@vV{IsC@-s2xLt*NBhb;&`M*G4hf6Mc8#^N!gQhroJ^fS; z0!c?3?>h4D%-Qhl3IBcs|9%Spei_6Q@AwOzkqS@9f+yr3g6GpOog1F*`zv^2LBGQD z8~D2x{(ct3Q+ZjX!tE;D8+kr>Hoe%|yN>WYeKtIM0MD!7-(dK6OAybfAf8bQPsoBN zczz9kzkt7=2Juv0R;h5i3in2x51wx5Kpth6SCk5`G?@y@Iq^k+sCtge+AF|g6DSl`#JpmB#5W-vPy;9 zRk+uDK6u{M#=DOC=gG6-*&TRZ3I7Jdzr-M(oq~9FQg}iZJR$!OJYW0Ax#8Kqzk+9- z;JFR{u7STF2k}&1R;h5i3ioz8A3VFZ@vb90Pn-?UZou;j_=n5gX*UP)>>R`s7k4-x zK^8oDvG)VcM;Xtb8=md^D|lk}7InODg}*r2PWvc`r}DB&h1*rQxAXbn`QdY|z3T|i zrnBMM6?k3_{|3Onn}T@aH7+?H;ffP@LKZwB{}4R8wDGw8bTVdtZ^{_^@x@T?U)H^bvq@OWtu zPvvKo3b(6pFD{MF{d(#0aL2;$$HM$;XoF{~>(4Gg^fLH&J^cGc5YetdM7t_PAq%3A zLlHgK>(2-O76xVL{J}Z+D|prjo}1urIsE+~h^O+hN`>21xVP*1;JNyl*4}k=ydOUs zo}Gc`rSK2;^V5DF#Isuv&u$7&$bu*2AA;v)Z9H!OcyHfd!Sh?e^DFqf68 zQsH(L?(KFycs}&>x#D^3Y*SK|H$$@x-JG#!twCC*&W3XZc@Sd)z*r z?fWZuVv`VcKKc^=u7JPq2k}&1R;h5i3iozDA3O)N@vfu(`Q6#@Gy~7x@GlfG>b-(SIVkKnlx{w{~V?*;KxURJ4ay9)QloDZH`o^0)1 zM|d7R8=g_X^J4gSE&Q_t@x(q}az^T*@PsUQLjECmUf;&!_WNi1{tBLWBUbg#D)?Il zfBzfAQ+ZjX!tE;Di-G;z&qw-S&K1uiXTviRcwPkmehmLOXKD1$oS%}&plYV1i|i!EfaU-Ov8qnPzWsw*8U3{y5^pjSCZq3QOm@`5keUpq40p;dLc z*rMN_+Z}kTu9w3Rnt+$aLoq?E+LRwalX(N!soG0kVRJ>e&6R!{0UfAVg z3_cSwW(V4<2JLkSHEHlnIK?JI23Iq5&y*@3c<=t{>Pi7n-zTvbl6{mNlF%#{%Ja##)XqD5QPpY}U4-LBO(__j4&Gyz-c zwzXQA(Og#Cx|S+$c-@#UxE?itE~}*S8d$OxQr^9Xq`Jg7P`jYMqy^%OQASw#tp5_? zzY-wg3r%CbfyHmpo(G|MT-p;ET6vgQQ_nbq(Jk1&-)DQQKux}ccVENeUX+T@^o=DkIdhVv=!`&{eLtC0GA(LuGo=%_Z~?b{wI9bv)tZH-{NRs!wQ3hma| zvV8+B5r%m{Us@^97Hr?snVvCh3b%e^o&6lIEj~D0@t_ivb{G#XlZ}dY9VbCrtg{1 zq}so!rTsbm5~~(#WNI~>D~QFivgugVf@bW@ri?`}Ar8U42?#Qi5KJ43VAf;=ZC88M z;2Ba47oTB2I|N+qRm0U@HC*jgGkY?EmepR*hOX$j5#_bEXv}4_DU(wgoKP@U<6*}; zJkhDf%SIs+0fGL2wOrm=^-@7D=<>So3)FB_J&ca2Mlhig!M!C2G8ZG5wg|zjVg#+$ zE7fqJPz~2h)o{I14c9BxaJ^Cu*DKXpSscY0LV~ zrnCV*=YR@l#9A!tG!}IJ1tvT_Rv)`YJiYzKd>~`J zr$+)T;Tunyy8zpc2A7v*VT#U$g;@9!>;QaVt^d7oSgjO?NvH%oFHFEHE-a`@=VGm~ zNFR&z$w;4!^yx^SF2%@V%;4fnWARm9DUabG;*;mKhBqnT2F%nOb6OLsxo8SzD!If9 zW=deD1oL5w@qBVI=pxWXpv9oYpt+#AK{wd3X64R&C(MBXo9qLyfcB~vT&*1lvEST! zJsOq`reoRQeKxFQ%tA26CAG{<##5J75jHqHJ<|rhoO}un+?%yCSo-A}OYRuB*-7N~ zgUd=Fw;LSSm~v4Y*MyN<5AHGnPIFJ?xWa|E_5gUY67$+NeUsRlxXKQWA7V)rD2db7 z_wJxn1&KgruA_u~(G{H2mQmsYHG(?p9ZClw5!$&gP-=iQdl4)BSf&*+KD9Q$RSfx2 z7kpE7_o@1}23>P!wRS!L{B?7~fp0lLrQuMGGpI(``Zc&W22R~eSEdpFxncN6hTu4nk7+KToLvl7YY1z#p=K|06;CRejF`|LgvI zcKlDF8e!|>fWH&?Pa^(PiT|81{LLZwlNbEWLHxl9{@?_EaDqQL!5`c?;Qw-~F4TfQ z9p6vnDo~Qbe>Hpvae{h07IKdyB z;1BK`@V~ZI7iz(uj@J>n3Y4Vq-$tnllEQxtrR}sw{6D6|1$GMmw1QUfFd ze~*DbWCMSGKFt{aRejF`|LgvAcKlDE8e!}2fPX6Rznl2~j`%+uhJWV}{K*UcSn4MD zgA@G03I5;&e{h07xO2e&z{){uPwA(;o5vh!Pj%Dg580 zbP$rl|L>FHah`*}udEkFt&e`#AL^Z-z_yK=A@V}Gz z|AzSgDGdMU5d6st{#Z&U_=6Mt!3qB01b=XXKe%(i|K(O)s0DvIUQ6UEP?ExbGo>m> z3jbAQhcc_OMckjUkif919K6gAD;C?nhc31<% zgfswoX#lJRlm-AN4FFCW0Gu=cIB5WIEe-H{RI=R(h?iRTAvJ#pujuz4B3FTe6#g42 zRY6ktFQ>Gf=7|4$l(=9~;r|MygOC*dPf}`tWZ*yFz#p=Ke|8XmRo(Nz|J6U71%FiI zD5?>*o)Pem1pK!X{waiiW*GcELf|Ja@MGzqzz&j>vD8rT2PgQ06a2vm{@?_E zaOZ&k%dNUl3;uL`7m=$#NecfBl&T;p{7Wfqr#<5TE+sCARQSI{=^!M9{}YrNAQ|}2 zGw_FO;6EdXzpC$f;Q#9H&W`_KR3mJ?B=ENa|8d0sSH%C1Vfbqy_>&j>u{2Te2PgQ0 z6a2vm{@?_EaOZ&kwXM2P3;uL`Cy}c_Nechg;){l)4 z)#gE!_HSIqw|SC;sCJ%Csl68h)BQzwzJyO&aY9s^_g93$$!mCRY~EnJ$b`3pxJ`oA zr+_bkgHVzz=jbGG!t*n=dBgYbmJsTp=H}c*&?|1|fyV)rty+cqBN`7Y;LE6bdHTYq zK8^uR#?u#1kKNnaZBbdDifvXso$TcbI=?9*T<<49f+9rJd6|8+oo2aG7 zXcK-vs!xF-6;NtvlXG*CEdu{s^v^~AT=dUH|6KIXrTlY+_?H)Ukul&a`v5k{X?&A0 zbfUWWh*m!;7f-}fa>?Ooqbo(l0UuY&BE|tOSIS~?K+ly@LJnYJcLs9R1{_H|ryZ&H3gz^V#RoeH5=Y1#_kg`lSOLvp|3%S3LdzswJda!-JVa!-+airhcR z{gWIQcc#2gZUwm&r#ax2NLB=;4$ugHCiz_9-<;@Y);+^~N`$d!{TC%1{*CUP|h4Er^RYuA2*VZR}0pYuS-TtLb)3Rzkqxo5~dL+*8Q zuao2Z3n@#%FN z<9f1`kH}S!t01?P+*We?5E%CNA+A09;p?H0eF4v<$Xr0mGCVBJL+)8}&ystK+*{820xgu08wV>p_uy0iOdRa{(#K@Uk>7x#!6}Pws7UZy4qlfX{`YTtLb)A7$x}lKTg_e~|k(xqp-6 z;{TM-$gL%}mfSbwz9DxIf#J_V#I^ND`yhOMJF+iuiG5O*@fb^cjNA+4ULf}lxp&Ad zBe#s)I&$mC?I5><+#v*p{X>Xr$Nm!I1&YA>7V1o=_H=TS$xS9VmfTo!N#v5qC6G%X z7e_9RTr9a*aGk+)QRDk47vo$^%_5gY?mlw&kxM6+PVQE6x01Vo+zsTeCU-SC4M9&z z8UiiwJ^;@DUF@EoIG=Q}>zZM2E_2PL&NOn<$lXisUUFl|jUo3-a=#?^Q*u8g_akyY zBG(gvvd19QUT4D|cBm73k5K0k>imJ+AIRN9?jCY!fQK9yt412gO z6FeWL&coFC9l76;yPMqIiU8$j-Ia+j0qia^=xil|U~5r(~ppuIm)=TFr6 z4Y}WtyOZ3Vq9OYfwC8ks1SRX+V#s?-nU}T+0>a$?m==7 zlFJ~MK`w<{3b|j9`vtk{$z4zGGIE!Z>w-Yp>w>7DJz6FPU=|b!L&v zB$r8U0=Ws~Mv)su?&suwPVPE#*O9xF+@<6?BT)7@l7!fcq`k;cdpXp}q0R&39w2uI zxjV=ulS?M|Gjcy8*NC%3dc#h1iRry@*hI+0@CV&i&->CpVtlcycy! zHgZGB4J8*(E}mR(a=po!5h#0RM77wvl&#mYo`^YTQfDT)DdeV*yPe$a6F&acV+n%r&VZX-8>+z4_v zlDm=IkIDU*+(qOrA{U83*^5L}(4O|erJ1e!=O3x_N9z2F+^@)uBR7tmm7JB_5OPDv zT|@2~a=pm)A{T)`*^59_i@hb676Q=V`cVH{SKy&fP%OT~uJ5&G*z@+=F@a*$Pv9f# z<9wKr@WfiZsm*rFmv;S*dUsRg>>KeZjER`5aR1VjJse+S9tqy++l9g8k$Su3bc$#A z`D9<3^1!s5-%fkLVfT7XD9WCu zYw~t`dGelV*$+(B$C>qBcK!KAOpc7becWwJX-#|SrhB&MTy@hO)j54`O52ljad|#J zGD2H+&r|itsz=^^*Tg$v>p|GU_g?M?@u*B5WysxxQ-dnhsz>PEw1t;Kxjg?9sM3Jl zo8K1&+V!M=h1kw;dh%Bx$1-Noo0ghEw3ptv8YKHFs}9WXG+T9hv{fG)<1UYIH%C9x z+2JmUt*g>MWy$x^Crh()in5bz*(NTe<(FuWK7~?76g_zr?G{$XUo|`;CntATb;-U? z+L8@+-!AhA&-|<6kT^>F;FGI<45pu{{#KJUucibp`)XsXzC)dxOGaoPEL7R7&Equ#fP)Rlta3Z@DGk5@~ z6*9vk=B5pgoO|Q&sJWK~b0j4IyrBSZ7{D9e5*>%=ctrO{^q`jLSVZ?mbRR_bC92wz zLtHwK#6sikjC%ipFwYKF%){i#a$CXPGxe{P24)ZeaFZ%5u~b`Nd-L=@!o{%qf}YfK}H%m?GUXiMtt z`Ny*-+TCX&wfV0hlil0n3nV+eomPR^eczf#Y9E*nj`Z|C*ssxrw$?uA>(AR|%DvT; zx0_9v;u%!ytBvyQ(|mQE(ONytBlPh-qetkIdd7^>2laF`FL$_4nYD$Siwa!hI-1MV z5>ILi9f-4ejGB3WHg^*bd)2+29;1RDqkc>PkHvjaw8#~)I+Y$eAWWmU_?kjcNZU$+o*Q<~+wL{ocpyRq> zLXnfe$mfdmUktZ`@25HRO74)XA91)FaRsv~r;Dwqo2{^G873F;k^pvJZj5$a;f(M( zBTCafz01oL2cBKsSc@}jd$nKpe~giUuuIo!2f@ck(KO1soOhb$K%MWXMHqVX#=`;!eV!?+kmhA3pf zuQW=1$cc7o6A6(>z^^pY-(Bn#UhZgKWpDP`n@jx-Xs7V`Nk3xvcfCQH(}YeF>J|Em z&=o?z5&B(c;Dx_+L>YhYMjP~L*_V61?92b4eBbak`L5@!_LD5eY{ToETujn@m-6#5+ zM1Q{M-zWMbME`ox?=5-_LU)P&I?iNiC(?XD$)N;^xqQwJ4Ju6=*NowF`>Iee}(7=z7zbs z=%$aiV`r=w{LXRP^5zeXr>MN%S8O{W6>&dHIlik*(+=TVXGpK6qY= zz$qjGNxT@$?j1P4@Z4gYV@e~Ds4k`Fzud?Z*G0zZN1e2g&Fo)@XuNOd^c0Q7sluu2 zig^Bhr;`4rh^L6(0YsW2o+tQWL#O_@BAz0?l8H1$JWu?|NK?dkX^-1ZFQXCNACwgr+(LKaOoYm^bX=b zK>P=YUxxT)h{sMng8j>QOB3?S6Qi^zr_)rUyBA%kThNOrm zbpc#h09PIbeH8SspnnDZ2k1XQUj=;?^xvTW23-QW1oSh|&p@$-jsyGbq+;V42R5Zi z#dbOl?75SQEp;5&H6|6?>Nv3XPU=C>gP_MjkE1iEp25|U;|wdw>m9hKh^OcdLsG<3 zbdMn^;wgH-kQDJ0{lSnF@f7jNAxcriQ}l=-DdI`ZhtYf(_kwysp8|af^m)+dLH`N* zPtdnP-v)gj^nK7zK|ck>jx7%C=#q-vR~*=xB^7(hIIzV^D)yCeVC$6By`XzR4}cy3 zJqCJ=l{{@Lx~-WNJ#8x-r&`o$IHriFXuKgQ;wj?wC#s-`r|5n|Qp8g<)sPhN6!9@F zaw_5}nqx?ccv9!X_?4x82XqhUe$f4(-+_LIx}HKcPq95m8}2CLDZ1T| z6!8>IG$chlMNE);R=u4n)g1!m*F6g_UAAx=ZioGiw*xVu& z`%pNrNkuAl({NzVja2NY;lREdsk=b28${|p(0!msK#!oRC(wOwJA=A{(Z{Ldl=sST zOc77fI73pzQ*@UhDdH*ml_4qODf+D;DdH*OT{ucn#8brQy^s{~q~^hR9-PoYbTSqvs!9*&yk8og< ziPW8-*!m#V59$X!40;%qZDM6{tlrJWg`kha@p_lqvdo6t>|1X7;2Kk;mcJV(c${-F zH-ssjSvb4fJUy;QQrb$o&;Qgx;_a|^!Ok%dLGGf!fB#kwt+BZz~rm9cnvWo9E| zv5M1mIeu2`{@{pvHRT#z?drn{7yTY#QX9^S35!`nzRw=zbR#h8$?+`c%P zLwVi5r@W{@c|8Kk!~$s)tQu7UCxqsn7UyXF1)d&-Lr zln2JBFJn}BjA^&Lf!|XeoG|=@TSj?|QROkF-SW2Ki0Y`m0Lds1uo>ksMwQ2ycFXg8 zPkCrWqdYXLQ66Jdd5medyu|M*51q^?58civk1?t|#WhQGC=Z8)Q66Jd zd5medyl20sJRGD(d69wg7^BK#Onc?kjZx!E`{Mxy5TiT{DTaTHQROkFz49=yRqn_6 zCSq$~)-k432Hw#1f*6dFxQ9PRvJ$P&JWg?9^d3=yAhi-BOA^+GT1yZ(DiL*CHG;eA zA&#p?a98~!%U}oJY3pzR#VXR!F|-(N1A(kmjG->L?sCM!axP+Si$idC0;0x&bKM0l zYeW*Wj>R16>jWEvCn8*qvCKZ1*{90~+NgyH*IkIvbCLIvr&<3x*58<^4Xu1={c%?y@;mST30MQn;i>?MoY9*dc;g!zmf#e7CbV!l9ca@~c+(wAJbkIhwz77Ia% zpy*w31rd#liD(=h(f*kYA@#uqK$xa)%rPew{-VtBVTAl~8ed!Tl|y@HJ%F%kUNg>) zm~Fob?mHvOM|)z*#(4W)j+y&XbgYo)&xZjP|6ajp%fDkn$5__X>@b^j`}7jnJormI?hx@&~TZc8VM$={F0#U+CjPmkC`W`4{|bFm z^7F+6{;d~!O6X4{-*};ULf;XJgvA3I|eet2w^u^GQ={A%&T1M-YUBijzqR;%h2J;$eTyG<0nRwi4QGw4 z??e0)zZLj>fghFwWPFX^Ui`43Y{oI}TNO`WU}5{MO)Ch2J*(cH@VAE;Ei|$HZW*%89`Fc{xRdD46sKM7P2zI2H153OTQUxWw5X12!vR`SrSst zh>&vjgVeb4z}j{QDcBqXE7}=+$Y3=C+}gTQ{9y+uVhZe{&q;gAoS-M=WIQzr8DO&q ztk7qGEg`TjpTTAZ9Q`=*fiFlAP0o~4=Bzj=XTX`afC08Gz`F(vu(<)=FkrBW0Y_XJ zZ6Own5@pUwQ|A0LDd(D*eE|c!gO3*{7~oBPye`4uD+U~G10yZu0zPRc<>W6ZCwfUa zsSBEt&j4?f<24Wlc<&r9e=zux0SDxe!5C2mHYtD;tdu#KO3H~-s?2AASETV?3j@4J zjkj4CY-GSOTgGdM1tUe7Q<;=GZAr>0N@jO6!27;#c3dXBC3@{DiO5w2HGNdD> zV1(#%zK}BK21z*&NR4?6@ct@ZN@9SwT=6OrgAEKg@`sH2h$^s30i2Vg%=tG`&b3h` zj{#oD#9LPk@Y*KcwPLWI0Z$I$CkEUI*j_Pi1SZzu?pfAz70N8IvAaffLIwac2~Mx#@5>nX=!kiw>0U$g4F9QtwUDL=8>Uq$Dsv z*)=S?hGo~F?7VX37VD3c;_@C=HX|zBO3V2P)%wHBMzzNC{sxO>QFV2H0~(8;x}gD$ z!>>Pn3HaeI!jW`kU>`V~) zve2VKZDPM%>~|MCw+Vets9)%fVsEa{HA1fxdk+YGS14cL<=;4={}6gm=&fSERP1*a zJ843n7P?31V6pd*(3L_j6?>C~zAf~mP^Z}Yn^3>do5lX8Vn0Ic*o8hJbcfLXVlP{$ zPiQZ(Gg0X4LXQhg5qnPx-6Qm8Vt=XFZxWg$_KJjV5*jD=rV9N~XjidwyU;~K4+_0i z>@5_!UFcx3zgX-Z7CKDq%@ev#Xdkh6ztH~(jSxGdg+3$nTcN)Yd-H{E6xvVhzbO_w9HE~Jy-Msa61zKv_7{6Igf0^rEq2BW zeNpIPp^0LzQ0P}euNQmSLYE7@MC|+3V~F7GRCB}b-Y#o@{Zf>?)`o4w|mU} z`r`~}*KP69LrSp1w%itvI~6>)da~4>zgl~;B)U|~=Z%*=zuBRm(dL(v_s)sOD?i5^ z`sW|xEN!Zt0UfNd&gY$*eF_rQltS(AFT+yP{1S&=uFdC7n#UP$cIvpnD*cT2inVVk zHLJcdd#HU%cD#8A9y(%G?BUv%aJdM!_9sKIjM{ysA^R?bjoD)m9?rHan{}g#o%#uz zj+^j9wMSGzdRg|Q@N({!a&{#&H@iVv+l*( zh8|p7lM72GV&4()&Dwk~y~#iB(7)5>=aJV>E1&~SVnE#mlO6db*)#2)@yhSs;IPtOy1`Lyj)#INdx`sWV|H)%>BFl0oYz{ee-u7- zxF`>-&uwYh$1jnVU7^kAWhh$~4H0ZvPTc^W6kURnyDeDsz*a?H8KQr-@_Ed}wmoKyW%$`Yv+F0r+N*XFoX;=Gxk%c< zu45+ZaP3Om9)PVK^V8;L9CBgJn1kiV%VQ^&)%v(pP4VS}5qNIj$6F}AG zpJ6j|L-hU8{kSQKor|q6$A;|H)pmD@3r&z)k&DbYB671qwwWD^)#ciAz3@2pBK@IT+MN96&;qa$2)St52SGtNnyz(^?B>_jJ1H)oV;}e!l8iGVBJ&uMcq)!Q>^qkqPfuUAxJi zxJk45g82jK-~IFZ(>I~yBkzk`6rf^bRqPjO`aTDSb68Tbrr0zsd7m}!B<%MXOlkRnC^H#%KF&pR9 zlKu1mC%EihR)wV1-P~p7MgI5UTe9UiC2bxbpMTZ`We3{gPcVnVEG0J2ocP`>6Lqoj z)D&&P$lr&+;>pHZd)``};Z%y*r1y?jm^v`5!#U(t38pxx^reHxbeuJ6`N9NGANCJn zk<~Xjx_^OF7Rz)fI8AU^sYal-h%$gdQyb->B^jfyROXW;R<$P{Fg4io)|r5ekvBHj zmU*jaO~pp4VpVgpYNiMyFF;f+TEVtMr!iu48C#Ktb!B;L5F35m9FLZPoTh)Rs%c6( zUJ92Wil3&qg|I-I2D>4uxx_f#5dnQ`%!(}_qVQTbg71!qIR|eWW z{&9R87j!(tuYsGb5Ahz1gSUacheP}X?h5|@e~3>+E&e}zh(CpK=6~BE{um1XzlZq$ z(nFlfAb!vxt}Y^QfKPo+9q0EbGO*1N-E#fm!Tfxsy`RaH(8YcW!<=|Eim0L5p5N(O zl#t!4yfY45lXdBiyo4_Pt~h{2soq4TdQ&T!sP>VA;n*4tX^DJzE-&z}X#3$h)+?1hWONuhjiB2347PuzQEb z*Y<}d-sC>K5Zedzj<@Sq&Hno}CTvKcZi8Em)>dAZ#o}aaG%7T6?fM*?j`Pc{<;f7? z<(2lOxVGe<%YH3ZfnZ+Cu6Ozg3a#sE_YRM*y$q9XPTYy%vMjo`0yAdnhS08Ga^`Qi zz=K)qJ#FhSUll$<74X$D>Y${-Fmf022K(Rb&M9l1Q#LsClTIBkE3F^0ZO8_`&K+gd zCt}}%(b%`(_Lzxfx2t}wy)>jGZzsy_lh?#B=h7jowTMdHH>AY9v$MOYb519fuTB1F zl|MSCZ!mw}&T5p9*TgWWHSV^I3D&XJakYH%YQ4*P=e^h+p-dZsE9f|T*UGZn?L$hm zmnLcvO@WvecB~}c8O#+_3l_~m9t4k>9U6K-3B zPq@`MevH%&xT@}^CjudXt;+{{5^U+i{+ch2H)4M6;TL%dsxy z0ytQWyGLDru(!y3;l5g4)}WqH8&9>3Q0r}|b!*Y6t!O&aoPS_$ihas4Y;+K-EgT1o z+z z7f*Jdh}GuvxHATpDJL4X@;wYaK0beg_UK!{(XOAddwUPJH+*C47R*-qvr^cE-D)*- zCP%||2gVVg;n0##Iq}U(M`DAvZ~`(}^=7O7owZ>{a?~j+awiY0!Dbq1Q}!V9te)1D z=F6~2LV1KUv3bT3Hl6?{1bfw(FXR5ij>J@{u=W;F96BAA#x%=L0yD{|vD=rB%>8GEBmE4s zHCLiT-eI5eC02`~s$2uh4q1W@8L%tvss70gip;npEkXBOG2?(eaUZ*0Mtz%R%Slid@qzYgn;yILsBwq|veZ6v{7f^p5b+TZm=A23ADDm6r2S#_Gw4ad^`ctj+7~-al*F5^c2CHYhe~bx~}g z=JQ9F?8Aq0mW=Fqd@IQ9J#u#yjPk}>?YdkjY%&Y-5uFkQnwM%FC5)X#ID+s)r?_Mbm8c(h&D1rONK6n z*hR$7A^AHMj_w@H-$^oJAC0kfnlo|TtZr#II}gMjJdLs1l3Syit%WzCvaCl>K$K!DOjQse z;`SZ}PIrgnWMK5L!bn^4=k8YTa92{{!`-D605v=XayOB?CTUBWC9bQ)0V|a!T4aEw zah)VjCy@b|(lLu16`~U*agmZIQe=RpbRr;YORn?|y)UWoMxVb+!xs0> zf{_W%K{x2Npvi7*?4(p9N!_cXGu6fFt4RI8)sB?LwUgN-itHp*Cc7) z?7_IN|D`dgXQBIJs%_zNP;LHg2-EWMKhmLpzU$eVh*yBQ^?k0>(VTxh;gz3!j5X+}M-Smk)NIzR zfz}ANQ1JTH<~5t(TH2J7fTt-%= zr+ICI$EHoGK*J4A!h5)bCp-0Z04YK58*gveVZl>hTl_Gb*zlSqo=4dAHFjTflnqmE zv3B2~;dXs$JT5Q4bPQ~Ag5}klk@x=i{&-l5yk?ZbK|Y~P-RHwRJ7_LRipO~iuI%tK z{kK-ngh|Om#w4Y9#@}M*Q;1>7L&nFOQ#_MyiB29eDLy*IW4k3Ld5A4O294cZ#Y-xO zdj(EvQ{xlnEb;V>ckbq*bbu9+)+_4MMh-<99^S@SBnf zhvU^#AFdz2m~ja2!QT>ikv01o)qicbn9zZ3op=_9v3)c4u?HJ4v;VeDwxMO7v3F2cdN$?2h@$LUOi6{= zov@+XoLeH23g>i+NUWH#!#lNWg!hi-#HyJ+kZTmuutCC{PR-Vcd(G;~A}MfoE(=^p zw8U68_#eZ<3J|XE#q0lr$D-*S-Z_Jl07!zvV;ejf*F;v&_`#FXJYy2lJQIecp$nxA znP6|Ow3d%Dqb4T*cPIm+SN27LtIrk-flG~+m|#V7soQdWft!?J4jsEdoD5zjJFpr6 zuLtu&xdCICEgoaYZj7TtuU2Cv-?_jYL-xz zzEfs(1LE6%WwJN^JII}^UR(UB^%$2+JTdb;Q}azc-nCx1lVT8;hT#`EcpJtkUI&Ka zWK6G{EgR~FSQ|E5O02l9wCSZC^pg=Q%?aq2CFotHGmbz3*`uu}#L=+Xkypanwb9I_ z;%xf2AJGs8%UC|l=o@cCQ}?O;1d(W(*ksEAToUIWm}7Bb zo}%UaGTJ-*di3Dh`|;!#>r$^JevTD_fo>m~Hvp+1Z#>^_>Hm0ak*xcydS(7`?a@`Jv-=G8<@*Fr zjGa2h;@ui133?qbi_-F6M_j`;Y^Ug}i}a2(C)R5VpF)&=%u+J2&a%P1H>%<5sDt_2 zX4x}~ZQj25fXFxpZo?JtoWv-E_a{bLeKmc+O-+oj`u4;ocRywI?Ttpn(8T2Kr<1#% zN!Euy!C@=0Y{p0W*0#>iXR#))`FRp|nHe1%myeT%;akN^?jIJ3Z`n*M13PtC1li9S zU?uv^akgPyB1oOXIxA`$);-dYyD2(;SSNh$d&$sYMrJLFnt0=a8a<;jwP8a_D2yN0 z71@Uk!FvHS>iaNe(l9d$oN*XyqM6)7<;8MvrbHueoe!x;qK$|cm5N0Vd>OW`j57sh zR@a>PwKng19`93DV47j1xA)tsewbaDvVqmP85il3ZU%aL`#_v@bA)eqtgU;U)wi3M z)A2VacdtwCzCT$XG>=CmW+Xnf9AHc4ThZZ@JwLW=OZMDtwt60pwt8m7Sg~iQ_Glw! zE3IDK)im-0ELZjK6@i@$vD0?e&jy3FddEj__rk|x5q%;ON5Ezq#==S)xK&pDuznb? zwtmAq9G^cH4Y(Trc+hFpkK-9@l+|~zPo_hg_645I!NHY`!$sQe$e+Z$ zJoXpVX89R3qVVZ^|HH6>;kNw@u)B@6Z6AXZ5bM4KmsQ8?Os!joz|cW%r0j-M8@Dle zF9PTx`8!qEw@9fwjbPhGq|}u<+|6;?JoRRZRhwSYGgF(suBRQJEpqs(qnHC7r>+UB zS!}uwTGQ9}%uLhfmOFgkvf|UX_GF$4N7W%zbZ#SsDjUE>p0$puTC7k3xFwFNgFJGq zzG`9(h<8RY$CoyJb#ixXdirg&qv`+-A8(B6ILLDVLk$iooNsKF;m_FJWf931Oo41q z*6%NhwOURl>ywIlTNm45@~qAksqZSFIj zwfqI>O;*o{m}Jit$(~=ElRdwSPWH@*MW5=8zEO>Sg$u7m&`9<^)V%bqH{bk;wc(J} z*L*d5SdW!G(X9q2Ozb;q_3cxguiBxn!krpAU#;qVCG1L@)AUN6)R(xIcV zvQ9wWrj!u387)6`gVWooP($AXzYW7YS}E%Q``=JDSk~!4_hZ+Ybu!qM+H}8zNJmFR ze^Y(@0JvHE;7yzEw-=Ec{Y>6Xm4hrYr2Bn|@L;w>XEzd3wAuaHn$RH>Q>tH^~_RXXUFrYez%YP&ggdB zyH|C)5`Ddmy>1tJU2Ssr6TGaiWjDpS>{l@nCUi;kKJ>f4+o#|XhFxz*vSqhTpY&m$ zWXpb=e*cGklPx$PrhXWgY&nb}<->TZ<+x4H{;)rOgWTnvarIxX&FhW+=+G-#b;(Oks4(TadYCU?fRrPy|UHyqh3Npv%UsuS<9{1EEe4mauq>9Uj&QQ0648; zn9t&#Ex|t7gk4m%C7T(A4#*C9I1Qj{Q_(Dbf;(-CL&pneQ*n$N@=mn<)NOdnu}cr5 z1Mb25j2J!ZkEUo@y_*7EuYq0Upcs@Hu9E~^&7 ztU3hKk11`XqmsV}CUc0~=wlv~6DWe6FfjZXFZoSpmzv%r9dI{0Al@viTW8f*qfRz$ zda3Gx82iwVAXfEc5tY&f*HG9hU2p@DRR_sNdsQ8VIV5H^V(QFMwGWs!s9w1{mbtzG z=o{2vi>|u`{nm-mtKQcAq|rhB=%C248qdB~;2C6c_oh*n;dxfeCd(1a85=sLz5~f+ zoQ6Y_CFAB=Te41?ES3#~k!7`E!jD_!ZH&T_p7p-EJ|V3rt%mQ_q1ABaVoUDiID&>7 z(>>5|fpLt$9^v@W(td}DZbO()d>k;on|>IV_5qIl2t$8nMK0*;2E$Elm0w?srJL!sEiG`HrRl6H;{~AKD@J7ci3o0ZTcp43fmDFNH%jI zIU%ihl)1~K6;Bv#XEd8MS+KQm{_;s{)rPf}H-=M7CN`Qni8bLQhLe|7A76;!Vn5DS zh4IOjV>opc_P1JA;!IXJ2&c8egk*hc;m~9xW9w~O;c$#0)!MwVyiL?g!^e=cDXV#* zJq#z(NSj{4M-G#D@p}U2FHR6R6Dv7!@TFtQ7W=?jdtx0X4z?oRkyxrNSPup>14wfW z+=n!6;WEa!Px1kUn%i1wcYljngCoINgX5SrIAZrs!;SpcctF9qtp-en8jq7vVY+r)g?m6n_Up-+ukm?E?Bkjy@ zwMypnsOw4L>5#Q-kB4ap5f@=M>R2 z_9@3PlW{3#GCGeca$brZoSmH`66A}zSK08i z+w0(k#K2W*A-q*zgZn7!`nqJy-z=DpX26Wt7;k)T8y}Ja_m3&w@tD+v2We9_qEpY)_T8NGJi5}aK}!m$YN?ahhnHTQey z9Dp7ZV$P_tQJ$%}*gtSzvVIU}$iXH95HakHAs_=Q@^%sqo2AL7pT-3Kt;zbSyuF5l zs+R00z5`tb9y8ptS-!F9J5o^HKs8i#ZQdB88tZ@p3rx1GPqyqzwrowd>`k`RC0j6* z|3B=V3w+eomG~zlfnWj?Cfy0Z@Cem=wjUV3VTXovzT?f=?|y6 zQ+ze(*Xd1?OA7e*PEy~g$O63(5|Y@EYfD@D<--1a<9%Gbg&ZnS840Y31YU^*R!0Iw zM!=RYMQrob?`-v(qkc2guSNYLD@vK)nHf7jHLa97+kB0#Xo@p=c>XqvVSE0 zjriT7ejC+qv-~Egpw#%0O=|zhmZ5%g)bDKdJ5T-Q%Wts(=-y%hU4bxvwJG7on_SLs z&7U^)dkd~ewT>{2-*RY5%JJPzA5Bc#zAq`$l<>fVjr-RAY4#myeb&5o?6_(8iIa1` z_V2HLXHn_@xy@3y$=vB*r70n)M@sS)iG6$b>e(kXEulwJN@CBn)Z{CA^)>fl74F?5 zH6`JS#GdA)K7D(oC0CmIruOM|MRHm~&y?Ohk`hg`Z=OHUas9$)x4wSx$F)B{X-XJ3 zKF3zL=+@h=NL{|-Ycrjl{+aq*(JLvTZ)!?%4|7`Yo{1)_b3w_kHimBQzx=*8esF1z z>5=MRyuM@cpnE3%^ujUkjk8P(Hva03JS}g-WbW(=Qh9I5z926EEE3y>Za% zk5rpdllxwgU{30l)}wcyo_KXxGrRGX^yZxWO3Ugk^NKP|Q%l!PczSJn?zKmLdH;}x zpP9bl`=_@)Tzbu2nLj=o)Nb-5^hh)%_w1F_`-;?*K7Gw;v2jf+)@dzoid?^eBr~u` zfA%TYpDeUbY+*aEzJWhJf+v`;Ri9wOaX<($F@(NOQ#v>3GU|EBJB*@x_2-8a-5M#1 zYk&!+8u`H?LI`0sl)O&QMpaVr6Lpdm2NiiYc+`strhuL^Z{TDjVGD0Z%rYW~GkL?V zGa`tn7ex@m*8fqoA6j|l-5}<0(xTLJND}0GQW7|wy~sAqMI28cub3YNxK=5he1OR+ z8KiiS7j(LnXI>xC7m^qFtC(O)9%|In=SwP(H}GmB0RVaJ)l-K>+6TA^ran)q)DY;) z8z%P1xpFBruqPC{-$pk`z|DmjGzg1lrg!Q?qmOhI`9kxrNmI&m5_ETmr@A~o&K4UuP`U|?wgp>r$;Y%V5;fHS&w*sQGIOUpvCvR{?iLPOjUnaIOnCqU-|X7 zud2T|<@WD)<}dJ+o*-|El{JHBpO19X8hB8DcI7EJT$x~kE<*2tRC5jG%~IaTpZu~> z{#E_?mj;D8k?2P6Dem}s)o zCBPx9^zhPB=0n(hxldrVC<-e=!%^1 zjTBo5^tz5cSflh1MXQTr=KzOuqKin;&bo+wIX;Rj6_`|qK4QJ7e;LQmqJdm;KvM19fetgxjkb;TZ(*LJpi%qO?fpKxpAta5Jl5xC_89;IXy0SDl0#=;RA zL+>g+U(9B>e!rMY+vzGfJlugXSxbYhq}GBdkHhR}ad?+oJlUJgt5#CNhT<9Dt0hN< z+eV{;7ADW);aw1H()AbR!mRd!)9&1M|0U62^1#_Ae$6T;zUa+KDx6`8M=>LvtS^gsf}D+8(9;X zOdT5Ony);#Gt$54{D{~|GDA@1-RXhaO5bGn$k2ow6j2fw95u#L^vnU9t_N9i$SjlI z)w0(`5dFvTCQ$@K$??Y7P7NRDkKULgsfs-aYe=#N+vC8=0aEOVktNHkveP_Z6HEJ4K*^w=%zR-xZIsVUI0*Dmjqea&y)8sBdYh;I*f z?l*}Kv4=QF1^g+k7Kfh@OYl{?C1JI*WdCq&OUv$(N()==jxFA=S+dWY zSIM;p+IjRy-YeNRyk$?~W>nP1bis<9ii`zoI{Kf}%hOEGFtAjk-=165K|kO3^W}L- zllWbcBzxQzCt5~9uPp(!zvpG!%b8mzTl0xKbyfQ&IGsCpgSMrlv03gi&8@@-d5R}- zbEG|EWTN)`J4pNF5T~Sn-b9L$gY*$ z_YG55+9!smmfI7ex}`0NweG}rrCZuyE)`$EO1E?nSh$RC=^kK4t#qb$>6qE>iW$QD z$K<%R4P0{DvIiAWG~}vII;+knI;)x{yGCy?qG*fm5zSL1ZUlspN^w+apelJmshx_R zDJvUh>5q!ODNY_mj8XcdFjY|;MFU^yj3<(;do%BaVbrk(kT8gNS{tLtkGasW=M_(4oy}$|3?F8J}ZH8tus-xA; z>>5shgtT3FvUu(W0%FT3s-sYSjd|78sw`A5rzpi2bgGx(bZTO)GF)rbsXlCWw0dV* zviF!*y~tZ_ch-i{wIz+iTXrYbXzkdh3=lEM&=2h=7gT0%68c`>mA-HFws;6#e;ud#eYp3Ed`4RbSVtJB)PoaX7L5H?mKV1r-epeQ`NVyT^RH4Ax=}`sMf2A2wP#qNc=I8`TWI5=Re0l!A(<3gu+FWA& z)Y2f2=tr&kUb0(rW_icls-#4_Ol#CsCy1JAmZ+)TC?aPL86S-p(wWPKkn1wgK_xT2 zrMK#us+&YpwYv&rrHBZjo%+Fn`#df4jM}@W6e^FFaaaScOsum{-?pb`@D8^?z6lWias++|*#X=VfPK>Q|WTACu ztPi&GN_&sW_DY1O^)t#}93^?=c`eV$X$6gjHmSp;tCKpEI;l;2Fv+2P6Lr$Eh&rhg zg(UfI35&4l|nJyQU|)Fp22~gL(wf&%T0-|d6w6GEAq43 zI(U}%^;<=|6waW1tn^Fm8rL9=Q@W+;fl8TSO1G2`bVu32r8p8A!$;QwYf7|#=t^VV zg;MFZ!Ehw+VtGb#TS1@ zf_YUf5w}*4>-|>(+6P;6w(m74BXE$OOM;eN`@Xgaq-NU_FKDH&E;mCScT>EzK z7%ylvg{%0kL?E_L5%tr;DLtwhIjB7>I&^5W+fvt|laOLdtyM2g64#P`#FfC=8w=KI zA98B*;|N7{q(AeU&cu=$QN4Vu2S51<{_~Gl`D{xb|G;-(iN)C~!Izt9ncXwNci;)j z?9?8<+)zn91@Q7vJmy&$BLoAQ=Pf{6@DRr;q zu|dhc+P|}!Ja|Abs_4lZK$`p_>A>0 z&r4o?m^|L8VSjtxl%yk=K(wOeYG)!=isIp0B89ARcnf==1J>Sy`C=junrK#5+)@ED zvZoTizk;HnO>36#R<^1jo~`T=c(h%vst}4^0U@tSTh(z;eE#tx9u0k`kmx6G^4V?( zZI#3Z4@%}F`fSVc-jkm_{!4iwd9%x-p?t)fs%3enLFT;&<)>a=)kMKV6ZDIc>$@h)9qYlzS{V@rhmQXuj1b6sswHsx)Y2qm z018prJA{V#S^sZ>HNL9e!3O^l6wD-B15+q?SVH@JQ~$jMLjUKMIvweaYA3;w+U!W> zqfA#5pPn`Dm2eH34YsUJS#`*VS#4P@(=>NU`ZR4$$$)9v(vrc`w8E01*$*)4&kl!H zn=Z0%mvt^{19XPotC*cSDsrK)X#>z+v~ICgWD`gE^}DDZE=-4z)|bTC{6h?b;UE zHqo|;@|#Y2P@W>Zpd!2moPi1@ftPB(KNJRCLS1NWg%bVC^1$J;yp7IUAeV}Lw)2l~ zHb@nS8lgw|Ym!neIteQ3o4V}Y4KSB`cRDLT7IgRoedq-1{MGC~=8bD$C4&AQ9Cg5F z^9cPtIEwN1Kz~(^;3c832H(^NM=^xPi(|ejPyIPx)q~p`VNSsh{5ygt(5f=%?C@;*}GcIdAW`a2*LCkn3)mJjGpK1a`KTLG{!T;snZ$P8P8+O@ALGbpof`7R-v zu>Xl5fGKK({PxO=-M*>6z?MZfQK(0`9`d^Y`JRc8Y46|>$=B$szR*(XuL^F0Bu`TD z6TuUb9svDSjWDfN_{dxP!D@A|Ws9gI?q-ziscoplmLn9Sh-A;&?8w@OHXDj;j;x*N zvaP{CnS0Gp6xr5TP-I(UMUidINQX9O&6tvPJt572`Pn3qMYS3s5ZrDV^s=Vup(J60 ziH?eApwPQ?9$4`V3bDB;#C~@$6pBJ@8w#w%LTm??*=fu>u8$7wq(k^)69jr10>m;vakUt8)M+%r9Lcg1 znq;wBmbV{F3WHRHDhVG6k!}$p6~Yuktu=Tp1R98Al#~nWqzaW*3YBgaD%}E=Zlqsv z@`2FjWP?8Ej#8}gg3sotKPx{W;g36gwqe0TzNvFZHOo(vyb!{zzvSPs{iq^d*kg+# z&)0l4iakz?u*XA+NOwV=`wj9``l*noFiauV$h3oTs)^*Qa=|clV!T%;MkdEUw}gGR zYlARnol6?zw_nJV{ZwU16CqPOJq`GW1pShEJv2Fya?s={A@*vJyD!QhQ(K8v`bPzK zN!}01J1Q8IyhnvEzsDt47aN2lfO;7_G-e%HlULfZYVBFOZCTs0)Y``}2K+`ALfznb zlMsn0f$!#z0W!w>=wPX5oBX_I46NcxGEN610eaR)nuG=!+>kN2zUpQ7G9JQy2(>ea zJsU+IOZEq3{KgpLH$}#8$|%Nfu8iMY8NXqy4zhyDi*xcr+FTjGx%J2WQ?^&j2=DTb z4}M^b9}C<22~12`;dZFO`&j)Rx%?0ccVYDWuLVD1+-gALBf;H*M19=A?s38HSzh$h zxdYhkI&5z0*$sx<1(CH*>^~SG z);c+>6#YHLU5>Xhsi7*g?heYfQQ5bkcb?d+fACt%U5_D^JkWAtua zp|>RwsB)V%%=Xzk*&5wDIo+x4j`hp_$yl|2GRakfTa)ZM*&o~(-9K?B?#3xok4|+& z;b;G3NO@AG+Wy(7_D|MF_D|~d{gbOX+Ex1}*Xa8vbFN|kWDff$yJi36YPElYZ8>?S zuYBMd_D>!_1($Cy^S@Twv)7xwU!q$mK|?Mc^S@TVGVSsVoQJ6DAzU^~(fZVaj{RZTr?+9sEGdJ0DP=2eGDw`+WeAJl3*T5$B9k^{XM z@Z3ts8f9 zZkp2D-KgiuLNy&7Sfv{)%DYPWbQ)@<9cs$j!*0*%tc^BNjom5QyS@X@G@nk9-*7rf z64)@)Qj99NTmEz)<2 z|H1lo{=MxNeO2QNke{n=DA>}=@2Ee7@ZI*Ie?&c8cUWkL|9kcA{_nM)lJBw>axE&@ z)ywZ?rCHW?-k)5L@aqVz_b;m7>0i{o!B;h+;1rpL6>RP0A1@qlMB6d{OZ7GWK61GK zy-+I^gw`WPg)04y(EI+qq4WOZp$-0D7HmN-{9ZvFA8HR4oE+@`Q$b6*|58D7ivM_U zyMJ%Nu5|y1V8Fj9guL`%a0@Vo_QOg;XZ_1pWU`}cabxrO?6u&+#b}p^7CaY5u5@~b zKHItf6{&owX`2ky=K;O-q1E-DN4N7r>0_g*jI&j37h1ofGc0P>=rN08GlxM+0opOT z4zkcyf=?kz;D%Ll&hU=88ON@APV3bOF=%-ouoWNFb0Slr8+;bEWLwr*-?V3%Lnvi$ zvKixxD)bH+==Q-`by>T#FNu^Y9eP%7VPdZ*y0KWpexOr!3M-o$Wv6g`R#^4}*T_y` zWm7Anm?CyI3B}C1sU9sEPKvL@HI-~n)R!D?ZF(!zjS@2JS4MzuvsKs7Z2|ZpJ z7m&K@JLju9;?!^-HWHK?Zh;X|YPb#~(ybbdUgPEoHVV(2^T{3@jD zJ0Dd##`5-4>pS;SMdA=Gw{^*~pb*{Lc&iZok@2QmL~k};M)jTL)+wpyvWWhfk)aEs zON|!_(Q=8K5bdA!=ZIS4WjBbH`{wBR5V9wmjAAMJ^ON+Qh1OTcC|jRNx_>zQ_c|&T zrExas@h;2YMyIqzTvHwnEa#gpIGA`}J^liF*1;5ca}b%{RqU73N%Z{igkxuaM|pW~ z`gVu!H>I~L{(;d3q=}C8Uz66Ue%!Ze3x%zn({XTT&VwaHD^Bv$Yy~TN-*r{>S zbUtDEQ1zY7=+q~nbW)vQ?w2%yBPdK@>y|dL`HNRfzP!nvGzinWQi{sgS&{z8i3D~2 zGO1yGf>5JWKHt2sEeX@*JjgL54k8w|Ch^-bh{^hfu%u!ZFsb3g9u(eB;k(l*jSD79 zqrVc`FQuuBd>w+6u2-cY@<|QH&|%LzL+Ni>DBZ3~AExvfDNSXR?hvH(aaH=Ply2uN zIBy-LpUj{%pwf0TrPoPmDx-9VAf=%&QZf9Z+W@S(EmwE`_5B85z2CDxOTTGS@AtgV z((j^3zw{k#ywXX*OQRB#lu|9G`t!6k)xOxr@@F~J!14ncGN0h!vzDDs-ZfOJ+|kr1kjOb)Dq~bJ?_V#Ywp-%o)v)e~4>GLV=Tf`4 zV!%d4r!YtX3R@7Av~806qPU99Q|+}0&5A>aJeb=g^XU{JoHogHNiscYkwPEI&t5$- z8VpNM^IPUh!Y=vwSmHHdsbC{TAI^|OHFE%zu2n1W>m(JnoA(|813w?e2UWkYLz3Ed ztJ=lujv$SSgY-kX5E4gDI*4~eKa(2v3H^&hgFKlI=4}#fl05Cwjk{+{8R-E~szf~~ zRY>I*1!o^fS_AG5P79a5AYFhWLz@@_`bryB%DV&;hFnyl^8+;!kswvAr>Z>h>m!|% zJYs7}`Zg+Euu=L@BQM2vZC1WfjSQ+9Ss>q-B8gy(oV&^N{USwJ%uzKI(i}DGSt7v; ziV$j~nL33rHSz|=sN)|Magy671?e)K*^;9pi&QbfY?U`UpXh`k>3c}L+T^#Xx&=c* z!3!Wx8IRCKT6kV4nf^-M;;Bg=g&IadAAslA7`>=1q67^x4yrvBP)G~y5lAb^*OgB* zKk}w4dfg)PLp&tq?Uo-w^uh}=#N0tluvLO)>Dd7tqjXOuj4@ZlX-G6kkG2X6G?=Rz z79mQJHzqagF&VFDdp+$<-DYrr!r12c79HO9IHGxz|^d%*39;rD~t=g@W3U(_h zYLtd$0!T-x;F!P_p#%jYuNXKL1aN&#Ld;-RDG1IB1oNZ<)ziF?WW~fyjkbUq2~hZq zYMq`Fi65U?gZpR;KsV9qGLgg+2u+0i9FB0cl=*!x#gn zSb@GkzAt3DRe`{=4Fc4R70fFwUnvtecxpk^2d`FMMS?PTYHd`bpyQxQ;CMxdn2gNo zNKY4_TtW{Z%jNEP}tpazDH8iem5?h=p8;J9E{TNp;RV3 z%oxiL1Q!M|NYh)SAULVafygQa&FiJUMv}STF`WlOmJ+Zqw(03_>mXnG_Ae3nDqQVv z?JQrBJ83N0|Dt?FrW^g|fz00o_WX5hU+)14{*$2((JN{=o8aFUy2!!SIt~GBp=M6z z87N=XwGfHV);maekjU2fFj;hoD8kM)LSYe?j?f$m~R-me*23u&iG_ya<>lrA_UK{fH zf1uh@)!LTOg4Au1ZlU1QTi})!04B5(FlOa+*OoLPZK-B*;+l~bKJpiX9BFVi7@>E-j&8PU!S)GTQ@li=SIx+Fw0SLlP01>3EH?FL#L0@$`83qYyR zNYxO*>(dB1zG?TGTT*r^RcjQu2z3iOfU8-N_a%BhW1iq_-CX}`I$ef#gVTCYxCHR_7}Kmqr*oM^e;-GC z0kCEZDfJg1Ilo||@4!TaEtx3j4=oYM+K_AfZ!^K$R{Xd~#{E39kE$0Etd3RtTBKTl z+oDK%kHEEmt}$P(<)~^&{&@x0S%?`_OYK=ihZVZBy|r&XGn1?v0h>}S_+RRb!kK7~5Ba=J%^%4ubYF|RE~GdjsoH?=+t z{3`C z#ss)`w?lc#Wbmp@zZLw^(KcN|Kuac66*qGLRWYsjrGYlLScH8yD0tzs`0xpUm@eIuQlmuz?5g(GX1+)=qb^PIEzSS1@Q@8nQ{)BCgZ z)^IpxI-r%w-W-ndU)vL+JAAW}&L)BHmBy8?z>5FVZZ3Lc_2lrI|WEcOZ3?zi0+xug6+ zm-id3HGx$>KyZ!Si@Tcpqo2CzTDiIl#lPDK)#&?h=-p=$!+JL*^IT>)V5fd^3{z>` zyd2q~a-&qkRU@rp-mz1A&n3L58qo0 zDV)eFh|4UD?QTh%$b|%d$*W07HC8JM>_n2&z6%mZ1703F_ z%D@Bb+rt%$a1eeZPzQoaT5+QA6Hwh!QyFHzt!x!xaT;A(LO|oTvgVS;L=cYh$P=VM z42yb;EkIc=u?kPR_R?dtf|^L_og_Fb{-oL$*9=o7!=m)SRqUb*WsTL}3sBtTV=lc; z-a9OE(Wh26kJLc(LwZiR5tBA5RMqCP-_XPCxfXL-GXZDCOOls{q@v7ofr?rz9Uy-d zd&eSK)GQFN0*|Yg-ZlD5p>?Mq$*Y>XgO`DeyrMG6{jOfP>>ep;SEOmv0Q^d*RCNPY*CIXQR&yGCL*B^Vt+T^Rxq~N0 zG`6<@nqGU>N2wd#1#{Un!KU|{yYG+Eca5_`q0y-LopdSZeJUj|5${pX3a_+gWO+x` z>3vPEOeafH;L7+cZwN9JCg*EE`-6hUn8)D?e?-thRUgZWG=f?CTfLxX%LBG zg2rIo05Ha2HH{=^U@0D`V%VO)TIL=TiEa2fIKY-`%+G2UY}$4QWC||`ypIlvvmz(M zcDGAw;v(d^Hf^_U&f9do+4(NluFAjgh$4RF&iNtX%&jFy)|b>y3S1AA7zd5KpKDjS z`s^Xw!|)K@-$`V?D}N`QCajt&zXIp12k(lV623LWABDy(#J<40_vSBKyfv}e{QS>}v04n%PBCfVwoYyCn!s9> z)mbrj4ek}l;MBgkCQ4zQXsaT5Yu{_BLZ`5)%sP*T)9UY`yYE>GeN}>9xpG9q*I`rO zPL^VBwyF5$nngF!L!h*21FVJDJG2{v*F-^GrGr{Fmsu<0*>$=ux~0=RRqMc82^k!% z?94pZbd4|rZKp7T+lo;KS|jS7_%uo2gA1xm*pV+iZcR9U(s+0-n{iQr)$tgbORAlM>H3>>|=uE=e8^RN`m)7!| zdG56HpAE4Dj}&FEkmi_{1DsI9Km=AX=NWXTO{--QQbK_pL)@rn zb0n~mf}QwdD|g!oEp+6M3hy58yB5Ipc-4gxPVJXJ0RWv~gp!ljq!}#f>*nJ9&D<~M z9JL*axe}fPw5!P+=>33VO%irjc%=gsUg;X(vN{PCpr!3h1m^YJuGH1aDQqB+TiG5C z`U7jrJMypi@xoIQ zx_=c7TAw^n+kDULrjN~cMr$+LKGhvIq5(=sV;y6~}p>U43=+b8V zw6rEH?!!&x3@%e5Zg8cpf1$3fgWHEXx(se9BQ9F3&F0?+Jl?fd8D=hQNfK{j{gI9+98GVC{^DBAxQwV7O zYD(x0pCbMHlDp~QzE7g>dsaLz>8CsB80N@(wd&1*(9Ygfc(eL|U`+~S;bM)6 zI%0mwGd)d>l3?Tx7}kqLf07TDgN1`xTb$aS%&o#3ULjG|nvuV558rRs0>;X!)>UfI z>n%K_`}Lxd)pPV^3<4xZt zYE+R(sbC4?7?D+wjJSU(j&<0rBl!+3V}d+j&39M4ZY`o(jAg7mOy<&qG>)5W{BmpW zBS1LIFf6J?hCmZR7jb)Yho3 zm!6fJPcxS-BgBIElm~~@FN*d$HCCC+=98>M7`Ym(6ymv1m{eN1=6E)Y!kshe3P@^xN%~EV{3D(S|caVklaFhWztyVa-^L}W+uBy{& zq^k77JDj{W^$7oOU22+{&$2H!h!GnvOQdKp+$_shMG%FR9JGM)m-{-)L(Mp zBwjuU=wLM+U_cC&2shbNq^EA}!*}HyP^x;^Xw+O*L<)0gsJPci(T;MPo6uZC^gYC9 zQs5|%)wh0Iz{Ce(S*2D}_;u}sfXPfd8OR1q1-;BUE}shrMj3#=hL1@gEKC!4%kBkm zp${bhHBAIkqm*ifqCxBlK!S)cAVDGQWMJ>x)DEBjCUrS7E1MD`XGN8(tgBU@*IHlU31N=m!3bVZq;b3hVXlLA zI#VT{0GC>wQ03$pRj$yf@}4-VR8%JNIyyV%vVR~@vC1mg_CSnr6j`d8#V6P^1Y#8V zQ*oS-0Y6Enh+9j8u-MXJr~|)v3rs<-V**QH4>3wjvzp5uF$i^xcqvE^4Au-nO|nMl z^fq!p3S+v^>C37zp;JogbUMaeG0rOEkC@5$)2{5w)Zp(kMy4UgNs+0rK}DuQuLhZJ zRb*O9f)H7f)xdyTd(WWMmcScEvs_F=CMfl4XGNMdN~k+oN`(^5WgAo-;~*R6jzO%a z0$=BwMp5ehag_Q4*q4yl7=uz<0xL)n*n271PZsu9l=^jW5!F{R=ykY3ca)Xh3%S0l z>T*^L1s4Xj-XtwRt$+MEPncASF-+mW2u%Pgv?(y(mce6}Kpue$_-Yr*{*x^C0$m5} z?&YmO_)ThTdI-Sc`cuWbuJ!#hso*&S`S3eb8Tj|*@dDs#S)BPew9Qcr+R|Yv49={y z6}QsU73LpTF)5(O6quvzui!l0T=oh9?viuL=HnSVe4sDid1^lM@yI(_fLB1rLS-q1 zi-Z~nFp+RiK|kd(>DaE_gTgll1YSTaacS!mvxHL@PKU|{xV2LXHL|V`V+Mh@nSz-C zW#^Xn0rQIV0yS^wn3?%Xdss2$VDGr^t3vDG=mN0_buynNG6%6=!sN@X9W`j}NI-5Z zK!kr;?aFzy%wT2Uxn&?tt*4-&@Ol=e!fW`{kHB>ya2EEiRcCTp=%PONi(I78P=oxX zHFOx>p@6BtlU#O_NtVU*4p>i73tzVRQeH z?OQfJ*=hmT(XF3FU!kk%_s7X(;7jtqgg&f1hpBSG4S`pe3X9BP&E3HMDxJI;zdTbQ zm=#Zs!9PpkSHuYt8yeavWb?o}1`i43rAn&DD_W&&g6i|v=y!C-6fEHr?-*O2M>_X1 z(6~q>+9c~aU(uqk{JN+xOCXvl{#N*gl}-%MZ*#v+?}UzjvW&bP;exBx1b=Ux+|9S| zroh2xbogZ>h8wtKBj$o!L%*HI`5f-rcy3(dV`+Rk-|%j2zji`^I1G(;0^$aM7_1YG zjBkAIw`K#+mUwt-0&^npFuy!}OwD1IZP$SUyvt!^6Cy+eBjW+e1#!l=bferN*bzAb zS9+9~S9dBfGoojS(G z_3i>$RvgBn^wFWvifKT%A#NQ16d3xM;rrpj81A~lx1Gt;33Hze-=8OTfp00FPaXFE z;s*9|quN>!gX|_ShnpXR&i+9*F+0xK5s~rK`9n18!kNIbZM8m*8v|#aGUz?xH*~HL zI>It{ISSp&*N?gMdkAnI?J(YGaU=DyJn$Md&Q`q4G#%fd=CZY{i?)inN#YN$y`;5= zx$N&qQ8LL`itv`8MrvJRlFpP%Wbg^3jvd>)-hO~#FIqmZh8+m92Il% z!po+kd^_fyd+?6Whw#gHBRtmMkdvDUGUa_d*AnLE696$Aw%Zts9wTrJh=mZM2saGMhu ze>oaVyX_R0eBWv)Hl^Wivlg%}6dVX%wOZaM-Nvh=TTyySioQF7ow~W?Ul^e-b$1xX z87l{5JH`&ka+D7kjTJEPeOM4|T12_7WH6(fPIel9+t|tDY~_>3C=#%ZT{cO4hnb5OM`^Z*u zu(@!Ai_;FkWb9DjhY`bB!_f71+vty^xL%ftTlxn@{~n7w7ZS%|r62F(-{$f&r4m+m z)S>Q)zU?w-Quevr5G~g)tsFXOdd36k^Jc7kbW+0fj7QTSv2#Q8Uan~B%@yZ&sym{| zH*MvdNnu;YoE{H5Dm>6N&gJIxnGGZ_i1eo1F8)l&FMG#g#DXo((SD3_A?$LMc+~vd z3JGWd+zW`c?y7vEim=6TdnB_Wej#jijHm_h&Zsi0bFSPP4pVT4c%G8X5EsV2NE-A#5&G^2 zeUGB{1P>Sqdbl;o)l#Ks`=LnADBtKne{wZk+8}ky7grIXxyMDZX);sNJlqU(7l`f!XL+TT$=^s9yXAST<0|0x;BN$E6?+MymVfV ze#>&vWj#{MkSt1(RYWaL$W5Pq{b~9J+qV%%j~#$K*%inr{-XZ#x?R8fe8T$e>9T%* zC9;0YZLVtl-atUs?;Sip%liE^`pbi>D`h%d-B#NzUvOi^uD$CMiq5DvYI{ zzG4zLdtar+-~g7)#Vm(MSuR!T3#796brK8i?q)scG*4E4*7d=jy>;Pb)`uqXHttdk z?vW%Jo69fW9$|2k$;9H#d|>gmCvKI+TMvOnS-i*ng?_-_;15>TN2|df8Y1iWP}c97 z&%S=Q{e|_rt>6fFUpQ#~YFTt(D##B*mHa?*K~Pr7U?Ss-7>5j3wsrYKT}MZWB=PvS zt(-i@mVt0;Tgj3vp>E_e!Mn(3_LZ#0x_m}sU`_ba=np-Kt**pCY(;K{9OGByA_(P^ zSL7!YMaR}g^9yqH#mXp@TO*W<^PC-v+1!Y%j*4=RE*>9U77facE{SGuS&VYYWvqwZ zJW@L|^KALhHX%jBN&mnU}_fNPn@n()3k)j+c2aIxL%t@H%Soy%H1V_dL z36F3YXoKDBz8UH34nz9dU|YFh6w=p%1SNfaJ`3vBrpH;^WI-LtQr3Avz4xVV7KqC& zsHHM!5#syn*4Gz5%lax?F5DQisFzxq@2~l@iNlY;baues8ICmlcEc62ll7JY%JH6- zD%)~JaUgbBpF3PGWRsJ|3r@Mc2H(Z%n|T@Y+QV*WNz_&UwBn^xjBo7}UaGrmiS|GzQLbSpJ{U(_R$TO?OL~$@ z=Qa&|$KjL8Do($x$x>NQXO`>+ND~P8)T-6;Dzz#!IH!Dp)y!qM96{AmJ*ih{fvQkC zRZD7b64FRGofMq)(zo?LWIv!z5aJZn1b&aKbKKgYOoyd%*=nrY0qBD7PU-WC< zm$PNk@EL|@vr1Qm0|IT}B%aYvba_1)?3AU2x9BKI(wkw4mK=e(Y<~t*jmTp(kyRPr z88ue%2~qi9w%SpRIFH*kZY1M|g?;AY$rA-%g*_EX)MT+iCLn3{iAl`jiKsiynFwTa zCJrXa0&w<;8R~bo`pr?l^J-L^HSn*mb2A!y(3}fi;7nB9xN*J6*}$`~a*jFJ*l&=b zXbar&O<{$Lu4HWNqI1w@4D16gAb3@l`7Rsk>+*WlkgXKi)pdM>a|Ak#T}YE^1bT!qgQ8hMH&oUtD2g{N;QhS*l> zL@SGJ9BNyRA8n)V=sA zw{zA^mVMHMROCpllDAG9yM3uAUNc_iAo&0Hk6N8|M-|1}Q#UB$ zwx^y0VDT|J8@()PP3oY!)NO)RDM?KI@1H6@y^nD|S86Tdkzls(DQSJo z{A?XEQ0wVi8*s>4O+)0Q=hf&;C}&2&OU=@mbc zH6^@5U|jY?U3aJgSXdoIX&x0n7OV~!?>PQ~nc18NX{|0!#=T46|J7Qx)B6NH|II5@ z?e_k?;6rV<9MI#H@?iE%5ESGvqw%OS0JX43tsK;xQTH6#G`|~m!8*ahvQ(B1mS5(Z zQ`^|FeOJYmwi3UAo#iilZ-RH2z<8d|bljzJ1bCujrl9t7mdjBK9MYxB3@fNWziy`0|pD{M}PL zG$sEVIdHbnh*N^*1b()2=#$5Vy$dgjFN%78g1C3cKVY42UOYlBZ{%{`5y-7P#qR^| z3C#ITxAU``pHLHjcxReq4`)i8mgFrO`Iu6dCHj=?nu__U$}#g2q=0$vb;|g zTn^3l8>XiEfKMh279UTN`z?<=}SKvr89NX8AeZeRI=|Ew5tKAlFlID zPO|Tj&PWdMG|9YO&@N*uH!`acM8ksNr!%d*IVEU66GQuU1^{n0xGOS>E&Nc*GV)TM za!`z*T?M2w(ST$@e+3eo&B`>NUUl@cW%MUYz0B*)Jtp(xyl_FES4!c5Uy@~wsY`9u ze;a*vmK;qtmu0IdLht3OEY*8TX-etjoM*e%Z^Q&A1QNcWL z&J}b@1F7*gZWgRGm-goiP_{8?fBbq*dwAZkT7RyeZ*Jd2oO#r~lPBZfj#HXE$g2G? z4O#&!FTtg~CvY+8CYYe-2_}5kOfVe+Ov>ZkNbv`#g!AR8>2e;&o`n4q{{3_le5 zhyoKnqQr!c#NpdVab;ZLjf|GWZ5fO_CkDl>_q?!EEtr1nZL&+u$b?;yyYmU ztphb7pUg4xo08waxQGOHiunCNO*={N^D{l2JMl>0sb-?24=mHu=UAnh2GVibMEbDr z>FEzxQJ<*IVJ{@dT-t+uFv0xzdFo|;Gcz?WK)Gf*KgnJ#FNJlIWgkBZN#n@}Bdm?~!VnDYhk9WonXYa7nXpi_GZw0RCANq!7_Dp{KnrZdMKZAPDDN!1I-plTA`ITZlW_L9 zpy9|x*nIveK^81Ebcz}#*|#b*2Njy7rjU5`>WJo3WbTOOcUxmImrE;liXl&uuI5abp7H$ zz2HuvS$uw}fylcc`1`BStVTegS&(C(Sq~~SM}nYPEyIWhE7X*Mi9r7_pB#P_@gF6W z$2O$Q0Pi1#aR64L{LD-TMSti-iu`FBXZsR9PR5F}Y-a-yWPL~!wrUEG!qP)yPeGOIt!G1I#S(p+s zF@f|X#H1!>=wuYqeG0q{F-VoPAd-)g7CJ&Iat%cz6W~)rDng4u`pI&Q$TUDI+yzO3 zZi5&Dr{X+ul6^}IQYC@O+~@{Um^FUw;^dl7iBrlcNR<>L^Faj!r_q39k!ggyB~n8^ zvoQj(kX9VT;;L$reRn5_#c5hM5Q`hO)BFkhf$BdsZpE9L;8r9_B{QmkKpYK77N}fg zS?Jn=v5~n{b~vN^ixih-Sj6AWc^hLCK;7fxW^FkIT;`Aph$G0o9Na z1Oz#TAfN}8AP@<{vn41@Ie(`hYZGwqBxREQltObzq4|iQS)3mtnZ}`6kl7Ktz7(3*fsb=Kn%e};q%S-tXjTD1vuasfu}0)ALG$L-U0wni~YeA^8!=|2i~Zl3Em+1vv(q^`Js?BnXCO3_}-LT-20V zp(e-*H62zc;y;=L_9ODvue!)vP$Da>(6gEa@(HaA1WXKLQg8&Of{c*9N;5Q*%+)F2 zsf{1?*#=1p+2?JS{sPUy=G*u=7275dpN!&+Q)Z1Sws5zUrJR(foDzCf{kpWPQVeQ` z$j$jX6r@!G=?(`dJm`zybd!R#S*TTqbiF`okb7sGimU~V=j{}n;@$Mq;*@d< zQXy;wsR{^y(ST$*$shd>QFH#T7{to)a17$j3gXsI5VPOY9d6rzR>pXjPW7J}V#+Cq zsaA(r1q9+~K(d_YPbhuqC(2tl1!anNlDCc?RrCHoL*DB1f?hWVlypB4jP7If^S1~I z?BfrjSL=(~!Zda~w@TV>8Gp&ay4`u}jg=`60?rc-uXa2?<<^_5Xov)qGq&DTAVF_P zUqK|xMi2zNpH<#^xv7)9RiP)uS^j_O6l|;h_K#V@8oh~ zXYZ={PV?h@4CL2CczNS1*($?4xWoP!=}_*a@vp0Gv__L5?d*m&< zr!|4$vPYe{TjendNpgywJm36yB}LSxV^j_9E|111osi^uwev~%%aTb@@da^yL7bnO zIDf&8@Lwd(XUWhFaeh}%ju5A8Gw25w1yHSQHpE*u$M|UE&{zB$IZF;UM)f#3@4ZLc zro3fd!r0kdx-msG2{y&qNZ#(XX4;A;TXh@BN+zw1Gt+n@Ns`2+S?TvFt295KBOpc= zFG&JAB>7+SmS!qNw+d&vvXB&AA6p4BgQ+mN(47{Ef_=9U>;fT%-w~B zWW6hKyDRrJ7Ln!`#0!mGYcQ;YLbXX&sTgB|`Eu@!o)y4r=j|2ay4p>4IE_dD{AOEt zoiZDn{8fx5`-}PHSH*m?Kjvj83-GNr&g#Ja5si|;3MbeR^+)5GOV_h6EbOC7Vm^dE zfB%P74}cGNJ>EG3Fs5vSZQGR1*?ojO*}E2_@w(MDdY3bMCpKpemDpx}ZZZK>-dv-% z@`7t?ReDG=AB|=ntP(GopEE}??@*a#X`l^@dDYu2dA8yUPhi7tUiEK8P`Jaga=6yk z@?lA};MURRz1w2PHgT1g*LLm0(Ys3a59f~O#BF6*fA3)#S`=b9Pq`UUiq}+57NV7D~Iq z_w(f|(k99Upw8^g1qT(jy-z2AXY=#FgV#wdEe+1Zc2RubGM+GMA>zi7^EuHkPA@sa z{k!x61q7FO@*wFB*ZjH@#MvAq$J`*V(6}q{lBi2qVzeTJo+AySLUGXz*@zlLirg>H z{koI!g`GCh_w%P$q}?KWi_YxUg2Pe~CDi41$D#yX2ukoO zazbj?_HoUWE&QTV(L-n2Hu_^1;|KDNVo}P>FMU?19e!wWVt) zdc5ud%6?RQ@2I)Flz=CDvrNzR%F?Bpx%@4ac;5WnLj*94agDBWWmlV5%~I)VF6(A7 zl6jI!WG-h$GGm2G=Ie;6sVs9mGLuvF`OeAnaBWM=?vhFi)@F_^cJEY+4I|4{;>!fT zo>`Ul(bcw+#^IQj+Y@WR!obzjR}LLHeeBSb>E%Nwa8s_69v^e%B4-&&NoxKL)aPG6 zHUB1|%ESEIQgG1b%}Kz3>-jMB<;>m24bHC7d^m{y`ga8U+}&cg-<)+0t+konwBfV7 zg~Lpq#63z-GgyV1KR4q$JCv5?Z(EV3_UWD3&CDOVTkRaHHta+@B@0u^0RyHcQ6b3M+GOSdPj(v1S;_v!ravKnpsKrxlK?2Y z=`o%%)M)K-L-1H)KoVKcXMN+7)^oLnE2hPQF6%lKMONibNYwS;{+ji@X-u4jOsB3! z%t<;WukKbp;-+R4*@Q8QfK(3O#zjz^Rm<1BLq`>7>*CQ;WTA??;)J6)N;tw()ohW4 z#0$j?0uI)`RdWfrE2fEXG^&Gego&xC9^Q>!FJpOTX&LKC`$VK8{?YC5PGj zJDLp+;5PEbW|eEFN>!@g-K;SWD|JJ)uE`oRrn9Ip%{%7?7_eVoV8-H~Ko*$mSYXB` z;GaM(FxRobG!^WyYhzeoj=C!r7=l*U1?HCM0`rwHNNEZP<5TSNr}2`{i%Rl2ayiN8 z@xLVb=<=`LE9S@am1Az1K6VW9&6uxrly4$XezJU%)HhDNxi%u+9O@w6TuD#56K`I> ztavlvFNrruNN}py*u=yevBF@Olz78V68EDdWyi!D<-bD2n76tQ^{J>RA5DhmLZFt3>QO-l;vtIhY6~L+{SS zZHmm7K%(6W|6hysSf@tpZ*}_91^nwoN*4kDI{{`zzyeyB!2((+3uvJwOc$HRsM#9kJEf2Gu{f-Mr-)%9oTfYJ#*y7>Ue!o3 zht?V|-8d3!k!}V-zsNTkhJ0g*$OoO}o1`n%{L{r7oO$Wu%^?wQfY$uH*rm8YbDVth zP1@`%-weff(KRvgMrZXR-`K|^KXnms4k6$y97m;|#AYNLPol3AZk3o62frx-Ke!4e zGVTbt&cqt1Wced@oZsjYk8YoPOQbHw=VtkQ1>b3w>0{ldd5&^^W~_X`k}!Sj1ExnD z<@{h5xDyFS40UJo*}6+UTPg9VCG5y})bub7+7q!cddA|0I6r66Mm*3X+I*?2Xj83= zHrox+My^Jdan?nfTcVi1HMsVj+!2IW+#mp$&4_U^&m$?Zky0i&K0}X^jZ91ch;Eb;!kXYu>_tYmcZ_A zEP-dp7rG^44vc+(n9N#`w0?Rw0BN%@D@?+MVMf5M&1yy*QVu@dd|oSGU1AK3;tOBT zF1h3bW8k9}yS59%eav&kHa7u_T`}OrQK2&D?WN3v=U5Z52gbtbXbSnT*6r!mD(&S% ztvEZf_K@7kIv7|1C|_g5`Gy2x0_015>0*O!vxX93x;apAo{CjxBaE zKrX+#seHz9(oQ(DW(DZX2Vd7aLkBwA|Bf{5e>rH9?$5${!k1Ih;12e` zgAEE1`(KN){|&Db^WRXHaa?q(`cUaKfL*fG0R@@BV?tNX^1amhBVz6!zd}zM1;_ctHM)_z`pkUw|wlLb>K0mo$ z9^?DT*M&FvD5pIx&6e-dT-XM`R>VkqwBm9efmzq8T5lF7vlP$K?SqG;sp5YC8oaW9 zmxoKsp}3RcYoxeKdrOMDDyFALY=n{6DqY^&Ga!sa-RhT*!-_jTikJrhEbi!4{pu1CYr(x?9{dD%j0`6t(hv@HhAL)1{8yL%iVS=g`(gPa#c`su z;&H6f0+{c@5<~F$0g4@G)jPAcJ28e8QgDj6+82?~4%3Gv2Ar@r58ue}DQt;xYJeTt zM%in_{8;kfNCC6!fN~9k6K?EFIgtCEwMgp1g4ksk59>CxRK`-PtaVbb zm}hyZwMa$X))jUb^KyH6p>>(?>81Aa2dvNJ5PjNSzQDSqoDM|yuW)|Dx{_}zKB&xt zF=ITIU@LjQ(Z=q)#AlO#oOU1M`-B&%NC8Qk}|2fzUi+!&> z@qm~J8>Yd|#06rhwiNg5+GPA7uT>Cww54NG_!>$N-YJ!6d#f%bQFYbvtEsnFVo-0R z>Ugqm>X4Qr4((vop%iECad+aQMrBxSju5NONQDv?YfY&$2V>uGjo9~!`R)Ylb{n;3 zqUW&D6@QSJ&Dv9Ub7_Pa_S!WpZYhD(R7d=hcuzptNepl60wh%0Qmf2wG6X^a+(^=D ztGgsNz4PQVrRqqpx)Y>7#tl$nqiaiT!JwDgjyqDQ`$}6G_EagyX%BaRiFt8dh^2c1cErlq_oy^( zPpz}n9RuFMj?^Q(l@G<)0y!qgY;UKsneeEXJMR;dXlL=seT<-PbgXdTKgS_gf|x`@ zWrcLwY=0k!@3C>;AN3#ZC6>oW=+y~Z>MqIgSjh#9e`j)NCnK7YwLwgOJtA&);%FWD z1Iy6ch(V^R!%Rxf24<(Y61nJZwG1E+8MnV!-mY!VI$m`o$>F^>?9SblRo^MMJ2&XH z4^L+YHSG6Pj2p{&*Q~6ix3^_7XGp4dlhy_hQ!@vGLXIdw)ek%BC07;7S#Ci+7m6 z(!N(&t{OJJpT@qoy~m;}Fz*e&C)T|jKj?`gOu(!|6zE{VNZsY69`ZV^v;3rMY zd&BQ3>)vK$ZzK(wtm?F^qjm2Ok^JGM&ti| zVc+||)V`NZi8wFvF+B^EjdTme({OeoebJWtn=tagRzviq&_3)Xed}nI(M|uvzL)-8 z*8cZ2yAyxY_P=B4Km;4H{(l<#lvcKu&tB>ijNOZ2-+Mzka3E)ieAQ>1 z9>z$eec(tvjD<`4u%UWb+5hVK|AY3wakeorsWdL6?9=(dw&_35|H=r%zL$-$4)WIx zhJ9}rd*DO54Q&^D;1Be4WfEDNqr6YV{I681m!FG0aG6x~IoShG)L}+^Q--SlVSC^v zF?{`>VGn%G=V%YSRqS^^M|g3k89_jj}hR`OR&eBgBDKWq;iJqwLh8y7O{gJ1m**at_B ztm0~o`H%U+URci23`1IMWrAA zl@*zlnRUs!Wo0#`sg)*~m6g@hwZgKZvNRRv|E|5)f#JYt_x`Tk|8pOXZq_;PUTf{W z*IxVM?6c3DhDa#EMSzUZ)cXI2_l1pE(mvxWnLb+6Zu-7(jfB-#GU+8uO|xq7RKNF! zo1MwGyiZ*3P%X|I{u69~ZQQuYJnPHu=~!Vtqw@|2Lo?2Mm4sF2ZTdd3bY->At$%Nr zzt8qT{l?FdU#-|3M_WJfOP=Cw;BS%j#F8WN#fR{<)q_OvMpk!hw7yQhD$^D5OFng- zCqB!TDK5gx`h&)ljtDM39u&UVi)XFkGpu5NV(A29eCZe`eYR9=N-v=u$uY;ih}Z9k z!CR1V*PO&lxhH9V@{RuclYNc99~69j@lJd{$YWU^7G*Kf2Ib``QTTpP3brMmpzjC8 zUEgS1atxyB{W}Hk-ys9(J8Ad-&KUhiF(ng>;xm-{(Y3_~jfk-7YhteYLcDiJ8xA8H z?_Q<%1l8BE{6B{mUpgTKTj`wms&x2bdVvIY!C{4+@xhJq3B#7@mJJVDHe9!3xISoX z`TXvt!@FP-afVOIcBi+2Vu}~wMWL?rW^H+=&w9}ld%P`*N(iBMrp12M{`i^k2_e?k zztZ=6E54)}-v(P2hVL-cU^~p~^ck9V_=JtvKAO@kJm&So_-+lpG!s)&9k&cWMvl#@ z*jq}QR%;@#Zxv7wf)43{=n;YuS|PMXXhR#M+R_H8FjCSUR|a~~mUhqLqcokaMgHQW z$CwhM#|-vWV7FQE4MhRTUYQq>`nLzr#I&xP1&wd zcgFg=QB$^#>RxGowwiZ*b=X{^$zfql{bozQ46-Suo1yaDSCVrDccU*O(U&1*9UKnA zu-R1O-QRCg`;7V>OmV2W`tLJOz^-v@7RT$&Vw3pq@O*6lc6AW1$Wc4MRe0IEIBC3h zd~|u|KI+SMvk`kNHW*v;ec?-zae+4n@ZK6u6lzWQ4S%KN19TF{KEsO(#cxK$T=Qd0 zc;b&sepoP}(4t!tiE%Xn))V!7tYm0Arh!4>QUlC`DYhxO*JmHF%!k} zRIIuE*^S;mz%bNrJAKpvJz%8ptc!xlg--kZpaou>8PxF6Z!-@=!tu&@7#c5zA&VS_ zzC=ZeVQ3>xVoEJW`p!4~v}jxEe@i@gzd1&JH`|)NOME(8zlT1ZJuR-}4b{u&CGb8o zD$0i`cx#xxcir)dxV|Yv?C3DV?IV^?gOBx{HY5#QXLuT3ivFm4z7kYE5--Pi*wfs8gge(|@cF`cTD@N~$DX|#oTMUcqkd^qL#0WSWzLb184{d-NWn|+)Xal&^PDZmw zKECu;j6)WTLwE~}UbVpQ8H5#fLBCv{GRTDQJq=qHv@8bybvt78LE`rf4!=kCpwFBO z9)V$48brgAt1Eu$0FE%a2RTA>BhsxHk-ilp(sBH_1`S6%7QN2H5f4MhF<4<}5u*-h zlOcy*n-IfRqmk+-e2oobj%GX}UJOWhvw{Ys_~`L?LkFMNK|UYpP9swyMkRq@;2C5t zoiGjUbC3t6#P}5JTRo_f3cS<8gOP;?Ba0ERQu0ahR~U-Wk|#nJ8pI%bNk@Fuy-e5x zO+LmqzKD`e--i!UqoTgL>Jtn_c?+gD9*P1q@5Pjcg7L}s21XwIIzkr=Pd(u}ab0M5 z>Pf@XmyL&~5z8~W`0!!so^p7)0mIV`VtCSc1$`$e&`TMOSPO3o;5~U zl=DJ$oYHXC82^w%RpTtw4^F|c#oso^-%Te803-j+JXkfUSs|y#& ziV0DC`E#O7^y+npFWD(N7n&ofs-e0r)#XG&(nw2z!JXrF2vVFdFt@x zyznKC8rFHafG@nVrs@ zbmqiav0EsYFL;D6euA!6yo0~=?p;{)?=^$otMiq-S<>pCHyf3j<<)h*_>%24T|w#B z;ZE#D`{MV0%3a;?X8ap9+Yp1V z3C_eTRc=JT8ba)sz9~#{mk0HC>;QeCZ3Ey8Yrin@j!mH%zmiQ=HC2AM3Ej}nR-+(I z$KmO4oC-=K8g=zX&2*7~>mj%b__iR@_x)2f2eA*;|MwJ8`?yOlJ`z%Mbud-SwwgFl zd~EUp_+W^5rFZHLemh%nQ$=-$d{XW|wU)LIU2Me6Vt^hbdY`rQ+Fy!s9rQ&_5?;&O z*=j4U(7NF?+e4x~jZ}$ziKJh`b(pT7nerN1=r0^P)C^hr(SL9kWA($!V2C;XwW`amVS9k#YOHP2b zJhlzi6y{vF1FmyQOu6 ztODq+iH2S)>^0n4Y7Matu|~Lhm3#qj!0!ds^w~wS#V3PG4umhBhDPvs~WAQh*aH_TRR>UO2o5y>trG@A&EVcNY7&Vnx7(nz|`0jiubRouC@*%|x{t%68 z&G(l}p+t^)m!h8X*7>ARtD42F6y>dLB3}!SP)C8RtwGi*khNvVnmeInNfC1H*R@%W zqgyMrfWtys!DT_VERaItbX{Cyvz9`UrP5k_Yo!9GghNvOw5sWZgUe()@Z-aHGnOeSL-D#nQO|q1gEmDrM;lZgJ z6h;(f!RY~OxuuFSaS0?U5Puw9M6l>0kcB^fs`I_I4c`t%z^|I=tff;ztfiwOtfl!z zYw5fwYw0YLwRHMmU%uH|niT2RxZzKt&&OQ7bmAmoG|HT{1hOOT85r8SQyxY8`gI%L z5M8jk&Ij85liQ36e)+XDh`>F#C>e~iPTM3bYRek^mbhoF4SyzdTZ3v?x>V6zo1?Z_ z(Uk=4ON{m;M!%I9jgwCkqYouU|Bx8{dtx-2(Q&-~{R*X7IZEx_xPY%Fes;wpOSxY{tS%rt}=>O0kM=e1&e;>8$oz&9+{TzM> zxg$4BwU+EhNszsOc?;TS-RVK?qRWH(x5lfG){-wLPDmP;Y)idy%H)_yF_UXHW2PC7 z&*8pNpVPw=kx+O$kq+ymYHJrPtbSSlRo5~x9@5X7IIVc+ zER){Sv0F>U#7e)mW~LXG23zr};F_k^8;oB>w7z~=hnhU~>ys*zwPaYg z8v4K_EMq_?FRtg)HSUz`R(f>}*@}yg9ZR>^MoKxVan>OMSNyi7b|=l>>xF2Iq;w%)y9F1J02Cu^=+(q5}g+{hJRANLdZ7o<#e;q8*gC5az8_!*^u z-ZObX6)m&FjSKZieahsi+x%rAs!&fF$bAYR9KNct*cS9nXG-vT$WVGIjS|~};owYC zZ6QShFNT6Id}nQbi0`e!W5_a0`bS9+my=rkNBDWFo%C=*A;|-vlKH2#f8tBx0;MAbUG6RSlYoF{&dgpgYma5J8_I9$zmHDYfb*3&ga6+jl$~v zb-rIQ_4L=ToY%Eq-1r$cFS~c+%ez0r7AB?fzm4M?|9g4k%RfTFXDYQNjh%oL$Bs$1 z#3YQiOrHB$oo^9BDS{JWCc@g!>wH_ksPpyK1i~oH*Wg;dwTK^v@Er8)!e~vw{$;~C zUE6T&MsOljXyR0vvr!N99B`iYRpy`exm~Ay_Bp40<|2f72=fsZoc2{Cz5?-1#M=;W zLc9_2M#LKtUxj!l;%$gGAwB}}3gQ*SD~PW^ybbXt#77{$_Gajui*O6Vtwfh_@l$ zhIkv|YsbS*QxG>5eAB>xBY0Aw$By);Lw`ETl!0_-Aip!A2S4zq%!2Gq(2rll@lFH= zc?Ghz8-PK+7V_pa=!Co%@+Jp#LcSXE#w_TBya)0TIj4OK)`1#cmuLY2wy=iA3=w(3bI`hHbZt2!Y;^8La2dU5kd&U8puW=Y=Nv5;Q-_^ z5spJ{8A2q&2FQ*Cicq~46ruWlP=xCHKoLCmB0Ypk$XHWFbCWFryQKsFL#8Dx(`E)(JSJ*Y>>UW%{+vIc|| zkToEzfUE&w1!N5fD1TSRm2wuqA5xkJKBX}We zNAN<{hTws$iR9-&_7>>46?6fp8+0LPG3a8@rJ%QimVhn?EdwnFT?twN9V9y+=a6^a z1`2uSB2dUXmw-avxeOHY&QegwJ6C{0-g(DqA59apoX%udL9DZIOr9&b(CN&}cR4aF z`T0YQDVYwVD=mMf!)1)MjW=c$7<2Pn#sZZGvSad$1(|92jtpaV*7W?e{47U-@n%Q9 z!#E?aFgL@Pm1}fC$HX+3BY#F(cDB)(pO@~)D9m?A*|>y+KhKXW<>edGT*mCYw2Z9W znZ~>s#_k22Fn;q;mcy2pmFtRe#plk*%FS}k9cmN+iDfZF<;ZZj9O)<~&26OI*b&2% zv*tNOx#M%w^YZh-V4RbdT}Xw=H>T&$b-MD5U^7n7&P%_^SO9L-b}31JMm9Djsi~~R znd!)JeV~hnNN=<8g?oGLQH|Hk1(p-fFv3VI%hEZdIfQ{+Exy%W0)VR6+ z#ke`skz4P-)HE{Y=BDLjr8ju7npT1%ccv?oGu6}`3tais1hNH}DwCX^mhDJN%VpOP zm&WPT5(|v*03%mQK5?iraanVQ&z<7P&l5?-VVpkKI1daB zZDmYhcDBuxFC^&P=%hx6dT~%)HSnFWQHbgkji}yFho@!4L=${<9d4)4GjX92-y!^SM?UGcU6OBxWu|HA=$5q#- zFt@X_Pb(}yrKcHZq-ABp*feB`I69l-$S+_=YoxW|LhAP) zIFXPvK2>+VV|F1rVk7{a&{$whFT}u->&l+nWGHP=>USpfv(*#RT=~M>00VX>x{|9ped}63u>2`4dhXUW;AV~s{hD_+??8aOzLmQdPBD%M(zTkT=sxN zMNYHxFg=ldA|*33A8ibPD>F?_RWP?v;~Vl{-$xELQco${OH@J6`m9q&SpehkdW3d>R3MK_)0 zCyw4v$g5dFU!ReegEmS|ju}~jD=UW@f^m8lW^!T>X_6^F0Q)1Afe2;%*nw~l!T^L> z2>TJ9MYt8=1j0`UZzA{~lr|kIl~=U(E|0V2pYlydAnHELar!LBC1*Kg>J9l-%c19p z|F(VA`~{-v^KZW8mz(n5GzHDP>hwoX&Ut&$TeqH=JhJww{p z?*5N{{qyVt(Vc>KUcN2z?pF7;>EQnA`ztmVwk_^;@g=!aDwD4H@Y$aK?6WxeJ>>`E zsb{9ndgs+4qY@_Vt^R4_$=JkxODuorZnF)0Xv4Ti%qv$tF!;Bv&wtV-!uRXGJz?h` zNxdiT!tIYQxHjX4iwf)u#~$o@WyP`)KW^#x`Hk&9_4XYa8sECxv^U=0H2sdd4$b{` z*Pxv855_!^J>lqgj(Jaqyj0Y^cjw2R+fnnG>$1_WlrDE(_m3G?{qKgf0TW+b`ug7< z{POsk^Rhl(vHJc?Z$JF*_^2<+9xiGB+Bd^9WA42=yej483s7@!=ojlovxByjn};mAX8X|A*ITb!K5X~3hJm(0s|M`ve?jyl(|vsp_Pey3z5BW=4)y49d1lv* z#v@&NU+KJRbI+qu1FtUX^-}LseXeu5XAdt3&fjtKvN@w%VTJE5sJJcZ){gT(oV%uI z%Dm3Ee4bsIGd-_c?l(7Wm^CZ2SJscytJ3q+`rChZY{{56W7y2oR!_Wcblj+=V|R@S zO-M*wF`{~82TMxa-7yEu7Z0Bn`(TQ9eAkH?6CO*hNxIUOJ?`l#wNv{}c1?QzhU3$Q z-Z($?)h`wA8(%H{=ZJ4YzJ2@avO{BjiuiHgk<~v;sEIuM$@go&yRpuA>Z{Z1eKSr( zo&4^PO~-S8HU08S?Q=iRIXd{a6UVmxzTji?fkmHe|Frez)-RTSw)>#rBio0o_V54T zg6c`{-S_^%eV4vz-@b0gp`AV6$lSK^^&_6%?>OJyyzA&&19ungd1>#dcdxs{T`_!B z@SQvEUUtu@yTVq#`%uM$NozYk@Zp*@_fEOL^L?L}SC&m*(QV~7%QuwHD(SWC$Kt9* z`R@J;e_y<1$-LW#Ej|5&XM=8I+>=Y6-u3s;rxG@;c)a?t4(n4My}RvG(h6n3>YtSJ@fF9_LeiC#8WSyY9L2VD!`8uN$^?;^;nkwsj zWuR4{2S6(xuJdI=Z#C#L&|1*7pb_ipd}egccF+{iD$q>O%10m%S_`^?@JH)>M?kAV zm3GJ3xt=@nq+(e(K^Lat5o~-kQq2sr2!t*mw=TlfS2dxBM4_XVl z9n}4Fov(&)&{Lqw-|Ku4?SX@K1FZxd23iYh12t9E`HDd8pld*@pMf6Gh-d43$3Z=y zMhrIQ=V3=sH)s)P`37U)`V@2$s0q&r=Yu*yD?#0$lg>lBZ=u|vPHf3I1sZ{U4iO!Y4rn*f z>OIf{>e-8Y5{?}@&w(mIOCA`O8{R z_ot92`dgi^V@H(lbe%5))aFBeK+UbN4hQOPbJ{n!6Y#cJ#|5nbEd#9ttpu$K#ddO){;n!~YXOxNdO{p>=N zA2bTo3u*&3U4V72NbrH~2epCLfZ9P%fjU7WE<*V)gdC^|bQq`^)CO7wnn~A@Sfc|~ zOjxU=YcuqMM$E#xG-&l|tY?9GK|`pWVV%thTJ;R_4O+1cYs{dPpu0egZ(_X>6BE-8 zqyy>(b%J_9D?n{KQ9e-TF6bv5ROyWCx3K01S_@hP>V6yR!l0F)+d(~`2SB}`M?jT# zAon+<2ig(T3>pP$2OS3L2DO1!f@XkvK#M@Vpk<)SZqys75%f9GO3+=P9?*kCtFdl> zDfH}zT|kW=Vl5fe4tfyO3#wcOxdT|Y1yw$QJwT11m7v~(Slc%O_riXl=C4tnE}%8w z>k7UgY}f&<)cJfN-H;xr5!Bnt=ks<4ZR_(5z5+Dd=gaH~z79TL)K!q{?ei6Zxn)~>CwVDG z2&xSC`TBzzL2185r3LANMvU)_}S}H-T1y zdO$s(M~IH``AmJ_5955k`Jna`pKljv#dx1D%!K@dnn0Zse7+P=52zE=guN7N=o<6@ zsC^Rh8;$%<_WA6fm7tZN#wmyg^``lJ)qPRSEa>lt{D9Vi+OvW8M|=+W2OvHdZ!3US zf*J<`2epD4^N=p689S`1LG6V;U*sTM-|6#B0=2L8`IZgA^`nr#2Kqt0p!N;0&vlUB zh;m;K9P|LF7u0M9{v_-KY6q>L>nh|6)cg$W7z6&jus5jZeV?ytxS}W@qQ0@-=l%rc zAA#%7P#!DzLAPL>GJgSiP!DJn#vw1L75#7amyiPu{tEeyfW7|-e$bCVt3faP2K512 z4jOVEc3gpW235X={XqwU#?dtnbc5munwO*m6-5MH64oZ90+VPXP->FSyX$bi)mi<$8<3SQZ>-h+5hz#$YOLtt$vM zM8z14h#PK*7;Xr$v`f?=aqSdTol=3&>z+Da8tDUXnJ&fahHZ)tFhA*#65Sc7RkvKnhJA|o>MaqY&4 z(!{C&M9CHjuv;~Bea5<0lCBkGi}K*%hN!YuaR$@U)-i^`#ckpYX5Erd!(bptWw@VZ zMztep1>J_S7W&-Sv4yI{O=QFfL*%INb~lH(mFq9Q=E{EE(9_8J+YY`=@L|eRe^A{W z1a4eY=R;G$#$l?z1cNcn5D{w#5%-<6quq>n)dw)dC=oi80~oqP?C~}jCxe#`vT-lO zx#7DveE(3Db4}8AaIH!Cpr8+Ivk2Dy^qekIa zF@})Q?dBUIW5p?P3BOzmxeCZ(Xr#PEjOBbk2YeUoJe+VGWS?EYf|2hSfk^*72#m`2 zBVnTaNK&^iRHR~Qr%-tn+&G5ai=C8ojx=<`;o>pv6f-V6BhHMtXSlrV+o-KF@(uQF zs>MLqg^I7(0XvO~w#`|4yFa80&$0ow%(*{eT@w+y%kIGVaR;_$bU<%=l~@r~Pq z?wKC)ekG%MN}T9s_0HP92hw$3-YaamvxE(<)dxb+x=P4{urvcMkXkG+Cn zYs}4kIG6Pp+rG7>TwfMk+)5W8ik@RcyC_7ZfUgF8A5vQW^=;Cxf`?EWMvcd`8;oc- zc-Lb7{y5J4d`h%;9W{9Pgy=6~>dQ2e$`psNmGXnRei)@=2@6%?BU8AV-L6oujYdv|VIW3!4{n9E7U=1Lb2_N)L;^bsO!$TH z9VZ-PWV>Yepb_zd5#J5>6BRgb@U4Z?w_q>QI}JQ^57L2na1iDMwiehFfk=#Y#nu2T zV2pfZ4X_m4mk3$-Wjy%4KT8&pS?#Jj5F)o6qV@+_~>5eD&iYQ z{Xq)1ZbhMb3u_JkLp*&lgzBP+zY8D1c#Y`6;0<11=ewSH{rl;W29xd~|DFIfM)}N! zOa$(o9>%$1rSx@Hj3?W~DGe=XGs6(I8hmTOS40h@p-)EZ;y#%Y$d%(qeWxtELbk8{ zkUxNXGwOS&P3NJMl>QOm3hvb|pgiY`^q)nlquWj30Sz$Oz9a4}kAn|Qrv9M1>jk_P zIH{q7Ff*_t8jQXeS>q>9e3`%wX)yZKq*sGg06XZ1QGV6~JK%=_Ql=qn1zu6@^ObQO zG#R@_8_Zc6Gg;c{5&(_x8_r_dmxLD^a3xPdf|e_3=7~kT(L_jrdy-Ki)rnWSPD=SQk%B#8V5NP2h?4=gAf- z2$A)VIoB@mv=@l{L-o)Lc*Q=SY(E@FV@MouAMoRZ>Cmv2>R>4JA-J?7?sAM_n65SC z8K>kE^AUF|;>hReAglt|qrfl?6$fGKf$ai@scJn&^TY3eiE;oXU*8SPh*0x*|r00nFztCzmP3;zP)7k>4pfNw_u#(c?;%nJZ~9ku}@|$a70BbbY6!Vb55IF*Q^DA|}D@eYfUul@@jlxj=pr$Rv z%f37cgHHcf>wE@?(h-F)444VnIs$~hig^uMoi4e4m_zEsn+e|M!23yKUYb1YuII(L zL4Lj(yqT}n`LKi`^cKUX;I`r*dp(EvU5H0@i~fzUUBI^cVdSp|fq8(@xiZ#3Y{Dmx zvi#Qsp!B*A<(!A|84-r@$y4X+hrY$HOjdCHT%XU_c8V3z!@ygGwVqR0OCWnT@f-j7 zu1(*D{HE!IcXT@%W0yf!#+O((qC$F|i4aUc_mcy+3uGwN(+v#1p zW@E;}++tkIMmpwNjG5d%%cy-W)r2n(a~&(%sVEeTUL3qsUq+2JKNonr~Z_(}G#W@{>)d1`Nd!3J7c%*~+=2O5t$Lf63 z2%vV5B-;V;M?yIGIJYre_o6@wf#rkvLw5+u}8C=#zo|wx+P^sc4}oqN{+#J1cRxq@hGz1O{#ZN7tmFD)%nB?+gG~cw z*I-Uy)BG^#1r4vzxg z0^CD4*0LtC&Jz3#F1dn3gnVb*e9#)SnG)uM^!5i{)Z?`8&7LYM(@OwuvSBaxm5uQX z;0Lg8Q|)6YmipcKz-d3Hks{EhV?`60u~MJAH+DzNQr${@l6s=cE52Mee%omLE!q}e ze7SyN(6+?l%hSuQDDSbNyKeWkk-JCk8Tl^a8QIDR<@XTMS%$rykBfx_05}Lg1>AVg zY2T-!hZL}|dq)hs*5bzfM-;IA8ydVjBN2mC`Kuj28F7%b+WG z<7r=8*2Q!AMt!^P22IzF{*LAg+aY@ZvZJU7c%o`Ige1v3MmbMEg!qsrvDcg8F+I&R zgiKW9$sdAY3@hUEC?54ttfS5_z5ZU7U`nSK_$t76DdjN@Yb6KKU&gkhTT{`mB~bh( z?9C?up@)Xs7^#OlMjFRl;5z`mGU97)9+rSvQM{(Ce8b)!BF{lS>M88!W_ka6&v;A| zuoPm%@P`~=H05+j?g-?Z|DqhZez#7TUqQ}D>ER%Zo*V7gU;SO-8te!#vj$Txzj-R;28#lg0nAMXz(F<` z2CUkTuLzh8*g;?ljYX*2GPxd%dx;ga2D(zN2V)I%Db_&k`sekA!8_0m z1J8cQ-*HeIFaewP0{TP()V4Cq5P<@O7y;39y!nWC<6QbSwI#bD0;Qt45L{4kf#(2t zj5sG9w5CLDrVP0IMeKX$K7ef}`T)97up5l9m7jggnDD|n*#U6f?ExZ?7Ukm<(sRDl z;B$bK^%RH6Q4w$t&0ADEu9WjsvF=Hk$umSDGe(p<5*5c4X2yKART(;N{S!fFjGuPK zSl#F|MyvVUihNdVMgGrT-!TUBl)(OjSbtB`Z_)i}-VuR0DVt)iRtD~mLSBQ<@co78 z+gIq}?knXp262BKXK?Cg>dM;c?%ZA0Het8^jv#{x7LJ02jj(Venuc(q7=sgcI<3of zEA%Ua(cPVuM>qLTFa=N~_LOzQGvH--7Ob4z&M1T~EwD)_?|x0X;7@bvQ-cidpxMxl zH3pP8K!?#t`x)|qHjKJCg>qHl*|viDbG@IJQ@u3ltMuCqfm0pqUnZ(_9G%gIr(J^n z;&b!`)Sl7K<@_cw0{u?s_FlX{esTL6{OuYM)&LwAKzIXyj}`d3>g?NM_72}Y0_#*e zVlYc;qGGA;>`Jo#13Gl~{s)wheW?GLj}Em0_AwH`$5z;CHSjfrlfTv5ZK{8v$$DKQ z+BcX<+Re}a2)jl28B&;9=b-$*JA6;GrW9IX%70z2{uBIC&$&=M?cAu!U9X>SFkHRfH=o?)f-wh&V#nw`43ul#9x+@#;)hEOuG61twPC;l={(w zT`<4OaX(<9PxtCg@o|rGbO+4B%Ga zZn~e~LyZ5xtFSjtjPri@YT#Q!pohkPKYSDE4{NG_JLv~*)aXA5+-7K+?orYofjwM) z{B%DX)?HETvm4fZQh*tOC7kc`Ek=9tdxkkWBAm7tV2^>5_84T+9s_$k9&Ao(olH9o zZ2Cb#q1%Sj6VBnghws6RW3PPDiAOwQ?YRhg7k9+IFsN114H4>-c*@6W#BD$vny)wr z+W>4kFf8SWqZj^e1y&7=_LIr8I3|IRbuTq))ET zp#E0|-k&tqU>*~`Y{)6DJy~O7` z*(`q?_`fB7JmHh;8DUpoVf}9?3$E!PyBmS+28QjU;vm2659|OiEFab%#G3%zl-J-t zW?*)fuM_^$_?ac&OQW6YO0n97g#z5>p z%7**2;?{B4Q-numwCssH+4>T~DUA?wL&yB?KHq4Z({sOK+^vSh$t@vM;1$HP9y}Ys zQ${?(UuaDwRjw=I@fP{bF7R~h;gfq6vD`vyDs)hnaR_l%#AOp8xqG;PZ0-Rd&WTVV&zt`D?T!tbaA=PxDUu)0{K@G$+co z8zJs$ln+0+Db{&JdkN_GSZORelln&MkUI09XMN*OvyKSNiL!L0&>Q{F;KuW;4B)+h zyH#8*XOneImv%vt*77Z4dj{sCv}kE=jsyDXAir9Tbc&FUnE-fG0&NmDjxa<`HJHT1 zCcwnE6?_$E;hP4&L*Uy0KJlCp`SzdpVpJ-oXA(>3p9GxA@+BaL67-5l$-RR z+)MEs&aN9(7HTbTYh4jyUD?Kpslpw*Eqg5QTJ~DDO*TY8j~wS{ePB1_y;G5owo+cM zH=dhy7ya%wf7xx=Uw7C3*QKQU?7w9`_y!L0ms8QWf0&MbnOq3|c251}_7;Dk1^?sP zh3h}L&Z+bMcm0L>+g_L)(z{k>oNLE>tiy_)h(4E)0=_li6XX3k_A8z1FSE;Exf-M{ z`=9%Drx|~l{m5$+T9yF77Y0B=$SWhfU|+Jv1Ytm>>4X zq7~JjUDT-jlL3+dyi&!_;r#G9q_YO;m?>%WFUf|;L@__argWR%eg8r5Rh@;8=7+&U zuzmnOPcSadFhBGJ>Hc08srTr1TR^%7oF95L^TQ12kHR~re`bET^bGUEP0*t_&o)0? z+3ftVKib+6l3xLNE~o!IwaMNbn|{a{Z>}2Mb?blp^So!g5o@INTyUOYQ-EeA0k*WG|I&S%|AAM4#1Zj%S3x`TwUOy> z{93H|Eh1p87%#%RlytO~MEt%Ford!DQr^JFMC?(cC>CQb@$+Niy!s27K5ZcqM;A%t z(|xRC(;6HOdbCeRq$CPnwGfAzF21FhM*!?5ME~GxJnB6shnwvdNV)MwwFV`JdKKc8 z<@K&=ESWrVQff+aN?dH}1WOWq_b#<>?*YA|P0_svn4J<45azi6(L{WY{=|ed|b&65w(bJFe3p+_%PmKxj!4waw-;RAW;@T|uTGux=r1#%GsDAvb z?QHcG1pgp6AWCvXjZDp;fAt~ik?IHj>PF&3QA3ha{i%LT6dBhoR`ens?ScJ3$Mr1b z7vhTKiOTwy?SQUHp6XxvkHAr{TE7UQde5*$GWOq^LHv9`{=DgSp733a-)0u-=gO2X;p<_1-I=em z`8ot&3MYQ|0?FT&ugf?-l&`n*bvwTHGJhCfEAym$d%hmV*9N|J@^v_0SMqfPU+?DY z^Z5D{Uw7c^ZnsGN=kv9VuRHR!`8FBfiLd8#`~`fyg|9E<>q_Rw_J2|S8jio5uOsOT zlD8Jg|8L2jQ^Fd?RYvV$xkM`S9y0sjS`LL`X zjz7WIk+({I%%4TPm9J4e$nNtzHJYdMpHlN=qYoJ!UFsrgc0u|rqZan8}jh|ka>nb!3>fOJ$>FVf0aTUEF zdT?)3|K8C(C9YhZ;h2$DnC-%cu7@II<)<4J1wTP6UPh;RNWsjaRD6sxjlM~$Bp7Z; zU#;7)lqMoHIkAU}DLzf}6)Uf9%E^lv2sZ7CzxbvJ)7GG0igU?Dr(IfKWW@5AV#hg! zh8SG@hmSjccQQ`O^6))nEB^Uo zo4Cu2mVE_nGarpl-jVvubp2!ZbgJn1$UkP@c65=!{Ou!qYBv_efA--syFQHRbjP^L zp-)wmT)TaizNqIXwU_PgzbyU!LsxhskI#tSn(=*-?bb(6EFO}0-3?C|hs6!q+16N#0SvUr~Df+mE#MuDW=0bjqAT-A@KBylmq&89}S=TYJL;hq`X)#ol=og4M)lFJ|ZdTH?X<@u#M z53hc)?Sx~s-;VE7x95_i1K!u_60hu)5Zmu3!)140d(F^~HttHg$N1HPS5HmMsCh5z z?k|oMZXHtFBmbj4eSUiK>jB5s413TsA@opr$uB)d9DBR?yRY&xySS61UaEC&|KX}l z_q^R>(H>LHWpPi=%==)P^XE0xuZ2gvd}&$yoA(^a>G9a)pKh4_R)?E+|GaI{$cKzx{C3m2-}r=s17v=4r*RZ~Xq@$d^Cv_}Znt(|U|w zyvjSi$F=>}j@TOh=(q=V_P*rd-8J`pmzF!?`1;OKgMJx1a?riv-ln;m4r*#@dsWAu zI&pjA^Wpay#Bt=)XWm~`aWd@al(%1aZ_bI~7g)X=(C5;fnfCntL)IQ>{m{SKT(`cx z>4}Fr%>LnN$4!Gy&QAMw%I4?a8gc!s%maBPKc6@DDR25^4^{vCvog2mUBA`5R(fOf z-+x(Ed_3%{HSS-g$9~Z6?^18S8 zcE04*r86V{zGr^+ypQgfw{K`^&%O7b=zA^S3JN>F|({x|i z`+j%-(3)P67caeb)GaR^tyPX}-uctaaZ_CP|Fr*^OFb`by>@iyou5X&_RfndLf@>o zy5Ao!bpK{v*}~3Ol~oUnj=rbjbPwm@@@2aAxYQO17NL=0n8@(y- z-!jQFvs(4)465ZyGm0OFyxUp*aeN|n5{=UPO~Aam%2C;m3s(Y{rQYv$#fw|3tW5__!ckb{rfKG^ioXNA4SPTKy( z$>6TjK6~W8`z~zf>HX~XBXeJxyZn`ZJh$uO%kt(&+OE(4cyab`-Oi7F|6u<;(^*Vz+JUam3YWh1WZ0CU?cV$1#tT9} zGOwDDnDR^B?bZh`dgX@AANfXn+^J~y-d?x7*WQhh)=iDZfU&Q+fzNLdlE&MQZc>*7 zNC=0Cg_v?P#T3yjqVZV^rczOT5~>`glXTFuQc_x4!3WGPV=)bJt4}aBxS9`JyA1SZ?ZKF)3Z_eSsTa`F= z;~=W)4^i}DzNB~u5!@ucK|kJxYUT)ryv)Dc#*8&!#ZFJ5xk6j3`Xd@|b5_%@*KcYZ zuO`(>)o&WALW26s(@R*2xp90W=9Y^V3$$3^oLa#Bz3i~)1IyK|nkI#J!NfryAl8f& z0*~^G$8*;vhwQ`f!yWypZ^qh<+KA`0P>3u+LBY4++pdYFk+{|xJ(2FH0&Ek4R{celDIrR83 zvdm_7ndtF#7xlX?jrsB8f?fO(d9GL5C{^8?!$TBLvv^xY{oakglpbG=F*}+TK(Dk@ z+|K53e3)Qab9j5DVr6rUF5#njCATj+=9oBOVdUO7)uzf;p#PY3+Kbyt5# zoa>eIm5lG3!#gVOX7Nsn=hx==FKD8h0KIZy6P#YX3C6FCYa{4)Cw2IGj`|&;5zIh8 zThbgq{g_d6_?Q5A2Jj$!-N$=e=D&(Ef@2Xvb9(5rH_hP>2EaE4z+Vo4ZwF5KQSC{u zCDHK#LUZXJ0#5evUQJvL-!U4Bau8n2crlkN5j03?sCR~ybb)tLwsSqI=@u})i*fZQ zVwNyot-~_X0HTYV_t2Fqtz;)=Cf@k3bM<P|L4PME( zNrP_z-duiO4}iZD0RK1uekcI`YXICA01rchqW0(>EA8AtnnSq&cysyh2Aui<yP)E33gMT2>4OcQ5$E7&F6?i9QFxySl|9gP^ z1O+JX`2p}t1K>Ra;KP7Zy?F1H`6EB0V`>2Y%m8>{0K7N=eqR9mnE?2U0q|YG$v^FE zPqWCqqI@dw4vJZw|FEHt1kh6loW6p>&6c&`JA(B4)xf!%t;Y?F*8_YqlyUK!n)su} zU%+^k3NY;syg9%9PvvJ|fc#hjq&q$Uo)rLJ7y!RJ0RChE+!Fx*AOQY3a50b4w4)yc zj&Y4|Fw}MzjQ)n^MU^$OzpdbkZZGgo$}WwbNZ`~iJd69Atc z0Cxqzmj%Gr0H<->%ipb0KaIAY@go|1a{xWBGrv+S4dY_}d@BI|A>j1YOPjlK%cu>2 zpJd#w;cqS4Wn0Cm!Ovsdt-(7pUZKISV7yX;_hYh7A_gf8K@3$IU?e{7)xZ3YkYH+pRtJ2_Vzvt25YQI;l!PS1xtHITNuU3Pr{hso4 z<9bp1y$B7i_IpMRuJ(H-4X*ZkW(}^k7n=q@TfgUdrg1)1|Iy;A|5R)ERsZp7aMgcm zHMr_O3N6U^9jgCCXmHhkj2c|^ACm@G{l~1q)qc;W!PS1xuEEuQ&#A%He$TDJ)qbx+ zgRA{sr3P2~y($f^)}u#*FF-%p-1t@TFXE2{;D0j!{$&8XE&zV6^x@SD>!DFB`m0KYW= zzA6CzcmRBB0Q|iG_%{LYlL7E>ER;7_-pd2vg96~A0^m~v;5h;C+XCSC2Ed;UfWH#} zKNJA33xJ=8&uP&8NabniKkRPG1&mi|@V_zc(cn>xS8MRzjC(bBf5vMy_)y@@)z^6D zw{_whP|oO$jN3K%OvarW{5HlbHF%5vNQ3^n{^K6nxL#EMsnFo6|5R#l)qkoqxavP1 z4X*l6wFW<%|JcVh&Zp`>P7SX5k6VMQ{^QZ$rSPlf{Pw{B_&);R|0@4G0rXI9HkThS z_-VW_@_IFfMR6Pxc&M^N^Vys>_-q|LH}TArc2l2FUMfCk*GZ}5^&fS;=vv0D8a!F( zK|dqE>Y~JPx(>#@OC{i7JeTpR)e@lRXLKwQc&PGLZsU3^Xa3smk`I^Sc#?5tmsGHr z^}NEk^K%J|VE&I7ue@FYynLn9GH%}|`A@Q*Hh6F&#$UE)N7mDw@rWxWFr4vgRQ|CN zh-Ta@@KB{#WB(-PH}m%<GN(k>oI*HGhW8&-pjaioW$od z{tw2hJ4;+F^CIpQ#w$LP_-N)oz<5N81U_c`d*DHS&&^doIm!H$S4qYM=5Ku-@pn=t zY1S2c04F=o9wQlNF@HbC72a>4eza%O<&wXO9!%p<^FKo94_9oO=L;#U$2L}$>rzRS zbjB<9O8}2E#Bqzz(@C*u@(Ebvv!bWu>nn+Juh0{!c)1;wvHlnE+=R;IPM3_QE|TSxSbW>#ObCoUd#5ml=&Ah?&NlX>54d(3p`Z0Ph*FB z7+;##xF2|c^;8a&@>5vPlZ;o4mKjm~;Wfr1H2q<m6XTzI~-hXzFW`(BH5>N3F-z%wH8H^YJ=08Moaoff}yJe!$7jW{sUkGk+D|2hn~DI;Jsh?=P>z7@x(shtsWN ze2$9WE&1~$QEp?rc9jI!eU)X5R}PT4+P|%3-0qc%SF@fijN3kzcq<-w-dFW}DRH%b z{*m!29$$WBJ*~JuQTJu3e%pm{H@6Gb-}*3Kb+uHWj_>h|N0=q9j)N0b{9TzJBR9X9 zjGOO~{BFh31Edg2(bWd1gcCo*0;K!ue?(N;hgS6DnI-AWz7FD<6g$a;|#=Y5O}Cku9>Gj%lwL2Dp39E4d6iv_R;;^ zRYaKC&ijBXN?4QqfnN*$aAlHa{!=IL4oaM+9xsApQ++Aij#kU$l>v-lG!t?B!TO)q=x+;0B70W#lYEae|0Rr9 zM@xX4jnWDALj1LpB#zq+ar9w+MKjKhVZ4&Z>$&WQGa0vY|7>JE3mLCANx;YWa>hMe zzv_7OIOE1dskklc-@0TEgKkpg{W(_pDb)o&MgsB%m*-^gWt8}~o` zIsZ2^?&SW5t4&$RxRKW_UEHu&se0~~3V0inQVBe$nf_SBY1lf28AO#_gLVzEHx-e#X7`NZiBe{!`VnMKaR;KOHAjT%*5zXIUQ-DV_v(J2n%0E?R+|2o3z_@t` z<5Hb+H{(h&>*xGD#<*L9KQHjmCZB8GuIktD?`OQy!}>WtKQiupUgCC6Hv~5hw*UF8-^RGHAKQWP3>8n3cp2w&zKUz~-@&+B zlmEvUH|KB$Isg9v-lduKpFPa4u>Tu5KVHU-B~p)@)%~XGzeHxx$o)n;+?b1Y#4o5A zng4Re-L&x=hnLGWSjDfE!0(*yDB$NolabdGjEqkc{GrM~O@A_j^?3PtVl49)tGLD= z?q>aV?w`9d|3>Do947O#i}6<(clVXJo$-A_Pdn_Zk+{O;{Y=%PvFA^WNBklcJkR}W z$Ys)Qud$z~^QiL~_wst0k#7JlW8B_Nrt9Si^Z>?d`8h=iXDg9$qsC9BGw#vYXFlV$ z2W380f4+lpvj%@m#VaMhhx@lz7`L;Zdw2ojW5$h|bPuci8vGB&y?3yIc|sO$B)f$w zJv8Hcq`=!M5xlR)EVHEyV17m8KW66lwvz^%&i*`(@#@=Tx(is(EXF-gN_++5#f*Co zOWfW@M%>GI74O#?&F%5;jGI}1sbp7nskl?>L6a57XDWV5;%fW)jq!5!A55FYq3-2A5GSI5Ek7+0oCTurNnaW9uw#eZSk!!O9az~u_*O8pFO){o)@ zhsu93E~y_=GNpbqw>uN#mG?>9$OF8E@v0#b_cA_7<^P@ah*T6Mn{hX{qe{kaQ}rl1 zfxOB1os3uWdW(!zlqVU#g6rMH{I3CzK)KZSo)}i%VSY2$qnRVVWZd(H%%@u?BTlOP z9*NtTztiQ?KHia%v5?zK55^ziiPa3|AFA>vNj*l!M=@^Zj`q!-G9nc?_5UW#{n0G~ zZ+LG`{X};O>#;o~23<8GZ)ki_;0?I!K!)abd4agzq`&$xS{)MMuMlF0Z(PIn-uJGi^lU#YQk2J@TQ z4^{gVF|PQe9iEUxsbJhlFMQ!p$DK`#yEXcEGOqRi4}nKueMaktp8==(HFN#KT;lje z@OM%wPIP5Nl4Gpj%j2(^W810aRp)7pcV*mel6GVFRR%Eb(d6I4_#zr6 z4@bq}1l|?>gZ4SsLgse|$#j2ZJ$Eu*#r|2r_+yNFw@N$P^)iCqo2CB8epKRau9x>2 zH-04n505X088@+hb-X^!xcfSppYiO6;kdsQ{o9QacXPR-7(d2#c!Kje2zUg>*-td% ztcCgAky6ikNtCIK+j#ul&G>A_y%{q9>V3o#;M5PBHP6NFW_~00=Vs2&Mitl0$6jT; zQZs*eSLNsNLLEmGOKy60+8jr!t9QCmFtaGtkvh|n>&Q=YIa2e}ax?OBQnT}NXDS7b z)B;z2R_@HytlTW(C6ek&&!6jb<)vn4P4AuVbP5IO`3@oMaOUNM5oqd^DbWK+cYz~& zMryu@ungi8Av4qAO1;T3S8#KN#CftKEgNZybCIA!=2if%d{==uNu81q9X%7;9T~`M z`b`SOq&m{mva>n9pGhrDfh#TjrqtZLtXwE|q~4sL=5#vp6zJ%0%?4KrDbHK!aH&rxN-}e@&f(>$0Vzsjs)MDUFbj!xNMmm zpJcI(O-iwi27@atpByeLcSar^j&UsG~?;`mf##gdc? zMX}b@#N;F;!;zmgM--DR+;4bHvL!Xy5|faMoX8>xNG4qm4iTUweoTBy%GlACG4&CH zMT9MB?1cE___5954cfEwZl+pFR;VO!9JI)M6gV#*EjgR6M7=n((!rABaHWZ26*%Zp zRD0^o+(MjFgLJ0l7dTMCN=6(3rZ@+=jN`VvY zA3X(lT?MX;^wc?y`~olrZ?{bOw61LRgrgR2azR$WHZ(DiAhH zot~F5SDBGk;F7u^&KJlu#^H?DCt@$%SO+`g1=R%iKXY|noOp_L#XT;aEPfnFuFOgFTiwEuNb7#og-wG6(pt=+yvZ}iP0&eAT=+? znVL5v6?sv!kXSGi@hUq`M><^fSIAImD5k2C4k4S+HjAXvf?F^*kxBFgK%s^dSjv{CMdBN=b=>J#R)jK(kRBJpy%7% zJ$Bt)d2-;MRww=Ng1t2tWLV_ad?8+`pbMfUyLqBb$TJJ2>X`+DKi>Fj3Qb@)%5EoKh9F}&{v^CHGjKZ{7~^k&52 z&)vA^M!kcsn+?a0+-Urfg4Wst1u! zMa=$M%z#92esL)o($IvFJC) z0b~FIiU}4Ufh|Dc2~ZGBD#{$TpkS1#qEv(w@3To-^Q<)Uw4>9BMv6@{|Is7J`d;Vb zwoW*j{gG|1<5`>Qct+RZRSn2MshG#q`k<71eS3x;u;{DVd34pyJUS4WiQlhQL?FcE z$Z)t_)4wPt4v|3172s35g28a|-FI%aPT^Ne2vlb?Y;{PD8mAGa`YpP9LWKw z)Jr!nC-XkC00gWAagzdRWxSrukhd&XjR`|*h(%WGHA?9?~ah5YhigSsY^}=);uM>%27&ZE2c(RT+GlY$fsSu;8oGAkk zm*|R_qj<$I0L&IiHi;2{M;0aeuou%LIdi$CCfJk?%cU_pqwZ95kI2&Lc*4D!>bPV( zpWh*9Wds!_*V5zl39fX6#bvke^uLLTBEAln5kp<3Wsnqv?)s!=F1 zgzY*j?m#a%8jJL~GN^;ZZ2?O*7h_4;olTmrTd1-I=Vg64=96B`~2wd3_VzKf8Wc=jry+|_b& zy-tyU`|SsjJbFAs-A?v&6(jqAH*1kIOub3o8NW24!G4$+WGY)k1*_AdxMEkhJY9VG zqEU*}Vr>}L$V^0J>+5uyZDiDLk|KFWIN%Eb?bH*xnq;h(MJnl>j14L?z$@7-{Y(){ z1a60wHf{K7x+AFy{hBklf9G((vaKR5E3 zn6DXix}a54esguO`g*y(rFm(QFP|wwwp?;Yr7G5UY8Qneny7$e5a(@PWGmRqEyirY z@WiF>G2T=f6|DTu4TgPW@-R}7m+*)9StA(bhuEa_l)DXmEk z(<4T#q?FG-VQ!1rQukdMmh8QjAZVf~X@USJrV0U4QtUF1j}#>}Qn0q0Vx!f>rfnFg z63J{xgBD4g=GYRf2HhR?OD;9RUZ%xmj4Gz6ylle-w9y(so5UPcGAL@NW|8(Io0w;b z7xDUzW?ZUZl3>b0ftjrdKxJ4+b`~qt6NwlSLu1nK**;y%p;88i{yy0$S2U39nKZz;|P|#bi5pyKn zZkA1F=#g@4yMQ<3+B_9%IlxED4&o&tJro`m8Ut}3zdgTvHMl(KyYXf3asZH*=WpEL zl{+5w&Iaz)(Fm)z8up4pHTNz$zfW3-*pZho)i}|%(kYfEk1{Ss3vr-MC8apE%z%Zx>%-)&X{A0)81 z1Kvvt$%$Yn*I#O0HAD#{OC;INQCShOj&tZtko}1;VqFmpZ?@K35Us2*yW)1aeuwxZ zR11+gcGQ%dl7GzFOkMg=C*?*&gKT4j^;^G<;ZNG-4}NLBn6AMYUsg>}VP*7)J0mue zDxwe@hbgo&n=Yu)?{Snk*f4`O7fQ=FSJPGnWF;FR9Yz7rP7QD%E+A{0#F!`MNHgA2C)5;`n~=LpW4VJC z<;d%+Xm_ZY&B-Ux-Lta4lIF=u*mAjHrCWn^^`4w&;6uvM$;b5TjGxa>g85JAU<@p% zFk>HO_aeQek){2XqUR``5)-7Pnz3OGCZ3#ijMAdFflim?NKotGdDoq$cLP?fq$~w2 zoI9B#9yw&R8te>At#*t#YwKt#dCIlI0&FyGoO}J#sEM=JMgy8Sfgnws6kCTqG_L^0 zc;bC1B5jSS=lt?0f>kjf>@qJZkR9Q%*^Fw#|_Os}t;=woTR3 ztqUO&00B*Mw4z^)qgA%1_YtuJA;kH1eyN3SP8aS=Eo9Icc(o99P^d(+J{rPI%AiyC z)Y}#_kq=Rm@MelQ5Z*jYIa&(Oh==Frh@IZ2-9Ae2%T0!aQLrATMS!);<->e`6QNqs zQ_)k_c30Z3QFa579iyOHYF~e~?bDi8Im~9WNgu(quPV{^9K`Kv&GIFNs_)&a8`;sy zP!Yr??~Ew}O%H-yHbe;;*g0zo1v@`3bv007>TAh_q11p@xLa0oEp4dGtZ^Rfi~{d7 zYuqr<5Dr_ppJVjdn&DKWpu~_R0Q6+?CL*v(b=zSV01+@TpmDpoxpxvJJlHQu0W^oW zl;$OrXq7k^Gtnkda>yT~#8kbvNT}-}Jn$-Mi~jgt0~73}(v^CrhUY(izMAA}!iMk1 zj@-0iK1p}S z%k^1`LSphdyTVQOkmOCh_cSyPU_&Doktrlpi@J(MifvF^ZB9osG88ujO2JR9D#}x^ zN%np2z_GP-_8Nrt-n`d4syOrnw{a>a)fpq( z17mhZomF1QpU!lN1F;L8MYh^u%u+@3($3GYNO&h#M74gYL|F~lLofZE&ON7^j zYCnC7vFhS;tb8QX;O%=X*5WbN+Rs0BS@!Wc-v55_MfrAuy(et#zdV4!`PV*5_!l_B z)63=h_I(#?KkzTmehXuWyTRl2I{CfAUp|6r_}h12to<1$4}Q)44{?pS89ZJ#(w}cX zy9a+;pO1}m&To6L&+z;zf7aS_t=h|HQuSx8!)XZ5=VFXM(z~J{@Tzw0&@-JDPo8&+$5U^gj$Xa+v+$sweHBW6BB}@h5!x(_(>EnFC8f_972fY*zvC-r*3Q~fh3g`TYgZ#sz>6K z95A)Ri7MQh^0*W@r&(=pn?6>Xwj36vJ=Bnp$7#vo883PN`=`Jelqy5PzZn~lk2XSXuqc3y5E)gq(nc5whw z&8pZ`{J(--&SlGTSw%+=%r_uO8PhmGbxgtU9)%by=J4y|FOi)>_1TdA`wam!h zwM^p&l1_-GNLp@)F;YXn10uhWx`mviBulCBH}Q5luJCZSh(2k+Oj23yqbNsq{-wz! z1Xqjttop@eHv}aW&EajEi7d*lU)92HdF|UXAMF0Y&O6?|^LrOM{^x5uzWd{kQppeD zM?*q(Qs0!8*rw>EHJ@KnQN4qePI+L42E4rDeEhewk!eqm>_Yr*!fy$FG+ejhw;Vq| zew0?=SIdtWTM1f^UjV<`@N2+tj_Zv_u6gS2kG%fV6OKFYd2HL{nLiw_W~YvSfAkH9 z_xW$Uck~nMX5U+S>iA%&dEXCS{oJ-$xAeXA-GzPEoOf4gPfgv=kKg0F`TQ4uSpUac zlgm%Wwg)epd*>xH)};1d`C{zw%fY=bwOlrM_~oaM9eR2Fw!<%Ti5#h^3T1#F>^7cjer7!N4_?L zoyQJcDg*_2faBBIz?BBzKzT}U@P3=c2K^eb+0<&Ge6epTE=DxZ4n4DmMIH=%M~B7yGtTXnUROuPCy!LG*L0&|e|sS3%y) z&M@)`-zhqHuaG|s|EK=+igtnJ>3@j!j?FdrwE}+{l=MtoWdQ#y@Z~~&LNfsA+na@* zgThX)kpFK`(laFFrT(1)M`!T#bAzyFpvO#pt*Ez9o`pi4z5RWmSUen!he9mW-Pavw zp$-rh3N$x_+9T0OXLl?fi8eQ^=;`l^G>13!M2tN1oKV|fm=uJ2x<3iQJLY@C9bhBP z(Qsd^qd(dkj(7L>_4f4i_Ojk^cOOg`h<5kIJ3?(;A7`DBzDP72kE{;&wfFa;_$uGR zy1ura@a9NExG&rpiLUU~Z8pPw3-imGOV#qy)ZVs_Q-z_9aCZ+(Afq>-rG25caJ;Qc zAd$Xy$+z@v=?1qt5=-==S)tCs!O%b?8tbQq#_z&F3CbFgl(Eiyo@S?Jr+;ILU0b=SMjcB{}!`hsP&q6{0eF~+0hn_@cQ!1=!iyC6Cxow zmLYfz93ceP>nyfRRMy;7=p+!uSQK^xz%{FUUTVQ$cvJUgpYJ9d_k?3;*VcguoWG;L zjvI;QMZ)c&SR@|mP4vXO2YMo*L|;6bz)WZlMK(wJ;;|4quBWF!d`q}H{+CG>N)@X! z)1^rDw}sjU65Z{QL2g5YTZ0L6TT^^d8?`6UR#(;DAKC(uzPdK*y{0%dcyQ3?^UdEB zj&-+TSTXlH18q%lpRcVe91X>zXh94`o5J{qfo~8aR=1iaY^1ksU@KHXen}|Ay#Qm= z2~Ck`v_IN-8?PtdUl(ra3daqvXo^>L_s2r0JHj1;Mg$IT*n%80L+WTSn^oJZRNK*l zNVwOmpwR*3PYj)k=F)it77i?Yh0c2lAQntdT|!F%ztK@}@>nDqH|wvu)sS3ZG+#&unnTUrP+imFP~&Y) z3qn{a(U<)_u{vxIbhKa~5f`r2zo?@p5$lrUEX|9hL7uQpsQA zt(eW-oqctyZ);kJ{frzHjW-;16Q*=qI2IS{Y*zaR@+Yx_(1t-X4%0X?I1p*Wxd?b>+MR3sv53fD#2O(tNB=vF_qU34#H2XP~;!fw`?hPO_fvO`UC+*Pd9v$H&06 z(a~ZSinNF0VXWSpu-ftM9#CI96PxSWXm|kI8Dv@giWQ*+9xtm825MG>=6mLQ7G;kY zcot@leYr!rmGC|ZCm#h#oS^@47cx3^8a*olbt$vLk$a*C& z&&P2($tv-a=jByG58?B9N#mcc;I}Gxqk?}}!PhCcuHf=Ko%EB5vfeI5zFLtVP;eRd`yvFEQLWIRd6^`Htke!y7wm2 z4n@B@GsYAgS6SKgsDfXZMRC7Z!RbDtOuH2PA_;;%t>E%niL%EPyiSonpx_G>{E&jv zJwur$6kJ{#QeIlYuaUx_Cl&k#1t0KhoTKr&j2{{QDylVpfT@f*pG%s8m*ikpso-`6 z_bNE8LNZk;IQfuF)e25^%cLu~oMV*NsNnTd7<8S2PgC$#1;@gbOk^dF@QuLkceMQ4qdE!R56o;bRI;_bg<3RKYKiAm~m7uT}6}3O-B0cPscU3jVZ$ ztG6)56@0cLe?Y<2_2-a+)BS9jjw<-&5(J%4@GBHNt>EI;3C}&L;F=GtT*Up}LEffXr^rze#*4@jE&HI`L)1k8%DL z;%N!U3~~M?;%WFY1DroXJWcsbE9d{6cv|{1jhug;_-VvfbN(6PX=-P@oc}KIw8UpL z&VQYFn&KH3=f6liP3;Wh{A0w^l+K(y3t-;oh^H+vGr{>!6Hik+bBObwBA%vnW}Ne% zB%Zd8%x=y{iKi_ivy=085>H!2W{mTjh^MKa8RGmM#M6||3~+um@wA0xS~>q=;%SO! z8aZD>JWb(DHRo?8o|f{Am-F+9r>UILIDZ}SG$k`G&d(v9recP1{!-#;3T96JiP}Gd zc#Zf8&QBwrrd;L_=Szs6L;N`B-<=Ddre0<@=iemWP5e&IzfSx-;>S4u3h}gsWrjHa z67km%Kfw7T#8(pE%K1CyXslxlJWu-QqR(Tn$gO`wPU#y@zk_D@#<^Q}jOnAxz5@j< z`e@nLK=mc3_2h5jvoHm|ew8r=F4#CZ(cy7kIl}dA+(TZU<5B(-RBm+9om|beXHi~% z?yOx;p46X9FV}7R^uuT46;Svcp>R4Ww9+@U>?-JCiGR?CmwgrmU>WS0uBVp0iFTzg zM~|m<{M%Rd4tN`xGsKYI+5?rfhWN%z2P6z$-+pj#eTVbJ5q&$56Tf^@cV2gx{{8ph z$H9-&;eH$(eABt%`G)PB|92e!_)X{S&kc6-oPhJX1AqX3?726c>-M0`4dbFdJ$V2! zNA$z#;a}VI^N8Vf9727(8WcFP^ZBOPP8{-*Bmul29-xA>a_$;l>tbmQ(o^6fzK7Z~D7J^8D4Jykl7+(A#) z9l&V+_`S(V!0A0_CMN^?$I&s9zJtN!E5Rg2YJVX4LOMVa@Q*-p3WjkQQ@^nxnQ2H) z1e5RR`=6&0(siDN=(;;dT|188M5%@Y?fQc0yuyT2AB`Mc@896x=>M2Mv~f@Rvs7nt zUm*E2D&j+tVDgWsTOWSimbf)tO%_koT{|7_BeXVP0pF8QnV84pV5`#NH3+2xcSY7W$b47gCJaU;%ru7LDpdX~tw~}ueoe-tF1q7#7?@gg7ZKQXJ=wW3XXhDe zP4YzgK~U$FkSq&8l13pn`YwHRg{CjrA1_O9J5Ayky17~TS??zwH00B7^BPfZDS%ve zjPZ(6TU^}7J_4bn-8a6T7K0HQOv4bFKZ&xY`S8y#Wy_)!xe5&Z$Zs>xCvQ)!ou1kP zM_8VI_K(@6T&#mA{}$YE__(Ggo8d8|7u_+7I`Y>=gY_vGhk=@=Z~tYyEH%@eyiiZY z`H(F%rt=hxmbQLR`XDOFw$I<(g5?Ia{0Viq@|2dt$+w?MoTqO;;@qC%K zXPkO+wtGvho@#-&pRwu5Ly1nm^QltzjuMWgO5Iqk%J-F)U_9aHIp2o&?RBl+=-(jM zdEXH|`CA(Q7!4H6MnN>M1@r!;Am!{&cf(#%d+e*^A86edj=h5EG!5rO>Hk2f^yyRN zI>vbA*3$PdmG3=XQ38J)eZoBi`<2#>xXY1&29ExKa?%e&1zhhlmy)mE_yrK(seL2v z3GUAON8Cs0014QyC6*Q#`DrkfaOsdcDY4{;o311ER9yw(rzMVK-0k5hn0(Sbgd;uq zoSrOo2U083dh-5K4nb@OvM2>occ*pRuhN_TfaNyzkDBjPAXT3ZCV%LrlLCEon;p(u zhpl3&oa*lif%dvmx?keUS zIp2;$=d+tv1e25Lf1wKDqW6IYv6N~$*3wFpV*6^{Ui8*V_;D>@Eb`+(aS7rac>o&p z)I)CSTRrt8?@N8jA?JPMt3hlVt%1?CE~uv&---=1y_RpRamuL27;Ynl&F(IJ$v)@E zdT0xbt^!=^9?+NkmviLvP=m7-TCg$dWEAwkKVXq_Bt@A?)In}AK<0MA47P773k>h) zx?6)wCb7_7_!hYlN>d{Os1uo_hU(k`B?0VtFoWt?vfnxKgi&b#R%iiK>I$IJiU2Cn zoFktRmBJDjk?SL>bf3|n;F3S0(tmjqLqIN>`XL|DhEzN1RejIgug+eq6?+BWFM`mB ziT!URKr=ygzTLcub#R6jukbu$f;?0@gg(I}LIYdSbJBll@;p>(_;MZWZoxb<=0$$F zvXxXFJa-4wP?FWsl8`?52AT8(UxBbP&gQFgFgfAeemnKky?eG{UXr%Gc$!f(Zs^JvQ z?Z3kXNrwLA_BWgWrjMS)sHLVnOBbc+2(P}hEO8Mor$=6d-$G#Wkn`D-nV<0Uy8?#{ zjNXIsg*#?G0kyQg=R2&-ujZEkeEmNXzf2!~*XA5~4%MZDyffjL+(kRaxZCY3y#$6} zn(#|5-hTx?85q5r*Q;gvM7^W2R%*-3XiKJ)V?)r7K06Y>gz8HqoKInf?ZDY6O+7vd zX`UqS1SDS&C+E%7FUb>u;k~x_wDe+d>BA@RZv)4uL94`|358#JL%7*HnG99!prgYfo-`k|+0IcHq%_X;{DqCc|GmKwQszcFzv=$iP5IX=W8B% zC>d#|=WCRTUQOUAW7%iV(0}vI^z6OA56^8AZE>wH(bJ>#^~bf%c;Td7$T!um)3R@y z+@SGi@LF4cdqmq3j%lbT|8XO;U1neUB+Al_oTJAlCl7%R!c9(t?f`XT#o2+ebb+pe zk8J?$!rJ>J=mF5zK+~Xf@^b*|t{1cmyXK?79|dg%e-v~G^fV~#Clxq3cp9_{^k<;! zKu>}Wg5qstb`-Q0bQd=6LC`b?@h6}a7<(@$CAtws$@af+tjCq zzJSA9vT|CsBLS0tY=hhcE}?}hGB2<(VE3ae^(Cuuxb81O|J_GpF?EgjPw8W6Ou z#!;@H&l(|CjWU&(GxRQF>9>t?pDn3zRD8x>UaF6pI zs_$Gn*8}Hz;9L)!>w$AUaIOc=^}x9vIM)Mz&mNHPSIYM(asJBFz+8hi3hEWqC8&H4 zQi%UQCpa1BiQY}6Bzbxll@h(+L8*i;1d*m2B>Vjqy%0i4elI59p_1>PUS?$TZ-VKN zUbvtn-$Uis&ftZ5_J^~R{04=503!Rbl5Pqj(F-q>j^bK|l7Lx2D4^>SN^~tp$!-u_ z{Am106k|t4hPNTlB^H64!Hd;A&*-KoR{_D zvX}EweqqcQp5}30w%^e9|NsA8%QVwQOc4%ov7lEAx>(Sag02y?L(t8F-Y4iIf__EN zrv%+6=r08Qt)Qm_ogy6WVnMGKbg`f-1zjU(hoGAUy-(0b1pSJjPYJqD&|e7pTR~3= zI>or0Wfu#2wV;ayT`A}qK|2K9Ea-iLw))Nc7w^vBtW~yb!nZ;R?IzDckM~Ajf^)vR zeN`UsLXYoS12-L>JkXBSK*lprGwiH{$@!U&+q3gBAIE#^a-u33cD(;C=Yaxa&Q4)+ z{^a9RnVg6DczJfd=HtcRnNq$TtHw#W5Ge)h?0hyR`d5J=KRx^1Yd&85oh;?sv1(TH zn`o*u;m&NF2Q|lzJ1K|6eYkx5L+m~EB}9>F#}}4zea)A@FuShi<5=aEX)45z?YIkT zHc##N3V6qIGkL6zVjWeL*|GYW`J#7x!mE=#l%q)N?PFFCLejz|HLco(29R z;AFo%FOd7uDS^xL28ma~V3L>T6=K_AEdp;8=NS?o7Wja`<$nDba2wsF7Jfqa7%6=V zxS9R*G8VT}=s94B^Zn3F-h&O$20uS-;?HLCbkEcVzZ&psT(jIC*9pAP-y$3@_UAs} z%w*o(EA$NdH4@0CQH~e;`Im%zmtW(u(w=_cwL|5=Ec;derw&o80iYN0=Aq31!4&tgMxZ<^Ul^a{ z>ljBG-&Qd$+3Pn8{WVzdHMK$Fcmr^=dLOsIpR>S!3|x-2TFt8#@^f)wB&Lum&Xxlw zKN*{Az|ybQaJ=|@cmr@V`=b{4b_@Kc7I@kMXa0c!Pusu%Ym3HX@kB?5r;X)8eT3q@ z_yQThK4SP@7!d?Id-^wpdqVB;{%9-|P7JcP{$4~xz$ee1n-(v*$y|sB5ebE((J;lF zh)1`wj%c_y5^7KM_9B8nNa6T5-+7|>AwRgK0tzKysywE65+5K`gLyHtFbgucgLw&y z&84Oq ze7+ZfS+<0u?V)Z&dI@8kVL_*-I~EOl<}bovtz7MIs0-Dtszr>L+O?i&q{Cw#0wvTQ z>koAyW(Ng{sl9!bzag*!B$ zkQ5fTj8$X=i7JW-RXm5p993d!@cGHZjZkB<9?wlE3U`$o849dX-1#zCR9?^`>kuKR zE*B6)hFQsf1yDBmgKr-Nk$`w~F!Kmt6w^e}|AC^bh(J4kHb@iot%yUD7nut^D#DlW z-v66JyvRUixsjr9C|2>QjOc0H1qx%skfRrdz7oM{`u{$Wd3d!2fwbN?P!sdSw)Wyo z12i5rXqP;~i>47zXJ5jzDbd~2ej{EuZcr?VeyJTi#?d^hk!`+1lePoztnAa=DwiR7Riv2Bb{WyU#@ zq0BgUG<3*g(nGaFCAT!(+uerp{c)-o2t~v3VB#_l&SraYhMIRG|5q~fm;;wExHo4c zdH-Hgx4z(}_&FP|GoDxdQ~geTIWCLIhtbCc!e^94zt5W>=aDJN+Q^643#p;ULmP`ZYb-QI(HC?u~PCB3_#ynLP_skB$tDS1i%si3^PzaZ&@ zPFd2RvR;Xf7L=FIr6tAXXkIF8|AV5uY^HpUBkBLjD_wl;{CGk6!uZ}#7L+fn|7!*1 z<#QoPZ;*~7^vHgbYQI-dUOqpP^kFF|Xkq;?0C(UgtC7!{PTpb^D6CKNk{*T_4UsG_ zpYxyo3(Nm+lqLU@<>m7TwhSQBE`wzMYuO{?;B^r4eOX>U-;#0NC&Ypw+b!*ue)K7n zRqL0}!FJGtBBTL>WdFr;wS4w@S+!B5Rn#vP$a0dtS5UsyuW`{C|)3$4VLx_ rX^&k0XnsoDjS|LxjULD$l@&Zkmh~FBMjU#x^7Gai60U**1uXl&To$Fd literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 23e07bd..fc50100 100644 --- a/package-lock.json +++ b/package-lock.json @@ -435,6 +435,11 @@ "tweetnacl": "^0.14.3" } }, + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=" + }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -2061,6 +2066,18 @@ "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" }, + "ffi": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ffi/-/ffi-2.3.0.tgz", + "integrity": "sha512-vkPA9Hf9CVuQ5HeMZykYvrZF2QNJ/iKGLkyDkisBnoOOFeFXZQhUPxBARPBIZMJVulvBI2R+jgofW03gyPpJcQ==", + "requires": { + "bindings": "~1.2.0", + "debug": "2", + "nan": "2", + "ref": "1", + "ref-struct": "1" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -4448,6 +4465,25 @@ "util-deprecate": "~1.0.1" } }, + "ref": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ref/-/ref-1.3.5.tgz", + "integrity": "sha512-2cBCniTtxcGUjDpvFfVpw323a83/0RLSGJJY5l5lcomZWhYpU2cuLdsvYqMixvsdLJ9+sTdzEkju8J8ZHDM2nA==", + "requires": { + "bindings": "1", + "debug": "2", + "nan": "2" + } + }, + "ref-struct": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ref-struct/-/ref-struct-1.1.0.tgz", + "integrity": "sha1-XV7mWtQc78Olxf60BYcmHkee3BM=", + "requires": { + "debug": "2", + "ref": "1" + } + }, "regexp-clone": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz", @@ -5775,13 +5811,12 @@ "integrity": "sha512-wAnENuZx75T5ZSrT2De2LOaUuPf2yRjq1VfcbD7+Zd79F3DZZLBJcPyCNVQ1U0fAXt0wfgCKl7sVw5pffqR9Bw==", "requires": { "underscore": "1.8.3", - "web3-core-helpers": "1.0.0-beta.36", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" + "web3-core-helpers": "1.0.0-beta.36" }, "dependencies": { "websocket": { "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", + "from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", "requires": { "debug": "^2.2.0", "nan": "^2.3.3", diff --git a/package.json b/package.json index d01090d..dcd59b0 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,9 @@ "websocket": "1.0.26", "winston": "3.0.0", "xmldom": "0.1.27", - "xpath": "0.0.27" + "xpath": "0.0.27", + "ffi": "2.3.0", + "ref": "1.3.5" }, "devDependencies": { "chai": "4.1.2", diff --git a/src/adapter/RandomSelectorAdapter.js b/src/adapter/RandomSelectorAdapter.js index b541f5e..d861dce 100644 --- a/src/adapter/RandomSelectorAdapter.js +++ b/src/adapter/RandomSelectorAdapter.js @@ -1,21 +1,12 @@ const DataSelectorPort = require('../domain/common/port/DataSelectorPort'); class RandomSelectorAdapter extends DataSelectorPort { - constructor(sgxEnable) { - super(); - this.sgxEnable = sgxEnable; - } - canHandle(contentType) { return contentType === 'random'; } select(data, path) { - if (this.sgxEnable === 'true') { - throw new Error('Not implemented'); - } else { - return data; - } + return data; } } diff --git a/src/adapter/RandomSgxDataFetcherAdapter.js b/src/adapter/RandomSgxDataFetcherAdapter.js new file mode 100644 index 0000000..0de7b91 --- /dev/null +++ b/src/adapter/RandomSgxDataFetcherAdapter.js @@ -0,0 +1,30 @@ +const ffi = require('ffi'); +const ref = require('ref'); + +const intType = ref.types.int; +const longType = ref.types.long; +const longPtr = ref.refType('long'); + +class RandomSgxDataFetcherAdapter { + constructor(logger) { + this.logger = logger; + } + + async fetch(min, max) { + this.logger.info('fetching SGX shiet'); + const sgxLib = ffi.DynamicLibrary('/usr/src/app/libs/EnclaveWrapper.so', { + 'generateRandom': [intType, [longType, longType, longPtr]], + }); + //const sgxLib = ffi.DynamicLibrary('/usr/src/app/libs/EnclaveWrapper.so'); + + const randomPtr = ref.alloc(longType); + if (sgxLib.generateRandom(min, max, randomPtr) === -1) { + throw new Error('SGX call failed'); + } + this.logger.info('fetched SGX shiet'); + + return randomPtr.deref(); + } +} + +module.exports = RandomSgxDataFetcherAdapter; diff --git a/src/adapter/index.js b/src/adapter/index.js index 90e0722..30d9742 100644 --- a/src/adapter/index.js +++ b/src/adapter/index.js @@ -1,5 +1,6 @@ const AxiosUrlDataFetcherAdapter = require('./AxiosUrlDataFetcherAdapter'); const RandomDotOrgDataFetcherAdapter = require('./RandomDotOrgDataFetcherAdapter'); +const RandomSgxDataFetcherAdapter = require('./RandomSgxDataFetcherAdapter'); const ConsoleLoggerAdapter = require('./ConsoleLoggerAdapter'); const IdentitySelectorAdapter = require('./IdentitySelectorAdapter'); const JsonSelectorAdapter = require('./JsonSelectorAdapter'); @@ -9,6 +10,7 @@ const RandomSelectorAdapter = require('./RandomSelectorAdapter'); module.exports = { AxiosUrlDataFetcherAdapter, RandomDotOrgDataFetcherAdapter, + RandomSgxDataFetcherAdapter, ConsoleLoggerAdapter, IdentitySelectorAdapter, JsonSelectorAdapter, diff --git a/src/index.js b/src/index.js index e140776..c4ab888 100644 --- a/src/index.js +++ b/src/index.js @@ -15,6 +15,7 @@ const { ConsoleLoggerAdapter: Logger, AxiosUrlDataFetcherAdapter: UrlDataFetcher, RandomDotOrgDataFetcherAdapter: RandomDotOrgDataFetcher, + RandomSgxDataFetcherAdapter: RandomSgxDataFetcher, JsonSelectorAdapter: JsonSelector, RandomSelectorAdapter: RandomSelector, XmlSelectorAdapter: XmlSelector, @@ -62,9 +63,10 @@ const requestRepository = RequestRepositoryFactory.create(PERSISTENCE, logger); const responseRepository = ResponseRepositoryFactory.create(PERSISTENCE, logger); const oracle = new Oracle(web3, oracleAbi, process.env.ORACLE_ADDRESS); const urlDataFetcher = new UrlDataFetcher(); -const randomDataFetcher = new RandomDotOrgDataFetcher(RANDOMDOTORG_API_KEY); +const randomDataFetcher = SGX_ENABLED === 'true' ? new RandomSgxDataFetcher(logger) + : new RandomDotOrgDataFetcher(RANDOMDOTORG_API_KEY); const jsonSelector = new JsonSelector(); -const randomSelector = new RandomSelector(SGX_ENABLED); +const randomSelector = new RandomSelector(); const xmlSelector = new XmlSelector(); const identitySelector = new IdentitySelector(); const dataSelectorFinder = new DataSelectorFinder( From e9fa94b8775966be4a462ac46ad8704ceb78cbc2 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 27 Jun 2019 13:56:07 +0200 Subject: [PATCH 13/45] Resolved conflicts and adjusted to changes in master --- src/adapter/RandomSelectorAdapter.js | 13 ------------- src/adapter/index.js | 19 ------------------- .../selector/NoSelectSelectorAdapter.js | 13 +++++++++++++ src/application/selector/index.js | 2 ++ .../common/usecase/FetchDataUseCase.spec.js | 4 ---- .../common/usecase/SelectDataUseCase.js | 5 ----- src/index.js | 13 ++++--------- 7 files changed, 19 insertions(+), 50 deletions(-) delete mode 100644 src/adapter/RandomSelectorAdapter.js delete mode 100644 src/adapter/index.js create mode 100644 src/application/selector/NoSelectSelectorAdapter.js diff --git a/src/adapter/RandomSelectorAdapter.js b/src/adapter/RandomSelectorAdapter.js deleted file mode 100644 index d861dce..0000000 --- a/src/adapter/RandomSelectorAdapter.js +++ /dev/null @@ -1,13 +0,0 @@ -const DataSelectorPort = require('../domain/common/port/DataSelectorPort'); - -class RandomSelectorAdapter extends DataSelectorPort { - canHandle(contentType) { - return contentType === 'random'; - } - - select(data, path) { - return data; - } -} - -module.exports = RandomSelectorAdapter; diff --git a/src/adapter/index.js b/src/adapter/index.js deleted file mode 100644 index 30d9742..0000000 --- a/src/adapter/index.js +++ /dev/null @@ -1,19 +0,0 @@ -const AxiosUrlDataFetcherAdapter = require('./AxiosUrlDataFetcherAdapter'); -const RandomDotOrgDataFetcherAdapter = require('./RandomDotOrgDataFetcherAdapter'); -const RandomSgxDataFetcherAdapter = require('./RandomSgxDataFetcherAdapter'); -const ConsoleLoggerAdapter = require('./ConsoleLoggerAdapter'); -const IdentitySelectorAdapter = require('./IdentitySelectorAdapter'); -const JsonSelectorAdapter = require('./JsonSelectorAdapter'); -const XmlSelectorAdapter = require('./XmlSelectorAdapter'); -const RandomSelectorAdapter = require('./RandomSelectorAdapter'); - -module.exports = { - AxiosUrlDataFetcherAdapter, - RandomDotOrgDataFetcherAdapter, - RandomSgxDataFetcherAdapter, - ConsoleLoggerAdapter, - IdentitySelectorAdapter, - JsonSelectorAdapter, - XmlSelectorAdapter, - RandomSelectorAdapter, -}; diff --git a/src/application/selector/NoSelectSelectorAdapter.js b/src/application/selector/NoSelectSelectorAdapter.js new file mode 100644 index 0000000..cc668a8 --- /dev/null +++ b/src/application/selector/NoSelectSelectorAdapter.js @@ -0,0 +1,13 @@ +const DataSelectorPort = require('../../domain/common/port/DataSelectorPort'); + +class NoSelectSelectorAdapter extends DataSelectorPort { + canHandle(contentType) { + return contentType === 'random'; + } + + select(data, path) { + return data; + } +} + +module.exports = NoSelectSelectorAdapter; diff --git a/src/application/selector/index.js b/src/application/selector/index.js index 66b78f2..83eacd4 100644 --- a/src/application/selector/index.js +++ b/src/application/selector/index.js @@ -1,10 +1,12 @@ const IdentitySelectorAdapter = require('./identity/IdentitySelectorAdapter'); const JsonSelectorAdapter = require('./json/JsonSelectorAdapter'); const XmlSelectorAdapter = require('./xml/XmlSelectorAdapter'); +const NoSelectSelectorAdapter = require('./NoSelectSelectorAdapter'); module.exports = { IdentitySelectorAdapter, JsonSelectorAdapter, XmlSelectorAdapter, + NoSelectSelectorAdapter, }; diff --git a/src/domain/common/usecase/FetchDataUseCase.spec.js b/src/domain/common/usecase/FetchDataUseCase.spec.js index 480b51b..44aabd7 100644 --- a/src/domain/common/usecase/FetchDataUseCase.spec.js +++ b/src/domain/common/usecase/FetchDataUseCase.spec.js @@ -30,10 +30,6 @@ describe('FetchDataUseCase', () => { const request = new Request('1', 'json(http://example.com).key1', Date.now(), RequestStateEnum.PROCESSED); const sut = new FetchDataUseCase(failingDataFetcher(), failingDataFetcher, new Logger()); // when -<<<<<<< HEAD - return expect(sut.fetchHttpData(request.id, request.getRawUrl())).to.be.rejected; -======= return expect(() => sut.fetchData(request.id, request.getRawUrl())).to.be.rejected; ->>>>>>> master }); }); diff --git a/src/domain/common/usecase/SelectDataUseCase.js b/src/domain/common/usecase/SelectDataUseCase.js index 320fe42..60d192d 100644 --- a/src/domain/common/usecase/SelectDataUseCase.js +++ b/src/domain/common/usecase/SelectDataUseCase.js @@ -7,10 +7,6 @@ class SelectDataUseCase { } async selectFromRawData(fetchedData, contentType, path) { -<<<<<<< HEAD - const selectedData = this.dataSelectorFinder.find(contentType).select(fetchedData, path); - this.logger.info(`Data selected [selectedData=${selectedData},fetchedData=${fetchedData},contentType=${contentType},path=${path}]`); -======= let selectedData; try { @@ -25,7 +21,6 @@ class SelectDataUseCase { } this.logger.info(`Data selected [selectedData=${selectedData},fetchedData=${fetchedData},contentType=${contentType},path=${path}`); ->>>>>>> master return selectedData; } diff --git a/src/index.js b/src/index.js index 945c7b8..a989735 100644 --- a/src/index.js +++ b/src/index.js @@ -13,17 +13,12 @@ const { CreateRequestEventHandler, CurrentBlockEventHandler } = require('./infra const { MarkValidRequestsAsReadyScheduler, ExecuteReadyRequestsScheduler } = require('./infrastructure/scheduling'); const Logger = require('./application/logger/ConsoleLoggerAdapter'); const UrlDataFetcher = require('./application/dataFetcher/AxiosUrlDataFetcherAdapter'); +const RandomDotOrgDataFetcher = require('./adapter/RandomDotOrgDataFetcherAdapter'); +const RandomSgxDataFetcher = require('./adapter/RandomSgxDataFetcherAdapter'); const { -<<<<<<< HEAD - ConsoleLoggerAdapter: Logger, - AxiosUrlDataFetcherAdapter: UrlDataFetcher, - RandomDotOrgDataFetcherAdapter: RandomDotOrgDataFetcher, - RandomSgxDataFetcherAdapter: RandomSgxDataFetcher, -======= ->>>>>>> master JsonSelectorAdapter: JsonSelector, - RandomSelectorAdapter: RandomSelector, + NoSelectSelectorAdapter: NoSelectSelector, XmlSelectorAdapter: XmlSelector, IdentitySelectorAdapter: IdentitySelector, } = require('./application/selector'); @@ -72,7 +67,7 @@ const urlDataFetcher = new UrlDataFetcher(); const randomDataFetcher = SGX_ENABLED === 'true' ? new RandomSgxDataFetcher(logger) : new RandomDotOrgDataFetcher(RANDOMDOTORG_API_KEY); const jsonSelector = new JsonSelector(); -const randomSelector = new RandomSelector(); +const randomSelector = new NoSelectSelector(); const xmlSelector = new XmlSelector(); const identitySelector = new IdentitySelector(); const dataSelectorFinder = new DataSelectorFinder( From 6deea528835257829295983b3f0c0a9335a6a821 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 27 Jun 2019 14:36:14 +0200 Subject: [PATCH 14/45] Added NoSelectSelector tests --- .../noselect/NoSelectSelector.spec.js | 23 +++++++++++++++++++ .../{ => noselect}/NoSelectSelectorAdapter.js | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/application/selector/noselect/NoSelectSelector.spec.js rename src/application/selector/{ => noselect}/NoSelectSelectorAdapter.js (72%) diff --git a/src/application/selector/noselect/NoSelectSelector.spec.js b/src/application/selector/noselect/NoSelectSelector.spec.js new file mode 100644 index 0000000..9297737 --- /dev/null +++ b/src/application/selector/noselect/NoSelectSelector.spec.js @@ -0,0 +1,23 @@ +const { describe, it } = require('mocha'); +const { expect } = require('chai'); +const NoSelectSelectorAdapter = require('./NoSelectSelectorAdapter'); + +describe('NoSelectSelector', () => { + it('should accept random contentType', () => { + expect(NoSelectSelectorAdapter.canHandle('random')).to.equal(true); + }); + + it('should reject xml/json contentType', () => { + expect(NoSelectSelectorAdapter.canHandle('xml')).to.equal(false); + expect(NoSelectSelectorAdapter.canHandle('json')).to.equal(false); + }); + + it('should return data as-is', () => { + // given + const data = 'some-data'; + // when + const result = NoSelectSelectorAdapter.select(data, 'some-path'); + // then + expect(result).to.equal(data, 'Data should be returned unmodified'); + }); +}); diff --git a/src/application/selector/NoSelectSelectorAdapter.js b/src/application/selector/noselect/NoSelectSelectorAdapter.js similarity index 72% rename from src/application/selector/NoSelectSelectorAdapter.js rename to src/application/selector/noselect/NoSelectSelectorAdapter.js index cc668a8..03c020a 100644 --- a/src/application/selector/NoSelectSelectorAdapter.js +++ b/src/application/selector/noselect/NoSelectSelectorAdapter.js @@ -1,4 +1,4 @@ -const DataSelectorPort = require('../../domain/common/port/DataSelectorPort'); +const DataSelectorPort = require('../../../domain/common/port/DataSelectorPort'); class NoSelectSelectorAdapter extends DataSelectorPort { canHandle(contentType) { From 105f2d664eaa96092dda2c07bd9e762e8863289b Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 27 Jun 2019 14:37:27 +0200 Subject: [PATCH 15/45] Added NoSelectSelector test --- src/application/selector/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/application/selector/index.js b/src/application/selector/index.js index 83eacd4..b980f68 100644 --- a/src/application/selector/index.js +++ b/src/application/selector/index.js @@ -1,7 +1,7 @@ const IdentitySelectorAdapter = require('./identity/IdentitySelectorAdapter'); const JsonSelectorAdapter = require('./json/JsonSelectorAdapter'); const XmlSelectorAdapter = require('./xml/XmlSelectorAdapter'); -const NoSelectSelectorAdapter = require('./NoSelectSelectorAdapter'); +const NoSelectSelectorAdapter = require('./noselect/NoSelectSelectorAdapter'); module.exports = { From c69caa6689ffe02dda7c849e9429716f8a84b9dd Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 27 Jun 2019 17:41:57 +0200 Subject: [PATCH 16/45] Moved stuff around and added exception if 'path' is unexpectedly provided --- .../random}/RandomDotOrgDataFetcherAdapter.integration.js | 0 .../dataFetcher/random}/RandomDotOrgDataFetcherAdapter.js | 2 +- .../dataFetcher/random}/RandomDotOrgResponse.js | 0 .../dataFetcher/random}/RandomSgxDataFetcherAdapter.js | 0 src/application/selector/noselect/NoSelectSelectorAdapter.js | 4 ++++ src/index.js | 4 ++-- 6 files changed, 7 insertions(+), 3 deletions(-) rename src/{adapter => application/dataFetcher/random}/RandomDotOrgDataFetcherAdapter.integration.js (100%) rename src/{adapter => application/dataFetcher/random}/RandomDotOrgDataFetcherAdapter.js (92%) rename src/{adapter => application/dataFetcher/random}/RandomDotOrgResponse.js (100%) rename src/{adapter => application/dataFetcher/random}/RandomSgxDataFetcherAdapter.js (100%) diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.integration.js b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.integration.js similarity index 100% rename from src/adapter/RandomDotOrgDataFetcherAdapter.integration.js rename to src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.integration.js diff --git a/src/adapter/RandomDotOrgDataFetcherAdapter.js b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.js similarity index 92% rename from src/adapter/RandomDotOrgDataFetcherAdapter.js rename to src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.js index d8dbe29..ebee6f6 100644 --- a/src/adapter/RandomDotOrgDataFetcherAdapter.js +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.js @@ -1,6 +1,6 @@ const axios = require('axios'); const jp = require('jsonpath'); -const { HttpError } = require('../domain/common/utils/error'); +const { HttpError } = require('../../../domain/common/utils/error'); class RandomDotOrgDataFetcherAdapter { diff --git a/src/adapter/RandomDotOrgResponse.js b/src/application/dataFetcher/random/RandomDotOrgResponse.js similarity index 100% rename from src/adapter/RandomDotOrgResponse.js rename to src/application/dataFetcher/random/RandomDotOrgResponse.js diff --git a/src/adapter/RandomSgxDataFetcherAdapter.js b/src/application/dataFetcher/random/RandomSgxDataFetcherAdapter.js similarity index 100% rename from src/adapter/RandomSgxDataFetcherAdapter.js rename to src/application/dataFetcher/random/RandomSgxDataFetcherAdapter.js diff --git a/src/application/selector/noselect/NoSelectSelectorAdapter.js b/src/application/selector/noselect/NoSelectSelectorAdapter.js index 03c020a..5179774 100644 --- a/src/application/selector/noselect/NoSelectSelectorAdapter.js +++ b/src/application/selector/noselect/NoSelectSelectorAdapter.js @@ -6,6 +6,10 @@ class NoSelectSelectorAdapter extends DataSelectorPort { } select(data, path) { + if (path) { + throw new Error('Path must be empty for IdentitySelector'); + } + return data; } } diff --git a/src/index.js b/src/index.js index a989735..0870015 100644 --- a/src/index.js +++ b/src/index.js @@ -13,8 +13,8 @@ const { CreateRequestEventHandler, CurrentBlockEventHandler } = require('./infra const { MarkValidRequestsAsReadyScheduler, ExecuteReadyRequestsScheduler } = require('./infrastructure/scheduling'); const Logger = require('./application/logger/ConsoleLoggerAdapter'); const UrlDataFetcher = require('./application/dataFetcher/AxiosUrlDataFetcherAdapter'); -const RandomDotOrgDataFetcher = require('./adapter/RandomDotOrgDataFetcherAdapter'); -const RandomSgxDataFetcher = require('./adapter/RandomSgxDataFetcherAdapter'); +const RandomDotOrgDataFetcher = require('./application/dataFetcher/random/RandomDotOrgDataFetcherAdapter'); +const RandomSgxDataFetcher = require('./application/dataFetcher/random/RandomSgxDataFetcherAdapter'); const { JsonSelectorAdapter: JsonSelector, From c9e3d71fda01bc89c491bd5a28fcea450880b4e9 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 27 Jun 2019 18:13:25 +0200 Subject: [PATCH 17/45] Added logging. --- src/domain/request/usecase/ExecuteReadyRequestsUseCase.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 3e36d82..ba3cf5a 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -61,6 +61,7 @@ class ExecuteReadyRequestsUseCase { } catch (e) { if (e instanceof InvalidRequestError) { response.setError(e.code); + this.logger.error(`Invalid request [errorCode=${e.code}]`, e); return response; } From e6a472132da51d336d7ad09154ba4e3aeb60f0d3 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 3 Jul 2019 13:32:16 +0200 Subject: [PATCH 18/45] correctly implemented SGX dynamic libs --- libs/Enclave.signed.so | Bin 241688 -> 129360 bytes libs/EnclaveWrapper.so | Bin 24760 -> 116032 bytes package-lock.json | 4 ---- 3 files changed, 4 deletions(-) diff --git a/libs/Enclave.signed.so b/libs/Enclave.signed.so index cf1fd68db53f70d588547e72ca53cbdb8bcda4b0..6d856da5eac816dd97e2f2f0a847fdd64c23e51a 100644 GIT binary patch delta 39906 zcmeFad0bT0|37}08JJ<4Q9!|sK~Zss+(1QV1oVy$i!A0ExPTif$)IT3pny3|6guYQ zQj*!eXm2acN>NL+tkB9#P06wbF~udtjrl%b_uc`d-k;Cs@%w&%-#@;O_kD2YbV$Hn)`o-EthVB$q48<;whSm@KQ4p*@K;4y@=cAzQ*6UefJ` z3c09p7tJ$09LI~fUXH?ZoN67X>iqA_WXK-6ID1cSi1C?DmwYP5*AH(qj(hR5fm!1Z zKJmhluAovuq+NyN&jc{Sx(~dRO^}eawDtPjC^I?QHJ>_LgclF@*x�&gTA zBn=W>)Eupm{E-5X0+HGvwM7a-a$mu?X^+$qsS}b8iCVZbQWvB!q;5#=D;zidqqlx( zzxC3W3r)Tg*)Df1+q;{6HeFl)&aAbE@7_IspkT1}4?MxOdv@o6Eh*COud(ZT7cdv>#_X zDD~(?9q#;X4Nmt{$LcflKwCH?wj(r=MEmRL^6ipphyOhV#1k3@>f z<(lc_s?C)7tK^!M6Em*OGTv*Dl+Ts`!^rru<}HEp85&$@3Z}3P>hP;*7V*}$NMo`4oDx)JzR@N@mtP*L99Wf!48o)qnDq3Agfv=F!~cY!E{kI#W` zg~3!9h8tW}a!U-cUsJcWB#FfbGPxO{BGvsdL@eH)sgSkN;Gt^{5|y6YqJ!>2IpHf> zShY;nqZK=jVM0VL3^P#VhbMJvQSbhuK>>fOMi}s7!7fQdwcNf`DY4)dE>E5#;#Wxg zdfAmmiFhwY3g$+MNS}dn4H&uWE99}0B^O-SqQ*={#+(J_telMbS@UP)F16ne>=m4m zVVpm0R@TUAd09->f*Co}7H4H-Eif-y>d1Ya4`9bjz+nHTZLs6SR=$IMXHY;Fx1PMb zysZ8ii?VWMjVNHov>CIrQs*qQ*L4iEzZu+j@U*=784DL>nVFdjGqR@5n30uhW-=y4 z=g!EH%1K_Fn$c+3f~+N^Dlf}yzt+*;{!WKr?~IJ;d3hOm=4p$}_7NQe9VfQ)f%fM+ zhT5+qv+h;Cr~Q{s5!#H5tVN3!EX>GRIAfZ5&cX#`cAJiQvkEfIi_Cc$i?bHx0n3=O zVC=$0X0$_|{Y71O8Wt@AOd$nwT&foMG8wOJfiIWwK`rn*Wqf!G{C*jKDk)S93*uBG z6)Al>iGa&JeB8q5R~dhq%tW?M zu<2Dm)#JXNq8%i3CSrnl7o( zJYP{Wg!-96e;-kaS?R1ra6ft|TN6@DR0dT~Kvj#P zSWSt_{`ByWR!(5kQw8f^sHsYSt5RqGaQIS7X~+BeP)6wLvb4S?6y5a@G-Uix=S#_A zl^+poLj~&<=Xsu$OcIJdS7|<~xP5B!R4NQ@Em-Tjx?r&oL!ai?iDQoo7dWV|#QQ_p zWw7XI8y1H7j=b)22_?4#8)Nb)jZ?YIUG3pLLx#(STO0P0Pt=}~)t4%ll9T1E-Ae084yk=k1GcwrUn`KO;$_^x8%hd^`F>9~6Tt*vX|F&n~?Dwc$ zqAQoEh3GFetINgQY0WAJ-B^z&*chS5PlEM`P*hzfl$=Q{jq`Nnn+5A3A^Q9hr75~% zajsBwi4|5}VCqnTmA?=$PZ6wXVJg8!AJNB`^hcHLNxh6cS3CRqvT#vqZD)5cvEmU3 zf1+LFDW!oglNy`azQ0!w<9m4%t39fH#Eij>Ap19WwhQGN(a6lAZqCe zF%w&D(5$NvY{LcX!FY6tX4M(+8l#VCR-F)q;-Xzbbd_e+7UWE&Ibn**xG)9o8N)sT zjgDfnUUhaw;UyL3nL^P$g~eq3%VhmS(2S}zS+5AzOGfsxbI(}V(W5s1yN^jW@`R{@ zB+r8Y@3oo2RE^GI=sk&^!`L?T_a$DGe~MP2&3y=(4iI-Z<1;K#$g;zAO5z!r)p|pN`Ra(U5LPGo+*nD=(L!T*3NTGVBm4 zOC|s?j$f)+e@parR(@Vav%qA-Bx>TR#?tBahn!0w<6Imj z_G}z_`BB4oss=_p98f6jIIlI!#M$gBw0?Za33H5QcaawN+0h5hV-42hkrlNaX|!6u zK$i;#E+_@|v}X4@ktHtrOLIR-w5WoOKDgxc9t&)D(MWf9vmrxn-N--DvoOGD{l;i@ zC0M^e6`k8X;JJ-@1>4g>C|Y2Tj4Abru­Gp6V}OWrab_{~Q+Q0+6ebl5OZX{>ID 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

A}j=S^s7g}O~ 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 ZzQ3H}$lgYw_&@%nQocMVLe8V}e*maoq2>Sp literal 24760 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 diff --git a/package-lock.json b/package-lock.json index 6112e66..7ff78d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5817,12 +5817,8 @@ "integrity": "sha512-wAnENuZx75T5ZSrT2De2LOaUuPf2yRjq1VfcbD7+Zd79F3DZZLBJcPyCNVQ1U0fAXt0wfgCKl7sVw5pffqR9Bw==", "requires": { "underscore": "1.8.3", -<<<<<<< HEAD - "web3-core-helpers": "1.0.0-beta.36" -======= "web3-core-helpers": "1.0.0-beta.36", "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" ->>>>>>> master }, "dependencies": { "websocket": { From 7bb92c121042759042ac4344b85e30946449a9b5 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 3 Jul 2019 15:50:46 +0200 Subject: [PATCH 19/45] refactored data fetchers to be more abstract --- .gitignore | 1 + .../dataFetcher/AxiosUrlDataFetcherAdapter.js | 12 ++++++++---- .../{UrlDataFetcherPort.js => DataFetcherPort.js} | 6 +++--- src/domain/common/port/index.js | 4 ++-- src/domain/common/usecase/FetchDataUseCase.js | 6 +++--- src/domain/request/Request.js | 4 ---- .../request/usecase/ExecuteReadyRequestsUseCase.js | 2 +- 7 files changed, 18 insertions(+), 17 deletions(-) rename src/domain/common/port/{UrlDataFetcherPort.js => DataFetcherPort.js} (51%) diff --git a/.gitignore b/.gitignore index b284866..2e051c9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ node_modules /.nyc_output/ /*.iml +.idea /.env logs/* diff --git a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.js b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.js index a1a8150..22fd4b3 100644 --- a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.js +++ b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.js @@ -1,12 +1,16 @@ const axios = require('axios'); -const UrlDataFetcher = require('../../domain/common/port/UrlDataFetcherPort'); + +const DataFetcher = require('../../domain/common/port/DataFetcherPort'); const { HttpError } = require('../../domain/common/utils/error'); +const RequestUrlParser = require('../../domain/request/RequestUrlParser'); + +class AxiosUrlDataFetcherAdapter extends DataFetcher { + async fetch(request) { + const rawUrl = RequestUrlParser.resolveRawUrl(request.url); -class AxiosUrlDataFetcherAdapter extends UrlDataFetcher { - async fetch(url) { try { - const response = await axios.get(url); + const response = await axios.get(rawUrl); return response.data; } catch (e) { diff --git a/src/domain/common/port/UrlDataFetcherPort.js b/src/domain/common/port/DataFetcherPort.js similarity index 51% rename from src/domain/common/port/UrlDataFetcherPort.js rename to src/domain/common/port/DataFetcherPort.js index 03db93e..967765e 100644 --- a/src/domain/common/port/UrlDataFetcherPort.js +++ b/src/domain/common/port/DataFetcherPort.js @@ -1,9 +1,9 @@ /* eslint-disable no-unused-vars */ -class UrlDataFetcherPort { - fetch(url) { +class DataFetcherPort { + fetch(request) { throw new Error('Not implemented'); } } -module.exports = UrlDataFetcherPort; +module.exports = DataFetcherPort; diff --git a/src/domain/common/port/index.js b/src/domain/common/port/index.js index 824269e..41096af 100644 --- a/src/domain/common/port/index.js +++ b/src/domain/common/port/index.js @@ -1,5 +1,5 @@ const DataSelectorPort = require('./DataSelectorPort'); const LoggerPort = require('./LoggerPort'); -const UrlDataFetcherPort = require('./UrlDataFetcherPort'); +const DataFetcherPort = require('./DataFetcherPort'); -module.exports = { DataSelectorPort, LoggerPort, UrlDataFetcherPort }; +module.exports = { DataSelectorPort, LoggerPort, DataFetcherPort }; diff --git a/src/domain/common/usecase/FetchDataUseCase.js b/src/domain/common/usecase/FetchDataUseCase.js index 1d87d37..59f72b7 100644 --- a/src/domain/common/usecase/FetchDataUseCase.js +++ b/src/domain/common/usecase/FetchDataUseCase.js @@ -4,9 +4,9 @@ class FetchDataUseCase { this.logger = logger; } - async fetchData(requestId, rawUrl) { - const rawData = await this.urlDataFetcher.fetch(rawUrl); - this.logger.info(`Data fetched [requestId=${requestId}, rawData=${rawData}]`); + async fetchData(request) { + const rawData = await this.urlDataFetcher.fetch(request); + this.logger.info(`Data fetched [requestId=${request.id}, rawData=${rawData}]`); return rawData; } diff --git a/src/domain/request/Request.js b/src/domain/request/Request.js index a80896c..ea9b14b 100644 --- a/src/domain/request/Request.js +++ b/src/domain/request/Request.js @@ -11,10 +11,6 @@ class Request { this.state = state ? new RequestState(state) : RequestStateFactory.createState(validFrom); } - getRawUrl() { - return RequestUrlParser.resolveRawUrl(this.url); - } - getContentType() { return RequestUrlParser.resolveContentType(this.url); } diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js index 3e36d82..99b531b 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.js @@ -47,7 +47,7 @@ class ExecuteReadyRequestsUseCase { this.logger.info(`Created response [response=${JSON.stringify(response)}]`); try { - const fetchedData = await this.fetchDataUseCase.fetchData(request.id, request.getRawUrl()); + const fetchedData = await this.fetchDataUseCase.fetchData(request); response.addFetchedData(fetchedData); const selectedData = await this.selectDataUseCase.selectFromRawData( From d8b4343af7d203159eef64b48a25fb500ed6b530 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 3 Jul 2019 16:37:12 +0200 Subject: [PATCH 20/45] change some names that were incorrectly too concrete --- src/domain/common/usecase/FetchDataUseCase.js | 6 +++--- src/index.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/domain/common/usecase/FetchDataUseCase.js b/src/domain/common/usecase/FetchDataUseCase.js index 59f72b7..1772055 100644 --- a/src/domain/common/usecase/FetchDataUseCase.js +++ b/src/domain/common/usecase/FetchDataUseCase.js @@ -1,11 +1,11 @@ class FetchDataUseCase { - constructor(urlDataFetcher, logger) { - this.urlDataFetcher = urlDataFetcher; + constructor(dataFetcher, logger) { + this.dataFetcher = dataFetcher; this.logger = logger; } async fetchData(request) { - const rawData = await this.urlDataFetcher.fetch(request); + const rawData = await this.dataFetcher.fetch(request); this.logger.info(`Data fetched [requestId=${request.id}, rawData=${rawData}]`); return rawData; diff --git a/src/index.js b/src/index.js index 454432f..ce31ea4 100644 --- a/src/index.js +++ b/src/index.js @@ -59,7 +59,7 @@ const logger = new Logger(); const requestRepository = RequestRepositoryFactory.create(PERSISTENCE, logger); const responseRepository = ResponseRepositoryFactory.create(PERSISTENCE, logger); const oracle = new Oracle(web3, oracleAbi, process.env.ORACLE_ADDRESS); -const urlDataFetcher = new UrlDataFetcher(); +const dataFetcher = new UrlDataFetcher(); const jsonSelector = new JsonSelector(); const xmlSelector = new XmlSelector(); const identitySelector = new IdentitySelector(); @@ -76,7 +76,7 @@ const markValidRequestsAsReadyUseCase = new MarkValidRequestsAsReadyUseCase( requestRepository, logger, ); -const fetchDataUseCase = new FetchDataUseCase(urlDataFetcher, logger); +const fetchDataUseCase = new FetchDataUseCase(dataFetcher, logger); const selectDataUseCase = new SelectDataUseCase(dataSelectorFinder, logger); const sendResponseToOracleUseCase = new SendResponseToOracleUseCase(oracle, logger); const executeReadyRequestsUseCase = new ExecuteReadyRequestsUseCase( From 79845f4f13faa1b4117d75ba0d09b0b95912f4d1 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 3 Jul 2019 20:18:11 +0200 Subject: [PATCH 21/45] removed naste .gitignore entry --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 2e051c9..b284866 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ node_modules /.nyc_output/ /*.iml -.idea /.env logs/* From 6a87ac2673a82ede32da509b19e6ca795f2271bb Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 4 Jul 2019 18:14:35 +0200 Subject: [PATCH 22/45] added flag that imports paths from tsconfig --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4285189..5e6caac 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "build": "tsc", "coverage": "mocha --require ts-node/register/transpile-only -r tsconfig-paths/register --require source-map-support/register --recursive src/**/*.spec.ts", "test": "mocha -r ts-node/register -r tsconfig-paths/register src/**/*.spec.ts", - "integration-test": "mocha -r ts-node/register src/**/*.integration.ts", + "integration-test": "mocha -r ts-node/register -r tsconfig-paths/register src/**/*.integration.ts", "ganache": "ganache-cli -d", "lint": "tslint --config ./tslint.json --project ./tsconfig.json 'src/**/*.ts'" }, From a406111098e127a5cb19d2912d592e0f6fde4791 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 4 Jul 2019 18:42:01 +0200 Subject: [PATCH 23/45] tslint fixes and fixed npm run tslint for Windows --- package.json | 2 +- src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts | 7 ++++--- src/domain/common/port/index.ts | 2 +- src/domain/common/usecase/FetchDataUseCase.ts | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 5e6caac..c7b52ca 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "test": "mocha -r ts-node/register -r tsconfig-paths/register src/**/*.spec.ts", "integration-test": "mocha -r ts-node/register -r tsconfig-paths/register src/**/*.integration.ts", "ganache": "ganache-cli -d", - "lint": "tslint --config ./tslint.json --project ./tsconfig.json 'src/**/*.ts'" + "lint": "tslint --config ./tslint.json --project ./tsconfig.json src/**/*.ts" }, "repository": { "type": "git", diff --git a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts index b9660c3..21e5149 100644 --- a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts +++ b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts @@ -1,7 +1,8 @@ import axios from 'axios'; -import DataFetcher from '../../domain/common/port/DataFetcherPort'; -import { HttpError } from '../../domain/common/utils/error'; -import RequestUrlParser from "@core/domain/request/RequestUrlParser"; + +import DataFetcher from '@core/domain/common/port/DataFetcherPort'; +import { HttpError } from '@core/domain/common/utils/error'; +import RequestUrlParser from '@core/domain/request/RequestUrlParser'; class AxiosUrlDataFetcherAdapter implements DataFetcher { async fetch(request): Promise { diff --git a/src/domain/common/port/index.ts b/src/domain/common/port/index.ts index 3516373..0712706 100644 --- a/src/domain/common/port/index.ts +++ b/src/domain/common/port/index.ts @@ -1,5 +1,5 @@ +import DataFetcherPort from './DataFetcherPort'; import DataSelectorPort from './DataSelectorPort'; import LoggerPort from './LoggerPort'; -import DataFetcherPort from './DataFetcherPort'; export { DataSelectorPort, LoggerPort, DataFetcherPort }; diff --git a/src/domain/common/usecase/FetchDataUseCase.ts b/src/domain/common/usecase/FetchDataUseCase.ts index 0592a0b..0e6444e 100644 --- a/src/domain/common/usecase/FetchDataUseCase.ts +++ b/src/domain/common/usecase/FetchDataUseCase.ts @@ -1,5 +1,5 @@ -import LoggerPort from '@core/domain/common/port/LoggerPort'; import DataFetcher from '@core/domain/common/port/DataFetcherPort'; +import LoggerPort from '@core/domain/common/port/LoggerPort'; class FetchDataUseCase { constructor( From d8bf61513a1d2e92fc394fd175f94b86f9d7bf45 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 4 Jul 2019 18:50:54 +0200 Subject: [PATCH 24/45] adding a change that somehow was not merged from master --- tsconfig.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 302cfbf..8c0e1d3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,9 +11,6 @@ "strictBindCallApply": true, "baseUrl": "./src", "paths": { - "*": [ - "types/*" - ], "@core/*": ["./*"] } }, From dbd673bf12f558081b2bedd729ef235a01491377 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 5 Jul 2019 12:55:55 +0200 Subject: [PATCH 25/45] parameter rename that wsa not applied after TS migration --- src/domain/common/port/DataFetcherPort.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/common/port/DataFetcherPort.ts b/src/domain/common/port/DataFetcherPort.ts index 688714f..33423ad 100644 --- a/src/domain/common/port/DataFetcherPort.ts +++ b/src/domain/common/port/DataFetcherPort.ts @@ -1,3 +1,3 @@ export default interface DataFetcherPort { - fetch(url: string): Promise; + fetch(request: string): Promise; } From e71cf72f81638be5d67c630f74a9433160961b2a Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 5 Jul 2019 16:59:27 +0200 Subject: [PATCH 26/45] added files that were not referenced to index.ts, because tslint wants so --- tsconfig.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 8c0e1d3..a431e17 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,11 @@ "@core/*": ["./*"] } }, - "files": ["./src/index.ts"], + "files": [ + "./src/index.ts", + "./src/config/configuredChai.ts", + "./src/config/winston.ts" + ], "exclude": ["node_modules"], "typeRoots": [ "node_modules/@types" From bfb1f7b784eca2138975af549ab06dbe07dc198a Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 5 Jul 2019 17:50:47 +0200 Subject: [PATCH 27/45] implemented request executor factory --- .../RequestExecutorFactory.spec.ts | 59 +++++++++++++++++++ .../requestExecutor/RequestExecutorFactory.ts | 19 ++++++ .../requestExecutor/UrlRequestExecutor.ts | 9 +++ src/domain/common/port/RequestExecutorPort.ts | 3 + 4 files changed, 90 insertions(+) create mode 100644 src/application/requestExecutor/RequestExecutorFactory.spec.ts create mode 100644 src/application/requestExecutor/RequestExecutorFactory.ts create mode 100644 src/application/requestExecutor/UrlRequestExecutor.ts create mode 100644 src/domain/common/port/RequestExecutorPort.ts diff --git a/src/application/requestExecutor/RequestExecutorFactory.spec.ts b/src/application/requestExecutor/RequestExecutorFactory.spec.ts new file mode 100644 index 0000000..e20c168 --- /dev/null +++ b/src/application/requestExecutor/RequestExecutorFactory.spec.ts @@ -0,0 +1,59 @@ +import { describe, it, beforeEach } from 'mocha'; +const { expect } = require('chai').use(require('dirty-chai')); +const { assert } = require('chai'); + +import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; +import RequestExecutorFactory from './RequestExecutorFactory'; +import UrlRequestExecutor from './UrlRequestExecutor'; + +describe('RequestExecutorFactory', () => { + let sut; + + beforeEach(() => { + sut = new RequestExecutorFactory(); + }); + + it('should create UrlProvider for json', () => { + // given + const contentType = 'ipfs'; + // when + const result = sut.create(contentType); + // then + assert.instanceOf(result, UrlRequestExecutor, 'Incorrect request executor type'); + }); + + it('should create UrlProvider for xml', () => { + // given + const contentType = 'xml'; + // when + const result = sut.create(contentType); + // then + assert.instanceOf(result, UrlRequestExecutor, 'Incorrect request executor type'); + }); + + it('should create UrlProvider for html', () => { + // given + const contentType = 'html'; + // when + const result = sut.create(contentType); + // then + assert.instanceOf(result, UrlRequestExecutor, 'Incorrect request executor type'); + }); + + it('should create UrlProvider for ipfs', () => { + // given + const contentType = 'ipfs'; + // when + const result = sut.create(contentType); + // then + assert.instanceOf(result, UrlRequestExecutor, 'Incorrect request executor type'); + }); + + it('should throw InvalidContentTypeError for unknown contentType', () => { + // given + const contentType = 'some-unknown-content-type'; + // when + // then + expect(sut.create.bind(sut, contentType)).to.throw(InvalidContentTypeError, `${contentType} is not a valid content type`); + }); +}); diff --git a/src/application/requestExecutor/RequestExecutorFactory.ts b/src/application/requestExecutor/RequestExecutorFactory.ts new file mode 100644 index 0000000..389ac98 --- /dev/null +++ b/src/application/requestExecutor/RequestExecutorFactory.ts @@ -0,0 +1,19 @@ +import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; +import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; +import UrlRequestExecutor from './UrlRequestExecutor'; + +class RequestExecutorFactory { + create(contentType: string): RequestExecutor { + switch (contentType) { + case 'json': + case 'xml': + case 'html': + case 'ipfs': + return new UrlRequestExecutor(); + default: + throw new InvalidContentTypeError(`${contentType} is not a valid content type`); + } + } +} + +export default RequestExecutorFactory; diff --git a/src/application/requestExecutor/UrlRequestExecutor.ts b/src/application/requestExecutor/UrlRequestExecutor.ts new file mode 100644 index 0000000..c5c8f2c --- /dev/null +++ b/src/application/requestExecutor/UrlRequestExecutor.ts @@ -0,0 +1,9 @@ +import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; + +class UrlRequestExecutor implements RequestExecutor { + execute(request: Request) { + throw new Error('Method not implemented.'); + } +} + +export default UrlRequestExecutor; diff --git a/src/domain/common/port/RequestExecutorPort.ts b/src/domain/common/port/RequestExecutorPort.ts new file mode 100644 index 0000000..3e9ec10 --- /dev/null +++ b/src/domain/common/port/RequestExecutorPort.ts @@ -0,0 +1,3 @@ +export default interface RequestExecutorPort { + execute(request: Request); +} From 67a2ef8b5c3ce1e47087d1f2108efb0359e71ab4 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 8 Jul 2019 13:17:37 +0200 Subject: [PATCH 28/45] moved request executor to domain --- .../request}/requestExecutor/RequestExecutorFactory.spec.ts | 2 +- .../request}/requestExecutor/RequestExecutorFactory.ts | 0 .../request}/requestExecutor/UrlRequestExecutor.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename src/{application => domain/request}/requestExecutor/RequestExecutorFactory.spec.ts (94%) rename src/{application => domain/request}/requestExecutor/RequestExecutorFactory.ts (100%) rename src/{application => domain/request}/requestExecutor/UrlRequestExecutor.ts (70%) diff --git a/src/application/requestExecutor/RequestExecutorFactory.spec.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts similarity index 94% rename from src/application/requestExecutor/RequestExecutorFactory.spec.ts rename to src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts index e20c168..f69aa5e 100644 --- a/src/application/requestExecutor/RequestExecutorFactory.spec.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts @@ -2,7 +2,7 @@ import { describe, it, beforeEach } from 'mocha'; const { expect } = require('chai').use(require('dirty-chai')); const { assert } = require('chai'); -import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; +import InvalidContentTypeError from '../../common/utils/error/InvalidContentTypeError'; import RequestExecutorFactory from './RequestExecutorFactory'; import UrlRequestExecutor from './UrlRequestExecutor'; diff --git a/src/application/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.ts similarity index 100% rename from src/application/requestExecutor/RequestExecutorFactory.ts rename to src/domain/request/requestExecutor/RequestExecutorFactory.ts diff --git a/src/application/requestExecutor/UrlRequestExecutor.ts b/src/domain/request/requestExecutor/UrlRequestExecutor.ts similarity index 70% rename from src/application/requestExecutor/UrlRequestExecutor.ts rename to src/domain/request/requestExecutor/UrlRequestExecutor.ts index c5c8f2c..39985fb 100644 --- a/src/application/requestExecutor/UrlRequestExecutor.ts +++ b/src/domain/request/requestExecutor/UrlRequestExecutor.ts @@ -1,4 +1,4 @@ -import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; +import RequestExecutor from '../../common/port/RequestExecutorPort'; class UrlRequestExecutor implements RequestExecutor { execute(request: Request) { From c914f9f08ac16bf8a400dba75ec1295d2dd5569c Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 12 Jul 2019 18:19:27 +0200 Subject: [PATCH 29/45] preinstalling both sgx and node in docker container added correctly compiled libs (to be tested) --- Dockerfile | 40 ++++++---------------------------------- docker-compose.yml | 3 +++ libs/Enclave.signed.so | Bin 129360 -> 147256 bytes libs/EnclaveWrapper.so | Bin 116032 -> 120720 bytes package-lock.json | 10 +++++----- 5 files changed, 14 insertions(+), 39 deletions(-) diff --git a/Dockerfile b/Dockerfile index a827830..03dfea9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,39 +1,11 @@ -FROM ubuntu:bionic +FROM sebvaucher/sgx-base:sgx_2.5 -WORKDIR /usr/src/sdk +# Add SGX SDK libs to source +RUN /bin/bash -c "source /opt/intel/sgxsdk/environment" -RUN apt-get update && apt-get install -yq --no-install-recommends ca-certificates build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev libssl-dev libcurl4-openssl-dev protobuf-compiler git libprotobuf-dev alien cmake debhelper uuid-dev libxml2-dev - -RUN wget --progress=dot:mega -O iclsclient.rpm http://registrationcenter-download.intel.com/akdlm/irc_nas/11414/iclsClient-1.45.449.12-1.x86_64.rpm && \ - alien --scripts -i iclsclient.rpm && \ - rm iclsclient.rpm - -RUN wget --progress=dot:mega -O - https://github.com/intel/dynamic-application-loader-host-interface/archive/072d233296c15d0dcd1fb4570694d0244729f87b.tar.gz | tar -xz && \ - cd dynamic-application-loader-host-interface-072d233296c15d0dcd1fb4570694d0244729f87b && \ - cmake . -DCMAKE_BUILD_TYPE=Release -DINIT_SYSTEM=SysVinit && \ - make install && \ - cd .. && rm -rf dynamic-application-loader-host-interface-072d233296c15d0dcd1fb4570694d0244729f87b - -COPY install-psw.patch ./ - -RUN git clone -b sgx_2.5 --depth 1 https://github.com/intel/linux-sgx && \ - cd linux-sgx && \ - patch -p1 -i ../install-psw.patch && \ - ./download_prebuilt.sh 2> /dev/null && \ - make -s -j$(nproc) sdk_install_pkg psw_install_pkg && \ - ./linux/installer/bin/sgx_linux_x64_sdk_2.5.100.49891.bin --prefix=/opt/intel && \ - ./linux/installer/bin/sgx_linux_x64_psw_2.5.100.49891.bin && \ - cd .. && rm -rf linux-sgx/ - -WORKDIR /usr/src/app - -COPY entrypoint.sh /entrypoint.sh -ENTRYPOINT ["/entrypoint.sh"] - -# For debug purposes -# COPY jhi.conf /etc/jhi/jhi.conf - -FROM node:10.15 +# Install nodejs +RUN apt-get update -q -q && \ + apt-get install libssl1.0-dev nodejs nodejs-dev node-gyp npm --yes # Create app directory WORKDIR /usr/src/app diff --git a/docker-compose.yml b/docker-compose.yml index 82ed9ee..bceef0b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,9 @@ services: - mongo ports: - ${API_PORT}:${API_PORT} + devices: + - /dev/isgx + - /dev/mei0 command: bash -c "./wait-for-it.sh mongo:27017 && node src/index.js" mongo: container_name: oracle-db diff --git a/libs/Enclave.signed.so b/libs/Enclave.signed.so index 6d856da5eac816dd97e2f2f0a847fdd64c23e51a..23d7a49e6fabbf0e57b4a56976499403f04948b0 100644 GIT binary patch literal 147256 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 NJ3Rkzzz`g|{{Bx5fWrXz@$4tMU&9o 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 diff --git a/libs/EnclaveWrapper.so b/libs/EnclaveWrapper.so index 0591a57273858e3251aa8b4e6fb1e0d8fa452dd9..e4872437bacbbf28328c3a55ac57f7397f2b60d7 100644 GIT binary patch literal 120720 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 NMftKogutWoe*s95V~79% literal 116032 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

A}j=S^s7g}O~ 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 ZzQ3H}$lgYw_&@%nQocMVLe8V}e*maoq2>Sp diff --git a/package-lock.json b/package-lock.json index 7ff78d2..b3fb74b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1910,7 +1910,7 @@ }, "express": { "version": "4.16.3", - "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { "accepts": "~1.3.5", @@ -3420,7 +3420,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -3886,7 +3886,7 @@ }, "resolve-from": { "version": "4.0.0", - "resolved": false, + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, @@ -4267,7 +4267,7 @@ }, "pretty-hrtime": { "version": "1.0.3", - "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, "process": { @@ -5823,7 +5823,7 @@ "dependencies": { "websocket": { "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", - "from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "from": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible", "requires": { "debug": "^2.2.0", "nan": "^2.3.3", From 571c5577431cadb91a0063a8903101ddc2458d10 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Wed, 17 Jul 2019 12:36:58 +0200 Subject: [PATCH 30/45] successfully integrated sgx lib using node-ffi --- Dockerfile | 16 +++++-- libs/Enclave.signed.so => Enclave.signed.so | Bin 147256 -> 147064 bytes libs/EnclaveWrapper.so => EnclaveWrapper.so | Bin 120720 -> 120576 bytes libsgx_urts.so | Bin 0 -> 191904 bytes .../random/RandomSgxDataFetcherAdapter.js | 44 +++++++++++++----- 5 files changed, 45 insertions(+), 15 deletions(-) rename libs/Enclave.signed.so => Enclave.signed.so (93%) rename libs/EnclaveWrapper.so => EnclaveWrapper.so (97%) create mode 100755 libsgx_urts.so diff --git a/Dockerfile b/Dockerfile index 03dfea9..a57f633 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,19 @@ FROM sebvaucher/sgx-base:sgx_2.5 -# Add SGX SDK libs to source -RUN /bin/bash -c "source /opt/intel/sgxsdk/environment" +# Add SGX SDK libs to source. It does what 'source /opt/intel/sgxsdk/environment' does +ENV SGX_SDK /opt/intel/sgxsdk +ENV PATH=$SGX_SDK/bin:$SGX_SDK/bin/x64:$PATH \ + PKG_CONFIG_PATH=$SGX_SDK/pkgconfig:$PKG_CONFIG_PATH \ + LD_LIBRARY_PATH=$SGX_SDK/sdk_libs:$LD_LIBRARY_PATH -# Install nodejs +# Install nodejs dependencies RUN apt-get update -q -q && \ - apt-get install libssl1.0-dev nodejs nodejs-dev node-gyp npm --yes + apt-get install curl libssl1.0-dev --yes + +# Install nodejs v11 +RUN curl -sL https://deb.nodesource.com/setup_11.x | bash - +RUN apt-get install -y nodejs +RUN npm install npm --global # Create app directory WORKDIR /usr/src/app diff --git a/libs/Enclave.signed.so b/Enclave.signed.so similarity index 93% rename from libs/Enclave.signed.so rename to Enclave.signed.so index 23d7a49e6fabbf0e57b4a56976499403f04948b0..3c557fa78789dabd0e5b79a6248b14fbd864551f 100644 GIT binary patch delta 3916 zcmeH~Sx}P)5XbX)eBqCBkhzLSc8bxkFIpl~y<4a%r+zvZCJM-V!-N)bjw`oIm<*V#918~K% z*037fRdh*wAN1=tCJiw;j61vz*y2n@`UKcG0RqJZ0K75l1~3QE5r`I!D5{aXtc7(5 zMf7Tv+~S;!fiy*}x3(HJC2zshU~GmVt3Lg6l}A+3Cp|G5H-$P`L!ToWMo`qhs8N%LaX}|hr$?v1gt$E-H@{jL zu~Cxli8HR2E2)mMS|s8WWVr_9nOQ-sy=pG|4113a{g-Iz&5KrEk(SAY81b`=1E%9J zrL<;0*p#CH-^)^E2O%JzsmT z<8^3sb5Ol6p;+vUi{u`XliP4vP;Kis$VF`DxxCHsJ?PCjyR!DRd-k=!YjbXzs#izU zd{?U>U&E(CB(W)pJOH+f1uq7WNWL6Q#6Tfi2-a^b(^Gu^v?UI#DMq~%g;iZ|xSr@V zA(_O`k6S-APQBp7cmw^2&MQ|2n08a7F%8+-h7-NPT7^zR?OPH3r`|@##NW?RI5Ocb1zJ*x*p_b{+3n+&E zqhDP;i>2z323(Vm$RzlUBfB>_&2*gMagrOHLw#j{dFXC}mb0SGvrFIg2nM`<{PLnl zq3pJK>8hVl&!fcvzvkdWa&LBM6$Pe(tJf+xl&a6zw%Zj5dT57A^(52M0?$Nl^{!Yq3d=tS<*h!~Hc*0jSa(JjZ zYC(Q1#lL*`gU{G^Letdh^RsG;i@D*xLf5{UJFSGLk*y2$IbQak@DqXj0QZu-(je<- z{|*K71-(*@0ta%2J>i)i%65kZ;nh86Tc=gLW0sx3H#7xn0$nf&9#Ix|fvzfi8+*mi zOXwAU`LgZFL-et;T>2NGDmtyoYi3^RmYPRLAGIA;UYd<8&BI3L<`%v-&UON3e3X&v8mog%#aSw4^U^paUdRK%CLUIfj9uk%K0X}P^>Dz=2O|Ck+0Q$H delta 4108 zcmeH}={K7R6vp58rKA+0L_&s?u8NcpObMb>rdmr&QPU!^MIw|Dp-7ajVy{NqFld#w z)K*p7jJ>*OVyC(od##PCb*iIh{)3+RGIQJy_uPBVz2`a4m*07o|AIYPhb8TWp5RL~ z?nCm^rrO;SuP15lsLVuiR7afNj21R#0;-sRz>Mo4tm5Jga1LZ0Y=no~T}ts6x#CLx zT~+H1;pWeoqOXa6*;H)1B#_H{g!6j?@U-CviEQ0uUUn91+#`V+K{+FhtxS?(5i z`W$Zq?9-8l6LfarEVE#W%k;>%Ie{;bij;SQXKM4FTkvJgx%J)zyecO{$OzmD1xSbJ zWsjmuKMkRH2`ufRQ&6UQ;{soY>%DGd*fiM|Ki;vYQ}fCEFdX>^wBr&Gmk962txRZGl*G6b#3L_emRgM{^?Yquf6?xNN8pgO5Io$A^joEtb zVF2+%v~M5W>^W81>XB8U#%e?O0>^2beE&(+;07 zG}e&6JWf0(Q4i`P#ze_CN+<{Ie1EHanVrNT%b|;@&WE2jg=2xsF|iqLGufB{?Oaay zuukpNEJs4z%@fgLJ|Altv3u0&j!DL2Qp2SN0XNj;(|k zU3r$LOYU(bleBws(iCQo^w~7v&;i@l4#Ov0GSt=B(!apkZJoPX(=Ie8@7~$W* z;R$-NIHufZ1$E1=3VPF)3I!KME46_ipB^5r`*Y#uD6$5@c=+h&-yIINPKTkyob1oA zu0b2ZT|cgs5zA`ckFay@&-tGrPy?4~s1XusFXu9bt%3+zW_03{Tth|gs>{uv_ADgd zw=VI~SGH5bo4(Y2&}z3nYkvHWjKvDGRN9@kCoA6eYcB%O%Rzle-GWDnNfaz7dQKh)?ait|Qa>nJviOCm;_vxe z3YB<5j;s0)e$_hC)BYyodCYqueat9FzkW%DS#(ziCjPYXsp|)eyCxPxgIJ30?j4xG zVJDp04s&Z_FD_;xR#_?j)#TU}lpImf(lbP;``~glu zz;MC2Z^U3Qt$IbaC~>j4d)-Yf9V?W(Y`qlYS1CUt32rUlTdBN9SXU5f>HO5OMchIH zyp_|P?5A$Z9dAOoKV;w{oA^3aha}yD~x_dCU^dBZg1m7E@jZiIp=8IFqc3=qzvn zwu!S%oNeN46KDT@oSiM+#Mx##+e~Mh>Fj@z&OGWsDP0IBS`j!8Mu<9LMF9W;3_$<@ z!8K{AjSg=^V95cV6uJ+VMxlo=wSs+^|4dj4 zJ@{7-8qF&ROQO)ZI!mB}5jHq1_`BZ~ao?d^VZ8(%5^<{7umAy(-;Dg5t|}g{f+Qk1 x%SD+$2H{(l delta 347 zcmZoz$39^_`veWf2^%%#nMBHadMa5xOH1|iPNrRB>MML{eA;Al4AZLJjQN|{_xZ3f zv2bq=J+iNuJ(HDzfr(-MbSVqQSymbOxvBcu#RZwgiOJcS`pNkznR)5@IhlE-6}rXg z6%dwwW?pegVopwKk$zHUo<2~#I3;^}parAY^z-(NY};>HFqW}!Ok@O^`-@?^v<0Kg z^zRmolGA%_8TE|Guwwc?TgLC~6WKrpPTju8j!}-09AmcMwP!p$m2u|ug;yEP8COle rd6m(g$#U~_scVdOj2os$USqUpd@+3{kmA%o3v@jY#7%#Ag;5>=hRc0Y diff --git a/libsgx_urts.so b/libsgx_urts.so new file mode 100755 index 0000000000000000000000000000000000000000..e64302480fce1fd62a15ebdbaaff38ab0ec72ffc GIT binary patch literal 191904 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 Date: Wed, 17 Jul 2019 12:46:14 +0200 Subject: [PATCH 31/45] fixed peculiar tslint errors --- package-lock.json | 2 +- src/domain/request/requestExecutor/RequestExecutorFactory.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e3915a5..b00d678 100644 --- a/package-lock.json +++ b/package-lock.json @@ -937,7 +937,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.ts index 389ac98..52b5fb6 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.ts @@ -1,5 +1,5 @@ -import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; -import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; +import RequestExecutor from '../../../domain/common/port/RequestExecutorPort'; +import InvalidContentTypeError from '../../../domain/common/utils/error/InvalidContentTypeError'; import UrlRequestExecutor from './UrlRequestExecutor'; class RequestExecutorFactory { From 1097e104d203048821dd47f8e51f90695a4c8b0d Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 18 Jul 2019 14:43:25 +0200 Subject: [PATCH 32/45] using request executors --- src/domain/common/port/RequestExecutorPort.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/domain/common/port/RequestExecutorPort.ts b/src/domain/common/port/RequestExecutorPort.ts index 3e9ec10..7b2249d 100644 --- a/src/domain/common/port/RequestExecutorPort.ts +++ b/src/domain/common/port/RequestExecutorPort.ts @@ -1,3 +1,6 @@ +import Request from '@core/domain/request/Request'; +import Response from '@core/domain/response/Response'; + export default interface RequestExecutorPort { - execute(request: Request); + execute(request: Request, response: Response): Response; } From da208139bf2066935c7ff2ecd6ff49074e3793d3 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 18 Jul 2019 15:23:31 +0200 Subject: [PATCH 33/45] using request executor --- src/domain/common/port/RequestExecutorPort.ts | 2 +- .../RequestExecutorFactory.spec.ts | 4 +- .../requestExecutor/RequestExecutorFactory.ts | 12 ++- .../requestExecutor/UrlRequestExecutor.ts | 28 ++++++- .../ExecuteReadyRequestsUseCase.spec.ts | 78 +++++++++++-------- .../usecase/ExecuteReadyRequestsUseCase.ts | 25 ++---- src/index.ts | 5 +- 7 files changed, 96 insertions(+), 58 deletions(-) diff --git a/src/domain/common/port/RequestExecutorPort.ts b/src/domain/common/port/RequestExecutorPort.ts index 7b2249d..605afcd 100644 --- a/src/domain/common/port/RequestExecutorPort.ts +++ b/src/domain/common/port/RequestExecutorPort.ts @@ -2,5 +2,5 @@ import Request from '@core/domain/request/Request'; import Response from '@core/domain/response/Response'; export default interface RequestExecutorPort { - execute(request: Request, response: Response): Response; + execute(request: Request, response: Response): Promise; } diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts index f69aa5e..766b8d9 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts @@ -1,4 +1,4 @@ -import { describe, it, beforeEach } from 'mocha'; +import { beforeEach, describe, it } from 'mocha'; const { expect } = require('chai').use(require('dirty-chai')); const { assert } = require('chai'); @@ -10,7 +10,7 @@ describe('RequestExecutorFactory', () => { let sut; beforeEach(() => { - sut = new RequestExecutorFactory(); + sut = new RequestExecutorFactory(null, null, null); }); it('should create UrlProvider for json', () => { diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.ts index 52b5fb6..b06a51b 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.ts @@ -1,15 +1,25 @@ +import {LoggerPort} from '@core/domain/common/port'; +import FetchDataUseCase from '@core/domain/common/usecase/FetchDataUseCase'; +import SelectDataUseCase from '@core/domain/common/usecase/SelectDataUseCase'; import RequestExecutor from '../../../domain/common/port/RequestExecutorPort'; import InvalidContentTypeError from '../../../domain/common/utils/error/InvalidContentTypeError'; import UrlRequestExecutor from './UrlRequestExecutor'; class RequestExecutorFactory { + constructor( + private readonly fetchDataUseCase: FetchDataUseCase, + private readonly selectDataUseCase: SelectDataUseCase, + private readonly logger: LoggerPort, + ) { + } + create(contentType: string): RequestExecutor { switch (contentType) { case 'json': case 'xml': case 'html': case 'ipfs': - return new UrlRequestExecutor(); + return new UrlRequestExecutor(this.fetchDataUseCase, this.selectDataUseCase, this.logger); default: throw new InvalidContentTypeError(`${contentType} is not a valid content type`); } diff --git a/src/domain/request/requestExecutor/UrlRequestExecutor.ts b/src/domain/request/requestExecutor/UrlRequestExecutor.ts index 39985fb..28ecd12 100644 --- a/src/domain/request/requestExecutor/UrlRequestExecutor.ts +++ b/src/domain/request/requestExecutor/UrlRequestExecutor.ts @@ -1,8 +1,30 @@ -import RequestExecutor from '../../common/port/RequestExecutorPort'; +import {LoggerPort} from '@core/domain/common/port'; +import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; +import FetchDataUseCase from '@core/domain/common/usecase/FetchDataUseCase'; +import SelectDataUseCase from '@core/domain/common/usecase/SelectDataUseCase'; +import Request from '@core/domain/request/Request'; +import Response from '@core/domain/response/Response'; class UrlRequestExecutor implements RequestExecutor { - execute(request: Request) { - throw new Error('Method not implemented.'); + constructor( + private readonly fetchDataUseCase: FetchDataUseCase, + private readonly selectDataUseCase: SelectDataUseCase, + private readonly logger: LoggerPort, + ) { + } + async execute(request: Request, response: Response): Promise { + const fetchedData = await this.fetchDataUseCase.fetchData(request); + response.addFetchedData(fetchedData); + + const selectedData = await this.selectDataUseCase.selectFromRawData( + response.fetchedData, + request.getContentType(), + request.getSelectionPath(), + ); + response.addSelectedData(selectedData); + this.logger.info(`Fetched and selected data [response=${JSON.stringify(response)}]`); + + return response; } } diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts index f619dba..975c5d2 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts @@ -1,17 +1,17 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import SilentLogger from '@core/application/logger/SilentLoggerAdapter'; -import InMemoryResponseRepositoryAdapter from '@core/infrastructure/persistence/inmemory/InMemoryResponseRepositoryAdapter'; +import SilentLogger from '../../../application/logger/SilentLoggerAdapter'; +import InMemoryResponseRepositoryAdapter from '../../../infrastructure/persistence/inmemory/InMemoryResponseRepositoryAdapter'; -import FetchDataUseCase from '../../common/usecase/FetchDataUseCase'; -import SelectDataUseCase from '../../common/usecase/SelectDataUseCase'; import InvalidUrlError from '../../common/utils/error/InvalidUrlError'; import SendResponseToOracleUseCase from '../../blockchain/usecase/SendResponseToOracleUseCase'; +import Response from '../../response/Response'; import {RequestRepositoryPort} from '../port'; import Request from '../Request'; +import RequestExecutorFactory from '../requestExecutor/RequestExecutorFactory'; import ExecuteReadyRequestsUseCase from './ExecuteReadyRequestsUseCase'; describe('ExecuteReadyRequestsUseCase', () => { @@ -21,27 +21,47 @@ describe('ExecuteReadyRequestsUseCase', () => { const requests = []; return { - getReadyRequests: () => [new Request('123', 'json(http://example.com).key1', Date.now() - oneMinuteMillis)], + getReadyRequests: () => [new Request('SOME_REQUEST_ID', 'json(http://example.com).key1', Date.now() - oneMinuteMillis)], list: () => requests, save: request => requests.push(request), }; }; - const fetchDataUseCase = () => ({ - fetchData: () => Promise.resolve('fetchedData'), - }); + const requestExecutorFactory = () => { + const executor = () => { + const response = new Response('SOME_REQUEST_ID'); + response.addFetchedData('fetchedData'); + response.addSelectedData('selectedData'); - const failedFetchDataUseCase = () => ({ - fetchData: () => Promise.reject(new InvalidUrlError('message')), - }); + return { + execute: () => Promise.resolve(response), + }; + }; - const selectDataUseCase = () => ({ - selectFromRawData: () => Promise.resolve('selectedData'), - }); + return { + create: () => executor(), + }; + }; - const failedSelectDataUseCase = () => ({ - selectFromRawData: () => Promise.reject(new Error()), - }); + const genericFailingRequestExecutorFactory = () => { + const executor = () => ({ + execute: () => Promise.reject(new Error()), + }); + + return { + create: () => executor(), + }; + }; + + const invalidUrlFailingRequestExecutorFactory = () => { + const executor = () => ({ + execute: () => Promise.reject(new InvalidUrlError('message')), + }); + + return { + create: () => executor(), + }; + }; const sendResponseToOracleUseCase = () => ({ sendResponse: () => Promise.resolve(), @@ -55,18 +75,17 @@ describe('ExecuteReadyRequestsUseCase', () => { // given const responseRepository = new InMemoryResponseRepositoryAdapter(); const sut = new ExecuteReadyRequestsUseCase( - fetchDataUseCase() as unknown as FetchDataUseCase, - selectDataUseCase() as unknown as SelectDataUseCase, sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, + requestExecutorFactory() as unknown as RequestExecutorFactory, new SilentLogger(), ); // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('123'); - expect(response.requestId).to.equal('123'); + const response = await responseRepository.get('SOME_REQUEST_ID'); + expect(response.requestId).to.equal('SOME_REQUEST_ID'); expect(response.fetchedData).to.equal('fetchedData'); expect(response.selectedData).to.equal('selectedData'); expect(response.state.name).to.equal('Sent'); @@ -77,11 +96,10 @@ describe('ExecuteReadyRequestsUseCase', () => { const responseRepository = new InMemoryResponseRepositoryAdapter(); const reqRepository = requestRepository(); const sut = new ExecuteReadyRequestsUseCase( - fetchDataUseCase() as unknown as FetchDataUseCase, - failedSelectDataUseCase() as unknown as SelectDataUseCase, sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, reqRepository as unknown as RequestRepositoryPort, responseRepository, + genericFailingRequestExecutorFactory() as unknown as RequestExecutorFactory, new SilentLogger(), ); // when @@ -94,18 +112,17 @@ describe('ExecuteReadyRequestsUseCase', () => { // given const responseRepository = new InMemoryResponseRepositoryAdapter(); const sut = new ExecuteReadyRequestsUseCase( - failedFetchDataUseCase() as unknown as FetchDataUseCase, - selectDataUseCase() as unknown as SelectDataUseCase, sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, + invalidUrlFailingRequestExecutorFactory() as unknown as RequestExecutorFactory, new SilentLogger(), ); // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('123'); - expect(response.requestId).to.equal('123'); + const response = await responseRepository.get('SOME_REQUEST_ID'); + expect(response.requestId).to.equal('SOME_REQUEST_ID'); expect(response.selectedData).to.equal(undefined); expect(response.errorCode).to.equal(1000); expect(response.state.name).to.equal('Sent'); @@ -115,18 +132,17 @@ describe('ExecuteReadyRequestsUseCase', () => { // given const responseRepository = new InMemoryResponseRepositoryAdapter(); const sut = new ExecuteReadyRequestsUseCase( - fetchDataUseCase() as unknown as FetchDataUseCase, - selectDataUseCase() as unknown as SelectDataUseCase, failedSendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, + requestExecutorFactory() as unknown as RequestExecutorFactory, new SilentLogger(), ); // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('123'); - expect(response.requestId).to.equal('123'); + const response = await responseRepository.get('SOME_REQUEST_ID'); + expect(response.requestId).to.equal('SOME_REQUEST_ID'); expect(response.fetchedData).to.equal('fetchedData'); expect(response.selectedData).to.equal('selectedData'); expect(response.state.name).to.equal('Failed'); diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts index c06d390..3829594 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts @@ -1,19 +1,17 @@ import SendResponseToOracleUseCase from '@core/domain/blockchain/usecase/SendResponseToOracleUseCase'; import { LoggerPort } from '@core/domain/common/port'; -import FetchDataUseCase from '@core/domain/common/usecase/FetchDataUseCase'; -import SelectDataUseCase from '@core/domain/common/usecase/SelectDataUseCase'; import {RequestRepositoryPort} from '@core/domain/request/port'; +import RequestExecutorFactory from '@core/domain/request/requestExecutor/RequestExecutorFactory'; import ResponseRepositoryPort from '@core/domain/response/port/ResponseRepositoryPort'; import InvalidRequestError from '../../common/utils/error/InvalidRequestError'; import Response from '../../response/Response'; class ExecuteReadyRequestsUseCase { constructor( - private readonly fetchDataUseCase: FetchDataUseCase, - private readonly selectDataUseCase: SelectDataUseCase, private readonly sendResponseToOracleUseCase: SendResponseToOracleUseCase, private readonly requestRepository: RequestRepositoryPort, private readonly responseRepository: ResponseRepositoryPort, + private readonly requestExecutorFactory: RequestExecutorFactory, private readonly logger: LoggerPort, ) { } @@ -26,7 +24,7 @@ class ExecuteReadyRequestsUseCase { await this.requestRepository.save(request); this.logger.info(`Request marked as processed [requestId=${request.id}]`); - const response = await this.fetchAndSelectData(request); + const response = await this.executeRequest(request); if (!response) { return; } @@ -42,26 +40,17 @@ class ExecuteReadyRequestsUseCase { await Promise.all(promises); } - private async fetchAndSelectData(request): Promise { + private async executeRequest(request): Promise { const response = new Response(request.id); try { - const fetchedData = await this.fetchDataUseCase.fetchData(request); - response.addFetchedData(fetchedData); + const requestExecutor = this.requestExecutorFactory.create(request.getContentType()); - const selectedData = await this.selectDataUseCase.selectFromRawData( - response.fetchedData, - request.getContentType(), - request.getSelectionPath(), - ); - response.addSelectedData(selectedData); - this.logger.info(`Fetched and selected data [response=${JSON.stringify(response)}]`); - - return response; + return await requestExecutor.execute(request, response); } catch (e) { if (e instanceof InvalidRequestError) { response.setError(e.code); - this.logger.error(`Could not fetch and/or select data [response=${JSON.stringify(response)}]`, e); + this.logger.error(`Invalid request. Data was not fetched. [response=${JSON.stringify(response)}]`, e); return response; } diff --git a/src/index.ts b/src/index.ts index ba29540..19b97f5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,3 +1,4 @@ +import RequestExecutorFactory from '@core/domain/request/requestExecutor/RequestExecutorFactory'; import * as dotenv from 'dotenv'; dotenv.config(); @@ -81,13 +82,13 @@ const markValidRequestsAsReadyUseCase = new MarkValidRequestsAsReadyUseCase( ); const fetchDataUseCase = new FetchDataUseCase(dataFetcher, logger); const selectDataUseCase = new SelectDataUseCase(dataSelectorFinder, logger); +const requestExecutorFactory = new RequestExecutorFactory(fetchDataUseCase, selectDataUseCase, logger); const sendResponseToOracleUseCase = new SendResponseToOracleUseCase(oracle, logger); const executeReadyRequestsUseCase = new ExecuteReadyRequestsUseCase( - fetchDataUseCase, - selectDataUseCase, sendResponseToOracleUseCase, requestRepository, responseRepository, + requestExecutorFactory, logger, ); const checkHealthStatusUseCase = new CheckHealthStatusUseCase(); From 18a15e9d20f7e57c6f5c6de32d18449064b7662b Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Thu, 18 Jul 2019 16:08:02 +0200 Subject: [PATCH 34/45] argument types --- src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts | 3 ++- src/domain/common/port/DataFetcherPort.ts | 4 +++- src/domain/common/usecase/FetchDataUseCase.ts | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts index 21e5149..85b9ea8 100644 --- a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts +++ b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts @@ -1,3 +1,4 @@ +import Request from '@core/domain/request/Request'; import axios from 'axios'; import DataFetcher from '@core/domain/common/port/DataFetcherPort'; @@ -5,7 +6,7 @@ import { HttpError } from '@core/domain/common/utils/error'; import RequestUrlParser from '@core/domain/request/RequestUrlParser'; class AxiosUrlDataFetcherAdapter implements DataFetcher { - async fetch(request): Promise { + async fetch(request: Request): Promise { const rawUrl = RequestUrlParser.resolveRawUrl(request.url); try { diff --git a/src/domain/common/port/DataFetcherPort.ts b/src/domain/common/port/DataFetcherPort.ts index 33423ad..7e37a0f 100644 --- a/src/domain/common/port/DataFetcherPort.ts +++ b/src/domain/common/port/DataFetcherPort.ts @@ -1,3 +1,5 @@ +import Request from '@core/domain/request/Request'; + export default interface DataFetcherPort { - fetch(request: string): Promise; + fetch(request: Request): Promise; } diff --git a/src/domain/common/usecase/FetchDataUseCase.ts b/src/domain/common/usecase/FetchDataUseCase.ts index 0e6444e..484c0e7 100644 --- a/src/domain/common/usecase/FetchDataUseCase.ts +++ b/src/domain/common/usecase/FetchDataUseCase.ts @@ -1,5 +1,6 @@ import DataFetcher from '@core/domain/common/port/DataFetcherPort'; import LoggerPort from '@core/domain/common/port/LoggerPort'; +import Request from '@core/domain/request/Request'; class FetchDataUseCase { constructor( @@ -8,7 +9,7 @@ class FetchDataUseCase { ) { } - async fetchData(request) { + async fetchData(request: Request) { const rawData = await this.dataFetcher.fetch(request); this.logger.info(`Data fetched [requestId=${request.id}, rawData=${rawData}]`); From 6b2cea185bc6e1b63f56fc0f020c770da8a9e352 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 19 Jul 2019 15:58:13 +0200 Subject: [PATCH 35/45] making request executors aware of which contentTypes they can handle + other CR changes --- src/domain/common/port/RequestExecutorPort.ts | 1 + .../RequestExecutorFactory.spec.ts | 2 +- .../requestExecutor/RequestExecutorFactory.ts | 28 +++++++++++-------- .../requestExecutor/UrlRequestExecutor.ts | 5 ++++ .../ExecuteReadyRequestsUseCase.spec.ts | 27 +++++++++--------- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/domain/common/port/RequestExecutorPort.ts b/src/domain/common/port/RequestExecutorPort.ts index 605afcd..2d49d2b 100644 --- a/src/domain/common/port/RequestExecutorPort.ts +++ b/src/domain/common/port/RequestExecutorPort.ts @@ -3,4 +3,5 @@ import Response from '@core/domain/response/Response'; export default interface RequestExecutorPort { execute(request: Request, response: Response): Promise; + canHandle(contentType: string): boolean; } diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts index 766b8d9..88acc0b 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts @@ -2,7 +2,7 @@ import { beforeEach, describe, it } from 'mocha'; const { expect } = require('chai').use(require('dirty-chai')); const { assert } = require('chai'); -import InvalidContentTypeError from '../../common/utils/error/InvalidContentTypeError'; +import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; import RequestExecutorFactory from './RequestExecutorFactory'; import UrlRequestExecutor from './UrlRequestExecutor'; diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.ts index b06a51b..ad2f976 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.ts @@ -6,23 +6,29 @@ import InvalidContentTypeError from '../../../domain/common/utils/error/InvalidC import UrlRequestExecutor from './UrlRequestExecutor'; class RequestExecutorFactory { + private requestExecutors: RequestExecutor[]; constructor( - private readonly fetchDataUseCase: FetchDataUseCase, - private readonly selectDataUseCase: SelectDataUseCase, - private readonly logger: LoggerPort, + fetchDataUseCase: FetchDataUseCase, + selectDataUseCase: SelectDataUseCase, + logger: LoggerPort, ) { + this.requestExecutors = [new UrlRequestExecutor(fetchDataUseCase, selectDataUseCase, logger)]; } create(contentType: string): RequestExecutor { - switch (contentType) { - case 'json': - case 'xml': - case 'html': - case 'ipfs': - return new UrlRequestExecutor(this.fetchDataUseCase, this.selectDataUseCase, this.logger); - default: - throw new InvalidContentTypeError(`${contentType} is not a valid content type`); + let chosenRequestExecutor = null; + + this.requestExecutors.forEach( (requestExecutor) => { + if (requestExecutor.canHandle(contentType)) { + chosenRequestExecutor = requestExecutor; + } + }); + + if (chosenRequestExecutor === null) { + throw new InvalidContentTypeError(`${contentType} is not a valid content type`); } + + return chosenRequestExecutor; } } diff --git a/src/domain/request/requestExecutor/UrlRequestExecutor.ts b/src/domain/request/requestExecutor/UrlRequestExecutor.ts index 28ecd12..803d8df 100644 --- a/src/domain/request/requestExecutor/UrlRequestExecutor.ts +++ b/src/domain/request/requestExecutor/UrlRequestExecutor.ts @@ -12,6 +12,11 @@ class UrlRequestExecutor implements RequestExecutor { private readonly logger: LoggerPort, ) { } + + canHandle(contentType: string): boolean { + return ['json', 'xml', 'html', 'ipfs'].includes(contentType); + } + async execute(request: Request, response: Response): Promise { const fetchedData = await this.fetchDataUseCase.fetchData(request); response.addFetchedData(fetchedData); diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts index 975c5d2..457adb0 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts @@ -1,13 +1,13 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; -import SilentLogger from '../../../application/logger/SilentLoggerAdapter'; -import InMemoryResponseRepositoryAdapter from '../../../infrastructure/persistence/inmemory/InMemoryResponseRepositoryAdapter'; +import SilentLogger from '@core/application/logger/SilentLoggerAdapter'; +import InMemoryResponseRepositoryAdapter from '@core/infrastructure/persistence/inmemory/InMemoryResponseRepositoryAdapter'; -import InvalidUrlError from '../../common/utils/error/InvalidUrlError'; +import InvalidUrlError from '@core/domain/common/utils/error/InvalidUrlError'; -import SendResponseToOracleUseCase from '../../blockchain/usecase/SendResponseToOracleUseCase'; -import Response from '../../response/Response'; +import SendResponseToOracleUseCase from '@core/domain/blockchain/usecase/SendResponseToOracleUseCase'; +import Response from '@core/domain/response/Response'; import {RequestRepositoryPort} from '../port'; import Request from '../Request'; @@ -16,12 +16,13 @@ import ExecuteReadyRequestsUseCase from './ExecuteReadyRequestsUseCase'; describe('ExecuteReadyRequestsUseCase', () => { const oneMinuteMillis = 60 * 1000; + const someRequestId = 'SOME_REQUEST_ID'; const requestRepository = () => { const requests = []; return { - getReadyRequests: () => [new Request('SOME_REQUEST_ID', 'json(http://example.com).key1', Date.now() - oneMinuteMillis)], + getReadyRequests: () => [new Request(someRequestId, 'json(http://example.com).key1', Date.now() - oneMinuteMillis)], list: () => requests, save: request => requests.push(request), }; @@ -29,7 +30,7 @@ describe('ExecuteReadyRequestsUseCase', () => { const requestExecutorFactory = () => { const executor = () => { - const response = new Response('SOME_REQUEST_ID'); + const response = new Response(someRequestId); response.addFetchedData('fetchedData'); response.addSelectedData('selectedData'); @@ -84,8 +85,8 @@ describe('ExecuteReadyRequestsUseCase', () => { // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('SOME_REQUEST_ID'); - expect(response.requestId).to.equal('SOME_REQUEST_ID'); + const response = await responseRepository.get(someRequestId); + expect(response.requestId).to.equal(someRequestId); expect(response.fetchedData).to.equal('fetchedData'); expect(response.selectedData).to.equal('selectedData'); expect(response.state.name).to.equal('Sent'); @@ -121,8 +122,8 @@ describe('ExecuteReadyRequestsUseCase', () => { // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('SOME_REQUEST_ID'); - expect(response.requestId).to.equal('SOME_REQUEST_ID'); + const response = await responseRepository.get(someRequestId); + expect(response.requestId).to.equal(someRequestId); expect(response.selectedData).to.equal(undefined); expect(response.errorCode).to.equal(1000); expect(response.state.name).to.equal('Sent'); @@ -141,8 +142,8 @@ describe('ExecuteReadyRequestsUseCase', () => { // when await sut.executeReadyRequests(); // then - const response = await responseRepository.get('SOME_REQUEST_ID'); - expect(response.requestId).to.equal('SOME_REQUEST_ID'); + const response = await responseRepository.get(someRequestId); + expect(response.requestId).to.equal(someRequestId); expect(response.fetchedData).to.equal('fetchedData'); expect(response.selectedData).to.equal('selectedData'); expect(response.state.name).to.equal('Failed'); From 01ac038956976087557e42658ae73c3ae3efe188 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Fri, 19 Jul 2019 19:37:12 +0200 Subject: [PATCH 36/45] simplified request executor choosing + stylistic changes --- .../requestExecutor/RequestExecutorFactory.ts | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorFactory.ts index ad2f976..16c240c 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.ts +++ b/src/domain/request/requestExecutor/RequestExecutorFactory.ts @@ -1,12 +1,13 @@ -import {LoggerPort} from '@core/domain/common/port'; +import { LoggerPort } from '@core/domain/common/port'; +import RequestExecutor from '@core/domain/common/port/RequestExecutorPort'; import FetchDataUseCase from '@core/domain/common/usecase/FetchDataUseCase'; import SelectDataUseCase from '@core/domain/common/usecase/SelectDataUseCase'; -import RequestExecutor from '../../../domain/common/port/RequestExecutorPort'; -import InvalidContentTypeError from '../../../domain/common/utils/error/InvalidContentTypeError'; +import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; import UrlRequestExecutor from './UrlRequestExecutor'; class RequestExecutorFactory { private requestExecutors: RequestExecutor[]; + constructor( fetchDataUseCase: FetchDataUseCase, selectDataUseCase: SelectDataUseCase, @@ -16,15 +17,9 @@ class RequestExecutorFactory { } create(contentType: string): RequestExecutor { - let chosenRequestExecutor = null; - - this.requestExecutors.forEach( (requestExecutor) => { - if (requestExecutor.canHandle(contentType)) { - chosenRequestExecutor = requestExecutor; - } - }); + const chosenRequestExecutor = this.requestExecutors.find(re => re.canHandle(contentType)); - if (chosenRequestExecutor === null) { + if (chosenRequestExecutor === undefined) { throw new InvalidContentTypeError(`${contentType} is not a valid content type`); } From 9e408097e0c940589e26164b653292a17e43acd3 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 13:17:08 +0200 Subject: [PATCH 37/45] removed response from request executor interface --- src/domain/common/port/RequestExecutorPort.ts | 2 +- src/domain/request/requestExecutor/UrlRequestExecutor.ts | 4 +++- src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts | 5 ++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/domain/common/port/RequestExecutorPort.ts b/src/domain/common/port/RequestExecutorPort.ts index 2d49d2b..bb1356b 100644 --- a/src/domain/common/port/RequestExecutorPort.ts +++ b/src/domain/common/port/RequestExecutorPort.ts @@ -2,6 +2,6 @@ import Request from '@core/domain/request/Request'; import Response from '@core/domain/response/Response'; export default interface RequestExecutorPort { - execute(request: Request, response: Response): Promise; + execute(request: Request): Promise; canHandle(contentType: string): boolean; } diff --git a/src/domain/request/requestExecutor/UrlRequestExecutor.ts b/src/domain/request/requestExecutor/UrlRequestExecutor.ts index 803d8df..6ae0341 100644 --- a/src/domain/request/requestExecutor/UrlRequestExecutor.ts +++ b/src/domain/request/requestExecutor/UrlRequestExecutor.ts @@ -17,7 +17,9 @@ class UrlRequestExecutor implements RequestExecutor { return ['json', 'xml', 'html', 'ipfs'].includes(contentType); } - async execute(request: Request, response: Response): Promise { + async execute(request: Request): Promise { + const response = new Response(request.id); + const fetchedData = await this.fetchDataUseCase.fetchData(request); response.addFetchedData(fetchedData); diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts index 3829594..f936eeb 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts @@ -41,14 +41,13 @@ class ExecuteReadyRequestsUseCase { } private async executeRequest(request): Promise { - const response = new Response(request.id); - try { const requestExecutor = this.requestExecutorFactory.create(request.getContentType()); - return await requestExecutor.execute(request, response); + return await requestExecutor.execute(request); } catch (e) { if (e instanceof InvalidRequestError) { + const response = new Response(request.id); response.setError(e.code); this.logger.error(`Invalid request. Data was not fetched. [response=${JSON.stringify(response)}]`, e); From 04f297c3f1db705f1790bcc51165d3a2d3ed79d5 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 16:41:11 +0200 Subject: [PATCH 38/45] rename --- ...Factory.spec.ts => RequestExecutorStrategy.spec.ts} | 6 +++--- ...stExecutorFactory.ts => RequestExecutorStrategy.ts} | 4 ++-- .../usecase/ExecuteReadyRequestsUseCase.spec.ts | 10 +++++----- .../request/usecase/ExecuteReadyRequestsUseCase.ts | 4 ++-- src/index.ts | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) rename src/domain/request/requestExecutor/{RequestExecutorFactory.spec.ts => RequestExecutorStrategy.spec.ts} (90%) rename src/domain/request/requestExecutor/{RequestExecutorFactory.ts => RequestExecutorStrategy.ts} (93%) diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts b/src/domain/request/requestExecutor/RequestExecutorStrategy.spec.ts similarity index 90% rename from src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts rename to src/domain/request/requestExecutor/RequestExecutorStrategy.spec.ts index 88acc0b..b44cd2e 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.spec.ts +++ b/src/domain/request/requestExecutor/RequestExecutorStrategy.spec.ts @@ -3,14 +3,14 @@ const { expect } = require('chai').use(require('dirty-chai')); const { assert } = require('chai'); import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; -import RequestExecutorFactory from './RequestExecutorFactory'; +import RequestExecutorStrategy from './RequestExecutorStrategy'; import UrlRequestExecutor from './UrlRequestExecutor'; -describe('RequestExecutorFactory', () => { +describe('RequestExecutorStrategy', () => { let sut; beforeEach(() => { - sut = new RequestExecutorFactory(null, null, null); + sut = new RequestExecutorStrategy(null, null, null); }); it('should create UrlProvider for json', () => { diff --git a/src/domain/request/requestExecutor/RequestExecutorFactory.ts b/src/domain/request/requestExecutor/RequestExecutorStrategy.ts similarity index 93% rename from src/domain/request/requestExecutor/RequestExecutorFactory.ts rename to src/domain/request/requestExecutor/RequestExecutorStrategy.ts index 16c240c..74db5b4 100644 --- a/src/domain/request/requestExecutor/RequestExecutorFactory.ts +++ b/src/domain/request/requestExecutor/RequestExecutorStrategy.ts @@ -5,7 +5,7 @@ import SelectDataUseCase from '@core/domain/common/usecase/SelectDataUseCase'; import InvalidContentTypeError from '@core/domain/common/utils/error/InvalidContentTypeError'; import UrlRequestExecutor from './UrlRequestExecutor'; -class RequestExecutorFactory { +class RequestExecutorStrategy { private requestExecutors: RequestExecutor[]; constructor( @@ -27,4 +27,4 @@ class RequestExecutorFactory { } } -export default RequestExecutorFactory; +export default RequestExecutorStrategy; diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts index 457adb0..e47a878 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.spec.ts @@ -11,7 +11,7 @@ import Response from '@core/domain/response/Response'; import {RequestRepositoryPort} from '../port'; import Request from '../Request'; -import RequestExecutorFactory from '../requestExecutor/RequestExecutorFactory'; +import RequestExecutorStrategy from '../requestExecutor/RequestExecutorStrategy'; import ExecuteReadyRequestsUseCase from './ExecuteReadyRequestsUseCase'; describe('ExecuteReadyRequestsUseCase', () => { @@ -79,7 +79,7 @@ describe('ExecuteReadyRequestsUseCase', () => { sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, - requestExecutorFactory() as unknown as RequestExecutorFactory, + requestExecutorFactory() as unknown as RequestExecutorStrategy, new SilentLogger(), ); // when @@ -100,7 +100,7 @@ describe('ExecuteReadyRequestsUseCase', () => { sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, reqRepository as unknown as RequestRepositoryPort, responseRepository, - genericFailingRequestExecutorFactory() as unknown as RequestExecutorFactory, + genericFailingRequestExecutorFactory() as unknown as RequestExecutorStrategy, new SilentLogger(), ); // when @@ -116,7 +116,7 @@ describe('ExecuteReadyRequestsUseCase', () => { sendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, - invalidUrlFailingRequestExecutorFactory() as unknown as RequestExecutorFactory, + invalidUrlFailingRequestExecutorFactory() as unknown as RequestExecutorStrategy, new SilentLogger(), ); // when @@ -136,7 +136,7 @@ describe('ExecuteReadyRequestsUseCase', () => { failedSendResponseToOracleUseCase() as unknown as SendResponseToOracleUseCase, requestRepository() as unknown as RequestRepositoryPort, responseRepository, - requestExecutorFactory() as unknown as RequestExecutorFactory, + requestExecutorFactory() as unknown as RequestExecutorStrategy, new SilentLogger(), ); // when diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts index f936eeb..53119b3 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts @@ -1,7 +1,7 @@ import SendResponseToOracleUseCase from '@core/domain/blockchain/usecase/SendResponseToOracleUseCase'; import { LoggerPort } from '@core/domain/common/port'; import {RequestRepositoryPort} from '@core/domain/request/port'; -import RequestExecutorFactory from '@core/domain/request/requestExecutor/RequestExecutorFactory'; +import RequestExecutorStrategy from '@core/domain/request/requestExecutor/RequestExecutorStrategy'; import ResponseRepositoryPort from '@core/domain/response/port/ResponseRepositoryPort'; import InvalidRequestError from '../../common/utils/error/InvalidRequestError'; import Response from '../../response/Response'; @@ -11,7 +11,7 @@ class ExecuteReadyRequestsUseCase { private readonly sendResponseToOracleUseCase: SendResponseToOracleUseCase, private readonly requestRepository: RequestRepositoryPort, private readonly responseRepository: ResponseRepositoryPort, - private readonly requestExecutorFactory: RequestExecutorFactory, + private readonly requestExecutorFactory: RequestExecutorStrategy, private readonly logger: LoggerPort, ) { } diff --git a/src/index.ts b/src/index.ts index 19b97f5..25d121d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import RequestExecutorFactory from '@core/domain/request/requestExecutor/RequestExecutorFactory'; +import RequestExecutorStrategy from '@core/domain/request/requestExecutor/RequestExecutorStrategy'; import * as dotenv from 'dotenv'; dotenv.config(); @@ -82,7 +82,7 @@ const markValidRequestsAsReadyUseCase = new MarkValidRequestsAsReadyUseCase( ); const fetchDataUseCase = new FetchDataUseCase(dataFetcher, logger); const selectDataUseCase = new SelectDataUseCase(dataSelectorFinder, logger); -const requestExecutorFactory = new RequestExecutorFactory(fetchDataUseCase, selectDataUseCase, logger); +const requestExecutorFactory = new RequestExecutorStrategy(fetchDataUseCase, selectDataUseCase, logger); const sendResponseToOracleUseCase = new SendResponseToOracleUseCase(oracle, logger); const executeReadyRequestsUseCase = new ExecuteReadyRequestsUseCase( sendResponseToOracleUseCase, From 8afdfed80da15e178bfd39e0daa8e07f4834e2d7 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 17:18:44 +0200 Subject: [PATCH 39/45] fixed random.org error handling and added proper API key --- .env.bitbucket | 2 +- .env.local | 2 +- .env.test | 2 +- .env.tpl | 2 +- .../dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts | 9 ++++++--- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.env.bitbucket b/.env.bitbucket index 1fb5bbf..f96986f 100644 --- a/.env.bitbucket +++ b/.env.bitbucket @@ -9,5 +9,5 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false -RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 +RANDOMDOTORG_API_KEY=ba3139ef-4f53-48fc-a7e8-af437005e09c diff --git a/.env.local b/.env.local index a8828b3..45ede47 100644 --- a/.env.local +++ b/.env.local @@ -9,4 +9,4 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false -RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 +RANDOMDOTORG_API_KEY=ba3139ef-4f53-48fc-a7e8-af437005e09c diff --git a/.env.test b/.env.test index e346d50..1bb7fb3 100644 --- a/.env.test +++ b/.env.test @@ -9,4 +9,4 @@ SAFE_BLOCK_DELAY=2 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false -RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 +RANDOMDOTORG_API_KEY=ba3139ef-4f53-48fc-a7e8-af437005e09c diff --git a/.env.tpl b/.env.tpl index 2c9c3e6..5c294c6 100644 --- a/.env.tpl +++ b/.env.tpl @@ -9,4 +9,4 @@ SAFE_BLOCK_DELAY=0 START_BLOCK=0 PERSISTENCE=INMEMORY SGX_ENABLED=false -RANDOMDOTORG_API_KEY=00000000-0000-0000-0000-000000000000 +RANDOMDOTORG_API_KEY=ba3139ef-4f53-48fc-a7e8-af437005e09c diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts index ee28332..b6b5c38 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts @@ -26,11 +26,14 @@ class RandomDotOrgDataFetcherAdapter implements DataFetcher { "apiKey":"${this.apiKey}","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0 }`, }); + + return jp.value(response.data, 'result.random.data[0]').toString(); } catch (e) { - throw new HttpError(e.response.statusText, e.response.status); - } + const randomDotOrgErrorCode = jp.value(response.data, 'error.code').toString(); + const randomDotOrgErrorMessage = jp.value(response.data, 'error.message').toString(); - return jp.value(response.data, 'result.random.data[0]').toString(); + throw new HttpError(randomDotOrgErrorMessage, randomDotOrgErrorCode); + } } } From 308694f01d30c54ab9a24bdf3df6dc1a4bb094a1 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 18:23:15 +0200 Subject: [PATCH 40/45] moved sgx libs to separate dir --- Dockerfile | 2 +- EnclaveWrapper.so | Bin 120576 -> 0 bytes Enclave.signed.so => libs/Enclave.signed.so | Bin 147064 -> 147056 bytes libs/EnclaveWrapper.so | Bin 0 -> 120432 bytes libsgx_urts.so => libs/libsgx_urts.so | Bin 5 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 EnclaveWrapper.so rename Enclave.signed.so => libs/Enclave.signed.so (93%) create mode 100755 libs/EnclaveWrapper.so rename libsgx_urts.so => libs/libsgx_urts.so (100%) diff --git a/Dockerfile b/Dockerfile index a57f633..22779ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM sebvaucher/sgx-base:sgx_2.5 ENV SGX_SDK /opt/intel/sgxsdk ENV PATH=$SGX_SDK/bin:$SGX_SDK/bin/x64:$PATH \ PKG_CONFIG_PATH=$SGX_SDK/pkgconfig:$PKG_CONFIG_PATH \ - LD_LIBRARY_PATH=$SGX_SDK/sdk_libs:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=$SGX_SDK/sdk_libs:./libs:$LD_LIBRARY_PATH # Install nodejs dependencies RUN apt-get update -q -q && \ diff --git a/EnclaveWrapper.so b/EnclaveWrapper.so deleted file mode 100644 index f83d27dd28131aa81b7318a242fb861ab8438e95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120576 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 diff --git a/Enclave.signed.so b/libs/Enclave.signed.so similarity index 93% rename from Enclave.signed.so rename to libs/Enclave.signed.so index 3c557fa78789dabd0e5b79a6248b14fbd864551f..70641f314cd1ed417c09910def7455edaa9c7574 100644 GIT binary patch delta 5314 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 diff --git a/libs/EnclaveWrapper.so b/libs/EnclaveWrapper.so new file mode 100755 index 0000000000000000000000000000000000000000..86ed552fa0d6debee5c7676ec1762c8489ca4e03 GIT binary patch literal 120432 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�ZY0Ou?HnaOs*KYE$6yYm!(nN3JQ{S66NO`*Z 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 literal 0 HcmV?d00001 diff --git a/libsgx_urts.so b/libs/libsgx_urts.so similarity index 100% rename from libsgx_urts.so rename to libs/libsgx_urts.so From 527fb5634fb964f07dc651990e7568fcb21f1c50 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 18:27:13 +0200 Subject: [PATCH 41/45] rename --- src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts index 53119b3..fc0fa2c 100644 --- a/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts +++ b/src/domain/request/usecase/ExecuteReadyRequestsUseCase.ts @@ -11,7 +11,7 @@ class ExecuteReadyRequestsUseCase { private readonly sendResponseToOracleUseCase: SendResponseToOracleUseCase, private readonly requestRepository: RequestRepositoryPort, private readonly responseRepository: ResponseRepositoryPort, - private readonly requestExecutorFactory: RequestExecutorStrategy, + private readonly requestExecutorStrategy: RequestExecutorStrategy, private readonly logger: LoggerPort, ) { } @@ -42,7 +42,7 @@ class ExecuteReadyRequestsUseCase { private async executeRequest(request): Promise { try { - const requestExecutor = this.requestExecutorFactory.create(request.getContentType()); + const requestExecutor = this.requestExecutorStrategy.create(request.getContentType()); return await requestExecutor.execute(request); } catch (e) { From bab78c2492c2a58e1c06c2fa6d4733744d92ca21 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Mon, 22 Jul 2019 18:57:20 +0200 Subject: [PATCH 42/45] accept negative random bounds --- src/domain/request/RequestUrlParser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domain/request/RequestUrlParser.ts b/src/domain/request/RequestUrlParser.ts index c00fbdc..73e44fe 100644 --- a/src/domain/request/RequestUrlParser.ts +++ b/src/domain/request/RequestUrlParser.ts @@ -30,7 +30,7 @@ class RequestUrlParser { } static resolveLeftSideBound(wrappedUrl: string): string { - const typeRegex = new RegExp(/^random\((\d+),(\d+)\)/); + const typeRegex = new RegExp(/^random\((-?\d+),(-?\d+)\)/); if (typeRegex.test(wrappedUrl)) { return typeRegex.exec(wrappedUrl)[1]; @@ -40,7 +40,7 @@ class RequestUrlParser { } static resolveRightSideBound(wrappedUrl: string): string { - const typeRegex = new RegExp(/^random\((\d+),(\d+)\)/); + const typeRegex = new RegExp(/^random\((-?\d+),(-?\d+)\)/); if (typeRegex.test(wrappedUrl)) { return typeRegex.exec(wrappedUrl)[2]; From a154cb8820bce32a3e322573a443d33bfabcbbee Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Tue, 23 Jul 2019 13:18:10 +0200 Subject: [PATCH 43/45] moved test data to distinct location + other CR changes --- Dockerfile | 2 +- package.json | 6 +++--- .../dataFetcher/AxiosUrlDataFetcherAdapter.ts | 4 ++-- ...n.ts => RandomDotOrgDataFetcherAdapter.spec.ts} | 6 +++--- .../random/RandomDotOrgDataFetcherAdapter.ts | 14 ++++++++++++-- .../dataFetcher/random/RandomDotOrgResponse.ts | 0 tsconfig.json | 3 ++- 7 files changed, 23 insertions(+), 12 deletions(-) rename src/application/dataFetcher/random/{RandomDotOrgDataFetcherAdapter.integration.ts => RandomDotOrgDataFetcherAdapter.spec.ts} (83%) rename {src => test}/application/dataFetcher/random/RandomDotOrgResponse.ts (100%) diff --git a/Dockerfile b/Dockerfile index 22779ba..b6fb180 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN apt-get update -q -q && \ apt-get install curl libssl1.0-dev --yes # Install nodejs v11 -RUN curl -sL https://deb.nodesource.com/setup_11.x | bash - +RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - RUN apt-get install -y nodejs RUN npm install npm --global diff --git a/package.json b/package.json index 782fec9..68005d5 100644 --- a/package.json +++ b/package.json @@ -61,11 +61,11 @@ "devDependencies": { "@types/dotenv": "6.1.1", "@types/express": "4.17.0", - "@types/ffi": "^0.2.2", - "@types/jsonpath": "^0.2.0", + "@types/ffi": "0.2.2", + "@types/jsonpath": "0.2.0", "@types/lodash": "4.14.134", "@types/mongoose": "5.5.6", - "@types/nock": "^10.0.3", + "@types/nock": "10.0.3", "@types/ref": "0.0.28", "chai": "4.1.2", "chai-as-promised": "7.1.1", diff --git a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts index f7f1dd9..bbff6b3 100644 --- a/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts +++ b/src/application/dataFetcher/AxiosUrlDataFetcherAdapter.ts @@ -1,9 +1,9 @@ import axios from 'axios'; +import DataFetcher from '@core/domain/common/port/DataFetcherPort'; +import { HttpError } from '@core/domain/common/utils/error'; import Request from '@core/domain/request/Request'; import RequestUrlParser from '@core/domain/request/RequestUrlParser'; -import DataFetcher from '../../domain/common/port/DataFetcherPort'; -import { HttpError } from '../../domain/common/utils/error'; class AxiosUrlDataFetcherAdapter implements DataFetcher { async fetch(request: Request): Promise { diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.integration.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts similarity index 83% rename from src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.integration.ts rename to src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts index 814b9d6..0e4c7c0 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.integration.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts @@ -2,11 +2,11 @@ import { expect } from 'chai'; import { describe, it } from 'mocha'; import * as nock from 'nock'; -import Request from '../../../domain/request/Request'; +import Request from '@core/domain/request/Request'; +import {response} from '@test/application/dataFetcher/random/RandomDotOrgResponse'; import RandomDotOrgDataFetcherAdapter from './RandomDotOrgDataFetcherAdapter'; -import {response} from './RandomDotOrgResponse'; -describe('Random.org Integration Test', () => { +describe('RandomSgxDataFetcherAdapter', () => { const request = new Request('SOME_REQUEST_ID', 'random(0,10)', null); it('return first data item on successful response', async () => { diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts index b6b5c38..b5502ac 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts @@ -22,8 +22,18 @@ class RandomDotOrgDataFetcherAdapter implements DataFetcher { headers: { 'Content-Type': 'application/json', }, - data: `{"jsonrpc":"2.0","method":"generateIntegers","params":{ - "apiKey":"${this.apiKey}","n":1,"min":${min},"max":${max},"replacement":true,"base":10},"id":0 + data: `{ + "jsonrpc":"2.0", + "method":"generateIntegers", + "params":{ + "apiKey":"${this.apiKey}", + "n":1, + "min":${min}, + "max":${max}, + "replacement":true, + "base":10 + }, + "id":0 }`, }); diff --git a/src/application/dataFetcher/random/RandomDotOrgResponse.ts b/test/application/dataFetcher/random/RandomDotOrgResponse.ts similarity index 100% rename from src/application/dataFetcher/random/RandomDotOrgResponse.ts rename to test/application/dataFetcher/random/RandomDotOrgResponse.ts diff --git a/tsconfig.json b/tsconfig.json index a431e17..a861eb8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,8 @@ "strictBindCallApply": true, "baseUrl": "./src", "paths": { - "@core/*": ["./*"] + "@core/*": ["./*"], + "@test/*": ["../test/*"] } }, "files": [ From d4541abc2ac7dd8b6dc712b701be13f4f5744601 Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Tue, 23 Jul 2019 16:20:43 +0200 Subject: [PATCH 44/45] more CR changes --- .../RandomDotOrgDataFetcherAdapter.spec.ts | 2 +- .../random/RandomDotOrgDataFetcherAdapter.ts | 30 +++++++++++-------- tsconfig.json | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts index 0e4c7c0..28d40df 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts @@ -3,7 +3,7 @@ import { describe, it } from 'mocha'; import * as nock from 'nock'; import Request from '@core/domain/request/Request'; -import {response} from '@test/application/dataFetcher/random/RandomDotOrgResponse'; +import {response} from '@test-data/application/dataFetcher/random/RandomDotOrgResponse'; import RandomDotOrgDataFetcherAdapter from './RandomDotOrgDataFetcherAdapter'; describe('RandomSgxDataFetcherAdapter', () => { diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts index b5502ac..4c94729 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.ts @@ -22,19 +22,7 @@ class RandomDotOrgDataFetcherAdapter implements DataFetcher { headers: { 'Content-Type': 'application/json', }, - data: `{ - "jsonrpc":"2.0", - "method":"generateIntegers", - "params":{ - "apiKey":"${this.apiKey}", - "n":1, - "min":${min}, - "max":${max}, - "replacement":true, - "base":10 - }, - "id":0 - }`, + data: this.createRequestData(Number(min), Number(max)), }); return jp.value(response.data, 'result.random.data[0]').toString(); @@ -45,6 +33,22 @@ class RandomDotOrgDataFetcherAdapter implements DataFetcher { throw new HttpError(randomDotOrgErrorMessage, randomDotOrgErrorCode); } } + + private createRequestData(min: number, max: number): string { + return JSON.stringify({ + jsonrpc: '2.0', + method: 'generateIntegers', + params: { + apiKey: this.apiKey, + n: 1, + min, + max, + replacement: true, + base: 10, + }, + id: 0, + }); + } } export default RandomDotOrgDataFetcherAdapter; diff --git a/tsconfig.json b/tsconfig.json index a861eb8..fda06e8 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "baseUrl": "./src", "paths": { "@core/*": ["./*"], - "@test/*": ["../test/*"] + "@test-data/*": ["../test/*"] } }, "files": [ From 201df56e3094ecb4886d1f77d0273c8bf3dc619a Mon Sep 17 00:00:00 2001 From: Krzysztof Spisak-Spisacki Date: Tue, 23 Jul 2019 17:09:14 +0200 Subject: [PATCH 45/45] consistent path naming --- .../dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts | 2 +- tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts index 28d40df..283f831 100644 --- a/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts +++ b/src/application/dataFetcher/random/RandomDotOrgDataFetcherAdapter.spec.ts @@ -3,7 +3,7 @@ import { describe, it } from 'mocha'; import * as nock from 'nock'; import Request from '@core/domain/request/Request'; -import {response} from '@test-data/application/dataFetcher/random/RandomDotOrgResponse'; +import {response} from '@testData/application/dataFetcher/random/RandomDotOrgResponse'; import RandomDotOrgDataFetcherAdapter from './RandomDotOrgDataFetcherAdapter'; describe('RandomSgxDataFetcherAdapter', () => { diff --git a/tsconfig.json b/tsconfig.json index fda06e8..bd7aa95 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "baseUrl": "./src", "paths": { "@core/*": ["./*"], - "@test-data/*": ["../test/*"] + "@testData/*": ["../test/*"] } }, "files": [