From 4ee20965fa5450879a9b211063a11f411b88437f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Tue, 29 Aug 2023 15:16:05 +0200 Subject: [PATCH] chore: chain/actors: Use type proxies instead of versioned GST imports --- api/api_full.go | 7 ++--- api/api_gateway.go | 2 +- api/api_storage.go | 7 ++++- api/proxy_gen.go | 15 +++++---- api/types.go | 2 +- api/v0api/full.go | 7 ++--- api/v0api/gateway.go | 2 +- api/v0api/proxy_gen.go | 15 +++++---- api/v0api/v1_wrapper.go | 2 +- build/openrpc/full.json.gz | Bin 34093 -> 34089 bytes build/openrpc/gateway.json.gz | Bin 10423 -> 10423 bytes build/openrpc/miner.json.gz | Bin 15937 -> 15938 bytes build/openrpc/worker.json.gz | Bin 5240 -> 5240 bytes chain/actors/builtin/market/state.go.template | 2 +- chain/actors/builtin/market/v0.go | 2 +- chain/actors/builtin/market/v10.go | 2 +- chain/actors/builtin/market/v11.go | 2 +- chain/actors/builtin/market/v12.go | 2 +- chain/actors/builtin/market/v2.go | 2 +- chain/actors/builtin/market/v3.go | 2 +- chain/actors/builtin/market/v4.go | 2 +- chain/actors/builtin/market/v5.go | 2 +- chain/actors/builtin/market/v6.go | 2 +- chain/actors/builtin/market/v7.go | 2 +- chain/actors/builtin/market/v8.go | 2 +- chain/actors/builtin/market/v9.go | 2 +- chain/actors/builtin/miner/actor.go.template | 29 ++++++++++++++++++ chain/actors/builtin/miner/miner.go | 29 ++++++++++++++++++ .../actors/builtin/verifreg/actor.go.template | 4 ++- chain/actors/builtin/verifreg/verifreg.go | 2 ++ cmd/lotus-miner/precommits-info.go | 5 ++- cmd/lotus-miner/sectors.go | 29 +++++++++--------- node/impl/full/state.go | 12 +++----- node/impl/storminer.go | 6 ++-- storage/pipeline/commit_batch.go | 2 +- storage/pipeline/precommit_batch.go | 2 +- storage/pipeline/sealing.go | 2 +- storage/pipeline/states_failed.go | 2 +- storage/pipeline/states_replica_update.go | 2 +- storage/pipeline/states_sealing.go | 2 +- storage/wdpost/wdpost_changehandler.go | 6 ++-- storage/wdpost/wdpost_journal.go | 3 +- storage/wdpost/wdpost_run.go | 2 +- storage/wdpost/wdpost_run_faults.go | 2 +- storage/wdpost/wdpost_sched.go | 5 ++- 45 files changed, 145 insertions(+), 86 deletions(-) diff --git a/api/api_full.go b/api/api_full.go index 0e128b398b5..e5f88936ace 100644 --- a/api/api_full.go +++ b/api/api_full.go @@ -21,7 +21,6 @@ import ( "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin/v8/paych" "github.com/filecoin-project/go-state-types/builtin/v9/market" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -29,7 +28,7 @@ import ( apitypes "github.com/filecoin-project/lotus/api/types" "github.com/filecoin-project/lotus/chain/actors/builtin" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/builtin/power" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types/ethtypes" @@ -499,9 +498,9 @@ type FullNode interface { // expiration epoch StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read // StateSectorExpiration returns epoch at which given sector will expire - StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read + StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read // StateSectorPartition finds deadline/partition with the specified sector - StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read + StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read // StateSearchMsg looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed // // NOTE: If a replacing message is found on chain, this method will return diff --git a/api/api_gateway.go b/api/api_gateway.go index f6740e1e067..3f7bc21cc1d 100644 --- a/api/api_gateway.go +++ b/api/api_gateway.go @@ -9,10 +9,10 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-jsonrpc" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/dline" apitypes "github.com/filecoin-project/lotus/api/types" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types/ethtypes" "github.com/filecoin-project/lotus/node/modules/dtypes" diff --git a/api/api_storage.go b/api/api_storage.go index a9e632998da..d5b3d5c1d67 100644 --- a/api/api_storage.go +++ b/api/api_storage.go @@ -19,10 +19,10 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin/v9/market" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" abinetwork "github.com/filecoin-project/go-state-types/network" builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/storage/pipeline/sealiface" "github.com/filecoin-project/lotus/storage/sealer/fsutil" @@ -461,10 +461,15 @@ type SectorOffset struct { // DealInfo is a tuple of deal identity and its schedule type PieceDealInfo struct { + // "Old" builtin-market deal info PublishCid *cid.Cid DealID abi.DealID DealProposal *market.DealProposal + + // Common deal info DealSchedule DealSchedule + + // Best-effort deal asks KeepUnsealed bool } diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 31d416b0a3a..79bf0a73811 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -26,7 +26,6 @@ import ( "github.com/filecoin-project/go-jsonrpc/auth" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/builtin/v8/paych" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -35,7 +34,7 @@ import ( apitypes "github.com/filecoin-project/lotus/api/types" builtinactors "github.com/filecoin-project/lotus/chain/actors/builtin" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/chain/types/ethtypes" "github.com/filecoin-project/lotus/journal/alerting" @@ -560,11 +559,11 @@ type FullNodeMethods struct { StateSearchMsg func(p0 context.Context, p1 types.TipSetKey, p2 cid.Cid, p3 abi.ChainEpoch, p4 bool) (*MsgLookup, error) `perm:"read"` - StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"` + StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"` StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"` - StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"` + StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"` StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) `perm:"read"` @@ -3789,14 +3788,14 @@ func (s *FullNodeStub) StateSearchMsg(p0 context.Context, p1 types.TipSetKey, p2 return nil, ErrNotSupported } -func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) { +func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) { if s.Internal.StateSectorExpiration == nil { return nil, ErrNotSupported } return s.Internal.StateSectorExpiration(p0, p1, p2, p3) } -func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) { +func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) { return nil, ErrNotSupported } @@ -3811,14 +3810,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address return nil, ErrNotSupported } -func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) { +func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) { if s.Internal.StateSectorPartition == nil { return nil, ErrNotSupported } return s.Internal.StateSectorPartition(p0, p1, p2, p3) } -func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) { +func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) { return nil, ErrNotSupported } diff --git a/api/types.go b/api/types.go index e6ffaead259..6e98a4de44b 100644 --- a/api/types.go +++ b/api/types.go @@ -19,8 +19,8 @@ import ( datatransfer "github.com/filecoin-project/go-data-transfer/v2" "github.com/filecoin-project/go-fil-markets/retrievalmarket" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/modules/dtypes" ) diff --git a/api/v0api/full.go b/api/v0api/full.go index 322f7244954..d92d5a95c8e 100644 --- a/api/v0api/full.go +++ b/api/v0api/full.go @@ -15,7 +15,6 @@ import ( "github.com/filecoin-project/go-fil-markets/storagemarket" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/builtin/v8/paych" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -23,7 +22,7 @@ import ( "github.com/filecoin-project/lotus/api" apitypes "github.com/filecoin-project/lotus/api/types" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" marketevents "github.com/filecoin-project/lotus/markets/loggers" "github.com/filecoin-project/lotus/node/modules/dtypes" @@ -450,9 +449,9 @@ type FullNode interface { // expiration epoch StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read // StateSectorExpiration returns epoch at which given sector will expire - StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read + StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorExpiration, error) //perm:read // StateSectorPartition finds deadline/partition with the specified sector - StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read + StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) //perm:read // StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed // // NOTE: If a replacing message is found on chain, this method will return diff --git a/api/v0api/gateway.go b/api/v0api/gateway.go index 9f6c54fa9fc..60885a1b710 100644 --- a/api/v0api/gateway.go +++ b/api/v0api/gateway.go @@ -8,11 +8,11 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/dline" abinetwork "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/modules/dtypes" ) diff --git a/api/v0api/proxy_gen.go b/api/v0api/proxy_gen.go index 29f6f67736c..f2f3973c12e 100644 --- a/api/v0api/proxy_gen.go +++ b/api/v0api/proxy_gen.go @@ -17,7 +17,6 @@ import ( "github.com/filecoin-project/go-fil-markets/storagemarket" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/builtin/v8/paych" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -25,7 +24,7 @@ import ( "github.com/filecoin-project/lotus/api" apitypes "github.com/filecoin-project/lotus/api/types" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" marketevents "github.com/filecoin-project/lotus/markets/loggers" "github.com/filecoin-project/lotus/node/modules/dtypes" @@ -355,11 +354,11 @@ type FullNodeMethods struct { StateSearchMsgLimited func(p0 context.Context, p1 cid.Cid, p2 abi.ChainEpoch) (*api.MsgLookup, error) `perm:"read"` - StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) `perm:"read"` + StateSectorExpiration func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) `perm:"read"` StateSectorGetInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorOnChainInfo, error) `perm:"read"` - StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) `perm:"read"` + StateSectorPartition func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) `perm:"read"` StateSectorPreCommitInfo func(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) `perm:"read"` @@ -2235,14 +2234,14 @@ func (s *FullNodeStub) StateSearchMsgLimited(p0 context.Context, p1 cid.Cid, p2 return nil, ErrNotSupported } -func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) { +func (s *FullNodeStruct) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) { if s.Internal.StateSectorExpiration == nil { return nil, ErrNotSupported } return s.Internal.StateSectorExpiration(p0, p1, p2, p3) } -func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorExpiration, error) { +func (s *FullNodeStub) StateSectorExpiration(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorExpiration, error) { return nil, ErrNotSupported } @@ -2257,14 +2256,14 @@ func (s *FullNodeStub) StateSectorGetInfo(p0 context.Context, p1 address.Address return nil, ErrNotSupported } -func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) { +func (s *FullNodeStruct) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) { if s.Internal.StateSectorPartition == nil { return nil, ErrNotSupported } return s.Internal.StateSectorPartition(p0, p1, p2, p3) } -func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*lminer.SectorLocation, error) { +func (s *FullNodeStub) StateSectorPartition(p0 context.Context, p1 address.Address, p2 abi.SectorNumber, p3 types.TipSetKey) (*miner.SectorLocation, error) { return nil, ErrNotSupported } diff --git a/api/v0api/v1_wrapper.go b/api/v0api/v1_wrapper.go index f58b0420f32..265674e718f 100644 --- a/api/v0api/v1_wrapper.go +++ b/api/v0api/v1_wrapper.go @@ -12,11 +12,11 @@ import ( "github.com/filecoin-project/go-fil-markets/storagemarket" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/api/v1api" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" marketevents "github.com/filecoin-project/lotus/markets/loggers" ) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 38d2669e4469f841b3398e90ab9e460117f19560..6bfa1da3a463443480fc192b1b35f5d6a727efe2 100644 GIT binary patch delta 30639 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�M>a8@A_y?@a;c_jg$0UDR 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 LeephehTsMOSKUr* delta 30705 zcmZ^qQ+Q@Ux2aA{}zoE2h^!!NKOXY4R34bB|<+bn6I*9{)MfWJa6D9dCNS3hip7;_%?3esg-x7N6 zQ=zlJsd>R8umB)jY0i%0Uy$*;!oU)V#K2U*mx;2#dcfX^mB1>1IPQc@n^^$^e%Mh$ zLFWnNzl`k{Pu_-mPtRT~Grlb^oAxT2CWHA8yX0QBUC*G@ukX{S)>p0d5~ID-M2D2G z@b9l20(q_OKOABv#?n8ziPP2d+ViCm=x&T6GiuCg8+7%!@e6F^smjOF6H1i&((srv z@s%0N3Fdtg0l#qpaDpIuf^HI7nu5^q>oSZYbB8Q@VL1LM?H0H~ha4kBv-E`X%VGMA zJ&C3w2L*kdgC;O_X`{}fZ92ifWEk3J^H0(F^ZnAQaxL6Y?+zSiudBB++I_=#hvrl7 z^smiab-GRXUjlleaj)!f4czCqV$NNdD;IU3>8(y&7V2mKKSutFm;pd?ivD4VQ)5&; z;$XPA1ne39cV!=$e}Gp+ROkjt(g;Tr9UQKR2kyWM^8_z}Ith^)V~GZ^{r!pT@3oS# zBh`*9aOPY=hp?Q0W6Ev)jS(0@jhHGCME-^b68i%61G~n9>TONcv4Ezv{ho4|AK`uE zbQ{`S<#(w8#Qka|R-cst3Wp_pC6%5g%(Q)c*KB^w#Nyy={}uBSfDl;t>tv?oR@|X! zdX&WN&&jv`h$>;x_;ED$%aqUEfN)8CsbHj+7WmWhB!&?ARi1P2(M zshWa6Q-5*28IfXD;GYqM8{VX|*^M0J^d3(4& zK}AgKx4sCcyA}?AKuQR3E0dq4Cd0y{zFuWz;zznQWPEEF-F>(!oum_f}vr&yt~H@oH;lC{qC4+?ZORD0y8_g5J~d?zW;Yz8 z%n{yVvEKo+fFEti1rkKA0$1G=^V?tKkgTL#t*x8-s-6Twp$Q}dpjFshg+z|t-r9qH zw@6OEwQeQ!S)HV3+e^N_%o(08ZF?zxHhK>OEw}1 zI!O)`HJI0aiG;KqTUe47kcDBvyyXF#g}*?-Sl^fI5aDY85S@Mj`R?XY*(HS zuAB|M=bN!UpqS%bNO>oZJ+Z2q) z5wdpDTq+6gJr80SFsMEts{BLmdA+tWc;HcfkuF5WA52jE9^swrdmk2V398!<_-9^5 z@jiH8g$O2%u^s>u5TAH}0`{OWqExLV( z35ZYuA6Xi=3Aksv$eX~4F{mdN>QWy?n)jF_ZO?z0wI6o9#ff6efFBgUTPO;YzIbo4 zjRk=Wu9FgpK*=G-E*>?)l1k$53F7a=Pb9}l-zfFJ0CLLb2o6AiJ~e^#Gf zv>R?ck|9vI8;!N-(R4+eXC>RpfuYn=v<7#J4^Y)mR-NNhee zal6qkiQ+<{Jhl1HD*1P!Z!Fo~)5q)%fzn(aBMXDYM&mty-oxYVtkHQzAOIl9AiClD z7q|hHcXT599=PEJ3QthL(-S9;3*q#=p8`8>ZBs=af{Q9r+@aUq!RL3={;2V;*y5!@ za4YV_9DMF}{dwkQrS{J)H1>{c7NF&Hb#OgP?=G|6+Z)`z_4jQm)`s)Zt46xtB>@UH z-xtx@OA%9%Nl-dw!6Ac#|26;tQ&Z(u!fT-wG{=gZwfVQQbH11wU#YCWomT>zEmcM= z`SlsNL2&oemfdAX-n4hYs>z{MJkZ(5d|}BuORJJIO6zuk476pZ>b0`2U%6S+-aC(B zZuZOmv_a+0hl2|ppTF%kLdClgVDN>&3ZR_A;mAQbz;>#_jFw3tBL#TqS=-NRm$Dxv zd7@N>;8N=C?^M7f%uCvYf1|LKG$YqH412JTCf<)ZNpnVfd}fCX66#Ie!3Ny+Q(azP zKYI5TcK${Qw5GcI;N!Z`{8eFcs6EnZIrX2-ZCB=+2*&d}la20f;6o~DADT~O|N(IwAWwMwY8X^D<9 z%tyoV_gxRess&YVl_SPt z=~&LJmww~?N?}bmD!RrA1Ou;b!vJ|;fKZ1hMNq}DXqRd(zzRp8c@I>;xXB8a3P3h{Y$E-Uau}XZjU> z>&x(&kUbXhrWIh-e7xkM>sDcvs6j2Y?F95dIJ#+t<3KYxMk!YiD`d3i)GvO}xUt{JNXUtd5PNSeQV(ry_Ru+6r(!lJFo ze)XSLjGY?!+3O|KvIsI)AACD5KFoNgd1uYgx*E%xr-BlzW~wZ#{Sz7fjI^vYg77?s>afMS3gW}Y?L-`%`hZ+F2eB2TMW;J~=b z1~7T#R722I(X*efe_rr;_I4=f06e?(G*mpN2c==bLW*PvC8@_c~+)D#L5%*V68- z-Z$WN(Jp4qB;=CA0v(1Q8QRo}?_tFPmtnz*6v6om)N8{|8!KT&4}MevR$5pr({4Zj z^r^Lzuw7q_vY;G9b$PmV`Ikg+MMCxsV2GEY<=o}+JWjE?lDgq@*tdDyjzD;6{dGeP zHtD)Q(1gm$Wmk?9<`IgHLR&ehVh9e`I2)j|RXS4zV$qt!TYjQJ7~GJ}60{}O!z*2z zCcQ#u;GES=DlLo>NliLpewbjgP=SPF%1gztt3XCcl+=YG62}S@0LcZTIxmA_N*=Bw zza8FxC82l4A3=BGL#%&?Wnfr6B&JNGXBH%D2&6kAtWGnUn}WNm<8Y-KeeByHYmSLIX?D;+k^I(TJZI^W0Gl+zlLr$Z>*;xw>30*8XPu~ zY)U#H@0dMugiTP|-d~G_>Yy8j3Iy0;QuKjm-xy?^RLI+fJul33pM6fsb}9CUOB<~f z?#3Fp*)QYKd`P~92Bj=&t5z!~+#h4+Hi~gvj0a|Kcvv zEB!_B;S9S;%T}r>aQ@LJOq?gjoIHSTE6i_V6%H9^jZnB}wD*g5&OV5em;*TM=ud$R znJqbcduI+tEA_fZfXM1ziLyMScBeQZ($SAbRHSShC$p+Nvkx!N*38&%T$anTx9%?C zt#QE%FWk4qRB1I=9LprC(ZRYkRFL>#R9P+W1w$Yh_2oMgOwiB_dAXIHRt(eDZ=gXK zbBZ0*hvLpqtG|+kr*i(DhXKS&EIy8qw8IGCiY7k6IfjLI1?T^he^yekMy8YOA{%{uh-0-k!g0?&2hFHM1S73!S*uzH&cJGGoLNfGhy8!uwOT2T8`!4YqTW(=jFG<`U{SzSi~}oQNd5 z=>XQ$ac&TG|KqL*nu|? zuM>~JxR4XxzirUgL;zQkd>n%HjhdK=WHy;A{=yo1K$J%zz995HQ9me87zMC$T@bn! z($o851FiidK0^{$-4Q(Gdg}K;Uhrqt!#Bnlg62Bl9DL;{BXoL9iMM3iBc>u)oWEHmAl2IvR+qg3- z!wT28#3=-4|4~G^z^{%P7rsPe|B8C^RA~qE-w!q&wDWc#WH3=HVIevn2#;BFiAaKD zpihd!_2dmgK4~*xgI*>{kv(cmVI)r@V1zE|tAxTpnL+#NB1!Y~#r@9UxY}w&s$Q;0 zke;D&gONZe>{LQ$B@HABWzu17aUwO7HllxG5sT$+NC0RyW4#gvvgI1529*|Wmgd^7 z?!=2abs7v#FtS|t@pXKnFG5Q{q~6gR5|OzC1kxm;6=U+WJ5YHh(%^C7Jg_=SMsV0pz+{519W0LO{3SGrX7(G> zES=;E?Cvd8piN zKV-JQ0tiXB3|{4|-P`V_;H*Y4MqLKjY)I?2a zyQL|z+W%rKPlL6#FJX{jN?wr-HJ^CIm&IU9NnHSmol&MNs1pj92Ix>lccKoz5Oe01 zzk2hO!2~DEe4eR?MW+lXsMVnOUR+~mNHU~byuis};KWp@bF>&u?FPOkxeQ8vOVFAz z?Uc))o5)*S2rBd_I@V;t^gBt9a%Q++2FH%x2z70R-ttp6IHmvVD6=5C`I^qkX%MsjHKPfGhPR;H0?5Yhe{ZVN78Emky%QJF6#l_067+cB z-o$2fV&KxmHFR}=pWqQt3%sRra%Ejp%LZvm%mFdxt1()?-6s>1GdYwd2d@|yI1Vdr z7mtcwx{*hd#}?kbFa3%w-Iz|K;GDU+b!^3q)|nU)hiS}sa0>x>SlpPcLB(xsby`Ox zLZ%YT-wXI~5Sg{dKMW8-d~ZKL$Y$BM^z<&mr4h5J+;lC*f(NUy`U0d|#j9)68{VOD zBKgJtSr(ACch8fkZoux&4a~fmKUnQ|3%4_tBor_8Rp|}NYFjJO5LIL(+R6I9eu7qaduV zr?JUGl`7_E%Z}BvWMn&HW~P*~Zaj`c=bhP+&@IT_%qp`(9$6*Cktl8JHpFsSUoJq^ zxB!rOFHEuE89Az;&rjD}qw|$z`*@Zv+IH_WB_nP&Zopl{sg&}h+L5Ckk{+{}XNU3| z6W%Iix{Xxaq>r(~lrS^FoT=vy?-KQJ#Sq}g7Ue2zu-uF{Tx!yE#R7K$HlaN0+Ln+8wl6!u;6L;XplmRM3pkn%h=tZzf5OC0THY5Q8{;l+wSxlZ}M1 z-g5IvaXHiKE{`5OvALbdiLD7hZ4`EcYz}o&U_7)0*lWua36_3>bl(ar{AoJx_#J^> zwwgmvX<0DL6x4vfJkF!Uzt4b&mJg4?4LtX707uD7FGF!3e7oR&pZwfKD%#PNq*T?k zUE(di=~8`Ia!o%c;yqYh_C#0W;$h0a8=$>vU&(eAmciPzj zXz=UKE}gMfjU{2Gn7g<2QKHges?f!4!R?s*L|QaC%t_kPfO5E>NHDdCTB})~IJ63< zX?MatW?zPQa034&H0G(MdC_(#ls63t}$(|cQDv1I4&rC zi5~v9Gc==@Zb6NMaq#0gR0US+m2&Isj?1g1>z9}sCwy0db`Y1!1>}*!|<4l;h1B!Hg%AV*3~!d@q$&VEAw>{bt33VF24}IoTo=t4rQi7 z;|%jw#dJEw;?jzVIXeryvuef6;F+`bFYeLmsit(3I)Y-BHI8xpT6D%nO8B-|>=tl!;*ai%$7 zd&X~N>@I}s**4;-j{$at2Vz92KVya=)q|+lZ~u==UMW zH#mG%9QeRp^MTgu;yz{dS9y%lr3-mhQo+j!QE;?RuoO5U1ipq-fOZmEKxBkI<8>F; zD|op92zKJDu+;5Hk5(PgmozuBNh@qq=r=$)vD`+@Y|GsKK^d}~LLQzh%7wm8@AddV z?V{tK6p4oA{SRJbkhVc!H(kQT$U4tGJ-eM%%?*olpMy+N3H2hQ3eM1@O)pNlKgJMs z-$~BE$)KQcY_(>=%+BZP7MCf;kxDE}=;8)AkB;2!4^+x59Cft!k&f;an2=yYfV_#6 z;wp8Y$-0mSH8hYK+C%7)Lwnn;dR^UIE!Es;yVme_Jd#_2dtB{sR z{hfx2qI!Z`(aPVhNzu^^mEBG-wGo<`-#UeJfB|{J7j(_^WyRftct{uJq0ZI+{Cou{ zddZee36evUH_H#+(ElU0tm8Zk+Xe3}Mr>7FGiI>Z7-7F03&>YhqWBX{LyYRD$!%jhl`HYGuCB zzZR{%@Ivt$NA`Ks74&Yto8`A8PKKssTa(`GfZ{P8SVLP!Blb?*dO1c(pDOnde%A~9 zmdPn`J_g1+&2lt zyLgQNT~6gKl>;$J_KNHtSw+&UFuitB~%vVt@G;b zcJ74CAf`~=1ncnoysw}3K*uTFX2)SOICb_Vz)hAUL?VFUD$WMsg4Y8u#VCBC+h+d3 zAD`X9rTFF7rK}y-6q+(Q;m@@HK^h?GsxjB_cpCiqyr+`nh8;5>yJO-#&|aiLh+2!Bag)xo_IFgn2bv1j1> z6e41w5$3EVw^mVcWRU@YY#?HgGm`_u0%c0rOp!xk=md)~VAxT(FT9CzJi$|##PVTT z3>M8P6Q;!fd3nrBv#g|UO`cM%N6fCAvqwnzr|1+DaJsoUtRu!25LReK*!C#4%SZr> zf@P6?zxfKuG@i%%w3z&V?HPs8kK^89qhE^1!$7>kIb{RdB0}NXkfy1SVF{t2kt4}q z-aAPt^yzzYes;e*gLZp!zWe(1J4P-sN7Vto z*?WlhGQ?Vm9MI%CJ5xx&2#>t;MkTpvQV1?pGg!=Ott@eFw;X@9R&U20{+1AP^dskX zJLBRcU;xfpR9q{amWcRKgT_pFl;{JkDk;S3*@bkW*TpR%8nRLuz9X?=;%hQN5!$MZ@WsMy7Okh?dHuJ ztU88lYA5cm81UlT*xSR4XLj3YRUFl_XL9`6&Hxac&n52@;&l-F9is;Fmg5o)_PY%` z_8&Rx&7B!8(=uwNqBm7M+OG$KFu-VvUTD~fWwOz55eUw^z-zoTXqB%zUMM<6gV6I~ zOL4gZGmsiIG;;wd;pOeRm0)esUyIXp{`5_@R}avK*i?B+j&{K0Wk)PJOZbpq-_9N< z_5%b@iYihE10KPCBA|D7va{mj#H-oKRT+zj#oFNKWcNppz}jGbpeEfcc~~}y`blS~jWxu$nIi=5 z-;!wHAox^+Qc+824YhFX=5fXwn;$(~TUb&p_6B<}Nt=q0CmBrLfWhK2pa^b?VKb&| zgXW$oxR7+qs`nhLqC$BSfIzj#-@$36Vd!oW{tqPJ0E`9Jiq5r(t^538WrB!tr=C^l}?ocVzcig^XBrlb~VQpVIT3KmwZU6$?#vRc1Z1WKEH-77DlV8 z+%`(ReQqh@oEz&-ZhJQ?4(5+1@LJ6_wF%OAfQjeO$xf{_>&T~={4egr ziGs*mno|PePvcOub-0)w6ba@{_~CZ`v9+<%Y0e|bf1)k~Hk})r`(U%4{v2XVXzet6 z;qff#+FSJ&56*39X)qDmO*nRUm>*G|>k%Px_Q^=@8Y*j#>*O3#AKM9)dz=sE9lGNf zm{-;oJuKD(uz5^Nk|gSl#-(s1EdHj=U3r#6;vgq$szoD~LakUrj>AdG!=;li}=A8&ayWV@H@xE`iIjkO*^@awEBp5N1=SQgM`)&e^(#hey3}FHknV z6Yk)_k#}G0d(jJTOJ!^cd5X)2F_kCIlf+!-9V07uV?$9a(amzV2lma^V@o0*IX1xE zx=nlVs~`R)`$C63-qS07DjF0ArN^gFkV|Y4D3Cog`a)ap{H^d$c8#2KqyL=?3@lqW zaJK)ye1SZ2B)zpweAj?DRa3NbUFmOp(YWsFnQ)cvkdzlm^?6ogGp!sK>X{p&#TcPg z?TDs?E?z|9r4`RF&AWTT1JhRS$~ge!5MtRTJFA|muBA?wkQdSP2sH~F8DI0=Uo(rL zk-<$5k4)y1ezG42#cbw(_RMYlsFDL?kcrm4;gqUiNJu!nB6ejsLT#O&-5m=^6l z%e0#llbok}MgJa^TKlA{*Ap~65E!avH$kDGOEeTDel~L+JyKo_Dg>|-@E~AFs4plA zG}miqgv=A!+@cqnQKC zpBFtHT1MVg_kGec=0meOy1|=$r^|^2X zePSc16#bOaxHXmO3;cQJL0*S$Y0wRu?msbToYaM~?*4r_ti`b6RlgG1tXK79RGms; z-yH?fY$^YM?VZ}HMVhWwBETkBnssWqjGZJi(nl`N#`4?7Xo>BQG$O#0eXgWiFPwj^ zO3p7s#;+crkz$lzFCQkQb`GB1NOW7K{9OeR$Zu!CW>?`Npx(n_`|z9B06+3iPvJru z{H2ml60zg&%x%`@@7bk4c9XE8a%KHrlC?zw%B$9-sIJ+|l0!u#G^wF(wrm)`&$(34 z)Z1IhW9)Kdh*!SYdNs*HAG+H*Z$~TfTs)Q;5930^FSWzsfVg=ZzHyvRf*>&vrX?m{wHysQSWCHF`fI4H-{CFwG7G9Sm0zkIzo3qkFi z3%#fEmBk9pp%`k71qn%ya$Ca8bb^68_Hcr0#+Oj*|SuN0y_Ey8o{@rOd8b^ewXjDttqJicP z(tC|QtcwfZP;ot8-qN}}{w`3MsUoT)TT;HgS)8Pc-cH|dsrIW@e%7a$qQp*<4Lb`$GtL9m~I5tU8>JIAYXv^tf4y*l|CH!BQcv^3J!5V zkg{f|y=xBAM>6rA-V(5@N^m3tyzXY5L&rR4bwxI)HhWRs;6{^!jjew^LIIo&nwF;N zU+mSGAZBk^tNSiP|8*U)H-Coci*^!dhSJKO2+Gz}5gZt^xHdQJw8l3xp-qQnwZR&E zr?eF-GhGcpQCImd z%ryatPj{CWlrBXD49E`5jap=3%Z%tE1x<=VAK<_rr*#z*`14#iSt3x>V1LlB8)0Y` z5*sWbEIr%CTU+>#ZrF{@NHE#n7d^c37yv*$6+bKxAe!3r_+F6794TyXukk&HO6B+e z5)eb?OV`)7&)ysT9jhPq2k_sgK7f||YsE{1k z5lO?Cf5&kbDRS0-M`A!&c(Z{K^@$K?DP4iHfn;$Rk_=zc`~|`zl28$Uz{dWWqx?LSOosNAG98Wi)W14ttLpojBCmR^+nGYc=VeKC%OOgcRV>A- zI9P+VkFn08Th0Vr=m?)aawKZ0j7w50yA?I;_uHi&6B*OoteTYdag0O8jla2HnC`c3 zT41XAY_1Kh5o;UyvM?hG4H#V2>`Jl>kM9YtBSj&h&C{$D7XAVIC^}UXA|Q&dwdKOk?PC ztQpf7WPnpij3sA3nL8j@H8OJo@X|0u{@MX|tBFfe0%Uayz*A-?**^bVyu|oC-T!aW zjXKRhsM;3{Px?r`?&1p@KD-hH4PiNXeb`Fioez&NKU76R=87*;G0g84R{>g8<=OmJ zc%rFe|AH6g@ISTDN@4$s$zl?N73!=Xeas;XMZT!wHS-ku^W6wYeSd1%O$3xD?G@*? z8a7F|AvAZIzA5UXZBf4q&92+sy(*k*jo-Rc?eA!2t&) zCocf9UAr?mcQXKS%TOyC!&N0anFf3R+-|EFjJZ0llgBvOW55Q!7d|rnp4r;NFY?K} z%$s>X+52Aui`c7kkA>g)h8fh3Gei>R?>leuwD5Ajt&drb2(M_67vSGmbk1}1Hzv7gL0W9Y)5>ckt{^^w0Re*ZKKSqf$?j{ACsnwo3sgGGjg6>e61+T zcd*rq98&_nKogkX|3$AmyBpC0#EH<2yBrx4KiD$>(JkWkZtmjt5}ONrp*5(5s?XCy zx2?gwf5!$@c%SFIamr>ZPNXY!XDEy%Q{kl7(LK+pwwD&hX1+()CKuU|`8_S=T>K^UHTJ9A1i+A{sX0BLi+ev+i z5@u8ZwFC3JfV1sVXI`?g<&%wnT<8Na@$aGRFSh+rre-tXu{ZjqEdFUH=9E>5528#d z>)7#`09CJ9u8hmgG9Hl0V^B+&0~@dvUvUFdJBNmN7Ivo*@fp_0EGf$!1pAQKWYKU3 zU9A4yZl%w{$AVT07vVgl>D_zn8mhVteAOd><*d=43R$P=zsV&HNM_5&waI0baAIj9 zjJo+4;mII9&vmrtZ-GM~#Zf2zT9P-Y6>MOZvq0(1A>tTEzvEQmnd++5>$&U*G-EcM zWHk&iv@h4SX4UI|4;xjVQkXc}s&8Q?41eoGBMOgfnyAy3Iup!Xx7DM2w=ZThySh^V zy3*gf)j(nxYep@wILih*E31TCVYaDVD(9+&TW=gL5%ggl*sD6e1c3sBu$>YNuGQOU zMG7Di&WTHbk5zr6Fn0kyKlubQ)Tg-jadcqj=@{0In%HkAgmk-u;IFikIk6y2;n;uA z(0JxRV?3sT$bhW2#1CPoJ7o&BnfEXNf07I91oA?4r+Z)+o5se73!4SS&&xI89(1^n zs8Dms5=siv0_xtrRr-PtwCsLS&^ZX%+t1zlzVTgLDj^LK=x?X3|4X+Txptt$Wbf>p zIFMH5PZiiVf4XX94F9H1iC(|}7qY@2MJt$jjf1Ur&Dgg*RC_8?16BQFr?RLBh%&o8 ze;L|aD!cfO`~8$lOl+bESw<}}{>dM2>aSKa|1qF3+>_B)#oMT6Awy31!n;>_&$OeA zzywwDiW7h8`4)!$pgyI|l#BVGt(H15RB#IShVP;XX~Zuv&YET;#g%LQ)N|xh-$?Gn zKWh`Mri*mPkv1!s2Q`Jf&z?60fJo9bevQW(Txn`f8#T)L=;yVssF_W$S`(>j8#jh< z5?!WNB^l|uaq3FzTSz@9*3=B5kW{Y78RT=uGt|s?f6`Cc55PitusKw`2{qvir2Ci+F zU3t93Xk<#OZ4#TOzYd7VeY__{holCMQS9c#d&HvXf$$wC?@??4fp%Pk_wFtN><{rI zK&`M?#Pl%i^yB7tPej~h69{|cp#w?`;Y3V z`F-A>9&A!WEg{t`Vb$jsJJr%ql%?q)GuIfcH9E~LoxH)LC_5wGnwYK8!L1UTDE^HsWs?gl{6gBgb}bQu)+G|F z7)2)5zN*u-n3*Wx~{R&3VR(^mEpt*wQ%xVJVdWD45c_8CGG ztc}5z*E)QW%*D;?omN?}bkl$Cr-WxaLF1t7NclpAeO|}_ZbrUb;l{kh0ZU}#gyrp1 zT%_tqWIK3J!xtUtL?A}f&)NlEePATBra%y3pOF;bM>0-QJ>k;OY$0v_HbH*#*0inJ zr9?(>g8GtEKq4`HVEHn{U)J+Wj;hI#6(M5wLR=d>&U!iJTDs$DyEtdM$yppy zt;UMA3Zu%1YU-AXwT|xUO>fI7)(V*fw-{a~bnO5#wN=IlC9h5j{69Y4mA;~dR`>WI zIEOvh9^GszN|GdC_-43sQsd{;IRDX?Xt2Nr#DjnwQ_{z^!kOe~PaVf8<7xo~1^L4M z4P3jZjS-&BzDaZ77~8$#;c*O#e-jkZ7PVCKYoB(J`ct-0BNid3anBhsiKW>~g<*Da zb?6{iUKOc9IL8!RnblH#;L<-T4YZHGh%}w~=fIkY*B;(5D>;F_c`9}6xqagfr*djH z%z%*6Tb-BeTgb-_F))pij{SUX%LR`Ouacwn7J2mhg1EJg72+AjZMiiK zKV0GmjYk<5Nf$vz9irw&T%jj@LzEBTjuBRq9XzCkKg>sg?lm;mX@ucl+$a8nG({#~ z!Cv^?$Pi5^^WJ;RxNzbzE+|aA(au^CrGT>9-HOJ+c^<*mhZU0^!G}S;#9~dC;`gF|2yQpVCUkJ~P%w9Y%2=R0_d3B8_>^4)YZ2 z=)bNfZjWIzsuVhy3W2o`SiPRATXwZdR{0G)$P=I|8QU3uKR?BXWl*ogOI`PPvjCu_ zZ*tJF*!#WJ6Idm6$H1fr)Em4ZK>EviOg;J_lQiEQ!S{}_lW{(D5vyIC_X3yx`{)$5 zgk9k07)9D~J;HHzhP8jXF`l*7tPSn8*E+S6Wt0QzRsJ|`9O&u#YVK+Kv^2wQEbF*J z|Dz`-cXo6u(VX*&3E?>~a}|SoK>$j1n!sur(e{i#Xj9FUD+O!KCoN%mbofmka|c3^ zkaYMq;gGus6%B~6eGRfnA`eKRYulPY{?!iptNSp;^)PG}we+0(t_LzvdD=&+xVymk zf&+OZ;=gbS+ya3QpPiaa^PwoHp)$&UWSKUN{~q&!T$u$Vg3DuYYVJLv1ppS!)YK0} zU-Y*UV(a9*4ne~03{;Qh8(_G1{~_7|(=?0vIeFn1y4P=GpV4`gGFkUZYloC5bv54d zv+%P4;VlfuHKd-W#dRPNa)XVudrbtl^M_%UdBLL?RAmrHG{$5fMJ^DAa4Tr9Uwg!^ zEb!SDBY9h#kj6z;jxb1uh5-LQJa{!~k?jDPK)d|GZk~0m3_PWTS;qDRKtGVJOC%?3 z=W!qD4x1ptv*X2<`*U+wg^G*Dvk6KkH3@;);F%6zRTc=Om)_BzX?LR0UR*dO3H)YP zC11A4BDw^*9~oz!}tsw3_?wR z6W|1JNd;uW=!$#pQ7=F2T;CAkQ2LK7?;hSp5m{q%=og<7NIXz_mebF|K|>nX-x_#g zjo((V!~~OAm|x46X8>ToD`+D8!7jS@>T1X}9L|-#dWaY{2X1DEmWqTrSRg#Yu}v}O z$_h1dIU6sy{uhGc)3*_iLjwpVuKRKpmR8G!KU(Q53D-AQX%=W1=9P*)3ZTwHzSVbU%&Mq*Ap}yV9FBsc|k^=W_%XF^cehQ zn8YITRBKT7j~e*-XV*kWi~_kwjEEV!rWLEkDiwRy+y*LIXKu8uT#V6PCi_PHhvPYu zjWbjcEp!t#up3($_WXInIMGh~K{Nc$teE}(ibir&w-fT zfqz8l8WUFe_BzsA@R+uh#pcPUs$jT14g5%>{vCB=mSE?KGZqcPE!F=8sE1Mm50l@3yGuU z_C8jSnWJ{i5F%6N>Q)=mz>BF(BNvr7YP8P#cQ`KugdE><283)Ca;_BlN)zna@QaP=N1Mi3d5**hE#0Smb!p-?2)e+0V z-{)egfdR>JF}C`mxndRIlG%@t(F}bn5r4h11)UF0Prm4E9yrn zLYHFIA)Z})*0OB2&X1!R?)kmYajn%2N`HXlE&I0IkW$cmRu!y6N~D6?$r$r5@VDtV zO07zK-$>JVt>aJFOwmKZQTx$d%e-@-7^;0X3jZ>7Z_CD}zhDDM|NYxDN5lR2EaM_* zTS%_q(UiH^J&BwTQ$#IilL}#GL+?OGaus{2aKE%Wa>j0zlq(?QzcMD3)(A4_k*H@J9_$+XLAK2kqEiO+&(JtcAqQ<6lsp4 z8%1-{8ua~t82VwEa$M)=bgS1mbF)*TXf^k?pY4z zg>9L-U6$|1i;HFg&x@&&6lx}SOl$YIq&c<5rxp@e1yt{hLBonBKs>MNpY94=v(0$W z$AJLLT>-o%)1{g^%@ZxlL|;<<8(f&F6;c~Bn4Nj0`)h+X&*5^K_V&)47pHnx-b;XXnP_5nrQ-E_Yo z+78y!E@KK65)|UVbN-Qs-fA-IO37~m^5{ZRj z^;ZyiL_yTPmG7OZuD59i@y?4c?PkAq`lEfzWl*A< zBsuhxe*!eZ$(S!kVzHzPpbC+LhB+>oGT@7cX_>(S(~GH~d8oxlgPX<3RIP($dHEeJ zSwSt9zb4zN@~L{IRcqJki=z4|6g@qn=$$(+hoWOmdirwW#H}`HI~w$gUUehGVfrMv zWXZyuc(jqt34GU!5O#`U7SkhBdRQ=J1=vl9u+7lP9ug#^Yus85U=}s5I-NtxLH&Ps zp6j-dGb(u{kj~&|`2F|%JH~(+?9A5EfwRS_qz*5_T5EmJbci_Y#GHZ)33Gj!+V-W! z^w4F?OaUzp#SqZg8$hG?oS_ldL_Y^W$mRA>WVML{M2_oZz(9Rt!q=6dp2x+_=%nET z3+A~T^w1vgJ<~|QOQ$x6lP1KV;$Z4Y)`G)`<6y7vJMsv)Sj?m((X7doOcaTIjOxj0 z{+Pi45G*I|P+XpbRg0`6C?jb<72L>Tg%XCs9MJmDWA8mdCLm)lA2f?sub{W65FIPs z03So2q+cj(p#{isauv}2TkwB1X@xu?e|3n1ZH4(wA}F`hi`E{-Cf#)Opn6>?g$Inf z-<>}PEB#jhJ~zS02B0Fl%XbiJIl-V7~uoDpUlm8evi( z*j$`wZdZSDMy9}C$&Ea1W@|EC&2MBc%-kn+WB6#WQ*o?Ie&o;S=2Y3a?WS~6e_4OR z_aAz5^4v$xOYq{ArfcLsNZ9DkjgaZuVt2JQ_tuQtqPdruVrKH>XYZZ#=;%O=3p__B z)VcbENqpUC{0!d4&pu&tj<`fW`pMBP44yS)X+D1to!YJ-|5;?8RzN&W-eF}S0>`rR5B4((fn)o z3C-IvPGwTo9sNLw!e1qespDiSX>rl=`(;*bgArY7(kSWBZjA3u&DDHY>-|hDxVIG< z6Qr4<@k=Y~P1Wr_KvB_MMSNn+u?Y80wF|u2CxV~lPl~mmZ=X+DN7R!>F zL@aIGItIyCo|6Q5RrmFCFO6(MN_apE*4ZHrkfW$>HZ@Ap6dMEYq}_Jr_ak2Lo11k9 z{I$vU&TSc$oYZgP`F-V!x*PJU2v?KP?%(kpM>3Es7pt5NG+Q7o60T~{N2YL|f-ZJ#Zq zwUE|AS_^3{q_vRNLfVIcv=73Oy(WLb2$PQL62_!KmAsy0c|0n~EQ>{7>eG`ZXj3*= zjx?8mm{B)u;x`K`Ev&S#(!xp$D<3_qEWOGk^oo#4KTHMS=;nxc@wfreR$bbw2m;8o z8q0wpNumi5%I+NdBcQGbcnMy-%FsNMpU~JNC+l<j(Sm=RCz};$bGt61UX&&!9MAD`I7g9KStOn5fz%8)t2mdM z@2(A^v%8&kx6{HK3vVpEc@*%*2GOl9h|Xqduvr?6f%#5F?%6Xq;U@^XCEtD#AWy26 zXP@;E3O0@p>riw;q6R%{I*rhChPRdEn$=ttMlE@6ARjh|hoj#q{q`f_pWA^t9XKkmOjAAV#<^uv=cP(cB`lW|Zce*bW^Hq$EcC*~AGTOcp^LT%`H?|-lPCT303txI%aFe~oEW-2gVl*NA}Q!}$4x27n>Qm-fQgV*o0W?3rGom76K1`@o&#TF#Rh z`y)2v0ofW|?Mz1@36T5G&g7PCP5*i`8o497HR6Ahp+Cg_?d>eMc4pV8C-+(JXNTS1 zdD4x<91be71L`%-X>dSYbZ~swJV{`YM5WvuV}ke%e+{lSG(va@Ud*BYU1{MT2Kzn5 z#%hFRk#rk*neAA0~Ty06g8BTOvI-iCUC8WsXIwo_yQ{n zW*%;K8O&V#lm&)Lix`+zqCI0k_E;Qo&p4s-a9EKTFuleaJ|e;P+x+D%Qnso6~kp2b8<-FuQ!Ohr+beQ6@-KC!7VzB{|} z@)Mg1V$VQ+%D$dC^5Y!cVtznf)Y}{MduLMZmNW1Hvad{h;oW}k=o%5u&M4(w4ZjkE z2bA$#^h!71HfCN9`95UmJwp4cuj0v7 zXC*$XwXB3axRz}8dweRVg`@t%)PFed?QIX@f8>#haO^W|-Y+3kj|5UL zQalU;sAOc0M3Wetf0%}e_ScO3EGqWmWNyGjdi>g*w@^b~!k05O>lrgF$4$!_K|G@~ z9g4M;quM5baY+=IS%yYOD((w5mR?I9i-;y(lvtXW^e+-OEypt>ky^&^#Zo6(fQ89e zRxzcT8w^iI&9*S2l*Vp8#bfNyWWzPD>Kiv3qk^V2%dkgNe;N@8X<9FZS2|fkHs08p z=H0{_C)QoVRoqIDXY83~4K`B(DY3Rr;XDA9RxtURhlxv-77d;pw zeuI$mne!W}f1UoajEuv(Bo|)}zwCkY84W!b@EK-+!>h<+53bN11DG(5p!@%I=3=)Y z91j`7QRiBQE10F7#1fY6Q#x zCElG3f60v|qxdo`oXaoVU37unyKHdgDLXMsgZr}Y?ai`zxwcc0|4yw!I`_jC=?v19 z8-&7s|51pg8kNOTY09#dFCq6s19_*abQo0?_iph$6&Vg>jOfHew|ML!;L!P82pAa! zn+}l5L|+N%Q!dO>kxwu{AP5P7f&dMtGg;%0e^1~>NH;AF{eWI$7r9_2(^Sa_t#30# zfCD`bx&6$i12@?7_Abe5a6+M*t*?0K0~!c1D&IL_AcMCY@m0YLK^NeO6tqz-K`Nr1 zgnemqQ%7>;T97@be*88SA9hIqcnw|V>;{% ze??noFBL7dm8NZE5c<;qx=3^ak~=kwLT0$3C-jCIP^4xr4TSz6q2~!o0E|8ATrnV4 zJaUDCO1i6>I*5#OC!qT1hv=%Hu(f0_<*gv6IWo@5)&e3==Z&XA}GNwIccez-gF z8AQ7TAu&NRUx`KER8Ng)0J1H{!;vklR#ME4RMd#005HUvSVHkciTNQea3BF=q)-H> zfZ@47BdLhRq!uQ?#ghq=UCN#0VH?#Wb4g@-Wdo#M(0t8kU5Xi-9iU4R5{}j9e~P;* zR=DVdVpWD!CIb_#AUXJA5=6syNsQ~hL2nDTXv zktE0IC0RJ$vge;Fm`Zvu4;cqDe|W9sB@F`Pa6p8W#nhadLUu`HlmP>sMy)>jgARFc zV2X^NLF8EL0|$1e&+hbfoaVbOHKw&~8^q-njhte5ZfO}4k8YPiqWzu@JhRciHu~2_ z|32QJR~!AiT=Z|l_}_McE%BUf6RT@Oj%~=X4LPDk>2e*gdDa`bC;#jBposwwL0(}9%U_820v>f$ zj1q;{*hRqs^*qQ?0KI)061U}%qdJOp;cchTb&-3Dk%P|hKPolYm{PAIu1z$PC%;gy z*YQ@P<;&V?uJRWQjA3M4Z5PsEzjI9Fa+$+h;KT*RI_5Nh(>Qi4f4C$LBmgrOBDrii zywYKH0xAttVo1{2g%9Ef@d z61#tVzxuRnffoj}qL5LZCme6b!CSSn*6?;Mb*X1#=UQtA)zdI#M}xW>eGZX88rnD1 zQr9IEnwqi7)%7`?f9LNhFX}oh^vDD{=;tp36_>EoT>y8kqYaGJ3_p-_H1}0(p(|fx zqnMR~=z}q2Npxj^9PDF>G-b$abODf5ZgLQ{Z0}G9Jv!qyo=vOMl`Ar7*X;set2fQ{ zW=b#>#xeWO@WPaGwiQcHN-=HLU7REx)k`U+GzF8i4@HIae;1=<;|$*DjX{}dU#X}C z3Mk!lZI*pOt+^GI>zSd|lwm5Zg%BxfA<=cMilUOZY>MpDLfOvW03nSeU)n4uz(^pNB3PnwJXV9cN zVURH>Za?i{e~Uz+KI8W_S~8npe&9&peT=GtK;CHnYrf z7X+-S7Tc=3h)f7&&!Z01a8b-P=F5RsHOn2ST zkjiqCR);WoJfQ)AI{iZ0TbC+weE3{-WA)TonWZsUe~G1Gm3#vwU-i|C8o#Ebk^1*A zBD}Y^IT#H3y=bR6`h5sF>`tA_z1h9Z!D!g;U7%ntH=N|5cKsXP#=nnleH@*q(Ko*} z((qBgOd>#|UN#L$O*k|PDvrn2q_i3D9CcNB8X7vvZ2{r#iapskl`ol=4S|eRaZXT0B5?k z=qR3ClIU%UlFpSfp&@a*jZRqF2uiUE+bV3Uu&u&=D22UUm+U^HD_ZV) zW@#+vpPobid$p1}>vuy1x zRzPVw_jYs)qgJ}fj&2oZXA1Ml#OWGRQ5&PG~drtJf!8GBcD|5;;FZG11~c#?B3mzHABkQ_98D}RLDgA zWJ!T!9TO72S`=Vbx^5#PdT1yLH)UBK6hYVW_Hi z?JLw;;m0ztpqV*yu%^XUF2Q(Q%)Eh`<1$B}qh6)qM0E80xk3o5ewXnA)=YH+-(P+0 zC+6|9dhz)<2e$@wiC#V+lRRHQ1>d92)ghCCUnxFxK<9JJ4`$Hw5Sb!LH#QO8)8Oi> zxHVD6b8Q%j;MB0Yd*&ygQx}IiBTjPw<4($)x<{JCo>N9e)pyUBJ1I z$uvnGo~?ZVJ?zkO%BLt`7*_Q2O908Vf~5lwhOD9=LCEsF>Q|p>aD%3m4PJ!7xPsA- zcRmW-0AE+}GoudmAg_4+Wp+-WU;gg=>Mp2wGlRiZ6+hFep*ax`2`1BuPR>H&qKX#3 zL5_ks@^Vw}S3~PJzxqrxTYuH+YeQc^rB)FHmI7F3k@n}*IAQ_`MKMq zZh9RysF#_)jq2ssVS~zfvD%<&P6RfnnUmIyYUUPlgSrJt*Pw1zST(7b5!ekX=F~ug znpuU`pkhY0HmR4A)=jFVfk1m#Sf1fL{o26)y?=kBGM}tRs+V;Y*2B6~T@_N{0y|fTw|BDD&|Cv?tvR`Wd7TVF zdx5QKY*dJBbytFw*j8d&iTzk5_SS;rSIMY%3al4HYA3k!Io&vaW^HP_3-qMu>Z3U?XUr7T5@LQ3~)GBFE|8Mz_vP192)-HAB??i?_l%B1#;ZoUfjrC*dI-^&VPN%A zGT&cgftlqq4eR`H>|qC7p}TSknv$#&8URAcYk%lCG)$Q{47`xm3B%LA!h{SU?!2^8 z*GgS0b?-;&Zq_B8_ymJ1#G^a*TFKiCiRC11hSWkin<-r*VKe2L%h!DW3?yroGv%`m zeJMJRm=n+&>61C3(pjT#A}xofk*$2rX#l4PD9ToRTJgC+eAX}Q{9BWa2{m(d{t-2I z<$sTcn-US3rrQ!xi}$oOv8KX&Sa&W}ebqw*y_V29MZny(IfwptqWLA$$l%g)#Gfq;HcF-vb^h+uEBkBj#^B_lo;6%PqjN~5w>Z>Is21O;W zD{1}&GXB+f#kb9|;XyXbK8l7wr32g>{QA{hw!ie(Y?UOi;RV%&0c%R(|7Y*Zn}6HJ zk$ArfO8?AJir29nC-Hx=ox^WzPuBJ%`*xhFg-A%k69s4p(6VMK-~AOX5$-h z3IsBuG(wP6V~3<0%43a|x0pNJq<{CwSi9Dxd|^v(1QhvX6~Eo47ZT8Na;-1))k!hTv1%JkoA35YUtDCBd$sW)s*TMT=Z1ows$=bS zx;uU5p03(YRtCRnidt98LGR`ES*%NB+UKtJzKmO~c8Bm=)gfmSs?AaTO@CYnQR5I7 z${Tr~O}ak-{8Gp?7z_L@1ie|{{>=h@R_Xrg-(UUvtN)|E`acmRbH54xK{{W*3pl<( zYJ%Ec^hB0oyZ`R6EddjRnHPDjsEU+?X)leRE>d)W?E+0R!y}| z%Je7c0&lV^DX(~;3CilxN`K{9B9lJNQm>+}ch|35`xSos4Mm+sSXES4m%+hXaURIt z(edEmjrt3Poocn}mStUtz_omuNsP5>YMhln)`47mi~0KZJDqq! zET!)r5f^zS!5(aM7G%8g`WM!!Z*vt3u`LN}mAk2p zshDsrp2`uw8%A+cwW)37n_D`y+;%JL>(!!Xb9beu6$$m~brXDx(ygM1Dz-P!Z4Hgh z^x9uXn2#}v!mUHhKYxgSIO?;e`3~)<#cnyPswpoiS^_ZLl0ySAkw^$pq_tKpuNj!b zc!oj%CBT9vf{hy6E%HmRw?0+9wY-PQ7S^gF4kNmKM-U4SRCK;+LZMN6{RZL)jv};~ zM}HNm%>=3XE9AmafxH$Hux#Nf?gbxn(cG{cZswq0X zo)&rRjShKHzrWoCzaqub2be^y-DWcan+f@r)&|vdgPre>8<;g7RLQpAm{r!ok7d<<9Z$Z5Imi4bCi7_sw=we6C&gJFs}#9mq}|1 zHw~((U4ky`mp7{Azv0)VqN9er7cHW56k^%y5hgHRy(a+`3snkOhW7U?QrYW#k+vmt ze1F;0BF)>aSWBj=)cmzu&Bx!SdRtX_6;y1ps$#``?%U(S_IFuLnE=^*QCCV%Z%1xR zs=IWcN!WYV&rTPoiY-@j#Zl_vGyOzvCp(RRW=iF;+^4L_fK4tel@xvMFt$hL=NKK) z`5bd~gIVl$@?=`W8I+#s zC8~DCIbH{fKED+%!5upR3z8SG7PLYh*_9vpXNG9R8!8m(wi!JhlL-b`0O@<{|RBAsH;eWK=Yea05hlmU%+TfrT^*0P~$p|?f%ra?Lw^1#o zAFj`*iifmlMSAyZ3dW^{&karM@{E5(<0;Fba}L zrqvhvhq2fL$N{5s1dx!SQhz;xX|&=3#h8ZI1d=eP)|kpKViZYZgdvV8VLjekFI?9e zC9+*sHcI5axhQ`}NgN}>i~iSQ?Mjf(^tTfdqFd$b{QClB8re}qSq61>G=))why{Ko z&Cy2*r{i(@+gIrtCmYE^sU_*J+G$Q~Aypt>DW$Jm>}o!qQaT&KV1Jfp;ur-HR2o%| zA5R6)>Y|fttr{PvqPe+nsgWC8=L!`A;RZe?SAa`VwL+X?RPCkaf~)d3^wGud(z2 zxc4tc->yaa(zu)*Kz}6`DESCfIKo@D#iz#TJ)+bh1x*Dn)zVc>Q!80o?yHYAyU1NI zMZt^#JO(h2oCt6wcH(or^%a-NojHNM?R~)R`v{=49A=|`Tt8}}C2I=J6ZE5&<*&Eb z!i=fCp#Xn2mE)312ha-Iuggbl%cj?XENHqdb>Vy;U6o;*J%8Ior-d~gr)n=I7EGfS z=?rn1($N_FScf?pAD0~O1)(P>LtT!R!bcbT-6_67%5U$xG2-=Iy~ zEai+U;s^bFNK_g1ZyF*YirI<;CBd#sNV&VE34g0B;-ERpbu_S+z23Hud)@Cg z0VnA(`hsFs6~ODW^fisTi)#7y2^TmwQJR43w$Q~Jc1BGDt+z+kL(!x4yTovq+bDW- z+~{x6zJYSQ=+e&EUvk_pIW=pgd?l|fcQ=n)J1<+mZaq+WwAX}Za)Dr|(w(;wMQQa7 zU7g?QG=J!P{UMz;*`0s0-3y1;j*NpmZkmaQhN3e+F_pUSxf-W>S?J+|oGt&dkuUen zj^%%ZuArYR5MywHh5#~_ z%rTh&%)t_}^esZYZI2=v%*xnQO5NPLCfDR-450oS%+N~cBl6`tMBz}rgG1GJAllHa z%7+lj!I&l_1eAba3Naa86Vb{X@hJ_#5=SQP7eJy$7%;d}PN-V>HT0H{k)Jd@%@m=v zTz`q0a3S_}jK$%n%V7p0N@pkp$wIM?$A+b}88CtDMT{0P4h$(uUP%74VuJM%(qoQ7 z@B&~WD9QAV3~47?(KQqTYawl&vB?qEeHQ~Xhdh|d;^Jp{xa#hS-vSs#C}HN6;+_5`T_DHS8;J_Q&Owa#2$hD)_<-puZ9riN?|l zY+|h(;c)Ake8qgK9>y@!ltz?K3p|K{r7@mh0;80nIb4Y;K`;i8T@#iB0b*>NMA0f` zG#%(6SWa;;m6gPdfe6nKfFPvFC_*pT0+CRz&3DyH4_Y(Dr=lVrk5Me7@zKe#n1A{e zpkwe6GH?T<1Tnc9u1Qvm;R%640UCl)!Zn#F0+dfttmX-El@XZ-Q_=j-j3#k_{uLs| zF_CuF;WZ(Y1Zb!#upvM^*!rcv#NDyt(x~le3BUeUR(XEsX^AZ(L`(|8ipDQg znUPo&fu^AqVj*->YFpq$ili}(=YJ>!qZNQ4wR1oq)QJH6tTuwt*yYkrB8~&`^~C}P zLYkRY#9;lRMY2TSpF%d>%3m70nf|thuu7HEl0#*kGXK#DZAXf-?i9&0HW9?kZC<+B zTv0o3#)p{Bb9pqVR3JscFG9R%{q`edr+ALJe7pPz*$0G<;3E6@IYx7w%zyO{XY!OB z9K0M3K5Jo6PG~Y5R6gI0MvD+lZsJ|M7f^0?Y2O|2hk+)dH>anR3tztFJ=!W?D2EWJ(H)PhP;BWVB*#@=2(uqmUD_|t%4&f zdK&1x;4v6#+xXfp%ocJA+|_%mWh$TCHgsuEY<%DTXz{Q)K3pauymCkxY2wm9BW_xb zXHFuuTXmV#$u?kVF@IK7w2o#k3!8P!`p#^6V*4-gRCn;R(B+SM?`Bi2z&lY@h3?_+ zF{6|a-+Gq5(#anBAwtYjsasUls=3RKwRQEol(hOD@dJeN50kOO>>kxlR%N$4&t2R~ zkmv3*ehvB^0+v|2;}he_V~4(e-Gm)_iC`Q|g-B}kqL5Z^@qefwBQ4+vZ%NN*3HCAs zi#;%+G?K{MY;sEJELp65Zb-T4?#03Gm>oVLIBa-)$T*28oiQ+i!3-n|z$u7?Kvf7? zY4QtYMpt-Q*#m_Il!aw-_yFOBim?-wwDo>DMKLmu7{+9LO|HrL?^o{+fPAK?v<4R* zA(ZvH{0MPPAb&`wAcY()Q+y$RPfKo{6&?jFYx6ZZIynY>3W-~^ z4=th>dJH5{vCg0>e@&GA%sA8`bM-Pml=$7cv-gB~!npmOP#%)n=LFg7A<)5;vS0s$ zQAC%<#rJ=ija^ih!etAT-yhWKk>>dVfomd3Qy|4x|9?)=zf<(@6#Y9z7Xf1VBmB8H<=8maAn<3ZAyK$Eg+!g_nwGK0 z=DP30^v5}K*KGH)ZdPB=MN|8oT;X{ZlKvjX(W;%MpsP9|5$i^uAN0)ICdgeig&z^G z1ZnU%h%|}2IEC5*&*T{E`UuMU>vjGZZtVD*)PJ8?V$G~eZnOn1bX}4}5x^vKG1iBc zB!g`SX=M^kJ&;9#E$bwl!F(f_Pf-nxO2P zJX-sMvp+bW_`&H4db1JaO^?W%AD-FFB*+=$>g>dUp1xH!qv;?yIvGw?B<+LU(PON*nVx zQswyU{D3M9g5M#P_U40hj<9hstp+Mqv^l!0_KG23}h5niz;^gN`gc;)*>M&Ddk3Jb%6N ziPERiJ#Qi8!*fOP={1GtqbaNt!p(NLni?+pgDiT`XU-oE(m^~%Qm$wtTl%xjr>AOV z2D#78|0HwsTb8c!BJ#DB71!JI)2?@#5{-O0JHoL_GEOE!i;PxAVQi;mHxP73cP)`v zt28$>+W_)fs^bsu+T7nYSg%c7r+-OUi9)Kn)p4FiOANA_fXS-ji<#XjY}l=9A{AY% zv~?LU0Ai&22}U}yBOx5m5x|0vF$|DUQlZj90~&US0of}w?g~w5nN)c2mrJ-PEFW<6 zMMk^m^Z5gg&M>k6JWOK3vp-L1Fta~f4QD@IAco=_bd1?3i4A^==P92x?SCuti(Iv+ zZ+h9Hsvf=;HOr&cf{2;T=l!^`+XUEe-hz%Ij0hJ$B`vdTRZ-dyK3HB;^@}E5qImt$ zSHVMf2BVrDI>1g=@@1QgLdYQqU=~WL4l6TGdFzle2*nyW5+K6kl?jnd32``zkRf+X zGD^?V;L#tj9u|Y*wkul*Dt}5i%>MQrP5c9uyL(LuBaB42KoiV(yt<%NFU$=@Z-JOc z3W=gTc9gS)2Agt7w{s`%NPj)XQIB!dV;uDuM?J<-k8xzKgKz3^byp-f5}M*64E?WzR^>I< z!C%17YI+;*cox0tJKpu+df;`*%X8RZnzx&lsxt$4oaWfeyNi!tXj0H=OxvNcr>T^5 zF@lVe?#x}ihWNnpUTFfwu}yz=ut()`!aT9$^l#qQL8_T;wtt|Qlrx4o3mjS9`8`p^ ztuzT7Nv~Suv=BCiI|p&28Wy638DYbOhzZh+Z8mo&AekT{h5!~wcNvDk?-0GDtD z#xb1(%zH1u`!HLdCsEleSN~{<>GY};MUQ)jzum3_s#=lY492bX30-%sI?=eNHIXhh zbjDBfZZ=Jpw|}zK78-W&Xa(4c1Ty;T52kHh=$6MwB05R)Wv@y+SykfMNsgVmkm3~y zs*}^Z$PHPuLTda1e*QK6zV7lN3w86lWU*8)G*o-`Q+$xb%5be->Gi9H99StO09!GR z=6>>^($ZBw+__IKmM)2cghVa%_g5OvP<(Q%BJ~d;lYb_LBOL17h{M65l#b>vV_(@8 z*L4_A)OFph{3VyxmX`$!kNglz-}vqAmoMc1ueP@jenfPzpC4bEOW*tYZO9@ zU>8bZp1)?r&~7?_1dI?!geJr(VDb}yfS_fx0zr)AE50&0sW;)RYeEoTic21!#x$8s z)$1;yVRs9Y z5eovJp*W;F)h89n9Nc2zKvN~;x!mO&jv=f?xqgOV-I3RXJEVAcdiicLiP1!;Cvg@ z7PIaNd+IN_&ecZiKbBje-(y+v?9Zg1&j1z{t`ACrT$^oEgvuYF<95s!q<^N%RiMS~gZV#wYmLPlu_7<>+f}bPX#JS4 zPz2f#XbTUVDnHNs1jv-!AGal|HkqZ_xNMrd^4m_F=Lk3;C|U}2XWh@Phgh&8!5?G}qY*(W18_Uq!X zS0wnNcfgfIDr+S^@+91GAV!o%>wn&C^R%l4iyCN8`BGxKS;!Rl$hOCFie$7=F2alJ zQcMXLKx05C?_Ia_!*!=7d!^bQpI}>c^AmIh@N+O7rGF$lvKZMcu9Fa= z)oS}t{yvDGw|wXgGo`JyTN68@*44>;g9BMrUgK`9g>jpEouYrI_qntS>o%a~B}M^~ z;A#-0dWCu12%;pEU#zoR2mQ;+49Hx18o8_M{n?*=Ju2`0NtwNx&X&S0ZIK2F%tNh#0 zI7$8K_`sm*Z5SawSJkt3$zpm8G)`W#u>$Ktj0MG*X@0)aph=L@yIFvFVW(4NlH3QUH9M? zc5g^N-P?X$<9}bIR}G$!w)+Q9h)-6BKfjGuTpX^y2Jvda>DFb25WMbq6-7HVC~MZ6 zQ#V*GGdv;oh7uiNAYlqtrku3lscxu7#9lSOZcLVL#a$l2rS(<5<5!e$zvizAaelC& zZBIlkc+==1C8pFsW3-oRnu3pb({>|WGkZ1@kJ{OUqeY{m%`xUjJ96rQ!ZvTBwNq|(rFA@|-VHJFY>=e(j!fp5n*$0G< z;3E6@IYx7w%=HgvGP{IC?fI;ypbEUYG70}^vz+0cB{(rz zjGvyzw&w`-?}=W2-qp-vzq?bb;k7#_iR*T6v5+U+{4?0j!$GDtIYM~cpER+irk6pz z3~DKZ?8s(&?LSym|A~U>@4eh^bgedlK%4ni7k{YKT>{kfw0SHjG;pU62j$MJGb9$d zGhvvSy9_k%1`453L#u@-prP`?hG2=J=!K4D)Sc+;R`A22-g_(m9q#CtjsD;=b*g_Z zY`e0*jZ$V!EZK;hJ=;{XojSLrJ+X5oHg00Y1BbJm7x@rCJ29J#tEO|L44T@SM2D=Ppaq=?DHic@%F0=S=x2i?Oni#8@H>#d)?S7cYxd#5f;0gZN#B8&(( z`nI7KG`yQMXaBp#%Zvv!VnX0e|fm+mNTwh90VHJ+kf@c4Kr}dV}WI5Q~_K3|g&5 zVl=~Tn}!AFadb=aj^e_%BK8Lrj`qT`m|r{m6?jqGrOMs2!uY-2VvG-DU`32)-GyTX zSbGulXH9EG|7g0(JM#D{V6(j=F@()yPSI--?(_m&0dkhJ(xsIy?LI#>bANxYSm?%1 zJu7RQaVX^?_}dQ&=^F>0Erj3L@IHe2x{5$ftwG6UC6^23a)@uK?d9K;OJiy*)E?pW zLOlKtKYp|VpW8PnUkBTC$>5Yqp1L)MD)N|cf{H_K>NR=Vvg=@9M0SOtI%~TPT8UiC#J&tEm)A~6=AA4N_V-jDv|IWW!QX6Y zaSFUIoQf7m($uB*$B_*~?8d$f2#>yPe$NaJ8D*9+!)zGCI@piHdbX?0%c*;3Oz)shn9l}| z0HRIns!dx@6h_pOB>-b@h4%4=XSmuOF|~-v#q5OAL!;^fD?Fb~N+UM9j92aX3yN<0 zuvk#!92N?S3ffyxSd+R383JvKlhp@IAsrF!d98~Rhrj&Ayd zCR6Ciz`Mr4#mJrrcX?)^6MK942|K>n$o4R>tjcb?1O&-C|Ne(9A?m~c*~CpZTaJX& zGjE#qf1tc=Ra6rnr&2Ry56idCABoeG0?zZaIlzAYjkhnhw}xH8^%kN0grYA<|6Z{< zQH}P!23rkEV^-8(BlRETgif9U@5IAs1~9!w0cU72lVt*#K=OFOg1PNe+HhVzO?^Zq? zD75l#{I_n9;oFO|fhDd$;?O z-okdF`D=f?wEL5vyS<*-bNW5}uic$@(R{g_x_8F(4(bm-Hu9mf1PsqGayC*bX8A=$ ze=P4E=0q%W-1HoJ9+We|`s=yzNCjiV0&uHMo=(ktrW?+aSI!f*I@P;5tU>8HRWNhtKe zA^GtU!XcPPF9W5AJ~$^!)(4%I&b;*l8vVbv)&Af0(bTa2GlhS>f3LUn;n}f2)dbs< z90e|aWGLrHc4t-YrYpDZ3SHU$iFn%h4V4`!*n5$2F2pO91mE$uK7%GAC^kYia91a` z;h4ytkdNrWy*?Ku83lLVIPxp`yGo6YR)p*ubWj#)SxM$6NTcVZa!o)$-sH;yk@N`r z^uMHBF_pNo0OW${!`3lz39&safKw znKsLQJLg8%IkKU93h@!};F&#kWX+Xi|2#`2?J7$qgv&Ej&XJAmNdUjdQc2FG79%BN zflakfn(SkGn)%n1>Qa~L5~tz}#Xb36NN@LP^U}Ge$*_DC1>$?hz2zTWLjyZ5ZGR1a z$ts<(J~#;81Zi{*g9rYnOsO6fKNA@dnwi>6HIV-9es$biNaq=8XLRz{=oi!ny?$@^ zaKCrZ+dF9KmoB_Jg1~U>6C1l^ZCB31HmN3eO!Kj&RIrDZ9(6)&zeW1}Xz3>wnxK&d zKRPb`tQ1!y6|uzd)v`t%v&2W0G!wRe+c77TNdUntQa}P*UvXTnHt9NXqUi zSE5ALH;)k0X6m;e%>8zaCN?w$&eiyF3Sv950ZT=BBv#ZkidA-$IOE91hSZkkHWS*} zp!wiMxQAQ1ze#}N?{EEve5zv0s8;WEEJ{)4Bq{nz%Dt`J+ZEm0ydlMt!M04l8`)H# zg=R&?%YjW*Z+bcR`l&!)WL%hk7Se4N-n1m3D6VU0uUKK~a&>0mO$&6HphUR5@5kX15vyE0ZTL_-NyC0LbUt;Jqp96!Z5qvs{Aj!b`N9M%w-n(NQTBfK7H9<;`9 zX`7L6TpJ7qa}7aLLm{*s?F?&(NQfCUwb4og8vEQW4QNBhgogI&eu|8LsfKJ5`78Fv zm@O=f4FB!hIWTUa8II!b-D?flrUtZgztt3Y)19~{rXK5+({|W*f7$O0n^9svtfaj|BDk%?HSex)a8@J(Fm$zNv^E7Ut1WopnO&8lF4?M;ciaG z5=Pxso!hbA>#@FXKi>F%;JDmr0t`^d;hg|mh5NLObf4 z#D_^A0q+P9H0?jk=Ps?i6=79%M|1>DG@_z3)*v1(k#9oESf)?K+$`*58q8d=G>&B-_w0j;c|21ty5gPi0~95Y1rM_g#lib+wv4CDc+iG{j8S~7}Ob}%I18KUBvP1} z=)RsRoNASi&xvsh^x))O7#S>2uTCk!N(tVc5}f|BP5<(L4ds5_oU3?*z=yy}t1u#b z&+jOaaW5lh#hHEQ80F<2!qIBURKd@^iTq6ECsO%|RGjH!=O z3jy9_Nb~#ElX>Lao4lCI1?S%6${-)-WQp+5F`+(axAZF_BC{uO3cN3#|Ah}*`pKOy z_O2WU*R}nBlo1Xc4<{}Z)bnk_$&)QV0v`Mb;SpV{|K!g*=(5bZ$g#N>G`k42frVH6 zqZ<@_&?`75xj4v=8wUf6u0n5lLTMt5igos!HHnjSn|h$ zB^%S&XzTR1*$tM> zltocLC+`qrkcMMIrnyxUJrMxeasgBiy;#hMy!rNHw8Ai_*e3GX`WP7S_k)1MiKbM4 z-&t&8p-nET*}RB@veE$|CTvd3ZKP@d#aXcpPI+=GN3W^Ene~V~j;Ul7P37JR2)KM{ zMyK?wWXf(%au>oWPa*zbU?)wZBJw2Yyk3wZi%ubsO65f`WPP%NTSOCMcb=AfP#jIV zs9ZMrC0>ds?Sb>Co|EoR5Y!kG!9_TK#IFnmXdNEaN*Wqre_3Or@@=A|k50_H7i_0o zFJXu7bF+i?a&qtxj{O;Vm>iQ-vx1`TGD+rTL+PVY3N!Ak9ZVlvP1Dk}Dsdo_zoslW zJ*$PleumnBc$%4Ko(ARMASVq9r6|X_UChspt1%bWdAs*^f>AelYlmBz(vy{co~-Wd zJUOm+n3KwbkoP%oZy~Oj;57|l%@iIys8a41Yh9GUgKsC#0F&!eTu^brEvD}%q|fAA z5r4snXSmKiv%^0-#x09$m$bkGFtT=ZFyf0o@H=ehWZK|3&NX&iFd^X)Yw%?bN>P-F z|NiVa&r?f5`E3N5GB;{{9^0&c1vQcxhx@s)ld|3Zh5|wqYnCao9g;;xd2Rlk2wV1N z>UhBNUyz8R8f#d$^e9GY&}sL&B)k%h5j4pR*|LWgf;Q%_&jfK<{Ikzs1TDIhjKohT zwi$oG==IV?2E2qWdr5>(I_itPpc6?vrWu_u@r$w&#OdKb0}p?hoBpSNOH9K8-ZcIw z*n*)2&`ck+WiJNvUreG~u*=d8=+vgjLWsVNNc1TC&eBz_Ioy@=dUH4`6v`aprhMV; zG~R7GxmY$CR0xXZs5V{BJoDB@Kr|9KnkFOhLf_Im!%?P4`vlo;v*1oswaHFSqAaR5 zAsf19_SmVWMFzdswCn?aFy#tl(6Y#)5870)=DGDWQh8LC{4-S-^XZU(Bcdw)d2h#6 zvagPN8-H>E@6!)`vUMGcp;i)gX#3$5*b^96lrAB3&rE%wce=;DKOE=l>96IlKmPaM zJNW7U@ceY|gXezv&yn$U`RVB6b@!8Z;+)n)vs6y@>}J2%GeE3!@J z{?fU|m#*WCX(_dXP@)i>px5v19`5%JdV2@44#36a>(RCzjW!rMwg+u*;e7-P3!hkE zPHxSF3nH~j$Udeb5nB2YwBZ;Th<=Bx$2ZU=qUW!LL+UB|O6wO7n*8sRM%ks{BhVN6@Dk0t1j6se7i5VuOX^k#zejUmjQRc`tz1R697=I^tb1>*I z_^n@o`=b?x>^D(c|5^YG;nfH8XY@2kAW@;;C*YkUn>`}Rteh?z>z^g3;|r32oSLw7 zE{@nHtS_>E<6Hc6SMuECW3MQcE=51rxkL8k7y{EmcE#wN3_xqjOafy^+?kgcy>985 zTAPxiN{(((jz;8=mZPzELYH|Kt_y9P^uM{tG0C|~`0UI!;gb5g{+z?e5j3qYdJnLip6g%6a+Oac)PzxQ$QZ z7#bF!c5G}ul9HTTqL6Ea?vGH@*tZbr5!+nh4jCIE(wAX?NK=X-LWin6stK9MIbT}7 zZ-7F=JyRGf-ZPHTFV8mb7o|QTVwE~rhR!0Rc%rc0!2zk^_>lR0#FP$h=(2-E2Djo_ zVtkE%O7~E@$Ci&216OF~sbcg}MEm%R?$~YJ4+akZCPHdO(ilr#(q%w|CE-diGD#5X zbK}~(MOlI_Aij6pTax6s3d835XV*qEDP?l)N;xstwtxwz0n4-E`0SfdM=iao)Mv?T zBEXvowmi4OYKMD8`AXOxRV@3L0Ydx^IGCe<*mq(8M3KL+S|GimnLR*dB8XO~?u9>H z*`9+HY3(kz-Da*HbgO6SYAEB`FG@Ob1%XK;Xshs?u=koS*AFbP7MIK1aLD@nto$mJ zfujtZEjm{t#7{d{WA8-Fn|KPMdh;d)QTEb7b=%EHRB{=BPlNYt58e)ovVdH{xdp0! zRqv%;1r*GBCx2%XZz6M7?6QK4VTe_(1ZHxLIIJNuHP;{BBcB;) z9<;`9X`2zUCluRl9OyF8)KCa*M?1s5E;)AG88o%gN&{MGKmm=EqtRa7PmwXzkZmG= ziT)U~g@uvfzkNFg#w|3%QT)w%tpVGA)PP2US*O68?!Uj-;YfOEX zRK<@O_O9T{Bvqoo2<;4~0NEsTmQ;%xIgUl{+j$e3P`K2|8P1|UKPSJiCfA04QZ7&B z@_bq@&%y#+adxo5BAK0b9TmjV^}4oGB{TbyX235q?r3tagj~jT`xURC0nxl+j#N7M zF|iYUosTfl+UTP$_Sn)tK{T1-YFA!@z9MQ=Ws8vex=NYMusI_%lQ~O|F!CkmKi+M3 zit-=Rp!HLTD`%~XL69wZN;^}3ag$SJ`^^m5&}A+Ew25>Rx)2+iSe=?}e7%h=n*F3A zwUWrNG1cX8BZW_u86lx)d;*sx~oHXb?B}R-PNIczPh-Zll8G;R;Bz*O0Tt7A1==X5+#)5(@Xmb8dOIFr6 z_fr;U;dejBB^AC@{*xqK?&qW&{0c`sdOB25G^PM#3rWiF3aKy&D4P<$>)&-L+RK<< t69gp_0Lk4B9}A#xOe#LF9GScAgG2q{;m5=O3jhHB|ESppx8O8T0sxEjJ=FjJ delta 5796 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 diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index db6cf00b4743ecdf006d4c82fad7b495385e8382..516f7e607a128a0a23990f83b025a946460471a2 100644 GIT binary patch delta 13936 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 KzL{(r76Sk`p2PY8 delta 13935 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 Jkp~+V0{~{u;{u9+3AFJ~bb(wO zoAAoDAmt6;$Ss3|LhyoqUUjXJfP%KMwg@875o3KOA|P-<;KFOeg`rZ83(;8A1B5Vh z`$!PxZyN%(tr5PzLk1~)zwrIS_t*0MBQ@Xme?bI!kVX#gUug9Y&so&il`kxZcX`po zR__#Boaj(keOp&RQP$q_KrDe9uN5~+7Y`%7etNAiFcLz+nS}_&Q=GGIc#19HvFd$9 zD09$0vZqI3nh7Se(BKFK(6T(_`^W-#TUrmCQRddCj<-M-n5+N0`w zkOYNl+ryt8K75cm^8sWz6HUWT2`9}-T7{i%aUd|g9V#%-68!aPMOjkme~7L8@8zet zN&b6|{{7)Ypz3$nby-`k3(0@&Ehl45%2Ov}HJgjK?NM4F3kQ8O!327%Uy12h%$%9; z^wGeGd6crK*=>K+3*3FS*>BQ0zAhp>R22P5B1|xu?Z<>SB|H}u&ZWTDw=OHR7c0IJ z^W6wvLVYtu*JZr1j(XN$Ize{@-4%3K(A_+``+BKk#%<>qWi~}6Gvp8AhP7?vU^K1) zmFp-UQjN2-2Z#g#`jb2iM*-xMgba}ZVUrdOaRI24hz-bpjH|NYEP(T}VXa{{ECaV6 z%Ny18CnVUmVZd+vy$Q4Se1uucAhOY_7Wv{jlwqZCt9N6&Y7- zRh8SuVtM(QD^t#Mj7)S!rVcl6jaA(qYfZLKaMo_vf5$j$LXWF5)(uD1HCYNWpN5^> z#PU;p)*F|kbfGU3ohmr6;J|_d?+w$co)6QP2->H?bp*VDma&|?5FN5dXkP?T!36n! zu)EBE9tRi+O^WYPCWVp4_SD{USjj22cz2v*O=%1Alf5N&m<9Nkf`8URszt7Udie06 zoyhcB(dT7bwWZen!dsi&{uFHPP;9Q^-scWHDmupPzDz^I!T3;<<#BrBUFCcu8t(?4 zoJ}se2y!mS`Aa6}n(-7l=Z*V}<*a{dM#NXMOb|N(0kE@(5o`hhDwFjSa1*MuUf-_& QKL7y#|IPr+@To2V0LKlQg#Z8m delta 1386 zcmV-w1(o{vDEKI_2?GHGlL`Yq0mG9?1JeOVlN|&x0rQhj1Y>^(N&!W{1lsr~x!yf_y(g2X=y81V&wj80_*?Vg%_bYH@=^ z2c~xxSwmYT2nB=F+Gf?Lm5A(^8nqZst|+bSv^}Bo)jr^2h!S{FXDXeHHa>O>Cvxx_ zS*M}zZvtgyX(!^zwV~b0QnXhPhO{R?C*$z+v0{IlMyV_kZTqYWuq67hl!;}+?2_YA zrLs+DW~1x!FlzrV?XtVAn9%mDNz)rJrhcv`NPz1}|NihHQ1v_Px~whNh2-{@ld&e{ zsgr-Pn$5-A_9!iog@eACU;@3>uf%jLX3ora`e^JEgUl$P` zDvI$W5hj?-_G7}E5}u0+=ThM7TbC8uixppq`EGoVS0M?GsWouIpd?h3jq z=x!d}eZAB%a`+_vTaRMMn^9vXmL7KZdGW`R$M2<}G~C-YC`=4Jiy-PQ|8X1qaDsp{Jz@Yz;>ir}e^nQIpadq$h9Mh*Nv zo%)Efkx?{Y{Bgx;?D#S@-1yzzTqUZ2&vgiU4-u-1EjGhnb4t6i#pi z31^?*hwzw>j;xS;P~-u>NEB9eKHhEOmXE>jbdEf(5Q{PZjJLC*wHMeppV_u+0i61t z=PQ3(+ICKV_($+CHrL&Te%SWQHZE1si;OF_s>*F+vAq1ul_}>rMkYEVQ-_xQH1nk)sGPs2`bV)>~)>y1lNy3m)2P8A$jaA3iK_l9ZJ z$cO1m1ntw{Is)E6%UDichz{8!v@e3FV1j%<*j;9Sj{}T^CdKzClfp=2dus1FtmG71 zygSaZrnCk5$=(t>%mVyN!9Qyu)gsqFJ$(4kPGowm=<~9z+EQzO;jPVXe+o8tC^lDd z?{fzp6&>StU#6kqV0@^_@;JTmu5!K+jduf2&L$UK1UVPv{3Vlft^X7`=Z*V}<*a{d sM#NXMOb|N(0jRTx5o`hhE|c{Wa1)xeUf-_&KL7y#|C?V-Dyc3300X(O{{R30 diff --git a/chain/actors/builtin/market/state.go.template b/chain/actors/builtin/market/state.go.template index bbaa5c775fa..1eab9d74335 100644 --- a/chain/actors/builtin/market/state.go.template +++ b/chain/actors/builtin/market/state.go.template @@ -19,7 +19,7 @@ import ( "github.com/filecoin-project/lotus/chain/actors/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/types" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/go-state-types/manifest" {{if (le .v 7)}} diff --git a/chain/actors/builtin/market/v0.go b/chain/actors/builtin/market/v0.go index c0a628b47fc..ca6970dfaa1 100644 --- a/chain/actors/builtin/market/v0.go +++ b/chain/actors/builtin/market/v0.go @@ -11,13 +11,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market0 "github.com/filecoin-project/specs-actors/actors/builtin/market" adt0 "github.com/filecoin-project/specs-actors/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v10.go b/chain/actors/builtin/market/v10.go index aaa0ee0f1be..878f0d46584 100644 --- a/chain/actors/builtin/market/v10.go +++ b/chain/actors/builtin/market/v10.go @@ -17,11 +17,11 @@ import ( market10 "github.com/filecoin-project/go-state-types/builtin/v10/market" adt10 "github.com/filecoin-project/go-state-types/builtin/v10/util/adt" markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v11.go b/chain/actors/builtin/market/v11.go index a816e34092b..a6427220972 100644 --- a/chain/actors/builtin/market/v11.go +++ b/chain/actors/builtin/market/v11.go @@ -17,11 +17,11 @@ import ( market11 "github.com/filecoin-project/go-state-types/builtin/v11/market" adt11 "github.com/filecoin-project/go-state-types/builtin/v11/util/adt" markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v12.go b/chain/actors/builtin/market/v12.go index 3532fc4f469..56e651a9be5 100644 --- a/chain/actors/builtin/market/v12.go +++ b/chain/actors/builtin/market/v12.go @@ -17,11 +17,11 @@ import ( market12 "github.com/filecoin-project/go-state-types/builtin/v12/market" adt12 "github.com/filecoin-project/go-state-types/builtin/v12/util/adt" markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v2.go b/chain/actors/builtin/market/v2.go index 89ffdde8f55..ba84e3b03a0 100644 --- a/chain/actors/builtin/market/v2.go +++ b/chain/actors/builtin/market/v2.go @@ -11,13 +11,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/market" adt2 "github.com/filecoin-project/specs-actors/v2/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v3.go b/chain/actors/builtin/market/v3.go index f4d073ed866..f6a0891e730 100644 --- a/chain/actors/builtin/market/v3.go +++ b/chain/actors/builtin/market/v3.go @@ -11,13 +11,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market3 "github.com/filecoin-project/specs-actors/v3/actors/builtin/market" adt3 "github.com/filecoin-project/specs-actors/v3/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v4.go b/chain/actors/builtin/market/v4.go index 422a30cbb12..629e833b67b 100644 --- a/chain/actors/builtin/market/v4.go +++ b/chain/actors/builtin/market/v4.go @@ -11,13 +11,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market4 "github.com/filecoin-project/specs-actors/v4/actors/builtin/market" adt4 "github.com/filecoin-project/specs-actors/v4/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v5.go b/chain/actors/builtin/market/v5.go index b30decb03a2..8925889791f 100644 --- a/chain/actors/builtin/market/v5.go +++ b/chain/actors/builtin/market/v5.go @@ -11,13 +11,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market5 "github.com/filecoin-project/specs-actors/v5/actors/builtin/market" adt5 "github.com/filecoin-project/specs-actors/v5/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v6.go b/chain/actors/builtin/market/v6.go index 377b278ae18..b57d49f9117 100644 --- a/chain/actors/builtin/market/v6.go +++ b/chain/actors/builtin/market/v6.go @@ -13,13 +13,13 @@ import ( rlepluslazy "github.com/filecoin-project/go-bitfield/rle" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market6 "github.com/filecoin-project/specs-actors/v6/actors/builtin/market" adt6 "github.com/filecoin-project/specs-actors/v6/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v7.go b/chain/actors/builtin/market/v7.go index cd4607cbef7..56a1db328f9 100644 --- a/chain/actors/builtin/market/v7.go +++ b/chain/actors/builtin/market/v7.go @@ -13,13 +13,13 @@ import ( rlepluslazy "github.com/filecoin-project/go-bitfield/rle" "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market" adt7 "github.com/filecoin-project/specs-actors/v7/actors/util/adt" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v8.go b/chain/actors/builtin/market/v8.go index 5cce06d3a0a..9c68ee1fd86 100644 --- a/chain/actors/builtin/market/v8.go +++ b/chain/actors/builtin/market/v8.go @@ -16,11 +16,11 @@ import ( market8 "github.com/filecoin-project/go-state-types/builtin/v8/market" adt8 "github.com/filecoin-project/go-state-types/builtin/v8/util/adt" markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/market/v9.go b/chain/actors/builtin/market/v9.go index 095c2085005..d692c15ccb7 100644 --- a/chain/actors/builtin/market/v9.go +++ b/chain/actors/builtin/market/v9.go @@ -17,11 +17,11 @@ import ( market9 "github.com/filecoin-project/go-state-types/builtin/v9/market" markettypes "github.com/filecoin-project/go-state-types/builtin/v9/market" adt9 "github.com/filecoin-project/go-state-types/builtin/v9/util/adt" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/manifest" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" + verifregtypes "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/chain/actors/builtin/miner/actor.go.template b/chain/actors/builtin/miner/actor.go.template index 7319ee9c59d..78d0765c33a 100644 --- a/chain/actors/builtin/miner/actor.go.template +++ b/chain/actors/builtin/miner/actor.go.template @@ -213,8 +213,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange type WorkerKeyChange = minertypes.WorkerKeyChange type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo type SectorPreCommitInfo = minertypes.SectorPreCommitInfo +type SubmitWindowedPoStParams = minertypes.SubmitWindowedPoStParams +type PoStPartition = minertypes.PoStPartition +type RecoveryDeclaration = minertypes.RecoveryDeclaration +type FaultDeclaration = minertypes.FaultDeclaration +type DeclareFaultsRecoveredParams = minertypes.DeclareFaultsRecoveredParams +type DeclareFaultsParams = minertypes.DeclareFaultsParams +type ProveCommitAggregateParams = minertypes.ProveCommitAggregateParams +type ProveCommitSectorParams = minertypes.ProveCommitSectorParams +type ProveReplicaUpdatesParams = minertypes.ProveReplicaUpdatesParams +type ReplicaUpdate = minertypes.ReplicaUpdate +type PreCommitSectorBatchParams = minertypes.PreCommitSectorBatchParams +type PreCommitSectorBatchParams2 = minertypes.PreCommitSectorBatchParams2 +type ExtendSectorExpiration2Params = minertypes.ExtendSectorExpiration2Params +type SectorClaim = minertypes.SectorClaim +type ExpirationExtension2 = minertypes.ExpirationExtension2 +type CompactPartitionsParams = minertypes.CompactPartitionsParams +type WithdrawBalanceParams = minertypes.WithdrawBalanceParams + +var QAPowerMax = minertypes.QAPowerMax + type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo +var WPoStProvingPeriod = func() abi.ChainEpoch { return minertypes.WPoStProvingPeriod } +var WPoStChallengeWindow = func() abi.ChainEpoch { return minertypes.WPoStChallengeWindow } + +const WPoStPeriodDeadlines = minertypes.WPoStPeriodDeadlines +const WPoStChallengeLookback = minertypes.WPoStChallengeLookback +const FaultDeclarationCutoff = minertypes.FaultDeclarationCutoff +const MinAggregatedSectors = minertypes.MinAggregatedSectors +const MinSectorExpiration = minertypes.MinSectorExpiration + type SectorExpiration struct { OnTime abi.ChainEpoch diff --git a/chain/actors/builtin/miner/miner.go b/chain/actors/builtin/miner/miner.go index 3ad17b03337..f957877baeb 100644 --- a/chain/actors/builtin/miner/miner.go +++ b/chain/actors/builtin/miner/miner.go @@ -273,8 +273,37 @@ type PendingBeneficiaryChange = minertypes.PendingBeneficiaryChange type WorkerKeyChange = minertypes.WorkerKeyChange type SectorPreCommitOnChainInfo = minertypes.SectorPreCommitOnChainInfo type SectorPreCommitInfo = minertypes.SectorPreCommitInfo +type SubmitWindowedPoStParams = minertypes.SubmitWindowedPoStParams +type PoStPartition = minertypes.PoStPartition +type RecoveryDeclaration = minertypes.RecoveryDeclaration +type FaultDeclaration = minertypes.FaultDeclaration +type DeclareFaultsRecoveredParams = minertypes.DeclareFaultsRecoveredParams +type DeclareFaultsParams = minertypes.DeclareFaultsParams +type ProveCommitAggregateParams = minertypes.ProveCommitAggregateParams +type ProveCommitSectorParams = minertypes.ProveCommitSectorParams +type ProveReplicaUpdatesParams = minertypes.ProveReplicaUpdatesParams +type ReplicaUpdate = minertypes.ReplicaUpdate +type PreCommitSectorBatchParams = minertypes.PreCommitSectorBatchParams +type PreCommitSectorBatchParams2 = minertypes.PreCommitSectorBatchParams2 +type ExtendSectorExpiration2Params = minertypes.ExtendSectorExpiration2Params +type SectorClaim = minertypes.SectorClaim +type ExpirationExtension2 = minertypes.ExpirationExtension2 +type CompactPartitionsParams = minertypes.CompactPartitionsParams +type WithdrawBalanceParams = minertypes.WithdrawBalanceParams + +var QAPowerMax = minertypes.QAPowerMax + type WindowPostVerifyInfo = proof.WindowPoStVerifyInfo +var WPoStProvingPeriod = func() abi.ChainEpoch { return minertypes.WPoStProvingPeriod } +var WPoStChallengeWindow = func() abi.ChainEpoch { return minertypes.WPoStChallengeWindow } + +const WPoStPeriodDeadlines = minertypes.WPoStPeriodDeadlines +const WPoStChallengeLookback = minertypes.WPoStChallengeLookback +const FaultDeclarationCutoff = minertypes.FaultDeclarationCutoff +const MinAggregatedSectors = minertypes.MinAggregatedSectors +const MinSectorExpiration = minertypes.MinSectorExpiration + type SectorExpiration struct { OnTime abi.ChainEpoch diff --git a/chain/actors/builtin/verifreg/actor.go.template b/chain/actors/builtin/verifreg/actor.go.template index 9b779a68df5..991c6717bd7 100644 --- a/chain/actors/builtin/verifreg/actor.go.template +++ b/chain/actors/builtin/verifreg/actor.go.template @@ -97,4 +97,6 @@ func AllCodes() []cid.Cid { type Allocation = verifregtypes.Allocation type AllocationId = verifregtypes.AllocationId type Claim = verifregtypes.Claim -type ClaimId = verifregtypes.ClaimId \ No newline at end of file +type ClaimId = verifregtypes.ClaimId + +const NoAllocationID = verifregtypes.NoAllocationID diff --git a/chain/actors/builtin/verifreg/verifreg.go b/chain/actors/builtin/verifreg/verifreg.go index e79a790c773..de906f52127 100644 --- a/chain/actors/builtin/verifreg/verifreg.go +++ b/chain/actors/builtin/verifreg/verifreg.go @@ -168,3 +168,5 @@ type Allocation = verifregtypes.Allocation type AllocationId = verifregtypes.AllocationId type Claim = verifregtypes.Claim type ClaimId = verifregtypes.ClaimId + +const NoAllocationID = verifregtypes.NoAllocationID diff --git a/cmd/lotus-miner/precommits-info.go b/cmd/lotus-miner/precommits-info.go index 0ce7575377d..3f9e8c92742 100644 --- a/cmd/lotus-miner/precommits-info.go +++ b/cmd/lotus-miner/precommits-info.go @@ -7,7 +7,6 @@ import ( cbor "github.com/ipfs/go-ipld-cbor" "github.com/urfave/cli/v2" - minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/specs-actors/v7/actors/util/adt" "github.com/filecoin-project/lotus/blockstore" @@ -39,8 +38,8 @@ var sectorPreCommitsCmd = &cli.Command{ if err != nil { return err } - preCommitSector := make([]minertypes.SectorPreCommitOnChainInfo, 0) - err = mst.ForEachPrecommittedSector(func(info minertypes.SectorPreCommitOnChainInfo) error { + preCommitSector := make([]miner.SectorPreCommitOnChainInfo, 0) + err = mst.ForEachPrecommittedSector(func(info miner.SectorPreCommitOnChainInfo) error { preCommitSector = append(preCommitSector, info) return err }) diff --git a/cmd/lotus-miner/sectors.go b/cmd/lotus-miner/sectors.go index 3993ecf7566..f7bec3ccbe6 100644 --- a/cmd/lotus-miner/sectors.go +++ b/cmd/lotus-miner/sectors.go @@ -24,14 +24,13 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/blockstore" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/adt" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/builtin/verifreg" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/types" @@ -193,14 +192,14 @@ var sectorsStatusCmd = &cli.Command{ } tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory()) - mas, err := lminer.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact) + mas, err := miner.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact) if err != nil { return err } errFound := errors.New("found") - if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error { - return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { + if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { + return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { pas, err := part.AllSectors() if err != nil { return err @@ -1075,22 +1074,22 @@ var sectorsExtendCmd = &cli.Command{ tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory()) adtStore := adt.WrapStore(ctx, cbor.NewCborStore(tbs)) - mas, err := lminer.Load(adtStore, mact) + mas, err := miner.Load(adtStore, mact) if err != nil { return err } - activeSectorsLocation := make(map[abi.SectorNumber]*lminer.SectorLocation, len(activeSet)) + activeSectorsLocation := make(map[abi.SectorNumber]*miner.SectorLocation, len(activeSet)) - if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error { - return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { + if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { + return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { pas, err := part.ActiveSectors() if err != nil { return err } return pas.ForEach(func(i uint64) error { - activeSectorsLocation[abi.SectorNumber(i)] = &lminer.SectorLocation{ + activeSectorsLocation[abi.SectorNumber(i)] = &miner.SectorLocation{ Deadline: dlIdx, Partition: partIdx, } @@ -1177,7 +1176,7 @@ var sectorsExtendCmd = &cli.Command{ return diff <= abi.ChainEpoch(cctx.Int64("tolerance")) } - extensions := map[lminer.SectorLocation]map[abi.ChainEpoch][]abi.SectorNumber{} + extensions := map[miner.SectorLocation]map[abi.ChainEpoch][]abi.SectorNumber{} for _, si := range sis { extension := abi.ChainEpoch(cctx.Int64("extension")) newExp := si.Expiration + extension @@ -1741,7 +1740,7 @@ var sectorsCapacityCollateralCmd = &cli.Command{ return err } - spt, err := lminer.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType) + spt, err := miner.PreferredSealProofTypeFromWindowPoStType(nv, mi.WindowPoStProofType) if err != nil { return err } @@ -1910,7 +1909,7 @@ var sectorsExpiredCmd = &cli.Command{ } tbs := blockstore.NewTieredBstore(blockstore.NewAPIBlockstore(fullApi), blockstore.NewMemory()) - mas, err := lminer.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact) + mas, err := miner.Load(adt.WrapStore(ctx, cbor.NewCborStore(tbs)), mact) if err != nil { return err } @@ -1926,8 +1925,8 @@ var sectorsExpiredCmd = &cli.Command{ return xerrors.Errorf("intersecting bitfields: %w", err) } - if err := mas.ForEachDeadline(func(dlIdx uint64, dl lminer.Deadline) error { - return dl.ForEachPartition(func(partIdx uint64, part lminer.Partition) error { + if err := mas.ForEachDeadline(func(dlIdx uint64, dl miner.Deadline) error { + return dl.ForEachPartition(func(partIdx uint64, part miner.Partition) error { live, err := part.LiveSectors() if err != nil { return err diff --git a/node/impl/full/state.go b/node/impl/full/state.go index 6f32c57e476..357584ea031 100644 --- a/node/impl/full/state.go +++ b/node/impl/full/state.go @@ -19,8 +19,6 @@ import ( "github.com/filecoin-project/go-state-types/abi" actorstypes "github.com/filecoin-project/go-state-types/actors" "github.com/filecoin-project/go-state-types/big" - minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" - verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/cbor" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -794,7 +792,7 @@ func (a *StateAPI) StateGetAllocationForPendingDeal(ctx context.Context, dealId if err != nil { return nil, err } - if allocationId == verifregtypes.NoAllocationID { + if allocationId == verifreg.NoAllocationID { return nil, nil } @@ -1040,7 +1038,7 @@ func (a *StateAPI) StateMinerAllocated(ctx context.Context, addr address.Address return mas.GetAllocatedSectors() } -func (a *StateAPI) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*minertypes.SectorPreCommitOnChainInfo, error) { +func (a *StateAPI) StateSectorPreCommitInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorPreCommitOnChainInfo, error) { ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) if err != nil { return nil, xerrors.Errorf("loading tipset %s: %w", tsk, err) @@ -1315,7 +1313,7 @@ func (m *StateModule) MsigGetPending(ctx context.Context, addr address.Address, var initialPledgeNum = types.NewInt(110) var initialPledgeDen = types.NewInt(100) -func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci minertypes.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { +func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) if err != nil { return types.EmptyInt, xerrors.Errorf("loading tipset %s: %w", tsk, err) @@ -1347,7 +1345,7 @@ func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr sectorWeight = builtin.QAPowerForWeight(ssize, duration, w, vw) } } else { - sectorWeight = minertypes.QAPowerMax(ssize) + sectorWeight = miner.QAPowerMax(ssize) } var powerSmoothed builtin.FilterEstimate @@ -1379,7 +1377,7 @@ func (a *StateAPI) StateMinerPreCommitDepositForPower(ctx context.Context, maddr return types.BigDiv(types.BigMul(deposit, initialPledgeNum), initialPledgeDen), nil } -func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr address.Address, pci minertypes.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { +func (a *StateAPI) StateMinerInitialPledgeCollateral(ctx context.Context, maddr address.Address, pci miner.SectorPreCommitInfo, tsk types.TipSetKey) (types.BigInt, error) { // TODO: this repeats a lot of the previous function. Fix that. ts, err := a.Chain.GetTipSetFromKey(ctx, tsk) if err != nil { diff --git a/node/impl/storminer.go b/node/impl/storminer.go index e4fa41c788a..6f460eccdfb 100644 --- a/node/impl/storminer.go +++ b/node/impl/storminer.go @@ -35,7 +35,6 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" builtintypes "github.com/filecoin-project/go-state-types/builtin" - minertypes "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/lotus/api" @@ -43,6 +42,7 @@ import ( "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/actors" "github.com/filecoin-project/lotus/chain/actors/builtin" + lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/gen" "github.com/filecoin-project/lotus/chain/types" mktsdagstore "github.com/filecoin-project/lotus/markets/dagstore" @@ -488,7 +488,7 @@ func (sm *StorageMinerAPI) SectorReceive(ctx context.Context, meta api.RemoteSec return err } -func (sm *StorageMinerAPI) ComputeWindowPoSt(ctx context.Context, dlIdx uint64, tsk types.TipSetKey) ([]minertypes.SubmitWindowedPoStParams, error) { +func (sm *StorageMinerAPI) ComputeWindowPoSt(ctx context.Context, dlIdx uint64, tsk types.TipSetKey) ([]lminer.SubmitWindowedPoStParams, error) { var ts *types.TipSet var err error if tsk == types.EmptyTSK { @@ -1395,7 +1395,7 @@ func (sm *StorageMinerAPI) withdrawBalance(ctx context.Context, amount abi.Token amount = available } - params, err := actors.SerializeParams(&minertypes.WithdrawBalanceParams{ + params, err := actors.SerializeParams(&lminer.WithdrawBalanceParams{ AmountRequested: amount, }) if err != nil { diff --git a/storage/pipeline/commit_batch.go b/storage/pipeline/commit_batch.go index 9948b5432dc..754f317630b 100644 --- a/storage/pipeline/commit_batch.go +++ b/storage/pipeline/commit_batch.go @@ -16,12 +16,12 @@ import ( actorstypes "github.com/filecoin-project/go-state-types/actors" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/go-state-types/proof" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/config" diff --git a/storage/pipeline/precommit_batch.go b/storage/pipeline/precommit_batch.go index 63e26366296..2848a166a5a 100644 --- a/storage/pipeline/precommit_batch.go +++ b/storage/pipeline/precommit_batch.go @@ -14,12 +14,12 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/node/config" diff --git a/storage/pipeline/sealing.go b/storage/pipeline/sealing.go index d664de1e2a9..b93b8ade60b 100644 --- a/storage/pipeline/sealing.go +++ b/storage/pipeline/sealing.go @@ -15,7 +15,6 @@ import ( "github.com/filecoin-project/go-bitfield" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" @@ -24,6 +23,7 @@ import ( "github.com/filecoin-project/go-storedcounter" "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/events" "github.com/filecoin-project/lotus/chain/types" diff --git a/storage/pipeline/states_failed.go b/storage/pipeline/states_failed.go index d952d8edab5..cf9bd4d121c 100644 --- a/storage/pipeline/states_failed.go +++ b/storage/pipeline/states_failed.go @@ -10,12 +10,12 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-commp-utils/zerocomm" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/exitcode" "github.com/filecoin-project/go-statemachine" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/chain/actors/builtin/market" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/storage/sealer/storiface" ) diff --git a/storage/pipeline/states_replica_update.go b/storage/pipeline/states_replica_update.go index e1b9cfc30e6..6717f49a6a6 100644 --- a/storage/pipeline/states_replica_update.go +++ b/storage/pipeline/states_replica_update.go @@ -10,12 +10,12 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/exitcode" "github.com/filecoin-project/go-statemachine" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/storage/pipeline/states_sealing.go b/storage/pipeline/states_sealing.go index 0608ead07f9..d0131101936 100644 --- a/storage/pipeline/states_sealing.go +++ b/storage/pipeline/states_sealing.go @@ -15,7 +15,6 @@ import ( actorstypes "github.com/filecoin-project/go-state-types/actors" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/exitcode" "github.com/filecoin-project/go-state-types/network" @@ -24,6 +23,7 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/storage/pipeline/lib/nullreader" diff --git a/storage/wdpost/wdpost_changehandler.go b/storage/wdpost/wdpost_changehandler.go index 266b8b0421a..5f4b0ca0c3e 100644 --- a/storage/wdpost/wdpost_changehandler.go +++ b/storage/wdpost/wdpost_changehandler.go @@ -6,9 +6,9 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/dline" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" ) @@ -531,12 +531,12 @@ func nextDeadline(currentDeadline *dline.Info) *dline.Info { newDeadline := currentDeadline.Index + 1 if newDeadline == miner.WPoStPeriodDeadlines { newDeadline = 0 - periodStart = periodStart + miner.WPoStProvingPeriod + periodStart = periodStart + miner.WPoStProvingPeriod() } return NewDeadlineInfo(periodStart, newDeadline, currentDeadline.CurrentEpoch) } func NewDeadlineInfo(periodStart abi.ChainEpoch, deadlineIdx uint64, currEpoch abi.ChainEpoch) *dline.Info { - return dline.NewInfo(periodStart, deadlineIdx, currEpoch, miner.WPoStPeriodDeadlines, miner.WPoStProvingPeriod, miner.WPoStChallengeWindow, miner.WPoStChallengeLookback, miner.FaultDeclarationCutoff) + return dline.NewInfo(periodStart, deadlineIdx, currEpoch, miner.WPoStPeriodDeadlines, miner.WPoStProvingPeriod(), miner.WPoStChallengeWindow(), miner.WPoStChallengeLookback, miner.FaultDeclarationCutoff) } diff --git a/storage/wdpost/wdpost_journal.go b/storage/wdpost/wdpost_journal.go index 406628f681b..68cad3fcf3f 100644 --- a/storage/wdpost/wdpost_journal.go +++ b/storage/wdpost/wdpost_journal.go @@ -4,8 +4,9 @@ import ( "github.com/ipfs/go-cid" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/dline" + + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" ) // SchedulerState defines the possible states in which the scheduler could be, diff --git a/storage/wdpost/wdpost_run.go b/storage/wdpost/wdpost_run.go index c2a448fb093..d70d0254fde 100644 --- a/storage/wdpost/wdpost_run.go +++ b/storage/wdpost/wdpost_run.go @@ -15,7 +15,6 @@ import ( "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/big" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" "github.com/filecoin-project/go-state-types/network" @@ -25,6 +24,7 @@ import ( "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/actors" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/actors/policy" "github.com/filecoin-project/lotus/chain/messagepool" "github.com/filecoin-project/lotus/chain/types" diff --git a/storage/wdpost/wdpost_run_faults.go b/storage/wdpost/wdpost_run_faults.go index 2474ce77b3c..ebdd66a69f8 100644 --- a/storage/wdpost/wdpost_run_faults.go +++ b/storage/wdpost/wdpost_run_faults.go @@ -14,12 +14,12 @@ import ( "github.com/filecoin-project/go-bitfield" "github.com/filecoin-project/go-state-types/abi" "github.com/filecoin-project/go-state-types/builtin" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/dline" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/actors" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/types" ) diff --git a/storage/wdpost/wdpost_sched.go b/storage/wdpost/wdpost_sched.go index 29c39ad9e44..8e2a8bc96dd 100644 --- a/storage/wdpost/wdpost_sched.go +++ b/storage/wdpost/wdpost_sched.go @@ -12,14 +12,13 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-bitfield" "github.com/filecoin-project/go-state-types/abi" - "github.com/filecoin-project/go-state-types/builtin/v9/miner" "github.com/filecoin-project/go-state-types/crypto" "github.com/filecoin-project/go-state-types/dline" "github.com/filecoin-project/go-state-types/network" "github.com/filecoin-project/lotus/api" "github.com/filecoin-project/lotus/build" - lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner" + "github.com/filecoin-project/lotus/chain/actors/builtin/miner" "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/journal" @@ -45,7 +44,7 @@ type NodeAPI interface { StateMinerPartitions(context.Context, address.Address, uint64, types.TipSetKey) ([]api.Partition, error) StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) StateAccountKey(context.Context, address.Address, types.TipSetKey) (address.Address, error) - StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) + StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*miner.SectorLocation, error) MpoolPushMessage(context.Context, *types.Message, *api.MessageSendSpec) (*types.SignedMessage, error)