From fe6ed9e48a1d6824e6d6102ed34a13e3b77d343a Mon Sep 17 00:00:00 2001 From: Marcelo Fornet Date: Fri, 6 Aug 2021 12:58:13 +0200 Subject: [PATCH] Use binary search instead of backtracking to find common root (#580) * Use binary search instead of backtracking to find common root * Add support for EIP-1559 (#600) * Add support for EIP-1559 * Add interface to change bridge address * Update yarn and gitignore * Update eth2near relayer * Remove console.log * Restore getBlock function * Update prover to support EIP 2718 txs (#602) * Update prover to support EIP 2718 txs * Use feature flag and implement 2718 compliance * Compile near client contract * Enable eip1559 by default and compile * Allow deserialize London and PreLondon blocks * Fix without eip1559 feature * London HF fixes (#615) * Add logs * Add more logs * dgb * Don't deserialize on remove * Update ehtereum.js dependency * Prover: enable EIP1599 by default. Compile wasm. Co-authored-by: Marcelo Fornet Co-authored-by: Kirill Co-authored-by: Kirill Co-authored-by: Kirill --- cli/commands/start/eth2near-relay.js | 4 +- cli/init/near-contracts.js | 5 +- contracts/near/eth-client/Cargo.toml | 3 +- contracts/near/eth-client/src/lib.rs | 9 +- contracts/near/eth-prover/Cargo.toml | 2 + contracts/near/eth-prover/src/lib.rs | 12 + contracts/near/eth-types/Cargo.toml | 3 + contracts/near/eth-types/src/lib.rs | 160 +- contracts/near/res/eth_client.wasm | Bin 176847 -> 185435 bytes contracts/near/res/eth_prover.wasm | Bin 129351 -> 188283 bytes .../eth-on-near-client.js | 84 +- eth2near/eth2near-block-relay/index.js | 96 +- eth2near/eth2near-block-relay/package.json | 7 +- eth2near/ethashproof/.gitignore | 3 + eth2near/ethashproof/build.sh | 1 + eth2near/ethashproof/cmd/cache/main.go | 34 + eth2near/ethashproof/cmd/relayer/main.go | 2 + eth2near/ethashproof/ethash/consensus.go | 30 +- .../ethashproof/ethash/ethashproof_ext.go | 2 +- eth2near/ethashproof/go.mod | 10 +- eth2near/ethashproof/go.sum | 558 ++++- utils/package.json | 4 +- utils/robust.js | 39 +- yarn.lock | 1838 ++++++++++------- 24 files changed, 1980 insertions(+), 926 deletions(-) create mode 100644 eth2near/ethashproof/cmd/cache/main.go diff --git a/cli/commands/start/eth2near-relay.js b/cli/commands/start/eth2near-relay.js index 9bec508c0..cad1dcd63 100644 --- a/cli/commands/start/eth2near-relay.js +++ b/cli/commands/start/eth2near-relay.js @@ -8,7 +8,7 @@ const { nearAPI } = require('rainbow-bridge-utils') const path = require('path') class StartEth2NearRelayCommand { - static async execute ({ + static async execute({ daemon, nearNetworkId, nearNodeUrl, @@ -75,7 +75,7 @@ class StartEth2NearRelayCommand { ) await clientContract.accessKeyInit() console.log('Initializing eth2near-relay...', { ethNodeUrl, metricsPort }) - relay.initialize(clientContract, { ethNodeUrl, totalSubmitBlock, gasPerTransaction, metricsPort }) + relay.initialize(clientContract, { ethNodeUrl, totalSubmitBlock, gasPerTransaction, metricsPort, nearNetworkId }) console.log('Starting eth2near-relay...') await relay.run() } diff --git a/cli/init/near-contracts.js b/cli/init/near-contracts.js index cb3f2a726..ea2ff2543 100644 --- a/cli/init/near-contracts.js +++ b/cli/init/near-contracts.js @@ -10,7 +10,7 @@ const { } = require('rainbow-bridge-eth2near-block-relay') class InitNearContracts { - static async execute ({ + static async execute({ nearMasterAccount, nearMasterSk, nearClientAccount, @@ -103,7 +103,8 @@ class InitNearContracts { numConfirmations, nearClientValidateEthash === 'true', nearClientTrustedSigner || null, - robustWeb3 + robustWeb3, + nearNetworkId ) const proverContract = new EthOnNearProverContract( new nearAPI.Account(near.connection, nearProverAccount), diff --git a/contracts/near/eth-client/Cargo.toml b/contracts/near/eth-client/Cargo.toml index 0c2d81345..9ef72d9c6 100644 --- a/contracts/near/eth-client/Cargo.toml +++ b/contracts/near/eth-client/Cargo.toml @@ -32,5 +32,6 @@ serde_json = "1.0" indicatif = "0.14" [features] -default = [] +default = ["eip1559"] expensive_tests = [] +eip1559 = ["eth-types/eip1559"] diff --git a/contracts/near/eth-client/src/lib.rs b/contracts/near/eth-client/src/lib.rs index 0518760ce..4a63a08b7 100644 --- a/contracts/near/eth-client/src/lib.rs +++ b/contracts/near/eth-client/src/lib.rs @@ -206,6 +206,7 @@ impl EthClient { #[serializer(borsh)] block_header: Vec, #[serializer(borsh)] dag_nodes: Vec, ) { + env::log("Add block header".as_bytes()); self.check_not_paused(PAUSE_ADD_BLOCK_HEADER); let header: BlockHeader = rlp::decode(block_header.as_slice()).unwrap(); @@ -233,6 +234,7 @@ impl EthClient { impl EthClient { /// Record the header. If needed update the canonical chain and perform the GC. fn record_header(&mut self, header: BlockHeader) { + env::log("Record header".as_bytes()); let best_info = self.infos.get(&self.best_header_hash).unwrap(); let header_hash = header.hash.unwrap(); let header_number = header.number; @@ -258,6 +260,7 @@ impl EthClient { all_hashes.push(header_hash); self.all_header_hashes.insert(&header_number, &all_hashes); + env::log("Inserting header".as_bytes()); // Record full information about this header. self.headers.insert(&header_hash, &header); let info = HeaderInfo { @@ -266,12 +269,14 @@ impl EthClient { number: header_number, }; self.infos.insert(&header_hash, &info); + env::log("Inserted".as_bytes()); // Check if canonical chain needs to be updated. if info.total_difficulty > best_info.total_difficulty || (info.total_difficulty == best_info.total_difficulty && header.difficulty % 2 == U256::default()) { + env::log("Canonical chain needs to be updated.".as_bytes()); // If the new header has a lower number than the previous header, we need to clean it // going forward. if best_info.number > info.number { @@ -330,10 +335,11 @@ impl EthClient { /// Remove information about the headers that are at least as old as the given header number. fn gc_headers(&mut self, mut header_number: u64) { + env::log(format!("Run headers GC. Used gas: {}", env::used_gas()).as_bytes()); loop { if let Some(all_headers) = self.all_header_hashes.get(&header_number) { for hash in all_headers { - self.headers.remove(&hash); + self.headers.remove_raw(&hash.try_to_vec().unwrap()); self.infos.remove(&hash); } self.all_header_hashes.remove(&header_number); @@ -346,6 +352,7 @@ impl EthClient { break; } } + env::log(format!("Finish headers GC. Used gas: {}", env::used_gas()).as_bytes()); } /// Verify PoW of the header. diff --git a/contracts/near/eth-prover/Cargo.toml b/contracts/near/eth-prover/Cargo.toml index ed23536b0..e923f86d5 100644 --- a/contracts/near/eth-prover/Cargo.toml +++ b/contracts/near/eth-prover/Cargo.toml @@ -27,4 +27,6 @@ near-primitives = { git = "https://github.com/nearprotocol/nearcore.git" } near-runtime-standalone = { git = "https://github.com/nearprotocol/nearcore.git" } [features] +default = ["eip1559"] expensive_tests = [] +eip1559 = ["eth-types/eip1559"] diff --git a/contracts/near/eth-prover/src/lib.rs b/contracts/near/eth-prover/src/lib.rs index f1495e959..f3ea9d9bc 100644 --- a/contracts/near/eth-prover/src/lib.rs +++ b/contracts/near/eth-prover/src/lib.rs @@ -246,6 +246,18 @@ impl EthProver { } } } + + pub fn set_bridge(&mut self, bridge: AccountId) { + assert_self(); + env::log( + format!( + "Old bridge account: {} New bridge account {}", + self.bridge_smart_contract, bridge + ) + .as_bytes(), + ); + self.bridge_smart_contract = bridge; + } } admin_controlled::impl_admin_controlled!(EthProver, paused); diff --git a/contracts/near/eth-types/Cargo.toml b/contracts/near/eth-types/Cargo.toml index 277e6f6d6..ec4dd08e5 100644 --- a/contracts/near/eth-types/Cargo.toml +++ b/contracts/near/eth-types/Cargo.toml @@ -15,3 +15,6 @@ rlp = "0.4.2" rlp-derive = "0.1.0" ethereum-types = "0.9.2" derive_more = "^0.99.2" + +[features] +eip1559 = [] diff --git a/contracts/near/eth-types/src/lib.rs b/contracts/near/eth-types/src/lib.rs index 401bbd983..7b7f8c67d 100644 --- a/contracts/near/eth-types/src/lib.rs +++ b/contracts/near/eth-types/src/lib.rs @@ -5,10 +5,10 @@ use derive_more::{ }; use ethereum_types; use rlp::{ - Decodable as RlpDecodable, DecoderError as RlpDecoderError, Encodable as RlpEncodable, Rlp, - RlpStream, + Decodable as RlpDecodable, DecoderError as RlpDecoderError, DecoderError, + Encodable as RlpEncodable, Rlp, RlpStream, }; -use rlp_derive::{RlpDecodable as RlpDecodableDerive, RlpEncodable as RlpEncodableDerive}; +use rlp_derive::RlpDecodable as RlpDecodableDerive; #[cfg(not(target_arch = "wasm32"))] use serde::{Deserialize, Serialize}; use std::io::{Error, Write}; @@ -175,7 +175,7 @@ pub type Signature = H520; // Block Header -#[derive(Debug, Clone, BorshDeserialize, BorshSerialize)] +#[derive(Debug, Clone, BorshSerialize)] #[cfg_attr(not(target_arch = "wasm32"), derive(Serialize, Deserialize))] pub struct BlockHeader { pub parent_hash: H256, @@ -193,11 +193,120 @@ pub struct BlockHeader { pub extra_data: Vec, pub mix_hash: H256, pub nonce: H64, + #[cfg(feature = "eip1559")] + pub base_fee_per_gas: u64, pub hash: Option, pub partial_hash: Option, } +#[derive(BorshDeserialize)] +pub struct BlockHeaderLondon { + pub parent_hash: H256, + pub uncles_hash: H256, + pub author: Address, + pub state_root: H256, + pub transactions_root: H256, + pub receipts_root: H256, + pub log_bloom: Bloom, + pub difficulty: U256, + pub number: u64, + pub gas_limit: U256, + pub gas_used: U256, + pub timestamp: u64, + pub extra_data: Vec, + pub mix_hash: H256, + pub nonce: H64, + pub base_fee_per_gas: u64, + + pub hash: Option, + pub partial_hash: Option, +} + +impl From for BlockHeader { + fn from(header: BlockHeaderLondon) -> Self { + Self { + parent_hash: header.parent_hash, + uncles_hash: header.uncles_hash, + author: header.author, + state_root: header.state_root, + transactions_root: header.transactions_root, + receipts_root: header.receipts_root, + log_bloom: header.log_bloom, + difficulty: header.difficulty, + number: header.number, + gas_limit: header.gas_limit, + gas_used: header.gas_used, + timestamp: header.timestamp, + extra_data: header.extra_data, + mix_hash: header.mix_hash, + nonce: header.nonce, + #[cfg(feature = "eip1559")] + base_fee_per_gas: header.base_fee_per_gas, + hash: header.hash, + partial_hash: header.partial_hash, + } + } +} + +#[derive(BorshDeserialize)] +pub struct BlockHeaderPreLondon { + pub parent_hash: H256, + pub uncles_hash: H256, + pub author: Address, + pub state_root: H256, + pub transactions_root: H256, + pub receipts_root: H256, + pub log_bloom: Bloom, + pub difficulty: U256, + pub number: u64, + pub gas_limit: U256, + pub gas_used: U256, + pub timestamp: u64, + pub extra_data: Vec, + pub mix_hash: H256, + pub nonce: H64, + + pub hash: Option, + pub partial_hash: Option, +} + +impl From for BlockHeader { + fn from(header: BlockHeaderPreLondon) -> Self { + Self { + parent_hash: header.parent_hash, + uncles_hash: header.uncles_hash, + author: header.author, + state_root: header.state_root, + transactions_root: header.transactions_root, + receipts_root: header.receipts_root, + log_bloom: header.log_bloom, + difficulty: header.difficulty, + number: header.number, + gas_limit: header.gas_limit, + gas_used: header.gas_used, + timestamp: header.timestamp, + extra_data: header.extra_data, + mix_hash: header.mix_hash, + nonce: header.nonce, + #[cfg(feature = "eip1559")] + base_fee_per_gas: 7, + hash: header.hash, + partial_hash: header.partial_hash, + } + } +} + +impl BorshDeserialize for BlockHeader { + fn deserialize(buf: &mut &[u8]) -> std::io::Result { + if let Ok(header) = BlockHeaderLondon::deserialize(buf) { + Ok(header.into()) + } else { + BlockHeaderPreLondon::deserialize(buf).map(Into::into) + } + } +} + impl BlockHeader { pub fn extra_data(&self) -> H256 { let mut data = [0u8; 32]; @@ -222,6 +331,9 @@ impl BlockHeader { stream.append(&self.timestamp); stream.append(&self.extra_data); + #[cfg(feature = "eip1559")] + stream.append(&self.base_fee_per_gas); + if !partial { stream.append(&self.mix_hash); stream.append(&self.nonce); @@ -253,6 +365,8 @@ impl RlpDecodable for BlockHeader { extra_data: serialized.val_at(12)?, mix_hash: serialized.val_at(13)?, nonce: serialized.val_at(14)?, + #[cfg(feature = "eip1559")] + base_fee_per_gas: serialized.val_at(15)?, hash: Some(near_keccak256(serialized.as_raw()).into()), partial_hash: None, }; @@ -301,7 +415,7 @@ impl rlp::Encodable for LogEntry { // Receipt Header -#[derive(Debug, Clone, PartialEq, Eq, RlpEncodableDerive, RlpDecodableDerive)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Receipt { pub status: bool, pub gas_used: U256, @@ -309,6 +423,42 @@ pub struct Receipt { pub logs: Vec, } +impl rlp::Decodable for Receipt { + fn decode(rlp: &Rlp) -> Result { + let mut view = rlp.as_raw(); + + // https://eips.ethereum.org/EIPS/eip-2718 + if let Some(&byte) = view.first() { + // https://eips.ethereum.org/EIPS/eip-2718#receipts + // If the first byte is between 0 and 0x7f it is an envelop receipt + if byte <= 0x7f { + view = &view[1..]; + } + } + + rlp::decode::(view).map(Into::into) + } +} + +#[derive(RlpDecodableDerive)] +pub struct RlpDeriveReceipt { + pub status: bool, + pub gas_used: U256, + pub log_bloom: Bloom, + pub logs: Vec, +} + +impl From for Receipt { + fn from(receipt: RlpDeriveReceipt) -> Self { + Self { + status: receipt.status, + gas_used: receipt.gas_used, + log_bloom: receipt.log_bloom, + logs: receipt.logs, + } + } +} + pub fn near_sha256(data: &[u8]) -> [u8; 32] { let mut buffer = [0u8; 32]; buffer.copy_from_slice(&near_sdk::env::sha256(data).as_slice()); diff --git a/contracts/near/res/eth_client.wasm b/contracts/near/res/eth_client.wasm index 174275ec3077bdd83338c667a8ba667e6d17ffa6..a5a994bf428281e21a39fd624b6afdc0e37e8434 100755 GIT binary patch literal 185435 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

-s$sl{~)r!3ppp;Z7Dbfc%Y}HYWZBQE? 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 delta 56121 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�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 diff --git a/contracts/near/res/eth_prover.wasm b/contracts/near/res/eth_prover.wasm index b158a50326f303cb4ed2f3608b178142ae2b01fc..9e31e65cfc8bfeed9de4951edaeb652930a8162d 100755 GIT binary patch literal 188283 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зudL(UVgo<%wdNvHHm>d$QKw!LyIoPfoBWtNa}dd%387WJ5DK z{6vnPj*zlTlGRr5aTUxYEB!9`7OH?|R(*yJw-YE?bsHt-Y_oOg8Z0rDej&!J&LmR8 z8n=79T~@a%eYsavP-gz_LFPS&V%OdTk6OeQfPIh*7a&IJ4a=cu3hy9foLAtHyELwM z-JO!DjoB=Y9A2t0tcd|eM-HtJ)W^Cn_W*#wy2iO0u{9&9oUqGsX(~M`4yW=8F=Nz~ zS9c^)C^gPir4T)bp{|dra4{z~u`5*=P)?Uvn`+hc{lA*QVmn7(&5ni112njpH8OedN#h#M zdxw2Y<6@}MMxFRRD6kjaW3V?4jT6gu#EC{koHKa^Ssvo_E7ityel2^5wK80b5XwXh z8msgALfg6Aj9p1bnyiq3J|S5qsaZF(?GKaRwJT;YlLrZkBs-@6y*ZO}jhI`r0cA8X zPiEQ8a>Yz|gcj;h6bAY#Dn!dxG)Tre(`<{Fu#QYHR0vbL7@IO)CuLeV5gXF4%Ln(I zO0W74M5TgWL6Xw@d#}3ln*TuEdCdF@RwkDC_33(KcWl2IdwTxg=YO{rbje2XT6Oja zC>G56L1^cL6BImJew59Yb0sdz-H?u|@QlBwWD{_NU~BCXd2gn_D<) zV|B4)yZ9bIiCjyek+CdfE`z$&9$tEhJtVEBLnNrC6al_TGcw0e@it%8i6aco3130+ zoMvQ>=Yj-aT-IqBmVj7tf37Uurdfb{zOwY?zU8^r@h17^1}UuF%}4jE<=V!={4}`> z*pfGknlo( z;)X5;S$N5?cwP(Wpy+V3Xc{V2ExoeZGL67GzTOj!btp(K6krjx`E0vfk0`3ZFW=xWMum zHQ!p*3Q@ex?`WoPO4N()j01OG*cnO@4Q1(+lT3>`S@1*;Lf|C;PYL-rppoY>H?vAk z#Fi^dam1r&{53++OT;HyWAo28@+UWS^mKv7FVis)tZ3jo=bIi%_aPe z3*O!`a=^iGSgO9KMV-xgY!nF>inSrEzjoTrEii5C6km)9kEN3t^=!0^Dk&i|vMj61 z^2vR6{z+Jtg}Sxm<}!H%Fb^_dka%OZwNwC(S_q_SPX1{z88bc12x8B*l&=yesn?vs z!HYB5V~bl2=MWOwSUIqf=PPr@qgp$GkZ23*=*%Ocig39VF?L#x0!FDtH8wA!lm<>L z^Q0625XLq#lk0QK5!|{9A4tn$DbnX2V(=OrPmnkJ%ZR{If3z;0g5FS^RX1^iMKsc8 zo2O{6W2-Qz)Uwa2KZTvuAxK~X!^1w8Slxc@9rkwAo6r7@Ly?rn)7d#{*Z*UmnQc3=m0?T8U3^yw(#QTLDojfSupP{TS`*RXRn+B~6x=ry#l2RFF2Oy0b%ymaf} z2zY|;RUfOjy;Az#^KA@A4*nBy7;IEGihq=4oaWFM+Kn01W?jw*Ga+yd)2S#foz_ohyIr^!pI@9=|U1~=bad$ zhF=S)3F*Q>Et}c!2m)ioz%~pDkxdvG&^P&(OSP3~Xpc!8f(l_{#39#GQ#%~wvH-PZ zjAA%3_-{jTeI8<13zb7a0&1jdCZ_4z$uL6dlofxYc!2ykPsXr2io3(B)Y!-}?t1fV zBSth!>_EWYHtfE!326kVtv*!ZVvO5hjiHKDf`(~K4qeVTHaF-%4*zpy)^tTvmuWyq z3$LqvayV7D_}W(RmW)GZmRcE(aupJho4(|m?YtrDXlj4<*xMK$iuF#v+is}Y~@C%s;ARD4F zI}i!l>i$eU|%^VYm}B_ z%FbAc&fbb6n4ZMSIl)lm5A&VZi_+HNUKnBEn~)tQ(9mC9O^;3HRZ{IWtAD%x z7O&GwoXZF$#+hf6oWozO=Ddj$3Nb`yfplc?@$m(rx^Zg?60(yI<% zSUNd7^nlMUY?Oj9Ea4Br#g#4EQr<)H7Cotj- z&T=uba{yRqUnd^a?c*uu$2V;d8)gV9V54vB@;swupgH#1xeJ>HqXL5a~@V=J7_)V6fsK{-3Kk@)*E&N|^r z+Y8|2tMclRaS|h>_Ksl!EKHmzXP2$eWJWH)dGUPa54i~-)lI8_NilNZw#~k@GI^N% z8g6_Vq1GFJ^6IMR(7S4@_P@meIq%IuFQ{CD4KJ>3y{Ibw@)hlu4^67Mk9`nap|o#^ zWdC|o1ciL};{%5Z>EWGb0f%1yp%vK%UZzg$W|6>R{xFty30dN$p$a(H~`8ur1RsE{hk>ZK^-7xxBo&e15F?f_U-5=HYg`TnvsRaPs0s!?!OUzUAyz z8V|j@!frt6rR~y}wQpYDzS&_nY&m3qiZxcUp%Po!=ZNK3*s~+{dr*!SuWZA(vVC)v z-PEYR%5IIsuO5E#8oOoZ>QJ-APAd+*d9B^p`~!3#`}w-jf~&1yUL3EnM>Qs|AHMw? zyM<8K+C^yaI=eA+-(Z*8=q(*gO4csGL7yF3Allah z%)K#WAM9@Ry%hl?b=XwS<8j=HXI~xq0tu|y*q5t>S`quA2AjTEzbUHw0u8RWt}Lm$ z!ej4BG1?UdI9Th5g3(3bo&B*Vjd%P%4HL`O{9*AnA)eV_*2Y$h*6A4O44YQgc!dO6 zfyuR@QBBRPiZhcK-3-o$(ByrF|MF_D_50)ES~7THi;7HagfVOJE~8mqO=(zMZ%@d5 z#{voPx3rJKSwZz7V`(K*@Ri!Fr2 z*3JqfeU=5b=#Pd&By&jT%zfgATd&TFe>OBbbXYX7^NC!*tq6u|EFEOriV!`yp;&|? zQT>uEDhvw8Y-ry<1&Dx^dV@Q^`Q8t`C@t=&8w4R$EWTla34Xj#{F|d{z&w`dw4$J| zPp0)Ls(Tl6o@eOVxaP`MaZEO!Lnv-B5aUGNm~5Xs9Hvg%3 zj*wruopG&zur~-wt7GD3|8e!FI|{JWn=6X1c$*PO%KK#d0~7`gi>h5&0|-j@Mgc7q zpreXghXLux(H-mySX5m{)3`T=wBw@gc(sjHJYTdZf)@{)Mo>A3^v?*Vxh#4eYMg#4QqC?UCKJ{n?5yk(^#imRD3BmG$F{! zvP^`x!=njWp&aUwAt`>WUg-5jN()&de8%LRV!Z>s!CKngjfscxYL~a&DghfcK3?6> z6f)e(cd<^!Ix%antm2RmCt9`L-{|vNu#4kt|3b&}?dmiU)oy+@xihDGWP+O0eJ%mj zeu-9Q7gI|_*;5ncEhf6EP8roh(gZ55%=cJz4PZrq-D83}lif6?%nL}^met(?HwU;r z>O9@AI!`a2V<1CmwdAQ@U}su5BfhWjQ?G$5Vq-kwA~tR1CJv%jowV`#Mm&`dqq=kd zp8YZqa37lx>mFObMN&p3#Sa=pLtsBHa{HPx=~3C`P2P7dPxmzdiuVj0L)g$bfb#v17U2>cy&`tpU8K7 z1j6iKDcYrT1SSvTITk7m9rl@L3|YQ=@&4?Kfmx4RoKYsm^PsSEaSMf=$f=KBwhw_= zR1T`0RuXf>4wQ96Hfm53#|7=MFrp;ousV}{(2!C_GL9+D8ibe3t{Nm(cv6R2@OyQ3 z9q$RAt|dEMAJ65UXl`~HDq-wdUEvh0=BzZNbzb+ttk*2J+{NaBo->4K=sG$7;wlYY z8{g$u${k&wqC#B`+|l~&vdw0`hIJ*^7WYdd)|lU>6B zOJ?$WmG%h4qpU1_wFCRPSMS>!)n5G2k0hj={m`qf&o)*z3bX83brrWZ+0qj=FISC^ zX!y;p1YO%O4KKyD!?OkJy55;VwjEy1a#twp*LUf9r(e^ut*`A>+h}HAo3ucfov(MZ z*1N4u@3aA9sCUm;pmXZ*zhCEOUn0E-aswvY+np1`u1K}o-w8RBZBM63vWZLz6Y36< znpNFxMuf}L;=77qIn_=nt$h$;KVdju)i)RaXilhSA&s%UxW!9mvNKiVoZ<%(fa(w( zblI!+0&1w5>YS!OXL!YFrnuOc(66$`6C*IB0Y`fQNAqrTG**V=xyJhaW|hfjE~@_c zWJ?$#K)2Hix$?a!&Sz0o*y*M;Zm@u;wDr*2wR=@}B{Amvy`|c~nS}2FtjQ-*=yi+e z`%N+%hicV#W}!M+_8nQ3PW6?>)_HZ)i@=>}J1gaFW?-*=jYHUBzcx*$yDB$pVBFb76MILr9=;YHGuh~w`n(%$ zoRaTrwZ#WoB6l;$kbSG7{q>xECNuHtIZFC7sP$2V4XpX9h2CT~WhOhJn!REUz1$_~ z7jjzIk&{dn>rp8aMJ!efrxTZoARBx&Kr@)ud;Y37tV;;u@AByn5w{S|S`$IshC7hf zho0>oVNu1TOx?g;A^ zzM2shYuGceI@{+g+p24nT&Z*ZK#R%}aK-IzI#`>;7{byjy$Tu)KW#aVa)K}nq~~)W zqByC7;2Ub6VcNaN=nze&(Sf6i)i+@eeM_a2lwY&hRz^Xh;xQJ}TRSg;wHzY1vrW&s zbZ*|#eeF^J-ZO_0bRu{|C>FS75>k6ZBW&og5nRNfE%S^p)NR}Lq24ddoS6lfGh@st z_4K|lr(A$JyV~eg@089}M^<}G_df1q)?sI@CB>)N#7rY)!vVV6~# zoh7=HY6pdj8ZG1FI-S_-($d14_qR+HJ!}HH35^UcHikcYMro!w7){yTH*zunpI1d^ zjYv^NISoRdBzso)+bAq=E^)u4v9Bq?MlrxO>?@<>@2+ax+Pgz zd#AHtPlmloUgpLHHsP8rnrgA@_oT& zXcdj5q*HulD@gbwAL;28u$b;z8aWtvosXw{1*^Qnh|F@69I*%j;wbpf_%@v;`}yM$ zYV2#~?~0G9S+)t@ZshxjAz^cRH|f$G74u}C0%h>K)jz((Tn?kqPlnox=d7f$ zelB`a0ttz+sOav|s%Rb8nEp%@&ox)Z<=VIag%q&8!)`k|euv@(0_G$GU~pjl2^ zi*iD5m09#QoM?6}Ajo^52(d`)2C`W z9u*0Vg%IdeSE;wvLxBn6bC>GI2@uA&clMYy?ZkuSv^hR;s0&bi7X6JhMbm&w$p}rc zxQW!TrYTiKPRO7<;|tW85I-cxCbMBnxX+&AXp`y{b~w^B5iA|CNmWyX7kM#cj>X1_ z%e>fjWbt5Sa$%}-nV6oHbOJEI;RZ0_ZIfHA8|DqE%1l5xvWP`Lq+!40(le7iNokmr zI!wYk|5-8JVqf;ZYzEgAmO7(dM>w_S`*P=F?6els(GY({#B@_N74xH3;;Db0YRK#* zKMi7Q6gA4UUXkT9`dPO_8pt@|co_kPij96oidd`}XOt6nCBj&v{1r3*MY!9}-B`*N z(qc!H%!p$3_E$*A9uZ{1Csu-{fYgqdoo$7? zPil#Ivs!CN&gld@7-kK(=ZlEN+im=kRGfbnRy4|1ZWWX7kkSyi7!kApJ#5ta-o5&T9r@GvVm##Zm84O~fY%pX zq`Lj;98cHsRP2Z{0iLxuQ_fSBxIB02C3+^i3@YiG&80QC5@yi-tT{nIQqF*XZ(641 zpxydfJ4eLeI}T_Gn9`*t^L_ahTW)F$+B)>@dDb^}~ zqz|a~CTJCrjsa!Uf`(orh_)JFhTpvi+T64HS^vpVx zAt}SEy49)2EG^$|?h+U4NdMerhZmOC2rIFNq6BT(?!6Aj7s#l=PFXZv0>{mpOe_#$ zw`ea?Ike|gF21#Ob{4>LtR+8~A~{yxjPhZQxP}86UB8f!ZC8r*LlR=q#r$EKcP|V_ z9>5|PwN|`Gota{Yx@53KXkfF78&tMr@H?RnR*Y{mT0K@_EE&}A{%!Lvxk*8LHB(-^ z`CpnPHmq_9gKfaDdQTHY8k3muww0iabK|-RpRSY<)l!;z1^#&rxVdKVE_g_imc(Wl zbzv?(Wt@ImT+(hPtj>nSRBJEO7;X+GI%Nl!xAdotzqL|aEZ7y?Rws^S*-dcIEXEn< zlu(#w2aVE{9rL{=fi!XD4!xKGJiy#W3h4p4Yju(bScphd zJ(!G$=O<3H9%H5iGoR95>;lJ`wS2ZB$k~KnA%v4$IivOIcww_E`j^4?I=!(lBGQJ= z{x9=IqTQVZ7F=|eqyrpDqm@^m7B0)Jo~Y6a@eA%0bEEW@_pnT?{D zBu`m57dE%wEXAvZ?Tcx9%fOIH1$4Qwu7zODDd&M3>X`Z%MVBht*gxna1 z;Vpax9!lFfo7rBX4;;re&~aS2E<1dNPn~hKlrx+-6+pgcY;|%tP0$m)Qe15lO<@PN z5h{l0I!v2HYDq7Zdoaao`KC|xo8xHa##_#=+R<0mI4NEfJGU}@CBx=9nx{>kO0M&j zI&l1BnK~6awu2d4O%u?^SM)9a?4Z)(B@T+o)xMojaHl4w3{+=R6_0Bza}RnsL%<$y z&!aA6)m|&v)+*U!bK5`x7Ss+}1BNTJy9i141YGG!R$SrDADe{ccXVU(q||2XHH+51 zy~lze(Cd;9svjD zSTHlr)gP!$WViu|13^ou^d5t}M8jRL`z{qcJelNdS3d^CpH zmtruB@~dv{8uudvOh?(Crc)q3k!_qw4IT9<{ScHepfyv6fr^X6KzHb**r@nS>N*3B zB$B1NvcP9|-Z$`A;1>9+yKW_<-q?gI$ynWcdRY839z(w$r7d-C$C{G3wAf~5LUAOy z5<61Fqc`lUSUuhG!b67edk|Ju_ABZ)XTM0jc}1d|q|lIa=q)3G#j?PVV}EpbFV^4U z4Qt6LI~amYTAlN?v=u-#h8f1tux3FLjF?U~Y#A{eL5O&-%35oshq^tZZa=r~cI-Jp zN~`BMUG z>#tTIwPS#6Ev&aVKnBf-3tMVO*w{6_Xb|>O-feJJYn}N^rD48M+~P|xZrk;3l$Led z*@@OI=Z1}#jsDK4i z&rog2v|C6h+xW<~tHwq5c4}Rz!3hl%+az_Ok|P9}q7KJ;k~Mnj722X=#UrAE;XKV* zrC452n>^!hFOe)o^8XVFkvV`QeMrjvn<3K9-&%G1^!-O91u5uS93>3v+HWs~UU2^z zqytjux7Qk7e*aNO-u?fZCi~Lg9Fcx|b_ZmEo_27g=n}wKC{N<6D z0xr@>^=RIr9&)-KTye_3XA?;7$k2kY0$~ShA9Pp1Dhg6&c}&&P0c;+tDHg8-#=Mzy zyN3jM9?0culNm7Xmw+7%GPMi zMq<8)4t*`2Q_E|})U9Mpq!S%=pmkDQrdTaotD{SoDy2y7=c_70p$Ee?za>BiRr6B^ z4f8n%UGt8EZvA5i4fB!%)YMW2%p0crZ`3lU5c$0=uuF@#T47V^I=lZL4M*B8fQ;Jg ztLA3OE*0O<@&-~)B$b$U$NaN1c&nZjH|fa{45B}!i>bD2fE7(k7Ypgu{hO@iUFm{N z@3yALimwZxQ9P#U~Hkqc`6T?XGap^U`jIwREtw+iJ9X!VsxyFAM2!a}tf=`f!499L{w&Z!C5R z!(vb9hJ0yAeI$b?&Ic^lDYYyvv033(Z5^tmyvhWSa}jEn*54GLaf+w-6#Q&57?6eH ze;h)T6c=4e)BJuz`$@tBf6U*<4mIB7p%ij7-ahW~P=B)GE9whuihURilOqj1lWn+J zRkO90ESYBKt`UUQei3-_dE*?nHL!bw(N{+?`p(zd^IlEX_7QW$4nY%4w`A!~(mhNWXx z##HEE+C+S|*1L~}0AxCLBt847)A^gr?9I>S z(p%!xf49yan~0=k&X!%p-yB8uZt1Eei77tY8A+gx6-)*vBycs=G)=;l5|!~tFS{pF zm!{OugO>XJ;LbGd$FI_~Hki3MrJJ;B0R=FobD+KRkF{e`h>Vy!W>Co!)4r^{3Q4x| znfB0VEM$U)J-LWMtVvX_cUEOkh98M!fT8T`j#w;5f z=GMk&r=E2ilXTkB74ItWL&iU0Z6ODs;h?#iaL_dm?*>Y8a8M3R#t;7c zkg@ypgCXM#3^sdTW@nfANoF53J8B!eAS9!We-QqIt*z9x*4uWRIVK*|vZW8aUZpG> z)}lWHTBVz1tV;fW@{!YdCAM}>KC&>9Xv*g(ycs`B5r+=?iwIeOV(ZfMRxJHTc`_T{m?>yzD4BKoy@h7(mgIb^n~P)}K4~^H4v2 z&VcVRZ4RC{NT02WVu@e;JVeJo46#21j?*goj8M!}<#u*1>?INR7XW zhqMApaX3eqa%1+wia}OS7AU?qaq&mYC}oWkxi>&QHVWjq+3@#QhStNoEw|{xl~rf0 z+b||$S2rV-0BuUKgH3O*v@4DK9${B3*ilr;a8VA0f#u5NL5dXm0^Rj1!i0`rNuzWH zbpOs*&&S1_GeD5RD`ukkD@dKR}(U z-8aTVXWVNKsjx4?+-QlAI zkYFpzOkN$pUemhf+??XIq5PIsIVUyL^>?s%BEHLl#^QBezqls62gWY>QJ3&b1$Dtv$X^-;0~@gu>B&ocMI3AQSBoJgP*Qw?<|--q%|z6t|J{S z0o`tpIYhx08`{dLx3O%A<@g~e)&q-*v+BJ(=nXw!6@pSBALPMUd>{#a0}JbK!Gj$5 zKP_pwZX&L^x`Boe`FO@(rgJ65VOy4Fp|}d90CDA#qUu{%iFkt+y?KZD6nE&*j-FL+ zI-&x=H62g^4ep2d4s zu$_nedkkw^)@S6`+H5Sc)~Ohk_q34JSoH?0U&a$DykL}QdqCp`C8(Tec}=u!wnSQ+ zF#`8hFhn#JKs4uh9_vMHwjm9Xbf|fCyHSh_f2}5w%8hgmf2iC@r}AOaZDV2b?G4VI z8t2_sby^lglG}|qReFHr>K&1;KlA{}C2JLnBL2Hu_zU25-rKlezzd8XzJ$gLz}S{c zN=PM>yFv9j>4lTGTcf%SmrUgbMHK+9K}`jbyral%!)8X}N``KCwht@MK&zyxboc)m=1h?4oA#y=*Tx`BwR1HFj3tD5dgY ztamQKG&EQ*+7Fq%ATx@?B5;@kl;J>yHV!H`98})ILFI;n%7<~d4IJk1gn=M~c_>GV zk#Y(RoN|24C|X^cH8ndXY7g%%xE`;t1E(GVD4)K~UawR2G!V6EQf&bQGB(~u1<JcOT+!;h51(1?e8%|#K5gVs}o znFuSK4VqQg+cHphtU_0gqavE&uRGVe@T$7dt*+I)(F*1MT7?8ayskpu?_o7>stavj zls9y%!^G6LUcap_jNh(yn|T9U8?M0H${O9pH763<^$oo>+0F98?11O5JCsOzosSg? zTbobz)rH=!#SSpjA;_e+%8Av0pu!e}opqsi#~|!-1cqPt{VKA=t=H%3n$7F#*X_97 z+e5#u!$)kRhgL3s!Bw@}+r>P$t*8qoE2hoZ)O~mH^x{_I6q}H`fvjs2!_$E5Rjc!a zoT0Dn@D5X#;HL@^~+u!|*(b z*H~)J-)+{1ID)D6*ot7OW2t3!Ap9e^ud10!<$`{nYE2E8u(=0v#Jp zU1%GtWV5g&W?HQHvbtCcZe#6o(VF}jV9thz+p#)20&!L{%IemAx|c_l4U4?ydN<{o zM1GM)e~TEi1kE)QEytM_Uo)ejin_12b}EokLCqsIrGkbWYVkUdx=tqbI^#cGDfW6B zUKWl5;CWbyB3sd^ZN-b#QzH{2qO5u)w?-YidmVR16uWyPcSZ}lqto6grb&EqDeTgM zVa=)diDeun3hW&RAx}(+G;CwM9)y)4FvRycEkJx|Z{S_Er2w&&`99^B81*Qx0HO$s zH>;1XS?65-zcIXH>C220oH{X*8E(Ys8D!4dfu40c6N`snU)>wp_i`nAeIH;?4#EEN zFznCXH`shXtVNTT^oQ_%p6rfE%)O!sdtzI#KRXQjllKkwq9NEXA)nD2_dJhi^*-P| zJ_P$6i-usoDQXeXk#}!cP82lN*%gzMy-QkhGByNTv1wgdW+A&7n`fxsJMesYu2CO$ z7!Ik=y#vWX#4Ro=E*-}BDopczz?d_QTi}PNX9R(I4u1Fi%1?2FkkOl1tILl)Ie@Z@yoeR>QN0#Ob?>(`E*#HTRXQtEYP7 zl|DHk7c8gYSDJn$uf@WitqN{!{!3-?ESsvdX(#=eC|-N1*NI+$>Tzmo@RGb)hOjGd zXTQ`yjGZ-6Mm8;5D|#F@oioisrq*T(k4d;bkt~}>+Zv%(`)rBAhdjP-(wSP(>1zv^ z40)BFR%rt^DrddWfV3t>BS%BA0yptZnADobEK!u<-yz(wA)EvLWB` zI^M!3uT^F$MEzFuqhgB(D6RtthcF`yXv61yeDvkHHEltctKG?N*L|6>hN=QpBVoI) zZD)SsyRL!%2d%gj8qy*1lkTN=^ zV>+$2{OP3e3y!7Xqt7>_nq0Fxj`7mx6Cl5D^JaG!8RcXGZ^cwubs?W*<&8> zM?%PCYN{vsIyNai+lg2ic4d#Crm`!5)-#PQ1((UZ)ydJ+UM1d@ zBZ1PYwwY+{KMus0z^RG^pLjNh)Sbkq04#y-RNw^KHWdJ^#t77PwC4vsjO2jRDP9V5 zg1r*jX><*!zTloTsZ-o&qzWC}lF z$^48sK2E>1cY#MP$cL{>PDo(wy7Z6kB@jfgE#aDj*XIM;WlRa#!3OOzt0y04(gU+( zJ~9az)4L0H=kDanoEsmsSP;Mg=^-=GQdXfTeVD5!ogSCSEJ&=REau1sTv5^k2NO{>}s|iN0KzZzacw(>uY3(zjF`muo5_kLh)UH zkCRfeDfs06k%vPGYqRKn6ohY)#%ndH7H6uPW4&p9bNNuHb|e{0DGxiH`AenY(E-K0 z6-SZ51n;!XAub&Uw!yz>Q$Wz?Gs0J8ZiV$J6D8m8&J16^vqjbjG}z($k7#C%e_cci zCio5`&yWc=W>_e+A1}&LJ}gyQGO$5LSSI}5zJEX1UniCs;HwZRS>OX;gP`swSnUo) z8+-r|2PDV>R(MyvqyPS~!aLI@B-g3FVQE>kHD-oqGuh$UY}gRvg3;7Vv|50vm|3z$ zEn`gDP-QVf4vKsaY%;mwun6e^$cSLGys=)r@`nrB+EGId4)@(s-#%)oAC|~)mAS1j zMO64AmgsN<9#1Q>?l29%!~NXjsC(bNbi7`RPIw4j&}+s5N9?*D7-7IPv-jq0-OH z2?t4WS`I@|9ae~S;e04NQX#PsM?5(us~$GwMwa{GF`jDYoYJ9uC#C!A`YA2rwSOFs z1#~i{)jQi{qL*?Zj7jwI(mIYm!99p|X#oeqP!foUSGW4eJP^ak;NOF+=4oJ*dFT6+ ztij7%W8EF{GRGq?8WBOxVOGtI`k1oCrs!kt-P`wrhcP0VgE_(d%YvAgT8xA(?XE=c zvLJv15@G@0vbT=#KipbY)?|yKi7}^en0&%vBQ8O6GB&S(iD25Mt6-gkQ7dLY3<=JP z=UGG?WA^=y{;ChY($b=P8qL?)rZ&6Szx zwd}9*_T_xWcT~}9Djbd_3`+7m%OIC8saU4z{2#?o^~5QhkOvSvZXaxhRZQ!QFexLY zdXV{**$OvK7Id62aGlC+MvNpeQ8kr^g_0WiU zM1sV6onL47q4Mi}KrZM-0?6P-e&cktN%db3UHRB2p<6XiTz+Cpt%jw!iAN>LgtBqP zh(5gQs;k2+J!x*5yic*C4gzjJ4XJYPmqpS~@JM>$mfLDa=5@I77)LMs`of6Iq8p}$ zxbjyVg&Bq2ZfIR57vH)uRjbPCrmInc;yQ_KGPpf$Pv0|DH?`g^2*gu)1~{iSqVTX@<0>%C+jxHhlQV?Ot-9`jH=w#E{*sQffftnbCI1OV&H7gI&J{RlWe zS?4VU=m;(7bv0wrt`e3>o1-^sxEIb>d+g5T$w6j z1Z5WcLU-qc2Vv^P-7h*>!n->}=i(Q}dbTWEkj;x)=NzYHTI}6pmgcDNRM#(g_kMQ5P+GC`jUaJ#q;&jU@}>E=TBe#t?ys` z#-IK&85}=E(6r^lN*M;iM5%C!bIQz$rNxT`Wx*FiMV5&0c6F<|gCP?_#q$--C4)x| zwHT}>4kIgetAci16N=lZ60#&%qGG!@*@VqkSWj9ftLa#fZ|U{Hm$M=G!COfK=lf5X zC5s1XmUp_n{@D1U#Ny?&y6GLlyw@BZ#u^6SVQ%M?-K@vqjk>x1I{x0P!@hW zEHW$;Ke^%vF6&1}kVT>f2A8`Lxrh}sr$Ytk^ z;Jz%rmN#@?I{1_J_vjjZGaW+VlH&CydFZJQ;X~`BV(5<&;Vq?ocPr9tj4rfciX<(r z5)7jZ1BQb-RO=nqs)iTHl!h83hidJL&kt~@mN{)=*cIjr=08!ZeK6Xa1T%&xDdJqb zz)JoHE?guA3rPqT1p$Q=Y4HZbLJ#cdBuENPI-D$ru~UR%_X>xgcev+8sw33U(c98J zG`il}supakjp@09wp)PW8F%&Xq1p` z!9(46>WjDR__n3OJ1ed+$o}HBx*q&aDDaqpCOVxuzLLPyCvtdN739pRY%Rp%{J!~!hO-CuA z3h7jzwye|MFr1_y%TjNpUHAtwgK zM%^ylHI!e^VR)|+DI!6CV|rV44(b%QyCGZ}7n>?rx8n;>Ub2K zMQKW}ah%#_%z$J@$G~A0WEwaI&S+Y4gxiD;jg#rfjlz0ox-0K%AHKB%zHn$3)U1&2 zHiKQ7uap%o!zpiSp@WsmtV^9 zu9806o`c{+z*uJ4el?)da8BH+D98sv$@dr~`NUopgC?>P_n4AI8r2w-G_P_ul(cCd zPy9ekO(NXylr-u%LGKSTE^u_)^4c+QO0A>>w*dnY4|1M27+nXaH`yKxXEY^nO2h5i ze<&6+^CHJHZE_&TK88o)0rcr|CD}l7i}wjK)oVlZCkvY^xDrR`2xS9nS31G!R`iEE%B8T?axEpR6VUG$RCv>-`J6mg0Klt$eRF_#_)rBZ9b14YGOtQ}E?oqk} z2|IO8(?N{hsVBPx^@|UP2*AQAPE4mjL#ii8T_C}*QIWh&Nn|m*&#ZYi}|p+a$G&(W;$pyWEo)?Wo-2$|mpnVN6K==h=hl%TDyHx?vuOVb#ff>n_Q^gXwNq z-?ziis7-D|C-a!nr-qnS@_5nnzOKcCd`JdaA423BQ$&UHgv1s0Z^f@o)p2{Onc2x1+z02MpI5Ka=Jtb^Z~CGhT9T!XL-jRJ3z01g)T3J~%e zKOLbhfpW_7tNSPG6`?P`dxhTZ(q4O*!HatbsnCr&*Hlo<*ivg;%iXSjCDUA5Svj6Otdq^rsaL5kt?%DPIDv*+BuW0LcLAD>>*&fOb6{E|^+NMGtHJXa~my^wBDu{rw zqW3pT=vZJ$SlTsW9&D8pr+g$si?z7b4(GU7i`({MEpC0*$2IV)EHz<5x znb$P(i0i7P$(fc7xGNj{*^n;fUg`lu@fMR)R9up2VyLJAMX-Bc4`r@4#&8GgYCrk! zrI{@|Xk)U$KyK5<00(e&m2EWNPr2@sTW;&uO-_z`>6Q=LPr=ptXat4q_rWbMplb)` zmhW44UA68u3YlN;TKqSI`5)N@pEl%zvveL8Ea4^eo@PN9`iXm%pjIRm%mS1du33J$ zcF*RlF$Q{)4E{cCC#)HF#IYW3ov30u*ZQk`bp2I6wEij|UVp`Hz5a@d_4+HIg!NYd zwe?qaM4mf*Eknd|De~q7g8Z4+vT~xjPSdN!YlETSgYAlP-By1z6xIR$e;%@7O)p?E zay}C0(+&qne`(YL?Z~pMIkW|0)VUOS+y9rn_kp+Ts_K3BT6^#FZ=Z9rPMS7plD2E_ zMh%ztLwL6qM4x0HL8!$m*UN{?BBJwnf3Yp%8C9CM5@ z#~5?WF~`(;rs6u1IRN7GpcO8sfJqSMJcN3HeVsZ$e==T?fqK_b^~5c9J4`^HD)Y6( z?TY49!eEasB{Rx3SH-t!^KwIu2#c@OQ(&lE3o&ZTgum{Rrz#qRn)yZdlMF&P1L2R3 zeI_QbDY^VzF7zAo-a8EBI5oR3!^hO@xXr$msD=qRiE6+PL0`mlDMby_Y`bfRCGHf& z^bo(YGCJYqWMxtKn3z@A!6))5k%5NOobaAz!%=BTO=?M)AQ@9bcp5Zztw=_op1bbr zghhD-?2$Fl2_M_PkQ$+e(bt#u+w}Wzp0}@Vr-VJq`d;ZlqFz-~@n^;_Qh)qk&IBG{ zw?)s4m9yHcSq|k@Dq1UNfm+jY%C{%oslzt&i-`Gwf|*dOsrF7c>g-KKvwZ7r6IzKx zs|F>OA(T^X8Zs&&4IL%Y#uEe5#_a?b3>Tq@t4-B(0F!#$FvZF?F4dN=74oGv1RAGk z8t2Mg++h{816y^YrEtFLL-lX+A1z%ui@D!un#XadwR-O!b|O{iG+Z7RF6p_jW#)w3 z7ILE)DjXR+cTbMiTuWF;OOhI24q0Su&2Q*QN6g)JGg@;J0i-w7Ax8tavbhlR6t(MP zM!htbLBl7<;#=iV9g>K$|7}{}C)yj)gspU14h?NGLkpthF&zd}REV78lt!T;J3Oo9 zE2Cg!BFr*6E(g|tDm6}8zJ6{l(R`&r`p`QhSK=W3$ap?6B)%fb1*iY>$~)0%MB8~;bwY_0pC&_NTE~?5&K2BX+;3QXF zKFI6+!^OL&9M>;lBjS&Q!zf6Eb*sAgu44t zqgn`cVNj!6@`vv6RPU+XNDgsD(!sr-9WrG)E_!WXqH_qS;5!7IsL)XZ$ zv#>cONPI3HB!COSZic;d7ymClE@ss`W#{5n)PNe2`KHRyvQ=f1H!ch;F2be5lUs9i zo{>wBKpxKl(po}<(i7j;W<|K^ZTpy|h}a?~mb^v-Yte^07Sm;~VW+d~G|%!7ip)fY zny(gqn0VO24@ipgR_2lj00cHKVHJpF25r-5?(vZQ#wt)dJpJ;SEYf?rIER9=Ax8AJi%rS zVpD$CBnp{q2m&%wAuLX$5E|jZ>|38&;Nso_DR`H;#x!Wcs@5@{&{}dOtHt;08s=kT ztqH_h71&EDL_u~~8!+BxV5mxo87-`#bWB|3X}V&BGy#TqIimN)wVGj7U&j-=#qBgC z4_^}XWvlnu6}R~`cvxO`U%V3g4n$Yw5Vi0thJ6QOVv=GF$P905VL<@Gp<`mp+F*p` z>?84$?dIWaS%0biE=aVh;ZM*@TdIvUL#u-oQ(kaH&=_URFlCN0z`zTS8mj|1c#F>o z6+!V!{H=~CFULkO(3scWdD~KLGFOw%o8Hwdy<6{ui^C)K?rYUXi;z_h?hV&B-~BJO zvTn{5EKsjz57ELHEKU}43EULM#?&o2D8Li+z0dd|uUYCDEs!j$9F7S$8E~`V)+TU# zM~ED$=A)R)9EZl5#d}m=@BJB|HYlEjriw-vJ~QUO-tZC68vdy8;Pe##Af8>GK-J7ZswE4?jrt}C zIcvTm^}996G(53;j|G8S1kLtvlLfp+DeN^ZMlrJiB_vk#ZH<^jNFhcact;CiWiU5@ z6%;qnEq>eD*>Yvr@=Ls+_AQJ7WhtVdu9R|Gb4e3_xN_tnS-kp+B+!Jz_|U#qtHpa& zsi2?&$*1T_(!1SorvdI#Zn%tL8YsS$!_wl_665}IFN>BT3*j)%q7k{sAahaI0_w3r^(fCB@8yMkeL^NR5V*3*%x+T5* z`1xi<|7obAIA<{Iz3TvN4mt?158kl^pAnxTHGJT`+(6h53R!Y*d$5q8)1Dk@hYHH= zEoy=SVd+lQa2~i%VcD&o0$>eZ`++%%FTRv2w~ie7o;x~J(Jhjuci9%6j{t(8IV5Pp zeSg5;3ZlFMfZ*@jR#fgrG_^iQG%MX0_=f(HbPn%VRVNMKICUcm?F!8X9?_ucBmeRF zws5<>|8>1DjR+c!nxxs8@1A3~8Ff3Lohyoe&`XTJ;#2Bp$h6hIRs5qjRl(f5Y$a|` z_lJ5fYOdJ(29x|_)|Pv`IvTTK+#v7@443Q&%|jzmC}BWvQOpvCas{c)28zsI4qt^6 zOG~SxNJbba%0OkyKHnDZxAz@Is?g3-EXRHjL!Up$0bTJ&<45Tl^cm*u4cQ#1SrdT> zF7nxoBJlT4ljMii>dy)!Kiue#lUzVcz3j{nW@kusoUfG+v!>HBB2;{O`>{2MumaG> z?ENO63hU56LH=Ln81HLhdu4Wg=P=+|8m=SUV}Oe*PQ0%M98)9?FuP(+EDf+6?vbZ< zTYTRESIN9R0M(lkrfn#kVth45#Rs&4R?QICgX^0)Wz9#y^-w$>tix%RrxJiHNxZ%JduJZR&1_w07_QEL$l9fDK}Xv<5Mh1y#P| z-$r4QbJZZe{e!3I)5st`X75*hlAN%ytbOZR1w(}Xpymg~cO~4Afhr%{nctMnU3Ut; zT6q+|XPB=lHLwz2X`XT7GzItl%LI2C5Kzho^YiA=ac3|jn(GnpSEW=}0$qIbU_$_5 z!^Rts7=xsQXD2Yv@?mj3D+3fSz5fsh+hiGSG}em&Lutzh+uh&j zs`!nqXc|R*eB$&OKmNE_ZyeU^;|6!;0}>@r=ubOecJxq3Dawl*4{O1_UGo0Xa=Pr6 zJQM4-MSuR-IK4TWBbBk!9+&n?I2>Zz$``!4J@roHtJ_oWGJDF?ON0mCv$P2DD(ht} zduqgF;%w(HYP4^wUdc4(wQKX7XaU=OfR>}FW6Wl>uq&rUL!=#O=scr?O%Ox} z@gAHY(L6w%h#kasDCTP!_|oa!k|JT44-aH>FL&Xm$wLFPh*0fba@z<2NRS8Ks3-vS zZo+Wc?R|1og0J0Mx^du-M!IT-aU5Zi;Ek>xvUe*Y~ zcz@)8X$W)r({1(#Kd7coF3|OEGLp+q?{rn@gQuxN{rweGXnBSz^y66_`o1m!*BJGN z^d|aO5^x_9xg220H2A9_=fr6m)Sxpe8P^M|i+U!pSHWuB zQM}B`GtJJEkz0>~-r22uw|LMXY5B{&-foOYD~;^gnu9qd#UwP%;~~GPFq+wG#c|1x zGDH6Sj+#>pz-gJGCr;B0z5i5Z=+7nHl{ZIIg_>b9)@D)fV?z>fJxqD~sQ7C#<%mo; zX75%qK?as^4`Ct)nq+`S_a)m-B5PP2tS#OuanL<&8r-{;DLsD3X{@{O2E0@ z^PkR;2FFI_@+pnBV-2~y9?SZ~s#+6;h0xs6e$`jMmb-dhpnu6=@Wr9oayUe=%OdT(O z<4&>_w4TpyumBK`>zGj=Y8W{y$};Kr2EQF1p4yDesMW2}IW^Pi8_#q){ejao*=}p_ z)p|^}`|SPIOtz#Zl~o`qmm&RFvDmPJug&D%`-Ux(Q=0s@pXQ|cSYw9MFgBCLALrKB zH^f(Cl$;v;H)U|`3J4@nCR&A<_gff?)ij(++#uDG^R9&*1`z8T7w9dSH8DH~F?UEt zp;k($q>=gck6tEQ@s(L^IXAk4Eo&1hCBmg60%n?qs{Df~LGDR8?G4cIWuauXl(p1B z?~1>WrCQu5fH0{4((Kk6d=^BS+siWVl=>sD`9o?dJO%#)G&^id29La(qH5CJa1Sb5 z3^*{cXdVr-my0i}!QOvf$vQT&0F&zk^x!m_lOH9Fq5GAtutNLODc+%e^hMFi@FPqR ziCo;IC#~L()%`)&#s1I%skP$uh6VM;N{T!Eo+btCbn!=CN3%Y=eq&YMO6?Fv_9U93 z(%;s@td8kkh}&PFg?A45NcwBzW*6 zOCbL?)keAIBbVlv_?0cP?4nz{32j37wlo5jMV3_bZHVVc?6&O1Q#1PhCxJOA~APd8fEEMmu>Mf`Y zNG{EP1OVD$sYRIirTJ4G2!Ss|m}wN0SC&`k!l(4Dc?Xzw8P>i0xR;|~eW{4jiyAGN z08mRr>qrWaPS%8if}gZ9Mdu|Gw9p3zXnZnY!?XclrGL`m3f2Zaz|4oUlPT+72Bz@6 z2z6tIx^glCG+rzU#_2-N4BL|N=XOt2WViUVU9xA^_|l&Gh;TQdbLOAeOE`BFisM!I zOEAH9+Qb=JgSY_vqe&gGj~I)((7eJu7lz1;;r1M$#&5ro$Y388)2w z$Pxo7Eyd#X)G}V85-a^HeRF^F8;x@i75O>kXmEa3@J3`T1q;NXm0Y2GX|H#SzjW}k zdfP#%Sc#R|zUi(8yf2eR*KowR7Ghdj1Ae2NhFb-emGeikL&N4RYKBX=Jug0FH+k{l zSjfmLj@Y$-C)`t|Vh&=JULj9e(WcMG>2~yakSS0CaJ_K6se+^M%XPN6)M#;)Bqtkz ztaynq!0#7K;~<|mw<0R6(13-Q1-JL? z6<`|4j+@?puwX?K@cPWyZICJBJFjPZ_72)dS(DjM!s+thEy9~B#nD`LZlNYwjGqwj zLM{fDk*D`>MQYW?``B*`|0-UB$(m7Vj040i5h3%RHvS zm^Y?@-Ll=gSe$3W^bhpSAgf}Gt@priSIkei6&`FRvU`u-KSf5j59l2xvhVlbnyjZt ztJNz0(7xbXdLWjtD}26;sk)Z`Kp*L)Y;L8laa}r6;xaqR1KEpJdSFfTYFHPIH?M~Znfyobn#W0`hf*$ z>jp(tXteVq0>wVCIB7A4B4I1$gv)`xesky{oL@yt14G3@$`oO(Nw7Kti{H5M^hA>3 zHPh624cC!?Ysom{FY+1<$`BJ}r1!9q%S;MH@^F4hGL(}^N@U|MW?8@rz}d7+S@A)CQSEDP z5ljEX7$-B)y)%X+QwzHYU_ma*YG0oCRfg)AGR%R0+jDGT@c65XPpTg1#Xb~brt7^b zZ2}V;&ul9qt%omFC$?cLxnv!96Pta#AzqDHu;mXxqy*vVX2dc5S#wu*o)Mx=}N&%#q>| zt5-@kK}YSnt&xAsdglmeLz^8&zupb)e5~FZ*GLNH?x`L8FhWWgVW$~y?2vIzr36pD zhS@b{m81W*41i3~>Esv#fRj%8h)?Ou?E@exTbFOcUerbl{X=fC54D}|2G-_TD{XBV zZlxkleZpx>XAFqqfH$WR(FPj0m_O3K`m-q`byhXRcKQG= zUM?=e6(NMW#N-m8==3NjdOzCS>CnfYwBc-0 zFTq5^)N+m0(j4mL8iyvx5_YMfv0eO=Gjs*Oh_kUBn;&9au>ruuYUDMdqSpxuE-P{K zTMe126b2KqDm*Vr3P2We86DtJu?To}|Nv<(%Q=9?*8-*B5kSCzMi=PSXiA(cm z+f~WcGwf;$SG(=1;Oa;0N;9peM))RRkm8%x&53#%-@AOZ0V;{l5O@j+L9Cw%UFxOv zulPJ#Hh1hm)vy)QH4L@$J}~s*zh(B^=WzQ4Cops#xzT zijm3VA_{RWinf3tim~JI5`HEaDwpQZv8zkCauSMgPC~)yBou*HA>ntIkucOGWSFgE zq#Q7OHdNwi*YK**8VDC!)pD?KK^K&fs-~#FrH(M=%b%}_(=D@Y*0}L!-TonI+0Ef@ z{T9(;K{(2A)Hd%NVpYl^N>l8Kd+oDb;d)y@boF2}6^VDu%gWS{*-Ld$#A-r21>SwSV`_?>dXIwp#bPy{VZ{`h| z{9Ac_KyoANjnJie1I%kVSTz6YX#L=wPA_Ioh&E)6EGtP%EpQ;Fkbi)(RC!W_XDuFd zsjlM-4FgRyFVQ&B62@4_iaS)NW|mLYERf$_)G>CYi~dGsung~D=V*1J>#l72gpLs2 zl0U2RY&81gC2d67&m#~2`?y{vuIi^!a5L28uDmOog%P=@O* zAm6>?ws@ckzOgV?E3-5)bBe`XG%({#tU)60kKRio1Pa}46godVunL7Rot;9DG%57z zM!##71iP8s^nTzjt0*np$9k@BE+6nd>k}jcVY@2!u6bQJg1*rVBs{L`Z2#m6IdaM^rJmjJDD{!sFpD$#`3?%on#<*Rgg zLpm4NwjS!kOY>iVL-hWoxorH0SlHQwATWIt;sW_W!~@H4`95A)5&|yGe}zlt&Mh69 z9Wd${ANReKze)kOr7v;9s3yRB`O^Y{ZPfL~zGB~g&c7A6sCh6+O)_16h93;G7XSdU z1kd2h1M)k_5aA86PW$I{74B)#gXeOgDvo@NcZzRoveD{I^4R2MZxhqwk9=^Eb6Tv? zUlW3QKaFKzEKfs9(PasgYzs30#LQ7Y53Akwaq48N>mmJCo00Fc(tfzRSvo6#78g6k z-&qSvl0uGizd@Nl(W&<6qwFPaAu7Yof2^we;edWq)qGQ2>8G#y6m9hFVrhxMw^gfFi!!Gb`!*oI^X>*tUYkQK zoYr3xUen1=)DzdeE!Q4HFV1mU@3!<`$~M8Ugqk`90#U{^i7nSg^mg%O)ir4ECQ>pe z4R*lOEO(l!p;J`CWT5z}z11oHUcWpms8VXR6_~zq4@V*k`A0Uz986)d@tXHr+}vQG zAzDiWi6NAZ+?FH`=f7;#>@jF#!#n-LBQxRQ4nW4?pJcMISe9wR*&_uNfu-&HDDBNQ1 zdX2DD(M&lhv~xz9cDhfMGYf;6k~-V8uf^%Hy@M$ZgF{hG?wy$w8_M;%&z8F~(pQn| zW=ibAo*5;M@0F8SLu!=O>qrqI4Mc%S8|dVYiU5Ln@1v*-yi-U=urme4#OUT3_eeQ0 z`lPWqUr$EP&s0!m4$pqzVanuH+uMq?5HsX^p9$C*S63O#Rsoi~_<;On)hN8X$;(yg zy+fsm@(-+|G>z^@hTcu3*MFkHB|tYBtOtpH8q$MFp~Dh{ffc~MxCJBa-PR`oPga~1 z?S(#-s*m=H265!@Tv@CrbS~Ly2bC#wfN~Qp>OP(wM<^8wAI1ubE9mw}4N{Rx! zmJpViqE(N**I}Q`I1$E2J@J&D~QJjV7Z;6~GPk>fvv@3vPe;3w<*U|fLfCuqC>#E0x@UnVI#7-5D#4b?~yTp}ssh+R){++sHkuKg7?yN72kg6{vR80`khXfIj^X4$*y{8Cs zkPjJJeAnBDW03mq5#AvH{JHAMvG6o9uy~W~wNov$|F&Kduza)jLVKM(<1cKXr@nuQ zHT36g>RJCk8+o(m;IN5@xb~)JW;Yab8_(Kwc1w5)|NZZlkPKUjzfyBXOBpPs>{2LE z6>EWw-hM}j(Ocn<9~k*A+-4=)s!y`;>sGS0QSzOy=&N%ZC11Ca=|;(4Tgh3Cl0RNn z@;)n>ZM^f&WhHM~R`R-KC5u+lZ0n0(7KBZhk66i%HrhI5C7T*0Ck=}`8YQ2%k|uTz8Oqp4r!4f#q3K6m1oy57XYtuObf^Y6Bk7Fgy~L zJ_Y{l)8Y=XRG&e_>?(?Ytf!NkeSD!7ikDkIN}v$v^la!nsjPT~J@2g&qJ=Q_{||Sg zk~f-%Zj%1P4*;I9bA=}p){?I#HNu^L0>H)V)DW*)+DE*_whphLfZ~9jm}{l(M&A4L z3}pL1@Uv(dfZsytgZN$S{FIiExP1Cvo?h{^mfuakINYZ@LmMmq)#EI**>uQiH{b9$ zWZcPz+Nc3Ua>qAIRzpAon|0oJ1^b)3jV}%-S8Sw$Apu32m^d|Y`&?FB@Agi6k_EbP zrWa**4;#4QMx^w>EMnBq9!^`u#@*BJ;UBltS(!~tt6)YiZczXxhHrlZjKQ*Fk?(GU zDWWgCdj@lcerT}~IAO9abdqNZke^$4a;r7}^lJ~!XV*R#1vFmHF7(f$2`VcGT5*{u zH?f#EwhddpzfriidNS(FZrC&J#IOI?oGQ+KlaD=E?0?iqSUG?%hMJh(gvvxOb@B zF;&h%*cw;5wdmMZxlvrRt`nZ`)mRHpbjfn?GrGC=)9QMPnuXSq7}%%IkN_Nm_?E}~ zt+MW@1q0bh{MbB{kzV|&jcx{=d~K3hwUsoS;intrl}dtQUIXQ-kil#!0DeoHLO&~bs2 zYY16i=@AR7uSwmMp1{`V6u+(#NeTG9c)f0rDOF2h_-vu?sF$9vi^i~nr~zG4G78*0 zq8b<7dL%6%LB>CB%&$DrYb-1_^a(Ejx>Nl$^of5_yi8#CAw(^IU5%)h6niJ>%TJFi zs>Ep&qX}5SRdLwxW8vHy;~0PpNBlgPM3}lWX^xqn?=dbt?TUO$WB99>mBI;_Qc%wZr z#z;|LK<$b?fjbhrRBKW+gQkZzs4PI)Ok}814OJe2%NoG6g9!mHjaw^ytE6{|kkBIr zY&-V5L6PB6KSW}&NUL~r>?U*7$2TPO-7?5zMlhcE@j=zln`D})vU}BQ2yheL;jDPA zz{+>$%wH6mVv}U9w%{~p`sGh-(rnxcri)t~1<>VpxSJRh)z=p645ddBU;-oCMVz?Iq$Lp!+HZRP{OYB1j|uu99vYELmq?C9@7cg8$ZV?csTAZ@5| z9D9>FOjo_+%0`s>kX#v!`pa>v-$#+Kqh6TPC3a@4>P&BVD@!GK1#a=1)-3oH0xXzA z=!N)puZ2yPIPo0Swf&&pTf~6a;tOiiG@RB0mBKhxB?(bg#nHMet9T(u|D<1AicgVm zLu+F4mL4ae-Gj2#`&?G*;9Zs1mM@Gu z_>kT^RM_NUTx_phgaI>4>vp=^&Kikb&F4yt-41tu6-F_SY*@U;UfV&1l$89mv4Avz z;L75pKuq!b4w=}}sxvj*)*7X%d!()|wyNre>Y?IBJ*s6_nyus4%Jco%)$^@BVWl>I zmaWIC5kJgup&|Ij^Ty1rpFzR4n}GzO7T5Lj`9*UQGk^~Ce!NB%Iwsk)IW2=-J$7 zH9Zj612{!?N(2c7Yif$Rbx`_xfYVZ)OnO#EZ}>XDX}I5!H<@-geg(o3t^u{$I~n!D z=76G0fPx@VMuAaN&lSiL4r>yj@QplNZ7;*g&r0@8QMw9)Lyw@GWsIt)EgL0XMQI%$({9$w-wD8vRES{p%caCXyl-ltj) zm4fL2+CUN~XIv46@z-W83*`WIFv3_Jm&5>T#{DqBG8dFGL^MJ&p-tkFJEi7Lo7zSeEtp%iow2l_?VF>hR77k=~Xb#})5qifF%do0$KzqcUTeduB^26Qwhsj)pM~+g+I?bK=*IDwT|qrmI(8*c=#CxF z+MdFCTD)VynpIp5{0WPT$MCJ= z1nd~V?-hUGqr)o2jcV+-Tc>9jiHttiJALr$BvL^@WuWcbhHFR$zbXa~RZW-3w%~V{ zsPo(fVJ5JOZJ;1};-}-`_WIKViauk=?aVI<57=;+C|<3OW5_^N`4M!`lXMg=G~a)% zaIt|Mc|}JIJcar2#)-Q6)TbR0vT_u%s(n*lG$C3sGt)}$czDoidRTp|UIfN10(5)v zpvLQ9>K4TY=rbl@T6Kg%f4>B3mVM?MhzibJ1-G9IW7_lL4FcFb!&5_=oXNTZ*fEC` z6*=YhBBGs_Llv!sCf|(J;R*oFVP?1)TD>o3Lz#HnJ8TUdyntL#XZ$K#;-t~c{rzt0 z%i`x;k#1m?D?Wn77=n1dVTH_YA^MN|8H^SgCEl76Wf*2!&_<}B+{_&>QAwE{^&y1^ z6C<=u4%X(u;>nfhaYM5d;xdAnWBB=5wcXkKVmBL4Yc{pj>7&~JYKZuxM=Ud-FJ+ev zGR)wmP9&Bs(3{r~k&;E@<%HxcD&RgDF1n^enT^H)beS+mFSV$j?Z5<~6ntC~QTN`+ zf%$F(@V)YO^E-If45&0)PTVZ;!6_Rf5N#)|pYBqnI_;z3&!*_cGf#uSmM9=(hmi{4 zCDHl{kcE~UV_@=FjSB{i3K6jQL*pzicc_0VD_yBtjGg;}(D(*56@d$w3lc*xKT6C` zDzgLLbdVdPFG760hM0E^k4^Z{x1bvd&ySMgR?r%NljX!2gC^mP+KWuUq6;h`F=;-f z1l?^lbW&cDTKw7W_!P|}tPorDvoqaS1MU?vwBz5k=0snBl6OBq6-);C~lkjaxl4cIDRiN%$| zdLpMsaZC-!?BS6%@@o*=Y*rhGt5*K|xTT<~qJC;`xmDjPK4i3EB4>+XZBrVm)`$4$ z-?Dv+4rM_P<4=6;)eG#w&9ZDFo19{a6llX6DC>498-v!JFwn5?gePgU8b{N}M$*DS z&wFCl`TGq~cEo%Z2EKRzJGL}5GCpaPz>!&aQlr3f%1ks0;3ur@MuAyRQ;h=jSr%p* z1v19MWTU`BR9eMSL<}*Br$9~Fo-YpGf|0ZMP+NFeyiMk@p=0q5vy^#svW*$52bf_N z=ZHsy9_E3CKv8uF7czd))GO0QB4eIoajuB(j(m5>s08Peg5 zl^+<(u0$sD&x>?Oc+G|p8SX`hD`c4|CR?;|DXA9H&}82E55uNJ<}x7PjmBh(uH()$ zQ^)Y?Z!o=hlTq?o2M(1=+Z21M|rD76kE8Jn&Q18P*J6#f|sd{5RHy?${1m2A{`t=D!KqU)TbgH#6d8 zB(^o)$(JU>SKF&NuQ=SSzD1+@Q6>-C0&bI^TuHP zppEc}c}-@1;aZIM2{E3Xj9l4cw+-1?fEAXSW50Uu_|SWqw7rX))fyQR5o1SfT;SO) z#}5F82FZcm75{u<O-8`=3cWV)#Iu)ZP^L!>p2lOJFVYCs3j3(&Kx@BExkvie((=PrRd@c;>{{f07eYMp=!R=CH@ou_e8G>V^>AiWnwFgd zWlQiLpyG+^Y+V0~;Obw>i1yQvi{F;xq{rBK@ZmRn@oR5>+r!^ob)&yjNyB%aMaO~0 z`&}ZzsvpJ|HELLnyZM`py8v6Gr;Asq`Bv|TYKtCjX-A75JzdH$B z470NFjE@|LrwRmrP#-n&^4??jji6pQ)B}V@BYpqQM#*ptYr;k@j*Q*Lq>_-a87;6H zCfxo?MbZAkr>s!iV?wySw{j?M$+*aOtBXug4Us7@>FWl2?@+$d$Z?kC!xVsxHdsS5tlIw ze{0-f>;Hfx7B-Ala3ujc#aq)TwZR_WTwhG*O%H*&@I>dwyX@wA{jDP#)p|yqk|X+g zd}2Dk6lt|WOsAm}xrZSCD?^475^6MO#RIx0R`7ox;_NuuOxh%_&Lx1RB@*Zw!Ik%> z_EZsahaHeAksMXU->`;wwUUD0i&#iYybUt*=5$IS_0~Hiy}>jR*ZHRg8vL+Upy79{ zdwKD&|JL1DJFM;R^t$0qKF9ThwSCJP(75Wa7}oa9^!zb~wS`K$P2i#jK~*ekCEl6I zLp-A=a&%cR>!m|HQriuXTZ-P{j0kJU2ivSbt;l<=tJ$cV=#8XFs%ncWn)SbbvI-d= zYYCqp0@*Q>rRiydp8S8gXWUe05meb{_`|#7VUt3#97aP>A36(gyjS z1@*0qOzQ~hdqm`Z+=BXS9DZ+t`W_OXfyosUOLO@!U@#W{IfD9r6Nip%DP{D=89UZz zhar$`LW}4#`IEDluf-XJO2`URg5oc`WmI^)oOX;dRr7^ITM3B*oFT$Ukx3;TNkurQ zZ8om`>W3d*0s}aWN)pf#z268VAawvgm-SMLl@Fqsq)!TR*=_b>zEYob~GG*ITQr>*v>{=Z{f8 zHKgc2_(#8?JnKq7S$ug}RoLa>nves$iUyX`)YOhnpd-wkJtN3-1i8GO_ z1&o^MU*O~DfA5WX?cUv0ErwgS%mvQm zQ6{c$>_>R6mWJD~aSH2XC#lXfJ;k$%%31f8gI^P%VSUz##pmN8ax|e4Eaf(?tEBwR zdE_%XpRCFtkV;kqQV1p^8oLf^BY=mfZv|-hl_~Oi_x>9UpR42z45cd$lkn0IMjZhUa>fctoWQ?i(`tv z*R`b$$cl#=*I(Cl!?9_c*?ZoQ4HTiX{4a2l7^DdSwVH>0nuZvC3*k$~T%S_S92lVm zuuL}Ox{PM*(&qn9F$BNQI!*6~e9;f7{Ww--asMoG&dhISIStRV-0~{s960k8n{z+; zn@vJ6Kqa)u;5J<2%1&l1@hlvCgto~5Z5cOuub8S4iHL0&uoAOt|0`Q8JkD-hmfb_U zUov3oD9DXpi-+>|u+`_Ze#w_OJme^5LyEfvwFPB61^0Z{aHBNxzor?6awy15)-Hpc z(O_0w1zlHugc!xIbEv46w#?F9vF1DLnqQ@T2kWdE?m3N`fBiIIo;`KVH`g$~{xoWy z@tTbSHXT@w=f%3_8&9L==~S~h{fF_)#s^XGf$vll{EgG7S^262CUim5C60#V+EAf- z?@jfNke&nyYkzoRl@Ar1ux5)(t9)n?T5ExN>na~wsM1;=9$Mu?LfX~_^}s4068g6G zhYv{}Xj|6^R+)jW{owDS{!pLoT5wNf+0wcg zV#{O}GB*lHc`q3MNa5+2ORslHEYe!thottZkK%ggsn+WL%CzpYM<(EviZu%iJ$uaS zw&_~tyESFHjQw1nw#c_W&&EUqndlH8q?KMip57$wao0bgQ;E5Ab++AQXLZt zn$`@q((F|=eI-^jTqCxJ9ETUkFQEN^xoetZ_Bn zn*YK(55MD6x4iK?eU|K59jT47H<@v>%b5beQ>qdv925h%pkwR%%DReZ{B*OmO_ zpT;Y4L;H+^3>5a($hK3+hhC_ZRCp!Fy~(I(>K6XH-YN8`7-To%MNZb#-@^v6gCk zjP5LLOG(q2xX>xH>J(0`FF16?=lr+g%i)pkaOfm^g!yTLv$}V|K=@k|pk8IqFPi#2FDQNpVgz z=c%!rqF@reFV!&9tCz+<{CT)QaASB_UIm9BYmZ`zMNQ#d& zI5#koxr4eK@TCl>oXMI+-hKG@{^8MU7e9UbtFD%3<$Zs8=+965^;`e;Pe!Bi&hzgE z_ObPX^}QX*;HvfI1ICAc)2G#xmgx&8G6&ERiwkT!s+;?W<-GWS}UB4 zg_`Y9_!28jt!pMj;X?-eRD4sj6bipG)FTTY&cf%0-qh@ZH~-WMQ|p>JQ222x?8Q1Y zE1>X0R+tbXi=V>xSYd)w);xvp82Vh6I)!hw!migzQSk}0Ycn$=ll8T7oZ64H;MCQ< zNZ(RL(TntOYQ(gbo`CIOWbgIz&M z26m~&WLLK#1IeI+fHE1_jS;4*6YoAUkjza<1~$7sW8Fw8F6o9L$}(NT;%v~3($YY) z6g|F158ogP&AqSgm=L$ulc)p^MCE9NPxSO#L|XAhlWdIvz&zo~TFf=)NroYrzBxRG z%?9yKBP{b)ah-j-a#*HT|0TjR{$ZCJT);BoICk&yNTElPKBI=Z!JxwPqsH*P;`17e zav-Y%#UJagPh*w&$x_3!SF0oiO^eCkYSnQ})jB@nCH*U|SG8vpef?7Z^6TAtg>9*| zf^XDSNjq!lOS4b>Ar8i)+;L*2Xnpf+ITz1ZP5#h z@pdD($f1)jsb8M$g};usdOFh!pN_XP+)nqxhy9kMqTwC!$=N*N_RaCO$1SPyU)^{* z(F+g9?&)QA)_gwRZswLF24kU=ft^QCQlpi}~sOfN3R^4!?T-^=DhQxq#uE@|}Au$qi zuC`2~B$eian6Zp0RYp^)kJXne^+!~)3NI2WqM%wO@@K_iK2qocA#S{QiAGTGQ8HmQ zQU&DRW<55V!u{6V zxOFi+P=gc&BY;6aU-jW?$67>JFX;L|%Ag2isq5k=@w4wnWnxu#5PUwOmkaCQRtL&S z5KdYxI=O(iu9wADy#<95bmFJlhdRtoSJw1L6GZ=JzB^1qR$t2^;hf#oijtGh(Ccz# zkPX`-#?hWnYR&v`OIyo&N}#YoJKHR)TCFlVwm&OBfZqtIzsk{kAi*%f(9k3&YwYs5 z&V~Le9}e&Gx!W*fda~N(v&x5Sw0O{49CoE;$@-PaM*mG08?51oTGf50_^>|JWz{_9 z>i3~COFAVZ^~6Vb7Z>PJNtrU=HfIZ7Eim);jMp><_1gVB9?M5HoYo#V7&P+8%x!p}fQ+q=X zu)-0E#&Ah^NWaA+f~VE{Uuq2u17%5Q701;7aL_pSLA}blY0I%ve8cWp?{#+=jX5H1 zTALLwbFAOq2ra?3>Uh`*mDbcr={H8R2)k@d>?8={QrD_-kZ`+Qy}xfwEv z)TD3vBKCsGh3>UZk&7wHGS^fICCFclrN-hLDjOCN#mhXV{kcZimU!8SxST>BJVoZImM?@*cLgtt0Sdn|I`s z0$^?gJ~ltG0meOO3-6HD1P0bQGHclxM~s+So@FEQ%(jIQXyGwF)$Xu6#kr~&+#1xi zO70!V>j_>1$ABWl#%^g8IY9p}!?48%gPK!e7`6%xEZE>|7$&{{?J-A0+&7G4monPA zmvl|bafzHWE)OFg^q#!h6l5e?s(76S$5txosHPt?!QARw^^ZB)hw(wnBN%GivDVI|f#Ust1 zn$nU}y^rZPOaQlff4-tOB1udCg&9_ILkRof|Mx%0UaQ<9BA=WscErZ?_t^0uUNDAW zLtJr_2r64HQT%)3d^jN1GqJrc=Yv6o^Wp!~KJ*eh{#z2E;JOU{CQFu2r>(Pm)eY>vnJhSYhVnVt~YFyA#ob!Rj7iT zy!?B}*PWJ)aKY=#Sj#K2)pTjN-57W#%~hqr zTvvq;+7rz`nX2Dq{9VsdDKm{0?rFYt-_ToWib@Shs+B&3;KQx$s}=HzR=cJF+^%Yx zDg>)LEY_JpSm(-C#F%9#w(^uY`@ru&Z=s=`9`4}VHoVkKnQfy$7O`2Id2!U4su9h~ zc#RWf-bsnb+u@{orU`so-Yt6(mIYwMY=@jZR$T~5W%#qWX(JFi;Ri0qQ^qVp`D3`Ichw1ioQJ4S+WNum zE@Of}te8kz_-s(_8D7b$u-^_$4y?|bmDv*JC0~H!nU85en`JRY3_6&N53M5?aOfhS z+PLS(m`rwygF~`l-cnD1*`*DS==dHo1P`(oTdG0W64=!{=4AGo(i-XxJ80aX)ohDl zq=gZ+&1)r@Md_J9?vjdFH7J!NPXBgE=3mVkSk=v5Z0Blno~ID0fe36$ZmXVH#|72E zjvhomo3exfMar~gUJjVaQa!izlc~r&qX^aQ(kYtJ zzS_JDppkdTLx<3eY-4gzIsHW>xCho7FEdLRoi0Vzl2s^W;p6j#z9sPFY|6o8xcVnx zgGp`U>Q7o#(A8D~$+*<*_avU%1T$m9Q2^(`I(_I(E>kVN*%ydH|AMo&{0mN#Zt08Z zvS-ZZUz}Y2h1IWj`V(dPh}x&ZwDL`Fyb=TYWNYsgJtb2ZqjG$gpXItZBfc7f7!loU43vO6`wzS&qMmM{ugK|{ax8p`o zCABMaaD*3?4nkMV9NlQ$a2#5rxcDhajhYe|i$kQ!v}VvI_ckM$>G?LDs}q@REiQ|# zTi%=&73aoN5|iLv9gi8tMK|N9Hl_^H0B`}coY*5Co*w8}HGn;>?^!~@Ea4lkL9D(O zq{4+dxrf}%1Cx+~9jS=By+q7S1X3+>=JISO&sv!je8^tRCz6M{QvP-7P}*Lw)fR2d zgv@u-S)Vm(5yC*=Pe)hV<$t=~1|*sV$loK z8`}|K8Q|oIm37)^0fZPW+r0-SYs>c}Yj)ioK(UB)m#|^@nNN_HNuq1YA`91uN5Ucm zY=aeLV1^IIf82EiF9AJ8NQ|G-8O=04&iUCoww5H=EuJWSttx{o-02m2`T>R(_~H?$ z9uJ4#DY^c3*Y-6l2(fBZBNIKai62w)azf&!+9nm>b=@D1-9{Bw#;JkE``BQYTS6vS zR|*~;#>to-8eBFUfGaC=Pp*?2{|h?!#?Vp1ymrpI;Rt~&H?Xj7pIM$#>eu;yEv20s zua4{mvK=-*@RFY(KPTO_aa5ms8{dIEEDTn3G!7PzsR9j7AmPJtI=qw8UG-@X-EbGW z7dz;qngF??K0!%+tF^UD_~-%QN9S2|lL7V|sj<0aINaM^`**PvQWpA z*D)18CPsxd8_a(|lzXxNDdXKUUq&cb)2wR8*IVE|QX|40^7~l|NVUfOCUp4WpC~ z?|U=+6rKp5MuY9!d7g7r>V+ob=zkTXAlcax;?qByYohRry&}L9+L+%A#&R#TM%yu$ z`=&&b)7u|YohoQkg#|0chagucVwRm-I5>j}cU?g}pKWPXZtAja7U9BU7_2kjIXEEU z;ZIBBwZb);t(reQEWJhD&`g4=7PGRor#KN?hapa**{3`{t;*}Qm@VvZO<@{_`*54U zEdC&hY_ZpH(fn#t+9CJwfy30Ic_f+teG1pAV^iMR>4<*zA9(hEXpHf_1Kav1DuUxD zSY}`7fPa>OXTmyXRuT?hPvr|gn2VYS=Qy9Sc^H!{#4)CJKc7d*w0DE^O&eLev3EXj?*eBO;s=DER`l_y_6kmA(q>q2D7a$G{JPJ z24kA|0M`lt%`blFvrjrrm=No$!&Ep-;XxrM*0 z<3kS@J&Qvt9I=P9!w>WL<$d;WTY6{{)OJWSwzo!Bs!O6v3DlnQoxd1s&yZfWIxhQW z275cQY#VFg=FF2xc=VBtf1E*Z4#Qozmt6zWuyx7|!ZY)g{bS^^6*8OtP9UXVoLthK z|EA!Y4$}<1j77jP#?xgF`%Lx`^IxPZsbJ3BAmwuhscXO8v@_;Rky`DV;&-yj_zp8|(8!>Iepp4he6zi%)nW}Oq4@<@#W zf`m*)eFnk|Gw#8RSQjIej?UfU(VZB4(K(=40vjKa$tWPRWy@*h;ho}No6~nVtJ!w} ztLOYDV;-|lxpUjb`rbv!FuFLY)@5Ru37lCinbpD*JFfx|f010f6=|0fJC%qWngghn zjb+P-U;}0rFs6kbfn)}E2Xu=ZlK?jj>L$Sj=Pb*IVwjmMXH*Mx5;?{VL4yrYX*`mH zs*D^ndq^NW>EyunOyrp0n@kg3>hG34O}1--Os+wYo(Q68F9gwvHW0+;I*A~LECMVm zZ%rbIr2*dP1eqBo2!LZFh;2Y6PQWxu65{G{lS*peM;dK*jzr2W0CJ~9{|@7&68OE( z?jVs*XaBb3GGCgi0s?%9JU)Nff7T{8Ux$lxH8B`_F4*O&7>qv`#{*Q@C%4n{7zEf1 zSC!r88&&5nn_=R5QERIP*^{y@#+*{yH^N-?z~5R<9i88G-TbbXksSHzegE~U`49c( z2fx(WKfm~Aq>np;H^8YY!Di6bjc~YnIkvo!F*P#QXyl0MI>JPBSxZ~j z*U$tFnXVh|jZ_|3uX}S`!4b#t^(}7*O9mTHK^_muv$-fwWwsn)GXSs8Sq~XGP7+Q z8qe&(>xHjpoes>C5dWF{wn*)ANfIWNJw!y5J#mO^UPKw-xTADS26^5X~ z5JY)?g|?pFoj*R|Blf5TWx^`^)aWfeo^V1&uDuqgjc~Sz)0YHCQ1;6o6nO zj>Bsg`s_aGl+Y1=+nFE922%o~FfgVJj47uR!-i2_fudgfNO}z5ObMKgXdDA)O5m^^ z1-`!&NXj`uvJw8B(_oN4|F~_cvXRBp3KpRy^3G|ahUyb?<^;{Agq%4+Lvo2u$!P~P z%pfzqaSSMgOilD;|HRd(anbDMm2YGe6R&p-U1^RC}+cC9B}9Ibwt`$E@3O3 zkP=BsNSVe#|2+NP-0h#Q-@C^87cewSIIryYjW5?25rw~aG>@91erD0fqYQh z6bzJ*F~aesmYb=sSS}dQ=VvGz&J{Jq{b8a%pz4i1&~<_SGnB!ATTazcD0$i)H8RC+ z%8|CQufaar+jAc8-fm01Ee9ev7Iaabum9+*jkc{etk$3^4F8xrTlD9=vvW<-o=s=x z9#7Jq7sqak&f=q@vvcKn`j5_4Di zr0a%^Ah8f~Z-=!$u+|4q!<7TiYPD++Y(GN?1|q`uCkPVPcFKY2{tE@d_ZtWo8VDCU z2r^DD90g(P8G>-3K-if;xKN|uLb2?HQuuIYLvhsK6o5=U-NA$}0g7=b*z9FQsh;f&?Tvh?sD^A>Ul(A2^X zbE#@gzT~vrU&XCfg*NbQc(7R#zWr*s-L{7tU!(V;hdUh69f1mW4VB(wrQ5@UL!}39 z(7Tt0JM~-DaJQ8{B^@{w8OIdAxNfJ0Go zIvYsyDTk!?LUfa}RiSrEEwHw3r5m%=4MHsqPp=dS}2Mw?ta6>#kLV~ z;o!@4KSm$4q}1pG9<|g5B90aZ6Y}nHTwFN@?D&)u><+G?Y@n|~U2*%D8&I?6O|d13 zvf)ihI5(a(j_KoU!+%-W>I5vW&dilF{OCwLG!)(@j?8JX{5*GAIbBZTZJMTi_>n~k zXUi#hn{bxkA&}NHCksJHqAxd1^D=o{x|(ys14ZPB|sW^)vY_1Ag0J(hPIsVhckHwurMq_SQ6srhIbr;QKJilvpWruv{cup1u`ietk)`D(b0BtDx<=frc2 zgZrDECs>?7T3LBi+7S)!V@Qw*K~Vv&dGI+l9hy+=*Apb8I;W5z&vV zU>pGL;%bVRv{!B}x9UHJ%6Y1Ud9i)H+{GC=P0SoQjR?ziGaA624|yW1v3|(Sc>oZy zegULexe4YyufM@rNt}v7&5uom8J9Ky%{@7d-;@C}%>X1@s}I1~qYWB>a4r`5GiNr5 zmCl2eaOs>+)tlAVbM;^9>shDjD^B?{>1$(9vD>kQx9U7+&Y=#U^>}yqoYdj+e0g=w z?=frLqW|dc1)}ZQWBangrfRe=m4E3A{!9y+B(3e9au_?*+JZ z_>cbDfY=;I!m7O7kea8%%cJzYpugGsySdrlv+3{V$Fsj%)!)tDU&bB%B~V|n#d*1X z0UWq*$9jIQfw$V*VM&6<5@mG^ndiGY1AU&!V*%l!}ESp!*fy z#(KU?99cWEGqCuOM44u}a=m2>7q^gfgmXX&!U8UzIgipQ))l}~RuZgWfJ`YY07WW% zVpQk_Exc2ct;uttYJ5`8Qmbsd8LQal;|e%nOG38525Y_ovAd}1>Vvr z^OkD1qnXU>G?R%X)$II`y_aUuX?A{is5H&aZyzd6v-4v^rORjCX}*4<`5p*L^T9Z` zT0VPilvMp#_SJ?pO43)Gm%Ve|Xvr!w+x5P8!8+?(2FWVzE_)9VlJJ#!RnMps2J4da z&T=fnCE<{9Li$Q2het}bn|Dd$h0#)OS3Ia>9gNN0o{B}8dAX;E^}DT_h3!Xp2VyaE;2iXs2tl^g= zMb<`#Ec^^Mf+mm(UU=SM65~4j0!zY*_q&d%83q23JVvef{8#+B&e(1~UtG-M3;X;9 z&d?ZnA+@mIU+64*!P}tmJU;5pKmBF5nAJF$VjQM4wP&$)o;CQR^H0BaFin(3IdQEr zKoIl)d~LcaV>i3%W(P33_86o*e`X@wd^Ix(pKpZYtrvycZehy)$>RS)qkOt$vs{ir z=jIMEu#O4<2g2lrYX|IKDW|U+SfIz1trVA&6-%bPg|Fwfqvd7m2HOe_#TY?cZiO07z@_&;7Hwrc+Bm(D-^ zVC?w0`v+TTjvswE*f!eho=Ugxv-8&zXx``Ea$pAM?VHc`4bCse2|bz$H+-_C@WZLF zbl`t>Z?r-`aba+_#U#b%`M3;5Wz||wyZ}CATaj(9Kr*O?kO!jn!k5P5yZ5)aPOpV5 zO!1IdWK{B0n7kYlmvHq?=yG@StH$Ctz@j_r0mIs2|sX9>o;mVGW*3&Jr*%Tzh}^ZmZ&xH1`JVz8Rm z#|9i+C~Yh=qhC(GXwP8kXbC4kIHu*#pV^S_Rx=oA`V@7~Sk?r&kIL^)&9j4rx`_-d zC!n?2BOORNwI5?qZRmq8w*$t-!CTbYq*{v>%e0;#Qh;^PeSxN7_JHZ9EQJklVfQKq z-li84z%oW3H(tefz|sQ)ls=ESCwEs-#K(ki${Nc`Ra!D_-ggz#Jsw@fWNuSAdsY8j zY(~6Abf{ZyqI2c!^XL^^v5#3^ci#(bZaFo5mRv&Yw~L?_3Wu9cFwDMi<}9@>U(y&9 z&;xcBorNzf_DSBbK9~$sKM&=#n$ZhOZ)B8*bHfq+rUd~rckZ>4r1l_Bc%)fUnL7vH z(D<@ijJR>AG?_a`hDwvUbH`9=GH&h~Dox7@_Y9SOUGd^9ecblS1`ODBI~Kyn)2;*3 z1`$N>D=xkfrV}2~``QT8N$)A)5W7p!XV11P?St8ES9iC#EbWqgHkOl!H?{BNIsCFa z;*dOs)xMa2(Z(gh!$ZF%cp~A#mxQozakz1az#`}MH|xD*vlx#ML92gonVG|6A-HO= zshqT7H~vC6Sd5O`%l7qmSPZ3j{sj!$P38FW_}N|}4$o7J=GJ|@2@i_bH!@lZ82Rk0 zP!XH2Dz{u!oDCGMX2>8nOm2>-$BD_3Po~xI)T~%(ssyvU1_VuS3BSeS+ z-I#}g+8DvjwXdA^0g@pD%Rzae28c-xD%}VC203AlFJuBU&9@T$xcnI-6UYKRXPmHQ z5FybH4;Y>jR>s)R8F4~~kpu3gM$-!R9qKdX>dcO-UdW6H=qBcK4PG{*&hOjz0_6k1 zUxyW^%&PIqwg^l$3_L=07RvI6Gv7?aX1CbpMqw9yz)+>vNQQ2?QEgJLHaDg=d-I!^ zWdn7kKT8|UmTMT8v$e|pN-b+TbUY|HxKu1y!R-?IH3ZNM;;)uW7~Lyc@@7+=GE951`)E`4WimSh}!}*P#R`ZvPJN* z<2oI(8PFv%3(VADa7@A4D3IDO}F7;6ex5%}8O zikNmQ!oEpXgnbpQ2p}*k!d|GX2))spXAXZIX5LIWZX`*Q^$l>RJIlwPGoxe(vzUW} z9(DwH(1H{Sm3JZ;(O;OQ?k=B`HLx*R8~JW*0`?31JWA5+ja(9;9DC6ogo3m*arr5( z2x|nF#gHFkOd3?%#nGThp&<===uHx*aoQg(5;Qr30z)ff=6&^oXe28)%CT;F)R7ffMr1Wz+{z3ILQQ=EUl9)S1!O6&^LlN2N2jvV{%V1q_s74P8fi%Ff5AS*UT_R z6&yCek|GD5aC@_)Qshgf50c;FxbDJ^@L;nPWG_=NH`$B*aA2ta1`^i1K%zg3<=9au zOI$^QtO@h9J=1b*^QGQr+N9E}1rKyG3Czz`y2_$7f*vg2N=|Y$pIyg8{zhrcd?7yJ ztAT%5i9-+s;x0oiU_!c3G}oJn;|}7uegU-M!GevZ%B*kV8Aig!mc{DsBJ5ONnJz6( zdj_+U5cP(WYlf$ozP*cEc+bqq#n*CiN!4nbjybs+?kaP`B4V_o?a8(z1ojn)f_qDf zDtfwr$3N9Bo63z~qa_X=cD~U|Iq$XbW1~neFStqeE*06HHGF%QGqP4kM8&1m1)qdt zM)jmFRdQlk$^FfeYqH0~HF4sxWYAEKHWv6o#-0G%)Y-dxjGP*Ak7(0hf+6Y7*mmGR z&Yfl3)m29mYnaB9bMQlY8R__HX%DiIZE-^RfZ%hMei+XDbdU#1)uSb$ad9htTsFsN zU>)zS{bBN6r|N()IcasFZ*^!Aej~%KOza11O-#bEBize^kHyq17qd26aH9MHMv7d zt;1UVFs_!Wp}aQdBU6=u2ln&U;}Gq5r`Ox6T2zSEP>Wi|u3BXKv$d%7K4b-8yT3xx zNatEk%8xq*n%h^B5R@`Vqx31%74t0+g5i59o(aEq0>Naky}aY>wp9a=gD*fj87@ns zo`g7Qg=@k2+ALz%0% z514eQO67!R4mW9Iw|tR6!Yw)REx#!hY42vL7uw|zG(wU|d{?(2>-|+;1GbnoAagba zLg8tU_J9kG+JfhMz>kJ3$&0?(>4s+ZaP(V{3Eo)q4Q#rib-pSMVP!} z`@UslV$i*XPS)GL6{<75^Lvf9R@&)(rcDWLz!uRcE!g3HcyIR#MZ>4p^r1174To(@ zzMK#viHLgXjd$7`+DA9~#y_<44qJMoWL~PXl?1#yVyKH-pi)0Ev6aX-fk+G;cJb?_ zazZftqcV?$f6`x1;xHKB7UUxv-v*U{CBIA$%XBlfc@ zl#b#+^+w;I2%>FQ_=a`G!mlo=Wv5cPK$@qux+Rm^r?q61ETxHO+3LM$b^Bmii1Y;s zJUnKqwIv|XJK;+%Ajtlf5}#be+ii2{ly;>~p~98_uu7&yhW^ZH1A#il+tktC>#`bz z2G4;Rnw0OrV6apfIP;|V@HH#tU0kf;c!s-^_leo2PG;?f2OU1}o8Tk=2{*e8DqShz zipWxwG}`xVL-NpJ4F^S4jk11Al28qi z>PrJlW5Af#T6~QJd~5!}hu`qUuf6$g4}X`;6&f3u&Jxj|@IL!d#LCb@NQ;Yhezx~v zScHA!@Csq(A_@)*8j*(8|A++5@N!5Og}m)ltJ?YG_pBXxM_^O~lZ5`H)VWqYcAZ24 z`>X2$I7ywvLf}fgr4u+lTEhlbA_7dsv8TYgq*{4|mP;pI+_Aj>e9`E?Hh$-gG1Bgx z8~LC$FrMH~;@$sRYq(nVCPLG(NRb?fH4u!z>pdH1SoKMV+-(x0qZ?y5&sfJ}c&97x9>JqFi05AcVc2i1kN8cvxMw^&ca zXvh%EDj?)%iv**Bky(z@%-*e9ybLnWdA>=xV5Ppuh{o&#Ba(N=0Tc+zj`l_IQ;rwc z9i(Z?1j{?y@ir-itiA8eZ7L@)kpUMZvkId*U=DJf_W@T0nvE*Eoan$zR;jz{HEhov}7jhnk^Zc7Jg&!Rjxjz@y*!_Af8&Eytt)C?#FtFXI34 zQu6&#!>@Rrq6y{Bq&3l(;i_PR4!8ko`7UHK(H+Ge@Uw>@U_T5HVRWp~H?j@_4eQL- zH!>o!Oy205>T=tkS3Hpw70AJ@%(jeQC3G^ok-pxbxq8YH^h(VQ%x=?^)GRk4*)f`f zAeBN?<2k&VNkK6=Gtp%_41Ak`N9Er(iGk*b*)7Q|qSMM`#-W>VP(Y&Yr4GkZ>v~BfN#^CFYO?Igu!Iw~L7)VDgaIUGR)?m5 zl_97}6m@q^$i)i36MMB%6*d?-P)e=0-3V+C8G*=c?oM0Ci!Yd{P}kSw)%$4%3`b1u*kHAX}Y2(d)Fp}<g zI2#~m2BsXG5$KndV}pR2+zu8LuPD&lsnBjv0T4xn#kYWeP~TpTcNbxDC~OJW#Mf%x z8f6hucvdX(%{=F5(&h|g8H-di5Mvp!NH+lo@Eyqt2@cThlo+eoKbk;@nDoR59nwf z&|s0CA6|{2{z=oMt=`kH$s<>!S)Wi1!nTA%5ev(5-P$IK-fJ3031{TwKE@^Kg>Tc) za21pLd)1aF4^u93(L#O+WhM7pomPW#kSM}H)=Webcazpq*mAV;sHNR7)ClUpAx)6h z)3uAra4s=7EyrYlxLa3!DDnN5%iuTdI7K;vtK?@FZ6JG(5Av)z1G@-j~2PRdjvd zB}vnjfb8pSEl`&3djTP3-z${8(56iarEOA@v}GqiQ52L#6a>9f#v(~iQIO#)&1_`4lf=O1 zgZy}`sme~o`l_PfIBTqC9VhXxCVAeNp`u0S;|KH?xkvk3i@Uj{7&3SKWs zLK^qrpPY-wcz0M3jEB;NbSQ$GfyM(in0Xfjh_}nlN6PU@g8np!24bW6opM?fQ39kx z8fVHR+8si=GA3Vy8A;}Zjx>V9t}AR%ftJsF2C}sB9eZa_F+;Xw@i?AzQPN?8p}5#b z&)_8P6M90K@G&i`rp!jeU?iX@W~ruSC* zETdO}1<~m^UeE=aKUqg34GW3vxFO9@LVY@{h;WQDq`cGQ&C0KYWFOR!#E_xG5x`}2 zW}y?0(uy$fBApJ#$|PYvilTPw3Mv-1YHc&p(XhCTLh(LJIV1_>tt8=%vJL!7| zSJD?#&_gwxjLkrqR1bn#K!3#sYM{Z+S?iCZr(t@HMIqXrq-Ol7Z^qOWbmqlqEH zE+Vogm5Nv)7ZM8*nkoksKyX-rL8yhktdZO!v1$jpeiAIee)HyA{D4&g;_{nG? z%xg;IA!7m{j2Jn1V8ED$2gZx3e>hzD4i-WG*9Qx!`dATxGAj~bI4Kqwqo$9_01=K? zFb%0HSjOKN9k3Cn+US6DHf44V)=!x#gF{uO)Za5?ykIA(a6a_ij)ayRM;RW%si%Pn zX2^Y0BF=o4t)`*b>zcMxuTq)2#CSVw)vAZtR>j=mCo^}@N_E~YC5suzDniH%!_oVs+29RzG!<4T`mnC1l zmgNj3mLV2XWbO^NkA0{z_omE&vVtSanTAVh8fxJfHX2p2Z7i|KT$>>+;{znsTERj{ zRjm-y?ja+P0y{C%cCrD1+QWPr`Bw4PO!(-`binsW##qsw8pc|+GD(c}Pq5Hk2B`X2 z`_fqh<_?e|4q%!_6E+xA;rbgAWtno3@gY*~LIxs#2vm{m<{JS@F?nr~3#C;FnvLKa zY5~Ftme+((UL;L1PbB5N-~uqE1+xa4snD)^NXD=S!pw(6L7sFSNCi20C!?g36HT8G zO@q{E9)dd2OEqSQb!eWaOjcnmX6z3{Fa!A$v1O7+Du$}Fs?j<~lxCaqESBMjFY+|B zTJpGuArvzq2~(GVP|*xrBRL6}_?y*BGem(GAQgLq`G+c!wHlaqBdCD|9wIiK-hkFJ0l2s<^nYIMdF~-1>DhU7BTlI+_aECTHKu!=3P$%Y;a)L0ys!EWl zJk=zXI{%|2$qy&ZqV+WG!=|08b{j2+8lmYg!Zyc57LUesB>~Y0;SPNkC<6)5o-in} zG_y&tO`1yv%5zClF32}~XfmzV4%{t~fGu)OBseyym61SSfUZ_9NDVxI1t0h@noymj zR%uW$b-*M9CoIT+Xb$-jOFT`q=0KVgHhYI58nGJEm8kbPvQwJOL1pH%yfcjh%Yh$m zbyU4EErVWx=FOzDg*QuzP$W*MO$g^D%TeVEA=QxRh%}UFL)KwXy)yHqTC?diIE1YjArJMZK%+fHg4tM=A{N>N z>>H##fK1y@hgU-p3)#|4ngOPW^{3q@NCcKZgpq+vj{Tu^g7^Y1>#YDYm15gQ)JD~k ztyynA%S;?M5(@+_{_K)JEC+(OAvjsz!yY~iOY=pAxa@>xWg-eC-*Cue9o9tDqL34+ zS24yv8hCWX>dB@FcBZtP&X#n6v4-2~0$Z^5k6f=w0nSB-K>{Q zpdc`Ts@WISu;dq`5D1+$8cSr|2@8Ua&0(k;C2cQbL8?fXC(a^Y&5FXnn1CP&f;1f2 zBZJJ*`{aA@=t3syX8{lt zh*wZjbQzO3DIBXICk0y%88JGd0!3pdSm0(S9QaMiAYRqwOaacYK*pJS!xR9d&Cq3+ z8ln`KUHY3Z<7`;DDyse?o$`qxtqi;{w3hqBjgw6b27Dj8PMY)-)lf6YD_2g#>E&Efa=8dLS5NVKg7nG9plmKa;ja zlq?jQa&^T>p`HL*G}3d#A(bz*Jspc6Q0*J^n1gTzFkE>f`l6hk?Te(75P9<}Z7IFOQ zIhg1xTEqKQZUXal$`I;%uxBY4ugr9W#u|_i-GE8-Lhlf>X~hPnNFXh`!i(K0hQ$|( zU6m?BVIMVcAhj^~Dm4R^4_Wnld#;{c%7VR(g=8NE!y$~rFqHzWgCc6QKg3)VS~mH? zU`K2mtkT=QXhPri1yztgagAyjv&B4byYuGL+ID}H%o*htHFM@VU}jIQL`lPF=z+Bh zJ#cE@wY}h8w0da{#7(sL7e-e-W6A*;f<1i0sNP^B6zW#qFy^_Xw{Il6-nJKU?7q;F zkkrr;LWB7^m;s^T0Ld}}a`Nm`k!?^02?4E)DIr48DyGD)DHP4Ee1@T^mq~*5n7o~zXH^~TSP=;VgAnNQ!Dc|?U#jq?22WzSE^4m5>YInix(rN zi@=Qsu=69=MDxy1IzSx<=-dMLMDw{o8Cdf)fHjR};Inf8Lge=wR59kqFJU(pMOycK z=|ppw?Dh5%yesi9%}wb`WM=lH1WX3P|_qhj<25ufhE4cBF)zF*HAgYy|lW7HI1bh@@NQiMcQv^w=3q z)Y>R7C5a?N8b4?$oC!a`hNu2pBXR17z>>B*LMYoQqs}vx6H5Vn8id5q)R`N*&5cXL zFxJwt6v{|L9%p`d7h=&BHZVL#of$Dmp@dF`1BwhW4EW**R*FV6gk@b|DMtfEpmfzM zkfj&;->AUP2{Ua45{_HZ9mw#EdH%TyL{X|LP)WR61uowGS1NEj5qB?GVBSUr5_3{2 zkVTU@DZWv6BKkN&uL{8BOdya+5zNjY32tVCrJ{B1wMc&h{~B55{4Sm z1RWORD^18dxHZy*o+Jqlq5_tc$YewHf+V3gLyF)?L}O9}Ok_4dasYoS-l#TIg}6d{{#kQAXODWZDnkRr%}w(2V~g9JgFyUdKcuva#vpvJ8>_JRB+G zS$~M9R)0tXgrYwrc^!c;$0ThX)ZQBXA+AH!=np00TB1zm$Q-qU@T5uPG1_BIN$CM{ z%}`Qm!lX}RNh$h7CA{EGis>J#!jo2!Gi$Yq)e!OGS(QFvrp&73YEi4%x7USY0M^Wa zxxm?cl{!niO_lbgU=Sg_BSt19Bkx2JX-|rG!-7cr4Y25A{%sSOj=YOT@eD^?5y~Xl zdY-N3(FZ!+OTrWLcJGFnvjzcsvc1PaNMy8W22(LlA>oBaMcAH!>R^|pk^<-%MaIOQ zhEIccT%vg%6HGl)sFA&xRFNLT=@VOk#t>}SPR9%q&OazH zkY15Rl_#foAXjFvUu6h{bSsfu2!~5yy+8Rv@3T1guo6-c@@^ha2YVR`r%t3B#_}w)lgl(D^x0B_dEIsTZNk;xv};BFzO563C$aK!y;Xl_)erfiQ#Fj!YwDhX@X> z7`I7P8LL(4t$3cMghW@e@Wj>wFUX59r7b7mbi~cDlv0DNQM2;5eVT%T zAJQt|mI}$gBAKN_N}a&_g=(E#kahpmnMhef#>Rr$sj)6XeI8S7nRSFR-YV;s(e;^* zNT3aJ%@JqMX4dVoO9_Cy7mf!80<60gXWMY4XZ3&2;U9G;OUdP^9Z z2BxdTvuJ}nJhA!+$)Dn5x(%YB9Tfr4l+eZ`Gi?h3cfz_Sc7njl4nFXgU|$!Akksp- z@>mYK2U_wFLQH}k> z0&vbOjFUmZ5bY&EP;Ov3oDLwM9slsbetKHXrGW(37zL|)nP4XXnHN@OxGPZ#zz9Q3 z6SuGt zM(YKbFS9SIP!7D5FKQT$OdV6ubmFd`2e3ISe6%CCSzpiDQwfyM`83JJBSi?n92@J8(p4pyX9)D!Eg z#NH7UW+RMXgHZjb@*vu_!%9vWQHD5_iW&BTwX>nr0Q&>-0)GOrG76^6PDX_Y5RHs^ zK?JBQkUyKhP%;|){i?cMRXK3#OKs)ADz{P&>|0~y5EUA^MLCF8ZdDFH>Qr>lJ__#l z7s`RQ2F0O%88w0;>Dpyj^MZW*g9Vh3dR!naOdyQ;$!dKRxSMxqzfe%B6h@1%DwtS} z9EqxcCp$};bSfAseTYcr)kH+JfvP$YMPO5*{4IQ<#I6G7Agie(4un00?66D6Uk+Cv zCmYIdSm}TbmO_6a$!t#+v78Eqyh_nEic_=5oB67ZrDSp_gwt@1gux&~MHHPw>tld` zz(Dp(vR)K7-|L_%tN~1! z|M+kO3>#HuLGrkPlS|E27&Dn74 z43G>G!trUOldP5qmf)(ROOp{L1O{;$`XCsBg|Ld1jb1_8N_{}Bp(`}KPvpQfnO+f6 z7uZk0Hk;|PK_0RYpg@gHt1US6I!u@@3G>kXX1UC*%Dlq= zoxFgMbR@MBOq?!>^AKa!FmD**R@8;xWE_T8KztUz1M3k#`;IMcD_Whv?`uC8h+!4V z$ubHfT_lYq0JDj9@Ufu}>`px&DE%fs*X$i}pxOa9l*51*b0XN2Iy~Oa89{6WCD9e? zFAR?V@G(JuH8)~!nt_+p+JOJ#NkMf`d#Fh?8aoau@Z(ws3s&PYVGxUE%0y-S*w0#5 zSF?5hX#BufrWryih&TSfF@&h&hHTTw$oq|3RR9}$v_^_+Ypq*!8WP~h9)+cMl%+?8 z%0A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⪚^7gPbNnuT--h};DLE5{I_3C9B^stGn_u{h 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 delta 38442 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 Dcn1F^ diff --git a/eth2near/eth2near-block-relay/eth-on-near-client.js b/eth2near/eth2near-block-relay/eth-on-near-client.js index ab6f72bac..516bbbd80 100644 --- a/eth2near/eth2near-block-relay/eth-on-near-client.js +++ b/eth2near/eth2near-block-relay/eth-on-near-client.js @@ -1,25 +1,69 @@ const BN = require('bn.js') -const blockFromRpc = require('ethereumjs-block/from-rpc') -const utils = require('ethereumjs-util') +const blockFromRpc = require('@ethereumjs/block/dist/from-rpc') +const Common = require('@ethereumjs/common') +const got = require('got'); const { Web3, BorshContract, hexToBuffer, - readerToHex + readerToHex, + sleep, } = require('rainbow-bridge-utils') const roots = require('./dag_merkle_roots.json') -function web3BlockToRlp (blockData) { - // difficulty is only used and make sense in PoW network - blockData.difficulty = parseInt(blockData.difficulty || '0', 10) - blockData.totalDifficulty = parseInt(blockData.totalDifficulty, 10) - blockData.uncleHash = blockData.sha3Uncles - blockData.coinbase = blockData.miner - blockData.transactionTrie = blockData.transactionsRoot - blockData.receiptTrie = blockData.receiptsRoot - blockData.bloom = blockData.logsBloom - const blockHeader = blockFromRpc(blockData) - return utils.rlp.encode(blockHeader.header.raw) +/// Get Ethereum block by number from RPC, and returns raw json object. +async function getEthBlock(number, RobustWeb3) { + let attempts = 10; + let blockData; + + while (attempts > 0) { + /// Need to call RPC directly, since function `blockFromRpc` works + /// when all fields returned by RPC are present. After EIP1559 was introduced + /// tools that abstract this calls are missing the field `baseFeePerGas` + blockData = await got.post(RobustWeb3.ethNodeUrl, { + json: { + "id": 0, + "jsonrpc": "2.0", + "method": "eth_getBlockByNumber", + "params": [ + "0x" + number.toString(16), + false + ] + }, + responseType: "json" + }); + + /// When the block to be queried is the last one produced, RPC can return null. + /// Retrying fix this problem. + if (blockData.body.result === null) { + attempts -= 1; + await sleep(800); + } else { + break; + } + } + return blockData.body.result; +} + +/// bridgeId matches nearNetworkId. It is one of two strings [testnet / mainnet] +function web3BlockToRlp(blockData, bridgeId) { + let chain; + if (bridgeId === "testnet") { + chain = "ropsten"; + } else { + chain = "mainnet"; + } + const common = new Common.default({ chain }); + + /// baseFeePerGas was introduced after london hard fork. + /// TODO: Use better way to detect current hard fork. + if (blockData.baseFeePerGas !== undefined) { + common.setHardfork("london") + common.setEIPs([1559]) + } + + const block = blockFromRpc.default(blockData, [], { common }); + return block.header.serialize(); } const borshSchema = { @@ -85,7 +129,7 @@ const borshSchema = { } class EthOnNearClientContract extends BorshContract { - constructor (account, contractId) { + constructor(account, contractId) { super(borshSchema, account, contractId, { viewMethods: [ { @@ -137,18 +181,17 @@ class EthOnNearClientContract extends BorshContract { // Call initialization methods on the contract. // If validateEthash is true will do ethash validation otherwise it won't. - async maybeInitialize (hashesGcThreshold, finalizedGcThreshold, numConfirmations, validateEthash, trustedSigner, robustWeb3) { + async maybeInitialize(hashesGcThreshold, finalizedGcThreshold, numConfirmations, validateEthash, trustedSigner, robustWeb3, bridgeId) { await this.accessKeyInit() let initialized = false try { initialized = await this.initialized() - } catch (e) {} + } catch (e) { } if (!initialized) { console.log('EthOnNearClient is not initialized, initializing...') const lastBlockNumber = await robustWeb3.getBlockNumber() - const blockRlp = web3BlockToRlp( - await robustWeb3.getBlock(lastBlockNumber) - ) + const blockData = await getEthBlock(lastBlockNumber, robustWeb3); + const blockRlp = web3BlockToRlp(blockData, bridgeId); await this.init( { validate_ethash: validateEthash, @@ -188,4 +231,5 @@ class EthOnNearClientContract extends BorshContract { exports.EthOnNearClientContract = EthOnNearClientContract exports.web3BlockToRlp = web3BlockToRlp +exports.getEthBlock = getEthBlock exports.borshSchema = borshSchema diff --git a/eth2near/eth2near-block-relay/index.js b/eth2near/eth2near-block-relay/index.js index 66819ec0c..3b4987998 100644 --- a/eth2near/eth2near-block-relay/index.js +++ b/eth2near/eth2near-block-relay/index.js @@ -10,7 +10,8 @@ const { const { web3BlockToRlp, EthOnNearClientContract, - borshSchema + borshSchema, + getEthBlock } = require('./eth-on-near-client') const { EthOnNearProverContract @@ -29,7 +30,7 @@ const { const BRIDGE_SRC_DIR = path.join(__dirname, '..', '..') const MAX_GAS_PER_BLOCK = '300000000000000' -function ethashproof (command, _callback) { +function ethashproof(command, _callback) { return new Promise((resolve) => exec(command, (error, stdout, _stderr) => { if (error) { @@ -40,11 +41,48 @@ function ethashproof (command, _callback) { ) } +// This function find the result in O(log delta) where delta is the difference between estimatedPosition and the result. +// In particular if estimatedPosition is the correct value it will make two calls to predicate, so it will behave in O(1) in this case. +async function binarySearchWithEstimate(limitLo, limitHi, estimatedPosition, predicate) { + let lo = limitLo; + let hi = limitHi; + let value = await predicate(estimatedPosition); + + if (value) { + hi = estimatedPosition; + let step = 1; + while (hi - step > lo && await predicate(hi - step)) { + step *= 2; + } + hi -= Math.floor(step / 2); + lo = Math.max(lo, hi - step); + } else { + lo = estimatedPosition; + let step = 1; + while (lo + step < hi && !await predicate(lo + step)) { + step *= 2; + } + lo += Math.floor(step / 2); + hi = Math.min(hi, lo + step); + } + + while (lo + 1 < hi) { + let mid = Math.floor((lo + hi) / 2); + if (await predicate(mid)) { + hi = mid; + } else { + lo = mid; + } + } + return hi; +} + class Eth2NearRelay { - initialize (ethClientContract, { + initialize(ethClientContract, { ethNodeUrl, totalSubmitBlock, gasPerTransaction, + nearNetworkId, metricsPort }) { this.gasPerTransaction = new BN(gasPerTransaction) @@ -58,13 +96,14 @@ class Eth2NearRelay { throw new Error(`total-submit-block must be ${limitSubmitBlock} or less. Currently it is: ${this.totalSubmitBlock}`) } + this.bridgeId = nearNetworkId this.ethClientContract = ethClientContract this.robustWeb3 = new RobustWeb3(ethNodeUrl) this.web3 = this.robustWeb3.web3 this.metricsPort = metricsPort } - async run () { + async run() { const robustWeb3 = this.robustWeb3 const httpPrometheus = new HttpPrometheus(this.metricsPort, 'near_bridge_eth2near_') @@ -72,6 +111,8 @@ class Eth2NearRelay { const chainBlockNumberGauge = httpPrometheus.gauge('chain_block_number', 'current chain block number') const errorsOnSubmitCounter = httpPrometheus.counter('errors_on_submit', 'number of errors while submitting header') + let previousBlockNumber = undefined; + while (true) { let clientBlockNumber let chainBlockNumber @@ -89,28 +130,42 @@ class Eth2NearRelay { continue } - // Backtrack if chain switched the fork. - while (true) { + let predicate = async (value) => { + let blockNumber = clientBlockNumber - value; + console.log('Checking block:', blockNumber); try { - const chainBlock = await robustWeb3.getBlock(clientBlockNumber) + const chainBlock = await getEthBlock(blockNumber, robustWeb3) + + /// Block is not ready + if (chainBlock === null) { + const seconds = 3; + console.log(`Block ${blockNumber} is not ready. Sleeping ${seconds} seconds.`); + await sleep(seconds * 1000); + return await predicate(value); + } + const chainBlockHash = chainBlock.hash const clientHashes = await this.ethClientContract.known_hashes( - clientBlockNumber + blockNumber ) if (clientHashes.find((x) => x === chainBlockHash)) { - break + return true; } else { - console.log( - `Block ${chainBlockHash} height: ${clientBlockNumber} is not known to the client. Backtracking.` - ) - clientBlockNumber -= 1 - clientBlockNumberGauge.set(clientBlockNumber) + return false; } } catch (e) { console.error(e) - continue + return await predicate(value); } - } + }; + + let estimatedValued = (previousBlockNumber === undefined) ? 0 : clientBlockNumber - (previousBlockNumber + this.totalSubmitBlock); + + /// In case there exist a fork, find how many steps should go backward (delta) to the first block + /// in the client that is also in the main chain. If the answer is 0, then the current head is valid + let delta = await binarySearchWithEstimate(0, clientBlockNumber, estimatedValued, predicate); + clientBlockNumber -= delta; + previousBlockNumber = clientBlockNumber; if (clientBlockNumber < chainBlockNumber) { try { @@ -142,8 +197,7 @@ class Eth2NearRelay { const task = this.ethClientContract.account.signAndSendTransaction(this.ethClientContract.contractId, actions) console.log( - `Submit txn to add block ${ - clientBlockNumber + 1 + `Submit txn to add block ${clientBlockNumber + 1 } to block ${endBlock}` ) @@ -162,9 +216,9 @@ class Eth2NearRelay { } } - async getParseBlock (blockNumber) { + async getParseBlock(blockNumber) { try { - const block = await this.robustWeb3.getBlock(blockNumber) + const block = await getEthBlock(blockNumber, this.robustWeb3) const blockRlp = this.web3.utils.bytesToHex( web3BlockToRlp(block) ) @@ -177,7 +231,7 @@ class Eth2NearRelay { } } - submitBlock (block, blockNumber) { + submitBlock(block, blockNumber) { const h512s = block.elements .filter((_, index) => index % 2 === 0) .map((element, index) => { diff --git a/eth2near/eth2near-block-relay/package.json b/eth2near/eth2near-block-relay/package.json index 2a421520f..fae813f97 100644 --- a/eth2near/eth2near-block-relay/package.json +++ b/eth2near/eth2near-block-relay/package.json @@ -20,10 +20,11 @@ "bn.js": "^5.1.3", "eth-object": "near/eth-object#54e03b8aac8208cf724e206d49ffb8bdd30451d7", "eth-util-lite": "near/eth-util-lite#master", - "ethereumjs-block": "^2.2.2", + "@ethereumjs/block": "^3.4.0", "merkle-patricia-tree": "^2.1.2", "prom-client": "^12.0.0", "promisfy": "^1.2.0", - "rainbow-bridge-utils": "1.0.0" + "rainbow-bridge-utils": "1.0.0", + "got": "^11.8.2" } -} \ No newline at end of file +} diff --git a/eth2near/ethashproof/.gitignore b/eth2near/ethashproof/.gitignore index cd09ff71e..65f9f1d44 100644 --- a/eth2near/ethashproof/.gitignore +++ b/eth2near/ethashproof/.gitignore @@ -12,3 +12,6 @@ *.out ethashproof + +# Keep cache tool in the repository +!cmd/cache/main.go diff --git a/eth2near/ethashproof/build.sh b/eth2near/ethashproof/build.sh index 80998f59e..cc46ceed4 100755 --- a/eth2near/ethashproof/build.sh +++ b/eth2near/ethashproof/build.sh @@ -1,3 +1,4 @@ +#!/bin/bash cd cmd/epoch go build -v cd ../relayer diff --git a/eth2near/ethashproof/cmd/cache/main.go b/eth2near/ethashproof/cmd/cache/main.go new file mode 100644 index 000000000..c998b4143 --- /dev/null +++ b/eth2near/ethashproof/cmd/cache/main.go @@ -0,0 +1,34 @@ +package main + +import ( + "fmt" + "os" + "strconv" + + "github.com/tranvictor/ethashproof" +) + +func main() { + if len(os.Args) < 2 { + fmt.Printf("Epoch number param is missing. Please run ./cache instead.\n") + return + } + if len(os.Args) > 2 { + fmt.Printf("Please pass only 1 param as a epoch number. Please run ./cache instead.\n") + return + } + number, err := strconv.Atoi(os.Args[1]) + if err != nil { + fmt.Printf("Please pass a number as epoch number. Please run ./cache instead.\n") + fmt.Printf("Error: %s\n", err) + return + } + + root, err := ethashproof.CalculateDatasetMerkleRoot(uint64(number), true) + if err != nil { + fmt.Printf("Calculating dataset merkle root failed: %s\n", err) + return + } + + fmt.Printf("Root: %s\n", root.Hex()) +} diff --git a/eth2near/ethashproof/cmd/relayer/main.go b/eth2near/ethashproof/cmd/relayer/main.go index 273399248..4fc48faec 100644 --- a/eth2near/ethashproof/cmd/relayer/main.go +++ b/eth2near/ethashproof/cmd/relayer/main.go @@ -61,6 +61,8 @@ func main() { } } + fmt.Printf("SealHash: %s\n", ethash.Instance.SealHash(header)) + indices := ethash.Instance.GetVerificationIndices( blockno, ethash.Instance.SealHash(header), diff --git a/eth2near/ethashproof/ethash/consensus.go b/eth2near/ethashproof/ethash/consensus.go index 62e3f8fca..176de375d 100644 --- a/eth2near/ethashproof/ethash/consensus.go +++ b/eth2near/ethashproof/ethash/consensus.go @@ -24,6 +24,8 @@ import ( "runtime" "time" + "github.com/ethereum/go-ethereum/trie" + mapset "github.com/deckarep/golang-set" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/math" @@ -243,19 +245,19 @@ func (ethash *Ethash) verifyHeader(chain consensus.ChainReader, header, parent * } // Verify the header's timestamp if uncle { - if header.Time.Cmp(math.MaxBig256) > 0 { + if header.Time == math.MaxUint64 { return errLargeBlockTime } } else { - if header.Time.Cmp(big.NewInt(time.Now().Add(allowedFutureBlockTime).Unix())) > 0 { + if header.Time > uint64(time.Now().Add(allowedFutureBlockTime).Unix()) { return consensus.ErrFutureBlock } } - if header.Time.Cmp(parent.Time) <= 0 { + if header.Time <= parent.Time { return errZeroBlockTime } // Verify the block's difficulty based in it's timestamp and parent's difficulty - expected := ethash.CalcDifficulty(chain, header.Time.Uint64(), parent) + expected := ethash.CalcDifficulty(chain, header.Time, parent) if expected.Cmp(header.Difficulty) != 0 { return fmt.Errorf("invalid difficulty: have %v, want %v", header.Difficulty, expected) @@ -349,7 +351,7 @@ func makeDifficultyCalculator(bombDelay *big.Int) func(time uint64, parent *type // ) + 2^(periodCount - 2) bigTime := new(big.Int).SetUint64(time) - bigParentTime := new(big.Int).Set(parent.Time) + bigParentTime := new(big.Int).SetUint64(parent.Time) // holds intermediate values to make the algo easier to read & audit x := new(big.Int) @@ -408,7 +410,7 @@ func calcDifficultyHomestead(time uint64, parent *types.Header) *big.Int { // ) + 2^(periodCount - 2) bigTime := new(big.Int).SetUint64(time) - bigParentTime := new(big.Int).Set(parent.Time) + bigParentTime := new(big.Int).SetUint64(parent.Time) // holds intermediate values to make the algo easier to read & audit x := new(big.Int) @@ -456,7 +458,7 @@ func calcDifficultyFrontier(time uint64, parent *types.Header) *big.Int { bigParentTime := new(big.Int) bigTime.SetUint64(time) - bigParentTime.Set(parent.Time) + bigParentTime.SetUint64(parent.Time) if bigTime.Sub(bigTime, bigParentTime).Cmp(params.DurationLimit) < 0 { diff.Add(parent.Difficulty, adjust) @@ -558,7 +560,7 @@ func (ethash *Ethash) Prepare(chain consensus.ChainReader, header *types.Header) if parent == nil { return consensus.ErrUnknownAncestor } - header.Difficulty = ethash.CalcDifficulty(chain, header.Time.Uint64(), parent) + header.Difficulty = ethash.CalcDifficulty(chain, header.Time, parent) return nil } @@ -570,14 +572,14 @@ func (ethash *Ethash) Finalize(chain consensus.ChainReader, header *types.Header header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number)) // Header seems complete, assemble into a block and return - return types.NewBlock(header, txs, uncles, receipts), nil + return types.NewBlock(header, txs, uncles, receipts, trie.NewStackTrie(nil)), nil } // SealHash returns the hash of a block prior to it being sealed. func (ethash *Ethash) SealHash(header *types.Header) (hash common.Hash) { hasher := sha3.NewLegacyKeccak256() - rlp.Encode(hasher, []interface{}{ + enc := []interface{}{ header.ParentHash, header.UncleHash, header.Coinbase, @@ -591,7 +593,13 @@ func (ethash *Ethash) SealHash(header *types.Header) (hash common.Hash) { header.GasUsed, header.Time, header.Extra, - }) + } + + if header.BaseFee != nil { + enc = append(enc, header.BaseFee) + } + + rlp.Encode(hasher, enc) hasher.Sum(hash[:0]) return hash } diff --git a/eth2near/ethashproof/ethash/ethashproof_ext.go b/eth2near/ethashproof/ethash/ethashproof_ext.go index a713e9b51..21737a7e7 100644 --- a/eth2near/ethashproof/ethash/ethashproof_ext.go +++ b/eth2near/ethashproof/ethash/ethashproof_ext.go @@ -60,7 +60,7 @@ func hashimotoLightIndices(size uint64, cache []uint32, hash []byte, nonce uint6 func hashimotoIndices(hash []byte, nonce uint64, size uint64, lookup func(index uint32) []uint32) []uint32 { result := []uint32{} - // Calculate the number of thoretical rows (we use one buffer nonetheless) + // Calculate the number of theoretical rows (we use one buffer nonetheless) rows := uint32(size / mixBytes) // Combine header+nonce into a 64 byte seed diff --git a/eth2near/ethashproof/go.mod b/eth2near/ethashproof/go.mod index 8fca4bc39..3c9f1b398 100644 --- a/eth2near/ethashproof/go.mod +++ b/eth2near/ethashproof/go.mod @@ -3,13 +3,9 @@ module github.com/tranvictor/ethashproof go 1.14 require ( - github.com/aristanetworks/goarista v0.0.0-20190204200901-2166578f3448 // indirect github.com/deckarep/golang-set v1.7.1 github.com/edsrzf/mmap-go v1.0.0 - github.com/ethereum/go-ethereum v1.8.22 - github.com/hashicorp/golang-lru v0.5.0 - github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66 // indirect - github.com/tranvictor/ethutils v0.0.0-20190206090902-f90588fe868e - golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613 - golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 // indirect + github.com/ethereum/go-ethereum v1.10.4 + github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d + golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 ) diff --git a/eth2near/ethashproof/go.sum b/eth2near/ethashproof/go.sum index 76e44ee30..5c53d2c7a 100644 --- a/eth2near/ethashproof/go.sum +++ b/eth2near/ethashproof/go.sum @@ -1,91 +1,555 @@ -github.com/allegro/bigcache v1.1.0 h1:MLuIKTjdxDc+qsG2rhjsYjsHQC5LUGjIWzutg7M+W68= -github.com/allegro/bigcache v1.1.0/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/aristanetworks/goarista v0.0.0-20181109020153-5faa74ffbed7/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= -github.com/aristanetworks/goarista v0.0.0-20190204200901-2166578f3448 h1:c7dHl/Dp2sznWCZm0FCiQEJEoxEbTAZV7Ccdojs7Bwo= -github.com/aristanetworks/goarista v0.0.0-20190204200901-2166578f3448/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= -github.com/btcsuite/btcd v0.0.0-20181123190223-3dcf298fed2d h1:0MPfO/AYCZG9c3uwhAEAidcUAg7W6/e7ZJDr16U2qcM= -github.com/btcsuite/btcd v0.0.0-20181123190223-3dcf298fed2d/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= -github.com/cespare/cp v1.0.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= +github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= +github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= +github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8= +github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= +github.com/aws/aws-sdk-go-v2 v1.2.0/go.mod h1:zEQs02YRBw1DjK0PoJv3ygDYOFTre1ejlJWl8FwAuQo= +github.com/aws/aws-sdk-go-v2/config v1.1.1/go.mod h1:0XsVy9lBI/BCXm+2Tuvt39YmdHwS5unDQmxZOYe8F5Y= +github.com/aws/aws-sdk-go-v2/credentials v1.1.1/go.mod h1:mM2iIjwl7LULWtS6JCACyInboHirisUUdkBPoTHMOUo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.2/go.mod h1:3hGg3PpiEjHnrkrlasTfxFqUsZ2GCk/fMUn4CbKgSkM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.2/go.mod h1:45MfaXZ0cNbeuT0KQ1XJylq8A6+OpVV2E5kvY/Kq+u8= +github.com/aws/aws-sdk-go-v2/service/route53 v1.1.1/go.mod h1:rLiOUrPLW/Er5kRcQ7NkwbjlijluLsrIbu/iyl35RO4= +github.com/aws/aws-sdk-go-v2/service/sso v1.1.1/go.mod h1:SuZJxklHxLAXgLTc1iFXbEWkXs7QRTQpCLGaKIprQW0= +github.com/aws/aws-sdk-go-v2/service/sts v1.1.1/go.mod h1:Wi0EBZwiz/K44YliU0EKxqTCJGUfYTWXrrBwkq736bM= +github.com/aws/smithy-go v1.1.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= +github.com/btcsuite/btcd v0.20.1-beta h1:Ik4hyJqN8Jfyv3S4AGBOmyouMsYE3EdYODkMbQjwPGw= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= +github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= +github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/cloudflare-go v0.14.0/go.mod h1:EnwdgGMaFOruiPZRFSgn+TsQ3hQ7C/YWzIGLeu5c304= +github.com/consensys/bavard v0.1.8-0.20210406032232-f3452dc9b572/go.mod h1:Bpd0/3mZuaj6Sj+PqrmIquiOKy397AKGThQPaGzNXAQ= +github.com/consensys/gnark-crypto v0.4.1-0.20210426202927-39ac3d4b3f1f/go.mod h1:815PAHg3wvysy0SyIqanF8gZ0Y1wjk/hrDHD/iT88+Q= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= +github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set v1.7.1 h1:SCQV0S6gTtp6itiFrTqI+pfmJ4LN85S1YzhDf9rTHJQ= github.com/deckarep/golang-set v1.7.1/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= -github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= +github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= -github.com/ethereum/go-ethereum v1.8.19/go.mod h1:PwpWDrCLZrV+tfrhqqF6kPknbISMHaJv9Ln3kPCZLwY= -github.com/ethereum/go-ethereum v1.8.22 h1:y8RPBpBOF0/Gm8tV4Ut0WMa6RvY0e4XFIT6zASAOT0I= -github.com/ethereum/go-ethereum v1.8.22/go.mod h1:PwpWDrCLZrV+tfrhqqF6kPknbISMHaJv9Ln3kPCZLwY= -github.com/fjl/memsize v0.0.0-20180929194037-2a09253e352a/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ethereum/go-ethereum v1.10.4 h1:JPZPL2MHbegfFStcaOrrggMVIcf57OQHQ0J3UhjQ+xQ= +github.com/ethereum/go-ethereum v1.10.4/go.mod h1:nEE0TP5MtxGzOMd7egIrbPJMQBnhVU3ELNxhBglIzhg= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.5/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/graph-gophers/graphql-go v0.0.0-20201113091052-beb923fada29/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= +github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= +github.com/holiman/uint256 v1.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM= +github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= +github.com/huin/goupnp v1.0.1-0.20210310174557-0ca763054c88/go.mod h1:nNs7wvRfN1eKaMknBydLNQU6146XQim8t4h+q90biWo= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= -github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/karalabe/hid v0.0.0-20180420081245-2b4488a37358/go.mod h1:YvbcH+3Wo6XPs9nkgTY3u19KXLauXW+J5nB7hEHuX0A= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/influxdb v1.8.3/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= +github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= +github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= +github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= +github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= +github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= +github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= -github.com/rs/cors v1.6.0 h1:G9tHG9lebljV9mfp9SNPDL36nCDxmo3zTlAf1YgvzmI= -github.com/rs/cors v1.6.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= +github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/syndtr/goleveldb v0.0.0-20181128100959-b001fa50d6b2/go.mod h1:Z4AUp2Km+PwemOoO/VB5AOx9XSsIItzFjoJlOSiYmn0= -github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66 h1:AwmkkZT+TucFotNCL+aNJ/0KCMsRtlXN9fs8uoOMSRk= -github.com/syndtr/goleveldb v0.0.0-20190203031304-2f17a3356c66/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= -github.com/tranvictor/ethutils v0.0.0-20190206090902-f90588fe868e h1:DYFIocnXWo4pCd4Yk+5VWYnaKaip1A4S8tp/RsFM9u8= -github.com/tranvictor/ethutils v0.0.0-20190206090902-f90588fe868e/go.mod h1:MQHJOzW5v3sRULIgfNSEtPz2HoIhz44FM4JZN5B9R5c= -golang.org/x/crypto v0.0.0-20181127143415-eb0de9b17e85/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613 h1:MQ/ZZiDsUapFFiMS+vzwXkCTeEKaum+Do5rINYJDmxc= -golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954 h1:xQdMZ1WLrgkkvOZ/LDQxjVxMLdby7osSh4ZEVa5sIjs= +github.com/syndtr/goleveldb v1.0.1-0.20210305035536-64b5b1c73954/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 h1:It14KIkyBFYkHkwZ7k45minvA9aorojkyjGk9KJ5B/w= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3 h1:ulvT7fqt0yHWzpJwI57MezWnYDVpCAYBVuYst/L+fAY= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110 h1:qWPm9rbaAMKs8Bq/9LRpbMqxWRVUAQwMI9fVrssnTfw= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35 h1:YAFjXN64LMvktoUZH9zgY4lGc/msGN7HQfoSuKCgaDU= -golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988 h1:EjgCl+fVlIaPJSori0ikSz3uV0DOHKWOJFpv1sAAhBM= +golang.org/x/sys v0.0.0-20210420205809-ac73e9fd8988/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/utils/package.json b/utils/package.json index e4b44e90b..2cd6eb298 100644 --- a/utils/package.json +++ b/utils/package.json @@ -25,7 +25,7 @@ "eth-object": "near/eth-object#54e03b8aac8208cf724e206d49ffb8bdd30451d7", "eth-util-lite": "near/eth-util-lite#master", "lodash": "^4.17.20", - "near-api-js": "^0.26.0", + "near-api-js": "=0.26.0", "web3": "=1.2.6" } -} \ No newline at end of file +} diff --git a/utils/robust.js b/utils/robust.js index 123b91acf..46edfbefb 100644 --- a/utils/robust.js +++ b/utils/robust.js @@ -3,6 +3,7 @@ const Web3 = require('web3') const _ = require('lodash') const nearAPI = require('near-api-js') +const got = require('got') const RETRY = 10 const DELAY = 500 @@ -24,12 +25,12 @@ const backoff = (retries, fn, delay = DELAY, wait = BACKOFF) => const SLOW_TX_ERROR_MSG = 'transaction not executed within 5 minutes' class RobustWeb3 { - constructor (ethNodeUrl) { + constructor(ethNodeUrl) { this.ethNodeUrl = ethNodeUrl this.web3 = new Web3(ethNodeUrl) } - async getBlockNumber () { + async getBlockNumber() { return await backoff(RETRY, async () => { try { return await this.web3.eth.getBlockNumber() @@ -42,7 +43,7 @@ class RobustWeb3 { }) } - async getBlock (b) { + async getBlock(b) { return await backoff(RETRY, async () => { try { const block = await this.web3.eth.getBlock(b) @@ -61,7 +62,7 @@ class RobustWeb3 { }) } - async callContract (contract, method, args, options) { + async callContract(contract, method, args, options) { let gasPrice = await this.web3.eth.getGasPrice() let nonce = await this.web3.eth.getTransactionCount(options.from, 'pending') while (gasPrice < 10000 * 1e9) { @@ -149,7 +150,7 @@ class RobustWeb3 { throw new Error('Cannot finish txn within 1e13 gas') } - async getTransactionReceipt (t) { + async getTransactionReceipt(t) { return await backoff(RETRY, async () => { try { return await this.web3.eth.getTransactionReceipt(t) @@ -162,7 +163,7 @@ class RobustWeb3 { }) } - destroy () { + destroy() { if (this.web3.currentProvider.connection && this.web3.currentProvider.connection.close) { // Only WebSocket provider has close, HTTPS don't this.web3.currentProvider.connection.close() @@ -170,7 +171,7 @@ class RobustWeb3 { } } -function normalizeEthKey (key) { +function normalizeEthKey(key) { let result = key.toLowerCase() if (!result.startsWith('0x')) { result = '0x' + result @@ -193,7 +194,7 @@ const promiseWithTimeout = (timeoutMs, promise, failureMessage) => { }) } -async function nearJsonContractFunctionCall ( +async function nearJsonContractFunctionCall( contractId, sender, method, @@ -240,17 +241,17 @@ const signAndSendTransaction = async ( } else { const status = await account.connection.provider.status() let signedTx - ;[txHash, signedTx] = await nearAPI.transactions.signTransaction( - receiverId, - ++accessKey.nonce, - actions, - nearAPI.utils.serialize.base_decode( - status.sync_info.latest_block_hash - ), - account.connection.signer, - account.accountId, - account.connection.networkId - ) + ;[txHash, signedTx] = await nearAPI.transactions.signTransaction( + receiverId, + ++accessKey.nonce, + actions, + nearAPI.utils.serialize.base_decode( + status.sync_info.latest_block_hash + ), + account.connection.signer, + account.accountId, + account.connection.networkId + ) const bytes = signedTx.encode() sendTxnAsync = async () => { await account.connection.provider.sendJsonRpc('broadcast_tx_async', [ diff --git a/yarn.lock b/yarn.lock index 4d28187a4..a5d2d7bb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,23 +3,23 @@ "@babel/code-frame@^7.0.0": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: - "@babel/highlight" "^7.12.13" + "@babel/highlight" "^7.14.5" -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" + integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== -"@babel/highlight@^7.12.13": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1" - integrity sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg== +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== dependencies: - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-validator-identifier" "^7.14.5" chalk "^2.0.0" js-tokens "^4.0.0" @@ -39,6 +39,32 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethereumjs/block@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/block/-/block-3.4.0.tgz#4747b0c06220ee10cbdfe1cbde8cbb0677b1b074" + integrity sha512-umKAoTX32yXzErpIksPHodFc/5y8bmZMnOl6hWy5Vd8xId4+HKFUOyEiN16Y97zMwFRysRpcrR6wBejfqc6Bmg== + dependencies: + "@ethereumjs/common" "^2.4.0" + "@ethereumjs/tx" "^3.3.0" + ethereumjs-util "^7.1.0" + merkle-patricia-tree "^4.2.0" + +"@ethereumjs/common@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.4.0.tgz#2d67f6e6ba22246c5c89104e6b9a119fb3039766" + integrity sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.0" + +"@ethereumjs/tx@^3.3.0": + version "3.3.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.0.tgz#14ed1b7fa0f28e1cd61e3ecbdab824205f6a4378" + integrity sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA== + dependencies: + "@ethereumjs/common" "^2.4.0" + ethereumjs-util "^7.1.0" + "@ethersproject/abi@5.0.7": version "5.0.7" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" @@ -54,164 +80,166 @@ "@ethersproject/properties" "^5.0.3" "@ethersproject/strings" "^5.0.4" -"@ethersproject/abstract-provider@^5.0.8": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.10.tgz#a533aed39a5f27312745c8c4c40fa25fc884831c" - integrity sha512-OSReY5iz94iIaPlRvLiJP8YVIvQLx4aUvMMnHWSaA/vTU8QHZmgNlt4OBdYV1+aFY8Xl+VRYiWBHq72ZDKXXCQ== - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/networks" "^5.0.7" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/transactions" "^5.0.9" - "@ethersproject/web" "^5.0.12" - -"@ethersproject/abstract-signer@^5.0.10": - version "5.0.14" - resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.14.tgz#30ef912b0f86599d90fdffc65c110452e7b55cf1" - integrity sha512-JztBwVO7o5OHLh2vyjordlS4/1EjRyaECtc8vPdXTF1i4dXN+J0coeRoPN6ZFbBvi/YbaB6br2fvqhst1VQD/g== - dependencies: - "@ethersproject/abstract-provider" "^5.0.8" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - -"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.9": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.11.tgz#12022e8c590c33939beb5ab18b401ecf585eac59" - integrity sha512-Et4GBdD8/tsBGjCEOKee9upN29qjL5kbRcmJifb4Penmiuh9GARXL2/xpXvEp5EW+EIW/rfCHFJrkYBgoQFQBw== - dependencies: - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/rlp" "^5.0.7" - -"@ethersproject/base64@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.9.tgz#bb1f35d3dba92082a574d5e2418f9202a0a1a7e6" - integrity sha512-37RBz5LEZ9SlTNGiWCYFttnIN9J7qVs9Xo2EbqGqDH5LfW9EIji66S+YDMpXVo1zWDax1FkEldAoatxHK2gfgA== - dependencies: - "@ethersproject/bytes" "^5.0.9" - -"@ethersproject/bignumber@^5.0.13", "@ethersproject/bignumber@^5.0.7": - version "5.0.15" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.15.tgz#b089b3f1e0381338d764ac1c10512f0c93b184ed" - integrity sha512-MTADqnyacvdRwtKh7o9ujwNDSM1SDJjYDMYAzjIgjoi9rh6TY4suMbhCa3i2vh3SUXiXSICyTI8ui+NPdrZ9Lw== - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - bn.js "^4.4.0" +"@ethersproject/abstract-provider@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.3.0.tgz#f4c0ae4a4cef9f204d7781de805fd44b72756c81" + integrity sha512-1+MLhGP1GwxBDBNwMWVmhCsvKwh4gK7oIfOrmlmePNeskg1NhIrYssraJBieaFNHUYfKEd/1DjiVZMw8Qu5Cxw== + dependencies: + "@ethersproject/bignumber" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/networks" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + "@ethersproject/transactions" "^5.3.0" + "@ethersproject/web" "^5.3.0" + +"@ethersproject/abstract-signer@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.3.0.tgz#05172b653e15b535ed5854ef5f6a72f4b441052d" + integrity sha512-w8IFwOYqiPrtvosPuArZ3+QPR2nmdVTRrVY8uJYL3NNfMmQfTy3V3l2wbzX47UUlNbPJY+gKvzJAyvK1onZxJg== + dependencies: + "@ethersproject/abstract-provider" "^5.3.0" + "@ethersproject/bignumber" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + +"@ethersproject/address@^5.0.4", "@ethersproject/address@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.3.0.tgz#e53b69eacebf332e8175de814c5e6507d6932518" + integrity sha512-29TgjzEBK+gUEUAOfWCG7s9IxLNLCqvr+oDSk6L9TXD0VLvZJKhJV479tKQqheVA81OeGxfpdxYtUVH8hqlCvA== + dependencies: + "@ethersproject/bignumber" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/keccak256" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/rlp" "^5.3.0" + +"@ethersproject/base64@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.3.0.tgz#b831fb35418b42ad24d943c557259062b8640824" + integrity sha512-JIqgtOmgKcbc2sjGWTXyXktqUhvFUDte8fPVsAaOrcPiJf6YotNF+nsrOYGC9pbHBEGSuSBp3QR0varkO8JHEw== + dependencies: + "@ethersproject/bytes" "^5.3.0" + +"@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.3.0.tgz#74ab2ec9c3bda4e344920565720a6ee9c794e9db" + integrity sha512-5xguJ+Q1/zRMgHgDCaqAexx/8DwDVLRemw2i6uR8KyGjwGdXI8f32QZZ1cKGucBN6ekJvpUpHy6XAuQnTv0mPA== + dependencies: + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + bn.js "^4.11.9" -"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.11.tgz#21118e75b1d00db068984c15530e316021101276" - integrity sha512-D51plLYY5qF05AsoVQwIZVLqlBkaTPVHVP/1WmmBIWyHB0cRW0C9kh0kx5Exo51rB63Hk8PfHxc7SmpoaQFEyg== +"@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.3.0.tgz#473e0da7f831d535b2002be05e6f4ca3729a1bc9" + integrity sha512-rqLJjdVqCcn7glPer7Fxh87PRqlnRScVAoxcIP3PmOUNApMWJ6yRdOFfo2KvPAdO7Le3yEI1o0YW+Yvr7XCYvw== dependencies: - "@ethersproject/logger" "^5.0.8" + "@ethersproject/logger" "^5.3.0" -"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.0.8": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.10.tgz#eb0c604fbc44c53ba9641eed31a1d0c9e1ebcadc" - integrity sha512-OSo8jxkHLDXieCy8bgOFR7lMfgPxEzKvSDdP+WAWHCDM8+orwch0B6wzkTmiQFgryAtIctrBt5glAdJikZ3hGw== +"@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.3.0.tgz#a5d6d86c0eec2c64c3024479609493b9afb3fc77" + integrity sha512-4y1feNOwEpgjAfiCFWOHznvv6qUF/H6uI0UKp8xdhftb+H+FbKflXg1pOgH5qs4Sr7EYBL+zPyPb+YD5g1aEyw== dependencies: - "@ethersproject/bignumber" "^5.0.13" + "@ethersproject/bignumber" "^5.3.0" "@ethersproject/hash@^5.0.4": - version "5.0.12" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.12.tgz#1074599f7509e2ca2bb7a3d4f4e39ab3a796da42" - integrity sha512-kn4QN+fhNFbUgX3XZTZUaQixi0oyfIEY+hfW+KtkHu+rq7dV76oAIvaLEEynu1/4npOL38E4X4YI42gGZk+C0Q== - dependencies: - "@ethersproject/abstract-signer" "^5.0.10" - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" - -"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.9.tgz#ca0d86e4af56c13b1ef25e533bde3e96d28f647d" - integrity sha512-zhdUTj6RGtCJSgU+bDrWF6cGbvW453LoIC1DSNWrTlXzC7WuH4a+EiPrgc7/kNoRxerKuA/cxYlI8GwNtVtDlw== - dependencies: - "@ethersproject/bytes" "^5.0.9" + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.3.0.tgz#f65e3bf3db3282df4da676db6cfa049535dd3643" + integrity sha512-gAFZSjUPQ32CIfoKSMtMEQ+IO0kQxqhwz9fCIFt2DtAq2u4pWt8mL9Z5P0r6KkLcQU8LE9FmuPPyd+JvBzmr1w== + dependencies: + "@ethersproject/abstract-signer" "^5.3.0" + "@ethersproject/address" "^5.3.0" + "@ethersproject/bignumber" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/keccak256" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + "@ethersproject/strings" "^5.3.0" + +"@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.3.0.tgz#fb5cd36bdfd6fa02e2ea84964078a9fc6bd731be" + integrity sha512-Gv2YqgIUmRbYVNIibafT0qGaeGYLIA/EdWHJ7JcVxVSs2vyxafGxOJ5VpSBHWeOIsE6OOaCelYowhuuTicgdFQ== + dependencies: + "@ethersproject/bytes" "^5.3.0" js-sha3 "0.5.7" -"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.0.8": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.10.tgz#fd884688b3143253e0356ef92d5f22d109d2e026" - integrity sha512-0y2T2NqykDrbPM3Zw9RSbPkDOxwChAL8detXaom76CfYoGxsOnRP/zTX8OUAV+x9LdwzgbWvWmeXrc0M7SuDZw== +"@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.3.0.tgz#7a69fa1d4ca0d4b7138da1627eb152f763d84dd0" + integrity sha512-8bwJ2gxJGkZZnpQSq5uSiZSJjyVTWmlGft4oH8vxHdvO1Asy4TwVepAhPgxIQIMxXZFUNMych1YjIV4oQ4I7dA== -"@ethersproject/networks@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.9.tgz#ec5da11e4d4bfd69bec4eaebc9ace33eb9569279" - integrity sha512-L8+VCQwArBLGkxZb/5Ns/OH/OxP38AcaveXIxhUTq+VWpXYjrObG3E7RDQIKkUx1S1IcQl/UWTz5w4DK0UitJg== +"@ethersproject/networks@^5.3.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.3.1.tgz#78fe08324cee289ce239acf8c746121934b2ef61" + integrity sha512-6uQKHkYChlsfeiZhQ8IHIqGE/sQsf25o9ZxAYpMxi15dLPzz3IxOEF5KiSD32aHwsjXVBKBSlo+teAXLlYJybw== dependencies: - "@ethersproject/logger" "^5.0.8" + "@ethersproject/logger" "^5.3.0" -"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.9.tgz#d7aae634680760136ea522e25c3ef043ec15b5c2" - integrity sha512-ZCjzbHYTw+rF1Pn8FDCEmx3gQttwIHcm/6Xee8g/M3Ga3SfW4tccNMbs5zqnBH0E4RoOPaeNgyg1O68TaF0tlg== +"@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.3.0.tgz#feef4c4babeb7c10a6b3449575016f4ad2c092b2" + integrity sha512-PaHxJyM5/bfusk6vr3yP//JMnm4UEojpzuWGTmtL5X4uNhNnFNvlYilZLyDr4I9cTkIbipCMsAuIcXWsmdRnEw== dependencies: - "@ethersproject/logger" "^5.0.8" + "@ethersproject/logger" "^5.3.0" -"@ethersproject/rlp@^5.0.7": - version "5.0.9" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.9.tgz#da205bf8a34d3c3409eb73ddd237130a4b376aff" - integrity sha512-ns1U7ZMVeruUW6JXc4om+1w3w4ynHN/0fpwmeNTsAjwGKoF8SAUgue6ylKpHKWSti2idx7jDxbn8hNNFHk67CA== +"@ethersproject/rlp@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.3.0.tgz#7cb93a7b5dfa69163894153c9d4b0d936f333188" + integrity sha512-oI0joYpsRanl9guDubaW+1NbcpK0vJ3F/6Wpcanzcnqq+oaW9O5E98liwkEDPcb16BUTLIJ+ZF8GPIHYxJ/5Pw== dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" -"@ethersproject/signing-key@^5.0.8": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.11.tgz#19fc5c4597e18ad0a5efc6417ba5b74069fdd2af" - integrity sha512-Jfcru/BGwdkXhLxT+8WCZtFy7LL0TPFZw05FAb5asxB/MyVsEfNdNxGDtjVE9zXfmRSPe/EusXYY4K7wcygOyQ== +"@ethersproject/signing-key@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.3.0.tgz#a96c88f8173e1abedfa35de32d3e5db7c48e5259" + integrity sha512-+DX/GwHAd0ok1bgedV1cKO0zfK7P/9aEyNoaYiRsGHpCecN7mhLqcdoUiUzE7Uz86LBsxm5ssK0qA1kBB47fbQ== dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + bn.js "^4.11.9" elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.3.0.tgz#a6b640aab56a18e0909f657da798eef890968ff0" + integrity sha512-j/AzIGZ503cvhuF2ldRSjB0BrKzpsBMtCieDtn4TYMMZMQ9zScJn9wLzTQl/bRNvJbBE6TOspK0r8/Ngae/f2Q== + dependencies: + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/constants" "^5.3.0" + "@ethersproject/logger" "^5.3.0" -"@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.0.8": - version "5.0.10" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.10.tgz#ddce1e9724f4ac4f3f67e0cac0b48748e964bfdb" - integrity sha512-KAeoS1tZ9/5ECXiIZA6S6hywbD0so2VmuW+Wfyo5EDXeyZ6Na1nxTPhTnW7voQmjbeYJffCrOc0qLFJeylyg7w== - dependencies: - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/logger" "^5.0.8" - -"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.9": - version "5.0.11" - resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.11.tgz#b31df5292f47937136a45885d6ee6112477c13df" - integrity sha512-ftsRvR9+gQp7L63F6+XmstvsZ4w8GtWvQB08e/zB+oB86Fnhq8+i/tkgpJplSHC8I/qgiCisva+M3u2GVhDFPA== - dependencies: - "@ethersproject/address" "^5.0.9" - "@ethersproject/bignumber" "^5.0.13" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/constants" "^5.0.8" - "@ethersproject/keccak256" "^5.0.7" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/rlp" "^5.0.7" - "@ethersproject/signing-key" "^5.0.8" - -"@ethersproject/web@^5.0.12": - version "5.0.14" - resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.14.tgz#6e7bebdd9fb967cb25ee60f44d9218dc0803bac4" - integrity sha512-QpTgplslwZ0Sp9oKNLoRuS6TKxnkwfaEk3gr7zd7XLF8XBsYejsrQO/03fNfnMx/TAT/RR6WEw/mbOwpRSeVRA== - dependencies: - "@ethersproject/base64" "^5.0.7" - "@ethersproject/bytes" "^5.0.9" - "@ethersproject/logger" "^5.0.8" - "@ethersproject/properties" "^5.0.7" - "@ethersproject/strings" "^5.0.8" +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.3.0.tgz#49b86f2bafa4d0bdf8e596578fc795ee47c50458" + integrity sha512-cdfK8VVyW2oEBCXhURG0WQ6AICL/r6Gmjh0e4Bvbv6MCn/GBd8FeBH3rtl7ho+AW50csMKeGv3m3K1HSHB2jMQ== + dependencies: + "@ethersproject/address" "^5.3.0" + "@ethersproject/bignumber" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/constants" "^5.3.0" + "@ethersproject/keccak256" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + "@ethersproject/rlp" "^5.3.0" + "@ethersproject/signing-key" "^5.3.0" + +"@ethersproject/web@^5.3.0": + version "5.3.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.3.0.tgz#7959c403f6476c61515008d8f92da51c553a8ee1" + integrity sha512-Ni6/DHnY6k/TD41LEkv0RQDx4jqWz5e/RZvrSecsxGYycF+MFy2z++T/yGc2peRunLOTIFwEksgEGGlbwfYmhQ== + dependencies: + "@ethersproject/base64" "^5.3.0" + "@ethersproject/bytes" "^5.3.0" + "@ethersproject/logger" "^5.3.0" + "@ethersproject/properties" "^5.3.0" + "@ethersproject/strings" "^5.3.0" "@opencensus/core@0.0.9": version "0.0.9" @@ -243,44 +271,33 @@ "@opencensus/core" "^0.0.8" uuid "^3.2.1" -"@pm2/agent-node@^1.1.10": - version "1.1.10" - resolved "https://registry.yarnpkg.com/@pm2/agent-node/-/agent-node-1.1.10.tgz#29fafc9d1b75288dec87b6af1216ddfab8ea9b06" - integrity sha512-xRcrk7OEwhS3d/227/kKGvxgmbIi6Yyp27FzGlFNermEKhgddmFaRnmd7GRLIsBM/KB28NrwflBZulzk/mma6g== - dependencies: - debug "^3.1.0" - eventemitter2 "^5.0.1" - proxy-agent "^3.0.3" - ws "^6.0.0" - -"@pm2/agent@~1.0.4": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@pm2/agent/-/agent-1.0.4.tgz#1a7275e1415cd26a530405816ff5e453abb8fd8c" - integrity sha512-cZLwaoLa45FRuetKCcoI3kHnnQ7VMLpZnmVom04MoK0cpY/RxcSarkCHSCu9V+pdARwxx96QrWdrtAJdw97dng== +"@pm2/agent@~1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@pm2/agent/-/agent-1.0.8.tgz#cd15d84dbfc95427e6fccce72bc165b79f1d8579" + integrity sha512-r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ== dependencies: async "~3.2.0" chalk "~3.0.0" dayjs "~1.8.24" - debug "~4.1.1" + debug "~4.3.1" eventemitter2 "~5.0.1" fclone "~1.0.11" nssocket "0.6.0" - pm2-axon "^3.2.0" - pm2-axon-rpc "^0.5.0" - proxy-agent "~3.1.1" + pm2-axon "~4.0.1" + pm2-axon-rpc "~0.7.0" + proxy-agent "~4.0.1" semver "~7.2.0" ws "~7.2.0" -"@pm2/io@~4.3.5": - version "4.3.5" - resolved "https://registry.yarnpkg.com/@pm2/io/-/io-4.3.5.tgz#57025ab821fd09d2afe6d0ab981f8a39ccec8860" - integrity sha512-CY/a6Nw72vrlp/FPx38l4jfEHp4gNEbo8i+WlSJ2cnWO6VE6CKmnC1zb4yQLvdP8f3EuzzoOBZVq6aGN20M82Q== +"@pm2/io@~5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@pm2/io/-/io-5.0.0.tgz#623cbcaf6fe39375f20ac2e75497477a1b1ec5c5" + integrity sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw== dependencies: "@opencensus/core" "0.0.9" "@opencensus/propagation-b3" "0.0.8" - "@pm2/agent-node" "^1.1.10" async "~2.6.1" - debug "4.1.1" + debug "~4.3.1" eventemitter2 "^6.3.1" require-in-the-middle "^5.0.0" semver "6.3.0" @@ -300,21 +317,28 @@ ws "^7.0.0" "@pm2/pm2-version-check@latest": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@pm2/pm2-version-check/-/pm2-version-check-1.0.3.tgz#4ec5abaeee45c98dce3640f13861058c29f312c5" - integrity sha512-SBuYsh+o35knItbRW97vl5/5nEc5c5DYP7PxjyPLOfmm9bMaDsVeATXjXMBy6+KLlyrYWHZxGbfXe003NnHClg== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz#cf97fbb14b0eca95430ca05eedccbd2683806e43" + integrity sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA== dependencies: - debug "^4.1.1" + debug "^4.3.1" "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@solidity-parser/parser@^0.12.0": - version "0.12.0" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.12.0.tgz#18a0fb2a9d2484b23176f63b16093c64794fc323" - integrity sha512-DT3f/Aa4tQysZwUsuqBwvr8YRJzKkvPUKV/9o2/o5EVw3xqlbzmtx4O60lTUcZdCawL+N8bBLNUyOGpHjGlJVQ== +"@sindresorhus/is@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.1.tgz#d26729db850fa327b7cacc5522252194404226f5" + integrity sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g== + +"@solidity-parser/parser@^0.13.2": + version "0.13.2" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.13.2.tgz#b6c71d8ca0b382d90a7bbed241f9bc110af65cbe" + integrity sha512-RwHnpRnfrnD2MSPveYoPh8nhofEvX7fgjHk1Oq+NNvCcLx4r1js91CO9o+F/F3fBzOCyvm8kKRTriFICX/odWw== + dependencies: + antlr4ts "^0.5.0-alpha.4" "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -323,6 +347,23 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz#bfbd50211e9dfa51ba07da58a14cdfd333205152" + integrity sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ== + dependencies: + defer-to-connect "^2.0.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@types/abstract-leveldown@*": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/abstract-leveldown/-/abstract-leveldown-5.0.1.tgz#3c7750d0186b954c7f2d2f6acc8c3c7ba0c3412e" + integrity sha512-wYxU3kp5zItbxKmeRYCEplS2MW7DzyBnxPGj+GJVHZEUZiK/nn5Ei1sUFgURDh+X051+zsGe28iud3oHjrYWQQ== + "@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" @@ -337,25 +378,55 @@ dependencies: "@types/node" "*" +"@types/cacheable-request@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz#5d22f3dded1fd3a84c0bbeb5039a7419c2c91976" + integrity sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ== + dependencies: + "@types/http-cache-semantics" "*" + "@types/keyv" "*" + "@types/node" "*" + "@types/responselike" "*" + +"@types/http-cache-semantics@*": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz#9140779736aa2655635ee756e2467d787cfe8a2a" + integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= +"@types/keyv@*": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" + integrity sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw== + dependencies: + "@types/node" "*" + +"@types/levelup@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@types/levelup/-/levelup-4.3.1.tgz#7a53b9fd510716e11b2065332790fdf5f9b950b9" + integrity sha512-n//PeTpbHLjMLTIgW5B/g06W/6iuTBHuvUka2nFL9APMSVMNe2r4enADfu3CIE9IyV9E+uquf9OEQQqrDeg24A== + dependencies: + "@types/abstract-leveldown" "*" + "@types/node" "*" + "@types/node@*": - version "14.14.33" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.33.tgz#9e4f8c64345522e4e8ce77b334a8aaa64e2b6c78" - integrity sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g== + version "15.12.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.4.tgz#e1cf817d70a1e118e81922c4ff6683ce9d422e26" + integrity sha512-zrNj1+yqYF4WskCMOHwN+w9iuD12+dGm0rQ35HLl9/Ouuq52cEtd0CH9qMgrdNmi5ejC1/V7vKEXYubB+65DkA== "@types/node@^10.12.18", "@types/node@^10.3.2": - version "10.17.55" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.55.tgz#a147f282edec679b894d4694edb5abeb595fecbd" - integrity sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg== + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== "@types/node@^12.12.6", "@types/node@^12.6.1": - version "12.20.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.5.tgz#4ca82a766f05c359fd6c77505007e5a272f4bb9b" - integrity sha512-5Oy7tYZnu3a4pnJ//d4yVvOImExl4Vtwf0D40iKUlU+XlUsyV9iyFWyCFlwy489b72FMAik/EFwRkNLjjOdSPg== + version "12.20.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.15.tgz#10ee6a6a3f971966fddfa3f6e89ef7a73ec622df" + integrity sha512-F6S4Chv4JicJmyrwlDkxUdGNSplsQdGwp1A0AJloEVDirWdZOAiRHhovDlsFkKUrquUXhz1imJhXHsf59auyAg== "@types/pbkdf2@^3.0.0": version "3.1.0" @@ -364,10 +435,17 @@ dependencies: "@types/node" "*" +"@types/responselike@*", "@types/responselike@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" + integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + dependencies: + "@types/node" "*" + "@types/secp256k1@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" - integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.2.tgz#20c29a87149d980f64464e56539bf4810fdb5d1d" + integrity sha512-QMg+9v0bbNJ2peLuHRWxzmy0HRJIG6gFZNhaRSp7S3ggSbCCxiqQB2/ybvhXyhHOCequpNkrx7OavNhrWOsW0A== dependencies: "@types/node" "*" @@ -390,6 +468,17 @@ typedarray-to-buffer "^3.1.5" yaeti "^0.0.6" +abstract-leveldown@^6.2.1: + version "6.3.0" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.3.0.tgz#d25221d1e6612f820c35963ba4bd739928f6026a" + integrity sha512-TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + abstract-leveldown@~2.6.0: version "2.6.3" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" @@ -404,6 +493,17 @@ abstract-leveldown@~2.7.1: dependencies: xtend "~4.0.0" +abstract-leveldown@~6.2.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz#036543d87e3710f2528e47040bc3261b77a9a8eb" + integrity sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ== + dependencies: + buffer "^5.5.0" + immediate "^3.2.3" + level-concat-iterator "~2.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + accepts@~1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" @@ -427,19 +527,12 @@ aes-js@3.0.0: resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= -agent-base@4, agent-base@^4.2.0, agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== - dependencies: - es6-promisify "^5.0.0" - -agent-base@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: - es6-promisify "^5.0.0" + debug "4" ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" @@ -492,15 +585,20 @@ ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" +antlr4ts@^0.5.0-alpha.4: + version "0.5.0-alpha.4" + resolved "https://registry.yarnpkg.com/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz#71702865a87478ed0b40c0709f422cf14d51652a" + integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== + any-promise@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -512,11 +610,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM= - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -574,10 +667,10 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -ast-types@0.x.x: - version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" @@ -604,7 +697,7 @@ async@^1.4.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= -async@^2.0.1, async@^2.6.2, async@^2.6.3, async@~2.6.1: +async@^2.6.2, async@^2.6.3, async@~2.6.1: version "2.6.3" resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== @@ -622,11 +715,9 @@ asynckit@^0.4.0: integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - integrity sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ== - dependencies: - array-filter "^1.0.0" + version "1.0.4" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" + integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== aws-sign2@~0.7.0: version "0.7.0" @@ -646,9 +737,9 @@ axios@^0.21.0: follow-redirects "^1.10.0" balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2, base-x@^3.0.8: version "3.0.8" @@ -698,9 +789,9 @@ bl@^1.0.0: safe-buffer "^5.1.1" blakejs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== blessed@0.1.81: version "0.1.81" @@ -906,6 +997,11 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -919,6 +1015,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" + integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -977,9 +1086,9 @@ chalk@^2.0.0: supports-color "^5.3.0" chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + version "4.1.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad" + integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -1008,19 +1117,19 @@ charm@~0.1.1: integrity sha1-BsIe7RobBq62dVPNxT4jJ0usIpY= chokidar@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" - integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== dependencies: - anymatch "~3.1.1" + anymatch "~3.1.2" braces "~3.0.2" - glob-parent "~5.1.0" + glob-parent "~5.1.2" is-binary-path "~2.1.0" is-glob "~4.0.1" normalize-path "~3.0.0" - readdirp "~3.5.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "~2.3.1" + fsevents "~2.3.2" chownr@^1.1.1: version "1.1.4" @@ -1065,11 +1174,6 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -1214,6 +1318,14 @@ corser@^2.0.1: resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= +crc-32@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.0.tgz#cb2db6e29b88508e32d9dd0ec1693e7b41a18208" + integrity sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA== + dependencies: + exit-on-epipe "~1.0.1" + printj "~1.1.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -1303,45 +1415,31 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-to-buffer@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" - integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== +data-uri-to-buffer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== dayjs@~1.8.24, dayjs@~1.8.25: version "1.8.36" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.36.tgz#be36e248467afabf8f5a86bae0de0cdceecced50" integrity sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw== -debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.2, debug@^4.3.1, debug@~4.3.1: +debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: ms "2.1.2" -debug@4.1.1, debug@~4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^3.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: +debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -1360,6 +1458,13 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -1423,6 +1528,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" @@ -1430,6 +1540,14 @@ deferred-leveldown@~1.2.1: dependencies: abstract-leveldown "~2.6.0" +deferred-leveldown@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" + integrity sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw== + dependencies: + abstract-leveldown "~6.2.1" + inherits "^2.0.3" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1437,14 +1555,14 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" -degenerator@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" - integrity sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU= +degenerator@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-2.2.0.tgz#49e98c11fa0293c5b26edfbb52f15729afcdb254" + integrity sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg== dependencies: - ast-types "0.x.x" - escodegen "1.x.x" - esprima "3.x.x" + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" delayed-stream@~1.0.0: version "1.0.0" @@ -1483,11 +1601,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -dir-to-object@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-to-object/-/dir-to-object-2.0.0.tgz#29723e9bd1c3e58e4f307bd04ff634c0370c8f8a" - integrity sha512-sXs0JKIhymON7T1UZuO2Ud6VTNAx/VTBXIl4+3mjb2RgfOpt+hectX0x04YqPOPdkeOAKoJuKqwqnXXURNPNEA== - doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -1598,7 +1711,7 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.1: +emoji-regex@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== @@ -1608,6 +1721,16 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding-down@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/encoding-down/-/encoding-down-6.3.0.tgz#b1c4eb0e1728c146ecaef8e32963c549e76d082b" + integrity sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw== + dependencies: + abstract-leveldown "^6.2.1" + inherits "^2.0.3" + level-codec "^9.0.0" + level-errors "^2.0.0" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -1645,10 +1768,10 @@ error-polyfill@^0.1.2: o3 "^1.0.3" u3 "^0.1.0" -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: - version "1.18.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0.tgz#ab80b359eecb7ede4c298000390bc5ac3ec7b5a4" - integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -1658,14 +1781,14 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: has-symbols "^1.0.2" is-callable "^1.2.3" is-negative-zero "^2.0.1" - is-regex "^1.1.2" - is-string "^1.0.5" - object-inspect "^1.9.0" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" object-keys "^1.1.1" object.assign "^4.1.2" string.prototype.trimend "^1.0.4" string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.0" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -1694,18 +1817,6 @@ es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -1719,11 +1830,6 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-regexp@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/escape-regexp/-/escape-regexp-0.0.1.tgz#f44bda12d45bbdf9cb7f862ee7e4827b3dd32254" - integrity sha1-9EvaEtRbvfnLf4Yu5+SCez3TIlQ= - escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1734,7 +1840,7 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@1.x.x: +escodegen@^1.8.1: version "1.14.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== @@ -1765,11 +1871,11 @@ eslint-import-resolver-node@^0.3.4: resolve "^1.13.1" eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: @@ -1854,9 +1960,9 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" - integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint@~7.13.0: version "7.13.0" @@ -1910,11 +2016,6 @@ espree@^7.3.0: acorn-jsx "^5.3.1" eslint-visitor-keys "^1.3.0" -esprima@3.x.x: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -2010,9 +2111,9 @@ eth-util-lite@near/eth-util-lite#master: safe-buffer "^5.1.2" ethereum-bloom-filters@^1.0.6: - version "1.0.9" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz#4a59dead803af0c9e33834170bd7695df67061ec" - integrity sha512-GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg== + version "1.0.10" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" + integrity sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA== dependencies: js-sha3 "^0.8.0" @@ -2037,17 +2138,6 @@ ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereumjs-block@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" @@ -2087,10 +2177,22 @@ ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.0: ethjs-util "0.1.6" rlp "^2.2.3" -ethereumjs-util@^7.0.3: - version "7.0.9" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.9.tgz#2038baeb30f370a3e576ec175bd70bbbb6807d42" - integrity sha512-cRqvYYKJoitq6vMKMf8pXeVwvTrX+dRD0JwHaYqm8jvogK14tqIoCWH/KUHcRwnVxVXEYF/o6pup5jRG4V0xzg== +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.3: + version "7.0.10" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.10.tgz#5fb7b69fa1fda0acc59634cf39d6b0291180fc1f" + integrity sha512-c/xThw6A+EAnej5Xk5kOzFzyoSnw0WX0tSlZ6pAsfGVvQj3TItaDg9b1+Fz1RJXA+y2YksKwQnuzgt1eY6LKzw== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.4" + +ethereumjs-util@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz#e2b43a30bfcdbcb432a4eb42bd5f2393209b3fd5" + integrity sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw== dependencies: "@types/bn.js" "^5.1.0" bn.js "^5.1.2" @@ -2131,7 +2233,7 @@ ethjs-util@0.1.6, ethjs-util@^0.1.3: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -eventemitter2@5.0.1, eventemitter2@^5.0.1, eventemitter2@~5.0.1: +eventemitter2@5.0.1, eventemitter2@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-5.0.1.tgz#6197a095d5fb6b57e8942f6fd7eaad63a09c9452" integrity sha1-YZegldX7a1folC9v1+qtY6CclFI= @@ -2169,6 +2271,11 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: md5.js "^1.3.4" safe-buffer "^5.1.1" +exit-on-epipe@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" + integrity sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw== + express@^4.14.0: version "4.17.1" resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" @@ -2276,10 +2383,10 @@ file-type@^6.1.0: resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" integrity sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg== -file-uri-to-path@1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== fill-range@^7.0.1: version "7.0.1" @@ -2335,9 +2442,9 @@ follow-redirects@^1.0.0: integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== follow-redirects@^1.10.0: - version "1.13.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.3.tgz#e5598ad50174c1bc4e872301e82ac2cd97f90267" - integrity sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA== + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== foreach@^2.0.5: version "2.0.5" @@ -2358,10 +2465,10 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fresh@0.5.2: version "0.5.2" @@ -2382,6 +2489,15 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs-minipass@^1.2.5: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -2394,12 +2510,12 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@~2.3.1: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -ftp@~0.3.10: +ftp@^0.3.10: version "0.3.10" resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= @@ -2412,7 +2528,7 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: +functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= @@ -2458,17 +2574,17 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-uri@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a" - integrity sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q== +get-uri@3: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== dependencies: - data-uri-to-buffer "1" - debug "2" - extend "~3.0.2" - file-uri-to-path "1" - ftp "~0.3.10" - readable-stream "2" + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" getpass@^0.1.1: version "0.1.7" @@ -2487,7 +2603,7 @@ git-sha1@^0.1.2: resolved "https://registry.yarnpkg.com/git-sha1/-/git-sha1-0.1.2.tgz#599ac192b71875825e13a445f3a6e05118c2f745" integrity sha1-WZrBkrcYdYJeE6RF86bgURjC90U= -glob-parent@^5.0.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -2495,9 +2611,9 @@ glob-parent@^5.0.0, glob-parent@~5.1.0: is-glob "^4.0.1" glob@^7.0.5, glob@^7.1.3: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -2538,6 +2654,23 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" +got@^11.8.2: + version "11.8.2" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" + integrity sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ== + dependencies: + "@sindresorhus/is" "^4.0.0" + "@szmarczak/http-timer" "^4.0.5" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.1" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -2558,7 +2691,7 @@ got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -graceful-fs@^4.1.10, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6: +graceful-fs@^4.1.10, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -2576,7 +2709,7 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -has-bigints@^1.0.0: +has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -2596,7 +2729,7 @@ has-symbol-support-x@^1.4.1: resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -2632,7 +2765,7 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -2663,9 +2796,9 @@ hmac-drbg@^1.0.1: minimalistic-crypto-utils "^1.0.1" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-cache-semantics@^4.0.0: version "4.1.0" @@ -2710,13 +2843,14 @@ http-https@^1.0.0: resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= -http-proxy-agent@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" - integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - agent-base "4" - debug "3.1.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" http-proxy@^1.18.0: version "1.18.1" @@ -2752,13 +2886,21 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-proxy-agent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" - integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg== +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + +https-proxy-agent@5, https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== dependencies: - agent-base "^4.3.0" - debug "^3.1.0" + agent-base "6" + debug "4" iconv-lite@0.4.24, iconv-lite@^0.4.4: version "0.4.24" @@ -2794,6 +2936,11 @@ immediate@^3.2.3: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== +immediate@~3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw= + import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -2839,7 +2986,7 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -ip@1.1.5, ip@^1.1.5: +ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -2862,9 +3009,9 @@ is-arrayish@^0.2.1: integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-bigint@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.1.tgz#6923051dfcbc764278540b9ce0e6b3213aa5ebc2" - integrity sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== is-binary-path@~2.1.0: version "2.1.0" @@ -2874,11 +3021,11 @@ is-binary-path@~2.1.0: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.0.tgz#e2aaad3a3a8fca34c28f6eee135b156ed2587ff0" - integrity sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" is-callable@^1.1.4, is-callable@^1.2.3: version "1.2.3" @@ -2886,16 +3033,16 @@ is-callable@^1.1.4, is-callable@^1.2.3: integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== dependencies: has "^1.0.3" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== is-extglob@^2.1.1: version "2.1.1" @@ -2918,9 +3065,9 @@ is-function@^1.0.1: integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== is-generator-function@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== + version "1.0.9" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.9.tgz#e5f82c2323673e7fcad3d12858c83c4039f6399c" + integrity sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A== is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" @@ -2945,9 +3092,9 @@ is-negative-zero@^2.0.1: integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== is-number-object@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.4.tgz#36ac95e741cf18b283fc1ddf5e83da798e3ec197" - integrity sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== is-number@^7.0.0: version "7.0.0" @@ -2969,13 +3116,13 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= -is-regex@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== +is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-retry-allowed@^1.0.0: version "1.2.0" @@ -2987,17 +3134,17 @@ is-stream@^1.0.0, is-stream@^1.1.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" is-typed-array@^1.1.3: version "1.1.5" @@ -3091,6 +3238,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3163,16 +3315,35 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz#4f3aa98de254803cafcd2896734108daa35e4254" + integrity sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA== + dependencies: + json-buffer "3.0.1" + lazy@~1.0.11: version "1.0.11" resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" integrity sha1-2qBoIGKCVCwIgojpdcKXwa53tpA= +level-codec@^9.0.0: + version "9.0.2" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-9.0.2.tgz#fd60df8c64786a80d44e63423096ffead63d8cbc" + integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== + dependencies: + buffer "^5.6.0" + level-codec@~7.0.0: version "7.0.1" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== +level-concat-iterator@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz#1d1009cf108340252cb38c51f9727311193e6263" + integrity sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw== + level-errors@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" @@ -3180,6 +3351,13 @@ level-errors@^1.0.3: dependencies: errno "~0.1.1" +level-errors@^2.0.0, level-errors@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-2.0.1.tgz#2132a677bf4e679ce029f517c2f17432800c05c8" + integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== + dependencies: + errno "~0.1.1" + level-errors@~1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" @@ -3197,6 +3375,38 @@ level-iterator-stream@~1.3.0: readable-stream "^1.0.33" xtend "^4.0.0" +level-iterator-stream@~4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz#7ceba69b713b0d7e22fcc0d1f128ccdc8a24f79c" + integrity sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q== + dependencies: + inherits "^2.0.4" + readable-stream "^3.4.0" + xtend "^4.0.2" + +level-mem@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/level-mem/-/level-mem-5.0.1.tgz#c345126b74f5b8aa376dc77d36813a177ef8251d" + integrity sha512-qd+qUJHXsGSFoHTziptAKXoLX87QjR7v2KMbqncDXPxQuCdsQlzmyX+gwrEHhlzn08vkf8TyipYyMmiC6Gobzg== + dependencies: + level-packager "^5.0.3" + memdown "^5.0.0" + +level-packager@^5.0.3: + version "5.1.1" + resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-5.1.1.tgz#323ec842d6babe7336f70299c14df2e329c18939" + integrity sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ== + dependencies: + encoding-down "^6.3.0" + levelup "^4.3.2" + +level-supports@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-1.0.1.tgz#2f530a596834c7301622521988e2c36bb77d122d" + integrity sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg== + dependencies: + xtend "^4.0.2" + level-ws@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" @@ -3205,6 +3415,15 @@ level-ws@0.0.0: readable-stream "~1.0.15" xtend "~2.1.1" +level-ws@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-2.0.0.tgz#207a07bcd0164a0ec5d62c304b4615c54436d339" + integrity sha512-1iv7VXx0G9ec1isqQZ7y5LmoZo/ewAsyDHNA8EFDW5hqH2Kqovm33nSFkSdnLLAK+I5FlT+lo5Cw9itGe+CpQA== + dependencies: + inherits "^2.0.3" + readable-stream "^3.1.0" + xtend "^4.0.1" + levelup@^1.2.1: version "1.3.9" resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" @@ -3218,6 +3437,17 @@ levelup@^1.2.1: semver "~5.4.1" xtend "~4.0.0" +levelup@^4.3.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-4.4.0.tgz#f89da3a228c38deb49c48f88a70fb71f01cafed6" + integrity sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ== + dependencies: + deferred-leveldown "~5.3.0" + level-errors "~2.0.0" + level-iterator-stream "~4.0.0" + level-supports "~1.0.0" + xtend "~4.0.0" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3364,6 +3594,18 @@ memdown@^1.0.0: ltgt "~2.2.0" safe-buffer "~5.1.1" +memdown@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-5.1.0.tgz#608e91a9f10f37f5b5fe767667a8674129a833cb" + integrity sha512-B3J+UizMRAlEArDjWHTMmadet+UKwHd3UjMgGBkZcKAxAYVPS9o0Yeiha4qvz7iGiL2Sb3igUft6p7nbFWctpw== + dependencies: + abstract-leveldown "~6.2.1" + functional-red-black-tree "~1.0.1" + immediate "~3.2.3" + inherits "~2.0.1" + ltgt "~2.2.0" + safe-buffer "~5.2.0" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -3383,6 +3625,19 @@ merkle-patricia-tree@^2.1.2: rlp "^2.0.0" semaphore ">=1.0.1" +merkle-patricia-tree@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-4.2.0.tgz#a204b9041be5c25e8d14f0ff47021de090e811a1" + integrity sha512-0sBVXs7z1Q1/kxzWZ3nPnxSPiaHKF/f497UQzt9O7isRcS10tel9jM/4TivF6Jv7V1yFq4bWyoATxbDUOen5vQ== + dependencies: + "@types/levelup" "^4.3.0" + ethereumjs-util "^7.0.10" + level-mem "^5.0.1" + level-ws "^2.0.0" + readable-stream "^3.6.0" + rlp "^2.2.4" + semaphore-async-await "^1.5.1" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -3396,17 +3651,17 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== +mime-db@1.48.0: + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: - mime-db "1.46.0" + mime-db "1.48.0" mime@1.6.0, mime@^1.6.0: version "1.6.0" @@ -3418,6 +3673,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -3482,9 +3742,9 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5: minimist "^1.2.5" mock-fs@^4.1.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.13.0.tgz#31c02263673ec3789f90eb7b6963676aa407a598" - integrity sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA== + version "4.14.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.14.0.tgz#ce5124d2c601421255985e6e94da80a7357b1b18" + integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== module-details-from-path@^1.0.3: version "1.0.3" @@ -3564,9 +3824,9 @@ multihashes@^0.4.15, multihashes@~0.4.15: varint "^5.0.0" mustache@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz#8c1b042238a982d2eb2d30efc6c14296ae3f699d" - integrity sha512-0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== mute-stream@~0.0.4: version "0.0.8" @@ -3588,7 +3848,7 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -near-api-js@^0.26.0: +near-api-js@=0.26.0: version "0.26.0" resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-0.26.0.tgz#1d13571e0ec107aaf61b908466c38110ba5bf97b" integrity sha512-aeRU2oWo6qKJF2oM7IcZ10vEqohxk6palTTx7LBUBsaKjF8561gBNIPhnkndhSrpsVSA9NBibX80WfOmK1tqrw== @@ -3619,10 +3879,10 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -netmask@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" - integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU= +netmask@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== next-tick@~1.0.0: version "1.0.0" @@ -3668,9 +3928,14 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== nssocket@0.6.0: version "0.6.0" @@ -3705,10 +3970,10 @@ object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1 resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== +object-inspect@^1.10.3, object-inspect@^1.9.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" @@ -3731,14 +3996,13 @@ object.assign@^4.1.2: object-keys "^1.1.1" object.entries@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" - integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== dependencies: - call-bind "^1.0.0" + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" - has "^1.0.3" + es-abstract "^1.18.2" object.fromentries@^2.0.2: version "2.0.4" @@ -3751,14 +4015,13 @@ object.fromentries@^2.0.2: has "^1.0.3" object.values@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" + es-abstract "^1.18.2" oboe@2.1.4: version "2.1.4" @@ -3827,6 +4090,11 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -3877,30 +4145,29 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pac-proxy-agent@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz#115b1e58f92576cac2eba718593ca7b0e37de2ad" - integrity sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ== +pac-proxy-agent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz#66883eeabadc915fc5e95457324cb0f0ac78defb" + integrity sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q== dependencies: - agent-base "^4.2.0" - debug "^4.1.1" - get-uri "^2.0.0" - http-proxy-agent "^2.1.0" - https-proxy-agent "^3.0.0" - pac-resolver "^3.0.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^4.1.0" raw-body "^2.2.0" - socks-proxy-agent "^4.0.1" + socks-proxy-agent "5" -pac-resolver@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26" - integrity sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA== +pac-resolver@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-4.2.0.tgz#b82bcb9992d48166920bc83c7542abb454bd9bdd" + integrity sha512-rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ== dependencies: - co "^4.6.0" - degenerator "^1.0.4" + degenerator "^2.2.0" ip "^1.1.5" - netmask "^1.0.6" - thunkify "^2.1.2" + netmask "^2.0.1" pako@^0.2.5: version "0.2.9" @@ -3990,9 +4257,9 @@ path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" @@ -4007,9 +4274,9 @@ path-type@^2.0.0: pify "^2.0.0" pbkdf2@^3.0.17, pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -4028,9 +4295,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pidusage@2.0.21: version "2.0.21" @@ -4081,40 +4348,23 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" -pm2-axon-rpc@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.6.0.tgz#ff7ec2627334e5de1bcc1181e532499a708ab9f8" - integrity sha512-xjYR0y1HpOopJ09VL2Qd5H1LajVN+QLPVZ1G+GesbORJDAZiStMhwECtOzm/Gx5ANQxL0usW8WZsElMfQq2hbw== - dependencies: - debug "^3.0" - -pm2-axon-rpc@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.5.2.tgz#36004e7ded26fa2c21a5f415d04e55ba97f8dc6c" - integrity sha512-o4u1jO1EYBgBUVlraE1aeGWB5DvClJFB2+v7ytqLypNfgYeT6eJ/B+WMh5NcvRnexAYL5kblcRgNgSbgGEobvA== +pm2-axon-rpc@~0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz#2daec5383a63135b3f18babb70266dacdcbc429a" + integrity sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw== dependencies: - debug "^3.0" + debug "^4.3.1" -pm2-axon@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-4.0.0.tgz#70925e9835e9156f278a843f27a8c94a6c22b1bc" - integrity sha512-A8dy0C57cRIm+kX58HrMcnvUdg8EdwCuCmavDdmFE4eoUE+5zfwGbDfZKCBVLNpDwjXPuXQQYZi3wQt/5xC8DQ== +pm2-axon@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-4.0.1.tgz#a7b4bb586e9aeb35b1042b488cde15b60cabafd2" + integrity sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg== dependencies: amp "~0.3.1" amp-message "~0.1.1" - debug "^4.2" + debug "^4.3.1" escape-string-regexp "^4.0.0" -pm2-axon@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/pm2-axon/-/pm2-axon-3.3.0.tgz#a9badfdb8e083fbd5d7d24317b4a21eb708f0735" - integrity sha512-dAFlFYRuFbFjX7oAk41zT+dx86EuaFX/TgOp5QpUKRKwxb946IM6ydnoH5sSTkdI2pHSVZ+3Am8n/l0ocr7jdQ== - dependencies: - amp "~0.3.1" - amp-message "~0.1.1" - debug "^3.0" - escape-regexp "0.0.1" - pm2-deploy@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pm2-deploy/-/pm2-deploy-1.0.2.tgz#98d8385553a3a4dca11c7b3116deb519bc5961a7" @@ -4138,12 +4388,12 @@ pm2-promise@^2.0.1: pm2 "^4.4.0" pm2@^4.4.0: - version "4.5.5" - resolved "https://registry.yarnpkg.com/pm2/-/pm2-4.5.5.tgz#f2f9f7f4fd1b9bd308b4680029ff460af2f5a671" - integrity sha512-feLYWAq8liDsM2IV0ViZ4TSnEUoOtpuICakzFnhh2bb51BUnpJMOjO1sojR1jDuNHvhrYGWqneOUglxE6slKwg== + version "4.5.6" + resolved "https://registry.yarnpkg.com/pm2/-/pm2-4.5.6.tgz#2f477a158957860e440f1e71e88dc82627fcff99" + integrity sha512-4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA== dependencies: - "@pm2/agent" "~1.0.4" - "@pm2/io" "~4.3.5" + "@pm2/agent" "~1.0.8" + "@pm2/io" "~5.0.0" "@pm2/js-api" "~0.6.7" "@pm2/pm2-version-check" latest async "~3.2.0" @@ -4161,8 +4411,8 @@ pm2@^4.4.0: mkdirp "1.0.4" needle "2.4.0" pidusage "2.0.21" - pm2-axon "4.0.0" - pm2-axon-rpc "0.6.0" + pm2-axon "~4.0.1" + pm2-axon-rpc "~0.7.0" pm2-deploy "~1.0.2" pm2-multimeter "^0.1.2" promptly "^2" @@ -4203,23 +4453,26 @@ prepend-http@^2.0.0: integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= prettier-plugin-solidity@^1.0.0-beta.5: - version "1.0.0-beta.6" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.6.tgz#aa7b14a60cd6e22e46db75c84d836b569fb63f65" - integrity sha512-WymLqd22Hl93t5+HDNLk08TAWp4i4vZMhpihuVqkwOApjCT7mH1qwhLtvf3m+NdU//qj8vrPDmMoT+xc74skcg== + version "1.0.0-beta.13" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-beta.13.tgz#2e31c5a5e2df3239e5e93704f9bcafe09a5f8190" + integrity sha512-AWMDRSabpNQMX7EqdDKgx/UVtQY6e3/Iu4gSPYDGvgiWl+OY8kYhAMll2NZHK/X+F0YYpPHYpebkDh7MGxbB1g== dependencies: - "@solidity-parser/parser" "^0.12.0" - dir-to-object "^2.0.0" - emoji-regex "^9.2.1" + "@solidity-parser/parser" "^0.13.2" + emoji-regex "^9.2.2" escape-string-regexp "^4.0.0" - prettier "^2.2.1" - semver "^7.3.4" - solidity-comments-extractor "^0.0.4" - string-width "^4.2.0" + semver "^7.3.5" + solidity-comments-extractor "^0.0.7" + string-width "^4.2.2" prettier@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" - integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== + version "2.3.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6" + integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA== + +printj@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" + integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ== process-nextick-args@~2.0.0: version "2.0.1" @@ -4272,26 +4525,26 @@ prop-types@^15.7.2: react-is "^16.8.1" proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" -proxy-agent@^3.0.3, proxy-agent@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.1.1.tgz#7e04e06bf36afa624a1540be247b47c970bd3014" - integrity sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw== +proxy-agent@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-4.0.1.tgz#326c3250776c7044cd19655ccbfadf2e065a045c" + integrity sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA== dependencies: - agent-base "^4.2.0" + agent-base "^6.0.0" debug "4" - http-proxy-agent "^2.1.0" - https-proxy-agent "^3.0.0" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" lru-cache "^5.1.1" - pac-proxy-agent "^3.0.1" + pac-proxy-agent "^4.1.0" proxy-from-env "^1.0.0" - socks-proxy-agent "^4.0.1" + socks-proxy-agent "^5.0.0" proxy-from-env@^1.0.0: version "1.1.0" @@ -4367,6 +4620,11 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + rainbow-token-connector@near/rainbow-token-connector#7fb86958362fe8e4455ebbcdb00caac067eda2ff: version "0.0.0" resolved "https://codeload.github.com/near/rainbow-token-connector/tar.gz/7fb86958362fe8e4455ebbcdb00caac067eda2ff" @@ -4450,7 +4708,7 @@ readable-stream@1.1.x, readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5: +readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stream@^2.3.5: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -4463,7 +4721,7 @@ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.3.0, readable-stre string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.6.0: +readable-stream@^3.1.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -4482,10 +4740,10 @@ readable-stream@~1.0.15: isarray "0.0.1" string_decoder "~0.10.x" -readdirp@~3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" - integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -4498,9 +4756,9 @@ regexp.prototype.flags@^1.3.1: define-properties "^1.1.3" regexpp@^3.0.0, regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== request@^2.79.0, request@^2.88.2: version "2.88.2" @@ -4542,6 +4800,11 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= +resolve-alpn@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.1.2.tgz#30b60cfbb0c0b8dc897940fe13fe255afcdd4d28" + integrity sha512-8OyfzhAtA32LVUsJSke3auIyINcwdh5l3cvYKdKO0nvsYSKuiLfTM5i78PJswFPT8y6cPW+L1v6/hE95chcpDA== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -4562,6 +4825,13 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz#26391bcc3174f750f9a79eacc40a12a5c42d7723" + integrity sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw== + dependencies: + lowercase-keys "^2.0.0" + rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -4645,6 +4915,11 @@ seek-bzip@^1.0.5: dependencies: commander "^2.8.1" +semaphore-async-await@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz#857bef5e3644601ca4b9570b87e9df5ca12974fa" + integrity sha1-hXvvXjZEYBykuVcLh+nfXKEpdPo= + semaphore@>=1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" @@ -4660,10 +4935,10 @@ semver@6.3.0, semver@^6.0.0, semver@^6.1.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2, semver@^7.2.1, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== +semver@^7.2, semver@^7.2.1, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" @@ -4821,26 +5096,27 @@ snake-case@^3.0.4: dot-case "^3.0.4" tslib "^2.0.3" -socks-proxy-agent@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" - integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== +socks-proxy-agent@5, socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== dependencies: - agent-base "~4.2.1" - socks "~2.3.2" + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" -socks@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== +socks@^2.3.3: + version "2.6.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" + integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== dependencies: - ip "1.1.5" + ip "^1.1.5" smart-buffer "^4.1.0" -solidity-comments-extractor@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.4.tgz#ce420aef23641ffd0131c7d80ba85b6e1e42147e" - integrity sha512-58glBODwXIKMaQ7rfcJOrWtFQMMOK28tJ0/LcB5Xhu7WtAxk4UX2fpgKPuaL41XjMp/y0gAa1MTLqk018wuSzA== +solidity-comments-extractor@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz#99d8f1361438f84019795d928b931f4e5c39ca19" + integrity sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw== source-map-support@0.5.19: version "0.5.19" @@ -4877,9 +5153,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== sprintf-js@1.1.2: version "1.1.2" @@ -4949,7 +5225,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.2.0: +string-width@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== @@ -4959,14 +5235,15 @@ string-width@^4.2.0: strip-ansi "^6.0.0" string.prototype.matchall@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" - integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + version "4.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz#59370644e1db7e4c0c045277690cf7b01203c4da" + integrity sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q== dependencies: call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has-symbols "^1.0.1" + es-abstract "^1.18.2" + get-intrinsic "^1.1.1" + has-symbols "^1.0.2" internal-slot "^1.0.3" regexp.prototype.flags "^1.3.1" side-channel "^1.0.4" @@ -5151,11 +5428,6 @@ through@^2.3.8: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= -thunkify@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" - integrity sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0= - timed-out@^4.0.0, timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" @@ -5207,9 +5479,9 @@ tslib@1.9.3: integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tslib@^2.0.1, tslib@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" - integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + version "2.3.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" + integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== tunnel-agent@^0.6.0: version "0.6.0" @@ -5292,15 +5564,15 @@ ultron@~1.1.0: resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== -unbox-primitive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" - integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" - has-bigints "^1.0.0" - has-symbols "^1.0.0" - which-boxed-primitive "^1.0.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" unbzip2-stream@^1.0.9: version "1.4.3" @@ -5310,6 +5582,11 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -5390,9 +5667,9 @@ url-to-options@^1.0.1: integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= utf-8-validate@^5.0.2: - version "5.0.4" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.4.tgz#72a1735983ddf7a05a43a9c6b67c5ce1c910f9b8" - integrity sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q== + version "5.0.5" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1" + integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ== dependencies: node-gyp-build "^4.2.0" @@ -5407,9 +5684,9 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util@^0.12.0: - version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - integrity sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog== + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== dependencies: inherits "^2.0.3" is-arguments "^1.0.4" @@ -5490,15 +5767,15 @@ web3-bzz@1.2.6: swarm-js "0.1.39" underscore "1.9.1" -web3-bzz@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.4.tgz#9be529353c4063bc68395370cb5d8e414c6b6c87" - integrity sha512-DBRVQB8FAgoAtZCpp2GAGPCJjgBgsuwOKEasjV044AAZiONpXcKHbkO6G1SgItIixnrJsRJpoGLGw52Byr6FKw== +web3-bzz@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde" + integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw== dependencies: "@types/node" "^12.12.6" got "9.6.0" swarm-js "^0.1.40" - underscore "1.9.1" + underscore "1.12.1" web3-core-helpers@1.2.6: version "1.2.6" @@ -5509,14 +5786,14 @@ web3-core-helpers@1.2.6: web3-eth-iban "1.2.6" web3-utils "1.2.6" -web3-core-helpers@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.4.tgz#b8549740bf24d5c71688d89c3cdd802d8d36b4e4" - integrity sha512-n7BqDalcTa1stncHMmrnFtyTgDhX5Fy+avNaHCf6qcOP2lwTQC8+mdHVBONWRJ6Yddvln+c8oY/TAaB6PzWK0A== +web3-core-helpers@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74" + integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA== dependencies: - underscore "1.9.1" - web3-eth-iban "1.3.4" - web3-utils "1.3.4" + underscore "1.12.1" + web3-eth-iban "1.3.6" + web3-utils "1.3.6" web3-core-method@1.2.6: version "1.2.6" @@ -5529,17 +5806,17 @@ web3-core-method@1.2.6: web3-core-subscriptions "1.2.6" web3-utils "1.2.6" -web3-core-method@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.4.tgz#6c2812d96dd6c811b9e6c8a5d25050d2c22b9527" - integrity sha512-JxmQrujsAWYRRN77P/RY7XuZDCzxSiiQJrgX/60Lfyf7FF1Y0le4L/UMCi7vUJnuYkbU1Kfl9E0udnqwyPqlvQ== +web3-core-method@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae" + integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg== dependencies: "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.3.4" - web3-core-promievent "1.3.4" - web3-core-subscriptions "1.3.4" - web3-utils "1.3.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" + web3-core-promievent "1.3.6" + web3-core-subscriptions "1.3.6" + web3-utils "1.3.6" web3-core-promievent@1.2.6: version "1.2.6" @@ -5549,10 +5826,10 @@ web3-core-promievent@1.2.6: any-promise "1.3.0" eventemitter3 "3.1.2" -web3-core-promievent@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.4.tgz#d166239012d91496cdcbe91d5d54071ea818bc73" - integrity sha512-V61dZIeBwogg6hhZZUt0qL9hTp1WDhnsdjP++9fhTDr4vy/Gz8T5vibqT2LLg6lQC8i+Py33yOpMeMNjztaUaw== +web3-core-promievent@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9" + integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw== dependencies: eventemitter3 "4.0.4" @@ -5567,17 +5844,17 @@ web3-core-requestmanager@1.2.6: web3-providers-ipc "1.2.6" web3-providers-ws "1.2.6" -web3-core-requestmanager@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.4.tgz#e105ced735c2b5fcedd5771e0ecf9879ae9c373f" - integrity sha512-xriouCrhVnVDYQ04TZXdEREZm0OOJzkSEsoN5bu4JYsA6e/HzROeU+RjDpMUxFMzN4wxmFZ+HWbpPndS3QwMag== +web3-core-requestmanager@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a" + integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA== dependencies: - underscore "1.9.1" + underscore "1.12.1" util "^0.12.0" - web3-core-helpers "1.3.4" - web3-providers-http "1.3.4" - web3-providers-ipc "1.3.4" - web3-providers-ws "1.3.4" + web3-core-helpers "1.3.6" + web3-providers-http "1.3.6" + web3-providers-ipc "1.3.6" + web3-providers-ws "1.3.6" web3-core-subscriptions@1.2.6: version "1.2.6" @@ -5588,14 +5865,14 @@ web3-core-subscriptions@1.2.6: underscore "1.9.1" web3-core-helpers "1.2.6" -web3-core-subscriptions@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.4.tgz#7b00e92bde21f792620cd02e6e508fcf4f4c31d3" - integrity sha512-drVHVDxh54hv7xmjIm44g4IXjfGj022fGw4/meB5R2D8UATFI40F73CdiBlyqk3DysP9njDOLTJFSQvEkLFUOg== +web3-core-subscriptions@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415" + integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g== dependencies: eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.3.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" web3-core@1.2.6: version "1.2.6" @@ -5609,18 +5886,18 @@ web3-core@1.2.6: web3-core-requestmanager "1.2.6" web3-utils "1.2.6" -web3-core@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.4.tgz#2cc7ba7f35cc167f7a0a46fd5855f86e51d34ce8" - integrity sha512-7OJu46RpCEfTerl+gPvHXANR2RkLqAfW7l2DAvQ7wN0pnCzl9nEfdgW6tMhr31k3TR2fWucwKzCyyxMGzMHeSA== +web3-core@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504" + integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q== dependencies: "@types/bn.js" "^4.11.5" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.3.4" - web3-core-method "1.3.4" - web3-core-requestmanager "1.3.4" - web3-utils "1.3.4" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-requestmanager "1.3.6" + web3-utils "1.3.6" web3-eth-abi@1.2.6: version "1.2.6" @@ -5631,14 +5908,14 @@ web3-eth-abi@1.2.6: underscore "1.9.1" web3-utils "1.2.6" -web3-eth-abi@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.4.tgz#10f5d8b6080dbb6cbaa1bcef7e0c70573da6566f" - integrity sha512-PVSLXJ2dzdXsC+R24llIIEOS6S1KhG5qwNznJjJvXZFe3sqgdSe47eNvwUamZtCBjcrdR/HQr+L/FTxqJSf80Q== +web3-eth-abi@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9" + integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ== dependencies: "@ethersproject/abi" "5.0.7" - underscore "1.9.1" - web3-utils "1.3.4" + underscore "1.12.1" + web3-utils "1.3.6" web3-eth-accounts@1.2.6: version "1.2.6" @@ -5658,22 +5935,22 @@ web3-eth-accounts@1.2.6: web3-core-method "1.2.6" web3-utils "1.2.6" -web3-eth-accounts@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.4.tgz#cf513d78531c13ce079a5e7862820570350e79a5" - integrity sha512-gz9ReSmQEjqbYAjpmAx+UZF4CVMbyS4pfjSYWGAnNNI+Xz0f0u0kCIYXQ1UEaE+YeLcYiE+ZlZdgg6YoatO5nA== +web3-eth-accounts@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474" + integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA== dependencies: crypto-browserify "3.12.0" eth-lib "0.2.8" ethereumjs-common "^1.3.2" ethereumjs-tx "^2.1.1" scrypt-js "^3.0.1" - underscore "1.9.1" + underscore "1.12.1" uuid "3.3.2" - web3-core "1.3.4" - web3-core-helpers "1.3.4" - web3-core-method "1.3.4" - web3-utils "1.3.4" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-utils "1.3.6" web3-eth-contract@1.2.6: version "1.2.6" @@ -5690,20 +5967,20 @@ web3-eth-contract@1.2.6: web3-eth-abi "1.2.6" web3-utils "1.2.6" -web3-eth-contract@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.4.tgz#1ea2dd71be0c4a9cf4772d4f75dbb2fa99751472" - integrity sha512-Fvy8ZxUksQY2ePt+XynFfOiSqxgQtMn4m2NJs6VXRl2Inl17qyRi/nIJJVKTcENLocm+GmZ/mxq2eOE5u02nPg== +web3-eth-contract@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866" + integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA== dependencies: "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.3.4" - web3-core-helpers "1.3.4" - web3-core-method "1.3.4" - web3-core-promievent "1.3.4" - web3-core-subscriptions "1.3.4" - web3-eth-abi "1.3.4" - web3-utils "1.3.4" + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-promievent "1.3.6" + web3-core-subscriptions "1.3.6" + web3-eth-abi "1.3.6" + web3-utils "1.3.6" web3-eth-ens@1.2.6: version "1.2.6" @@ -5719,20 +5996,20 @@ web3-eth-ens@1.2.6: web3-eth-contract "1.2.6" web3-utils "1.2.6" -web3-eth-ens@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.4.tgz#a7e4bb18481fb0e2ce5bfb3b3da2fbb0ad78cefe" - integrity sha512-b0580tQyQwpV2wyacwQiBEfQmjCUln5iPhge3IBIMXaI43BUNtH3lsCL9ERFQeOdweB4o+6rYyNYr6xbRcSytg== +web3-eth-ens@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175" + integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.3.4" - web3-core-helpers "1.3.4" - web3-core-promievent "1.3.4" - web3-eth-abi "1.3.4" - web3-eth-contract "1.3.4" - web3-utils "1.3.4" + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-promievent "1.3.6" + web3-eth-abi "1.3.6" + web3-eth-contract "1.3.6" + web3-utils "1.3.6" web3-eth-iban@1.2.6: version "1.2.6" @@ -5742,13 +6019,13 @@ web3-eth-iban@1.2.6: bn.js "4.11.8" web3-utils "1.2.6" -web3-eth-iban@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.4.tgz#5eb7a564e0dcf68730d68f48f95dd207cd173d81" - integrity sha512-Y7/hLjVvIN/OhaAyZ8L/hxbTqVX6AFTl2RwUXR6EEU9oaLydPcMjAx/Fr8mghUvQS3QJSr+UGubP3W4SkyNiYw== +web3-eth-iban@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0" + integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ== dependencies: bn.js "^4.11.9" - web3-utils "1.3.4" + web3-utils "1.3.6" web3-eth-personal@1.2.6: version "1.2.6" @@ -5762,17 +6039,17 @@ web3-eth-personal@1.2.6: web3-net "1.2.6" web3-utils "1.2.6" -web3-eth-personal@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.4.tgz#0d0e0abea3447283d7ee5658ed312990c9bf48dd" - integrity sha512-JiTbaktYVk1j+S2EDooXAhw5j/VsdvZfKRmHtXUe/HizPM9ETXmj1+ne4RT6m+950jQ7DJwUF3XU1FKYNtEDwQ== +web3-eth-personal@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0" + integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ== dependencies: "@types/node" "^12.12.6" - web3-core "1.3.4" - web3-core-helpers "1.3.4" - web3-core-method "1.3.4" - web3-net "1.3.4" - web3-utils "1.3.4" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-net "1.3.6" + web3-utils "1.3.6" web3-eth@1.2.6: version "1.2.6" @@ -5793,24 +6070,24 @@ web3-eth@1.2.6: web3-net "1.2.6" web3-utils "1.2.6" -web3-eth@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.4.tgz#7c4607685e66a1c43e3e315e526c959f24f96907" - integrity sha512-8OIVMLbvmx+LB5RZ4tDhXuFGWSdNMrCZ4HM0+PywQ08uEcmAcqTMFAn4vdPii+J8gCatZR501r1KdzX3SDLoPw== - dependencies: - underscore "1.9.1" - web3-core "1.3.4" - web3-core-helpers "1.3.4" - web3-core-method "1.3.4" - web3-core-subscriptions "1.3.4" - web3-eth-abi "1.3.4" - web3-eth-accounts "1.3.4" - web3-eth-contract "1.3.4" - web3-eth-ens "1.3.4" - web3-eth-iban "1.3.4" - web3-eth-personal "1.3.4" - web3-net "1.3.4" - web3-utils "1.3.4" +web3-eth@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c" + integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA== + dependencies: + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-subscriptions "1.3.6" + web3-eth-abi "1.3.6" + web3-eth-accounts "1.3.6" + web3-eth-contract "1.3.6" + web3-eth-ens "1.3.6" + web3-eth-iban "1.3.6" + web3-eth-personal "1.3.6" + web3-net "1.3.6" + web3-utils "1.3.6" web3-net@1.2.6: version "1.2.6" @@ -5821,14 +6098,14 @@ web3-net@1.2.6: web3-core-method "1.2.6" web3-utils "1.2.6" -web3-net@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.4.tgz#d76158bf0b4a7b3b14352b4f95472db9efc57a2a" - integrity sha512-wVyqgVC3Zt/0uGnBiR3GpnsS8lvOFTDgWZMxAk9C6Guh8aJD9MUc7pbsw5rHrPUVe6S6RUfFJvh/Xq8oMIQgSw== +web3-net@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41" + integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw== dependencies: - web3-core "1.3.4" - web3-core-method "1.3.4" - web3-utils "1.3.4" + web3-core "1.3.6" + web3-core-method "1.3.6" + web3-utils "1.3.6" web3-providers-http@1.2.6: version "1.2.6" @@ -5838,12 +6115,12 @@ web3-providers-http@1.2.6: web3-core-helpers "1.2.6" xhr2-cookies "1.1.0" -web3-providers-http@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.4.tgz#89389e18e27148faa2fef58842740ffadbdda8cc" - integrity sha512-aIg/xHXvxpqpFU70sqfp+JC3sGkLfAimRKTUhG4oJZ7U+tTcYTHoxBJj+4A3Id4JAoKiiv0k1/qeyQ8f3rMC3g== +web3-providers-http@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2" + integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q== dependencies: - web3-core-helpers "1.3.4" + web3-core-helpers "1.3.6" xhr2-cookies "1.1.0" web3-providers-ipc@1.2.6: @@ -5855,14 +6132,14 @@ web3-providers-ipc@1.2.6: underscore "1.9.1" web3-core-helpers "1.2.6" -web3-providers-ipc@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.4.tgz#b963518989b1b7847063cdd461ff73b83855834a" - integrity sha512-E0CvXEJElr/TIlG1YfJeO3Le5NI/4JZM+1SsEdiPIfBUAJN18oOoum138EBGKv5+YaLKZUtUuJSXWjIIOR/0Ig== +web3-providers-ipc@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a" + integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA== dependencies: oboe "2.1.5" - underscore "1.9.1" - web3-core-helpers "1.3.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" web3-providers-ws@1.2.6: version "1.2.6" @@ -5873,14 +6150,14 @@ web3-providers-ws@1.2.6: underscore "1.9.1" web3-core-helpers "1.2.6" -web3-providers-ws@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.4.tgz#b94c2e0ec51a0c472abdec53a472b5bf8176bec1" - integrity sha512-WBd9hk2fUAdrbA3kUyUk94ZeILtE6txLeoVVvIKAw2bPegx+RjkLyxC1Du0oceKgQ/qQWod8CCzl1E/GgTP+MQ== +web3-providers-ws@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac" + integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ== dependencies: eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.3.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" websocket "^1.0.32" web3-shh@1.2.6: @@ -5893,15 +6170,15 @@ web3-shh@1.2.6: web3-core-subscriptions "1.2.6" web3-net "1.2.6" -web3-shh@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.4.tgz#b7d29e118f26416c1a74575e585be379cc01a77a" - integrity sha512-zoeww5mxLh3xKcqbX85irQbtFe5pc5XwrgjvmdMkhkOdZzPASlWOgqzUFtaPykpLwC3yavVx4jG5RqifweXLUA== +web3-shh@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20" + integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw== dependencies: - web3-core "1.3.4" - web3-core-method "1.3.4" - web3-core-subscriptions "1.3.4" - web3-net "1.3.4" + web3-core "1.3.6" + web3-core-method "1.3.6" + web3-core-subscriptions "1.3.6" + web3-net "1.3.6" web3-utils@1.2.6: version "1.2.6" @@ -5917,10 +6194,10 @@ web3-utils@1.2.6: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.4.tgz#9b1aa30d7549f860b573e7bb7e690999e7192198" - integrity sha512-/vC2v0MaZNpWooJfpRw63u0Y3ag2gNjAWiLtMSL6QQLmCqCy4SQIndMt/vRyx0uMoeGt1YTwSXEcHjUzOhLg0A== +web3-utils@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" + integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== dependencies: bn.js "^4.11.9" eth-lib "0.2.8" @@ -5928,7 +6205,7 @@ web3-utils@1.3.4: ethjs-unit "0.1.6" number-to-bn "1.7.0" randombytes "^2.1.0" - underscore "1.9.1" + underscore "1.12.1" utf8 "3.0.0" web3@=1.2.6: @@ -5946,22 +6223,22 @@ web3@=1.2.6: web3-utils "1.2.6" web3@^1.2.9: - version "1.3.4" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.4.tgz#31e014873360aa5840eb17f9f171190c967cffb7" - integrity sha512-D6cMb2EtTMLHgdGbkTPGl/Qi7DAfczR+Lp7iFX3bcu/bsD9V8fZW69hA8v5cRPNGzXUwVQebk3bS17WKR4cD2w== - dependencies: - web3-bzz "1.3.4" - web3-core "1.3.4" - web3-eth "1.3.4" - web3-eth-personal "1.3.4" - web3-net "1.3.4" - web3-shh "1.3.4" - web3-utils "1.3.4" + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc" + integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA== + dependencies: + web3-bzz "1.3.6" + web3-core "1.3.6" + web3-eth "1.3.6" + web3-eth-personal "1.3.6" + web3-net "1.3.6" + web3-shh "1.3.6" + web3-utils "1.3.6" websocket@^1.0.32: - version "1.0.33" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.33.tgz#407f763fc58e74a3fa41ca3ae5d78d3f5e3b82a5" - integrity sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA== + version "1.0.34" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" + integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== dependencies: bufferutil "^4.0.1" debug "^2.2.0" @@ -5970,7 +6247,7 @@ websocket@^1.0.32: utf-8-validate "^5.0.2" yaeti "^0.0.6" -which-boxed-primitive@^1.0.1: +which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -6037,17 +6314,10 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - ws@^7.0.0: - version "7.4.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" - integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw== + version "7.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.0.tgz#0033bafea031fb9df041b2026fc72a571ca44691" + integrity sha512-6ezXvzOZupqKj4jUqbQ9tXuJNo+BR2gU8fFRk3XCP3e0G6WT414u5ELe6Y0vtp7kmSJ3F7YWObSNr1ESsgi4vw== ws@~7.2.0: version "7.2.5" @@ -6106,7 +6376,7 @@ xregexp@2.0.0: resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= -xtend@^4.0.0, xtend@~4.0.0: +xtend@^4.0.0, xtend@^4.0.1, xtend@^4.0.2, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==