Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
histhub
geolinker-common
Commits
974b5289
Commit
974b5289
authored
Aug 02, 2018
by
Tobias Steiner
Browse files
Add new build
parent
b9dff19a
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
dist/core.d.ts
View file @
974b5289
...
...
@@ -51,11 +51,12 @@ declare class Core {
*/
getNconf
():
any
;
/**
* Get a singeltone reporter instance
* @param {number} interval
* Get a singleton reporter instance with a specific name
* @param {number | string} nameOrInterval The interval or a shortcut for the name
* @param {string} name
* @returns {Reporter}
*/
getReporter
(
i
nterval
?:
number
):
InterfaceReporter
;
getReporter
(
nameOrI
nterval
?:
number
|
string
,
name
?:
string
):
InterfaceReporter
;
/**
* Get uri builder
* @returns {UrlBuilder}
...
...
dist/core.js
View file @
974b5289
...
...
@@ -8,16 +8,11 @@ const uri_builder_1 = require("./uri-builder");
const
reporter_1
=
require
(
"
./reporter
"
);
const
fs
=
require
(
"
fs
"
);
class
Core
{
/**
* Factory to create a core-instance
* @param {string} name
* @param {string} configPath
* @returns {Core}
*/
static
init
(
name
,
configPath
)
{
return
new
Core
(
name
,
configPath
);
}
constructor
(
name
,
configPath
)
{
/**
* Reporter for an app
*/
this
.
reporter
=
[];
this
.
name
=
name
;
this
.
configPath
=
configPath
;
/**
...
...
@@ -42,6 +37,15 @@ class Core {
const
loggerInstance
=
new
logger_1
.
default
(
nconf
.
get
(
'
log-dir
'
));
this
.
logger
=
loggerInstance
.
getLogger
();
}
/**
* Factory to create a core-instance
* @param {string} name
* @param {string} configPath
* @returns {Core}
*/
static
init
(
name
,
configPath
)
{
return
new
Core
(
name
,
configPath
);
}
/**
* Returns a Kafka instance
* @returns {KafkaGeoname}
...
...
@@ -63,15 +67,26 @@ class Core {
return
nconf
;
}
/**
* Get a singeltone reporter instance
* @param {number} interval
* Get a singleton reporter instance with a specific name
* @param {number | string} nameOrInterval The interval or a shortcut for the name
* @param {string} name
* @returns {Reporter}
*/
getReporter
(
interval
=
10000
)
{
if
(
!
this
.
reporter
)
{
this
.
reporter
=
new
reporter_1
.
Reporter
(
this
,
interval
);
getReporter
(
nameOrInterval
=
10000
,
name
=
'
default
'
)
{
let
interval
=
10000
;
if
(
typeof
nameOrInterval
===
'
number
'
)
{
interval
=
nameOrInterval
;
}
else
{
name
=
nameOrInterval
;
}
let
reporter
=
this
.
reporter
.
find
((
r
)
=>
r
.
name
===
name
);
if
(
typeof
reporter
===
'
undefined
'
)
{
reporter
=
{
name
,
reporter
:
new
reporter_1
.
Reporter
(
this
,
interval
)
};
this
.
reporter
.
push
(
reporter
);
}
return
this
.
reporter
;
// just return the reporter
return
reporter
.
reporter
;
}
/**
* Get uri builder
...
...
@@ -82,4 +97,4 @@ class Core {
}
}
exports
.
default
=
Core
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQWdDO0FBQ2hDLGdEQUFpRDtBQUNqRCxxQ0FBbUQ7QUFDbkQsbURBQW9FO0FBRXBFLCtDQUF1QztBQUN2Qyx5Q0FBdUQ7QUFDdkQseUJBQTBCO0FBVzFCO0lBRUU7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQVksRUFBRSxVQUFrQjtRQUNqRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBc0JELFlBQVksSUFBWSxFQUFFLFVBQWtCO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCOztXQUVHO1FBQ0gsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsS0FBSyxDQUFDLElBQUksRUFBRTthQUNULEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVaOztXQUVHO1FBQ0gsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQztTQUNoQztRQUVEOzs7V0FHRztRQUNILE1BQU0sY0FBYyxHQUFHLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLHVCQUFZLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxXQUFtQixLQUFLO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztTQUM5QztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUkscUJBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFFRCxrQkFBZSxJQUFJLENBQUMifQ==
\ No newline at end of file
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQWdDO0FBQ2hDLGdEQUFpRDtBQUNqRCxxQ0FBbUQ7QUFDbkQsbURBQW9FO0FBRXBFLCtDQUF1QztBQUN2Qyx5Q0FBb0Y7QUFDcEYseUJBQTBCO0FBVzFCO0lBZ0NFLFlBQVksSUFBWSxFQUFFLFVBQWtCO1FBTDVDOztXQUVHO1FBQ0ssYUFBUSxHQUFrQyxFQUFFLENBQUM7UUFHbkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0I7O1dBRUc7UUFDSCxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEI7O1dBRUc7UUFDSCxLQUFLLENBQUMsSUFBSSxFQUFFO2FBQ1QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVo7O1dBRUc7UUFDSCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQ7OztXQUdHO1FBQ0gsTUFBTSxjQUFjLEdBQUcsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBekREOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsVUFBa0I7UUFDakQsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQW1ERDs7O09BR0c7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSx1QkFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksV0FBVyxDQUFDLGlCQUFrQyxLQUFLLEVBQUUsT0FBZSxTQUFTO1FBQ2xGLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxRQUFRLEdBQUcsY0FBYyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLEdBQUcsY0FBYyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUU7WUFDbkMsUUFBUSxHQUFHLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUI7UUFDRCwyQkFBMkI7UUFDM0IsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxxQkFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUVELGtCQUFlLElBQUksQ0FBQyJ9
\ No newline at end of file
dist/kafka-geoname.d.ts
View file @
974b5289
import
{
InterfaceCore
}
from
'
./core
'
;
export
interface
InterfaceKafkaGeoname
{
init
():
any
;
getProducer
():
any
;
getConsumerStream
():
any
;
getConsumer
():
any
;
getProducer
(
name
?:
string
):
any
;
getConsumerStream
(
name
?:
string
):
any
;
getConsumer
(
name
?:
string
):
any
;
getKafkaAvro
():
any
;
}
export
default
class
KafkaGeoname
implements
InterfaceKafkaGeoname
{
...
...
@@ -13,12 +13,12 @@ export default class KafkaGeoname implements InterfaceKafkaGeoname {
*/
private
kafkaAvro
;
/**
* A producer instan
ance or null
* A
n object with a collection of
producer instan
ces
* @type {null}
*/
private
producer
;
/**
* A consumer stream
or null
* A
n object with a collection of
consumer stream
s
* @type {null}
*/
private
consumerStream
;
...
...
@@ -35,6 +35,7 @@ export default class KafkaGeoname implements InterfaceKafkaGeoname {
*/
/**
*
* todo: better DI
* @param {string} name
* @param core
*/
...
...
@@ -49,17 +50,17 @@ export default class KafkaGeoname implements InterfaceKafkaGeoname {
* Get a kafka producer. The config is provided by nconf
* @returns {Promise<any>}
*/
getProducer
():
Promise
<
any
>
;
getProducer
(
name
?:
string
):
Promise
<
any
>
;
/**
* Get a consumer stream
* @returns {Promise<any>}
*/
getConsumerStream
():
Promise
<
any
>
;
getConsumerStream
(
name
?:
string
):
Promise
<
any
>
;
/**
* get a classic consumer, subscribed to a topic
* @returns {Promise<any>}
*/
getConsumer
():
Promise
<
any
>
;
getConsumer
(
name
?:
string
):
Promise
<
any
>
;
/**
* Get the kafkaAvro instance
* @returns {any}
...
...
@@ -73,10 +74,10 @@ export default class KafkaGeoname implements InterfaceKafkaGeoname {
* Get a promise with a producer
* @returns {Promise<any>}
*/
private
createProducer
();
private
createProducer
(
name
);
/**
* Create a consumer stream and register error handling
* @returns {Promise<any>}
*/
private
createConsumerStream
();
private
createConsumerStream
(
name
);
}
dist/kafka-geoname.js
View file @
974b5289
This diff is collapsed.
Click to expand it.
dist/reporter.d.ts
View file @
974b5289
...
...
@@ -7,6 +7,13 @@ export interface InterfaceReporter {
setDataOut
(
data
:
number
):
void
;
destory
():
void
;
}
/**
* Interface for a collection of reporters. Used in the core.
*/
export
interface
InterfaceReporterCollection
{
name
:
string
;
reporter
:
InterfaceReporter
;
}
/**
* Class for the reporter
*/
...
...
@@ -36,12 +43,26 @@ export declare class Reporter implements InterfaceReporter {
* @type {number}
*/
private
dataOut
;
/**
* A cpu usage estimation
* @type {null}
*/
private
lastCpuUsage
;
/**
* Reference to the core
*/
private
readonly
core
;
constructor
(
core
:
InterfaceCore
,
interval
:
number
);
/**
* An optional name
*/
private
name
;
/**
*
* @param {InterfaceCore} core
* @param {number} interval
* @param {string} name An optional name for the reporting
*/
constructor
(
core
:
InterfaceCore
,
interval
:
number
,
name
?:
string
);
/**
* Set consumed data since the last call
* @param {number} data
...
...
@@ -76,4 +97,8 @@ export declare class Reporter implements InterfaceReporter {
* @returns {AxiosPromise<any>}
*/
private
registerApp
();
/**
* Get the name for the app on the dashboard
*/
private
appName
();
}
dist/reporter.js
View file @
974b5289
...
...
@@ -7,7 +7,13 @@ const cpuStat = require("cpu-stat");
* Class for the reporter
*/
class
Reporter
{
constructor
(
core
,
interval
)
{
/**
*
* @param {InterfaceCore} core
* @param {number} interval
* @param {string} name An optional name for the reporting
*/
constructor
(
core
,
interval
,
name
)
{
/**
* Intervall to send data to the reporter
* @type {number}
...
...
@@ -33,9 +39,14 @@ class Reporter {
* @type {number}
*/
this
.
dataOut
=
0
;
/**
* A cpu usage estimation
* @type {null}
*/
this
.
lastCpuUsage
=
null
;
this
.
interval
=
interval
;
this
.
core
=
core
;
this
.
name
=
name
;
// register the app
this
.
registerApp
().
then
(()
=>
{
this
.
core
.
getLogger
().
debug
(
'
Successful registered the app for tracking
'
);
...
...
@@ -43,7 +54,7 @@ class Reporter {
// start reporting every interval ms
this
.
intervalIndex
=
setInterval
(
this
.
sendStatus
.
bind
(
this
),
this
.
interval
);
},
(
err
)
=>
{
this
.
core
.
getLogger
().
error
(
'
Error
while sending status update
'
);
this
.
core
.
getLogger
().
error
(
'
Error
registering the app
'
);
});
}
/**
...
...
@@ -71,7 +82,7 @@ class Reporter {
* Send data to the reporter dashboard
*/
sendStatus
()
{
axios_1
.
default
.
post
(
`
${
this
.
core
.
getNconf
().
get
(
'
reporter:url
'
)}
/app/
${
os
.
hostn
ame
()}
`
,
{
axios_1
.
default
.
post
(
`
${
this
.
core
.
getNconf
().
get
(
'
reporter:url
'
)}
/app/
${
this
.
appN
ame
()}
`
,
{
dataIn
:
this
.
dataIn
,
dataOut
:
this
.
dataOut
,
interval
:
this
.
interval
,
...
...
@@ -115,10 +126,19 @@ class Reporter {
registerApp
()
{
return
axios_1
.
default
.
post
(
`
${
this
.
core
.
getNconf
().
get
(
'
reporter:url
'
)}
/app`
,
{
name
:
this
.
core
.
name
,
hostname
:
os
.
hostn
ame
(),
hostname
:
this
.
appN
ame
(),
configuration
:
this
.
core
.
getNconf
(),
});
}
/**
* Get the name for the app on the dashboard
*/
appName
()
{
if
(
typeof
this
.
name
!==
'
undefined
'
)
{
return
`
${
os
.
hostname
()}
.
${
this
.
name
}
`
;
}
return
os
.
hostname
();
}
}
exports
.
Reporter
=
Reporter
;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBMEI7QUFDMUIseUJBQTBCO0FBQzFCLG9DQUFxQztBQWFyQzs7R0FFRztBQUNIO0lBa0NFLFlBQVksSUFBbUIsRUFBRSxRQUFnQjtRQWpDakQ7OztXQUdHO1FBQ2MsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUMxQzs7O1dBR0c7UUFDSyxrQkFBYSxHQUFXLElBQUksQ0FBQztRQUVyQzs7O1dBR0c7UUFDSyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQUN2Qzs7O1dBR0c7UUFDSyxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQzNCOzs7V0FHRztRQUNLLFlBQU8sR0FBVyxDQUFDLENBQUM7UUFFcEIsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFPbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFakIsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RixvQ0FBb0M7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1QsSUFBSSxDQUFD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
\ No newline at end of file
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpQ0FBMEI7QUFDMUIseUJBQTBCO0FBQzFCLG9DQUFxQztBQW9CckM7O0dBRUc7QUFDSDtJQTRDRTs7Ozs7T0FLRztJQUNILFlBQVksSUFBbUIsRUFBRSxRQUFnQixFQUFFLElBQWE7UUFqRGhFOzs7V0FHRztRQUNjLGFBQVEsR0FBVyxLQUFLLENBQUM7UUFDMUM7OztXQUdHO1FBQ0ssa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFFckM7OztXQUdHO1FBQ0ssb0JBQWUsR0FBVyxJQUFJLENBQUM7UUFDdkM7OztXQUdHO1FBQ0ssV0FBTSxHQUFXLENBQUMsQ0FBQztRQUMzQjs7O1dBR0c7UUFDSyxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRTVCOzs7V0FHRztRQUNLLGlCQUFZLEdBQVcsSUFBSSxDQUFDO1FBbUJsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUVqQixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLG9DQUFvQztZQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJ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
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment