From d9ae317a38a7184b186484d05a94f66330c36bdc Mon Sep 17 00:00:00 2001 From: wit liu <765765346@qq.com> Date: Sun, 21 Sep 2025 19:41:54 +0800 Subject: [PATCH] all: format golang files (#1548) Co-authored-by: wit --- .../usbwallet/trezor/messages-common.pb.go | 22 +++---- .../usbwallet/trezor/messages-ethereum.pb.go | 20 +++---- .../trezor/messages-management.pb.go | 36 ++++++------ accounts/usbwallet/trezor/messages.pb.go | 2 +- .../engine_v2_tests/proposed_block_test.go | 6 +- core/gen_genesis.go | 48 ++++++++-------- core/genesis_alloc_devnet.go | 2 +- core/txpool/list.go | 2 +- crypto/secp256k1/dummy.go | 1 - eth/downloader/queue.go | 7 ++- eth/downloader/resultstore.go | 9 +-- p2p/discv5/sim_testmain_test.go | 1 + p2p/netutil/toobig_notwindows.go | 3 +- p2p/netutil/toobig_windows.go | 3 +- p2p/simulations/mocker.go | 22 +++---- rpc/doc.go | 57 +++++++++---------- 16 files changed, 122 insertions(+), 119 deletions(-) diff --git a/accounts/usbwallet/trezor/messages-common.pb.go b/accounts/usbwallet/trezor/messages-common.pb.go index 58c3f65b2e..73800802bb 100644 --- a/accounts/usbwallet/trezor/messages-common.pb.go +++ b/accounts/usbwallet/trezor/messages-common.pb.go @@ -113,7 +113,7 @@ func (Failure_FailureType) EnumDescriptor() ([]byte, []int) { return file_messages_common_proto_rawDescGZIP(), []int{1, 0} } -//* +// * // Type of button request type ButtonRequest_ButtonRequestType int32 @@ -210,7 +210,7 @@ func (ButtonRequest_ButtonRequestType) EnumDescriptor() ([]byte, []int) { return file_messages_common_proto_rawDescGZIP(), []int{2, 0} } -//* +// * // Type of PIN request type PinMatrixRequest_PinMatrixRequestType int32 @@ -271,7 +271,7 @@ func (PinMatrixRequest_PinMatrixRequestType) EnumDescriptor() ([]byte, []int) { return file_messages_common_proto_rawDescGZIP(), []int{4, 0} } -//* +// * // Response: Success of the previous request // @end type Success struct { @@ -321,7 +321,7 @@ func (x *Success) GetMessage() string { return "" } -//* +// * // Response: Failure of the previous request // @end type Failure struct { @@ -379,7 +379,7 @@ func (x *Failure) GetMessage() string { return "" } -//* +// * // Response: Device is waiting for HW button press. // @auxstart // @next ButtonAck @@ -438,7 +438,7 @@ func (x *ButtonRequest) GetData() string { return "" } -//* +// * // Request: Computer agrees to wait for HW button press // @auxend type ButtonAck struct { @@ -530,7 +530,7 @@ func (x *PinMatrixRequest) GetType() PinMatrixRequest_PinMatrixRequestType { return PinMatrixRequest_PinMatrixRequestType_Current } -//* +// * // Request: Computer responds with encoded PIN // @auxend type PinMatrixAck struct { @@ -580,7 +580,7 @@ func (x *PinMatrixAck) GetPin() string { return "" } -//* +// * // Response: Device awaits encryption passphrase // @auxstart // @next PassphraseAck @@ -631,7 +631,7 @@ func (x *PassphraseRequest) GetOnDevice() bool { return false } -//* +// * // Request: Send passphrase back // @next PassphraseStateRequest type PassphraseAck struct { @@ -689,7 +689,7 @@ func (x *PassphraseAck) GetState() []byte { return nil } -//* +// * // Response: Device awaits passphrase state // @next PassphraseStateAck type PassphraseStateRequest struct { @@ -739,7 +739,7 @@ func (x *PassphraseStateRequest) GetState() []byte { return nil } -//* +// * // Request: Send passphrase state back // @auxend type PassphraseStateAck struct { diff --git a/accounts/usbwallet/trezor/messages-ethereum.pb.go b/accounts/usbwallet/trezor/messages-ethereum.pb.go index 6ab25df0c3..a92123efcd 100644 --- a/accounts/usbwallet/trezor/messages-ethereum.pb.go +++ b/accounts/usbwallet/trezor/messages-ethereum.pb.go @@ -24,7 +24,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -//* +// * // Request: Ask device for public key corresponding to address_n path // @start // @next EthereumPublicKey @@ -84,7 +84,7 @@ func (x *EthereumGetPublicKey) GetShowDisplay() bool { return false } -//* +// * // Response: Contains public key derived from device private seed // @end type EthereumPublicKey struct { @@ -142,7 +142,7 @@ func (x *EthereumPublicKey) GetXpub() string { return "" } -//* +// * // Request: Ask device for Ethereum address corresponding to address_n path // @start // @next EthereumAddress @@ -202,7 +202,7 @@ func (x *EthereumGetAddress) GetShowDisplay() bool { return false } -//* +// * // Response: Contains an Ethereum address derived from device private seed // @end type EthereumAddress struct { @@ -260,7 +260,7 @@ func (x *EthereumAddress) GetAddressHex() string { return "" } -//* +// * // Request: Ask device to sign transaction // All fields are optional from the protocol's point of view. Each field defaults to value `0` if missing. // Note: the first at most 1024 bytes of data MUST be transmitted as part of this message. @@ -394,7 +394,7 @@ func (x *EthereumSignTx) GetTxType() uint32 { return 0 } -//* +// * // Response: Device asks for more data from transaction payload, or returns the signature. // If data_length is set, device awaits that many more bytes of payload. // Otherwise, the signature_* fields contain the computed transaction signature. All three fields will be present. @@ -471,7 +471,7 @@ func (x *EthereumTxRequest) GetSignatureS() []byte { return nil } -//* +// * // Request: Transaction payload data. // @next EthereumTxRequest type EthereumTxAck struct { @@ -521,7 +521,7 @@ func (x *EthereumTxAck) GetDataChunk() []byte { return nil } -//* +// * // Request: Ask device to sign message // @start // @next EthereumMessageSignature @@ -581,7 +581,7 @@ func (x *EthereumSignMessage) GetMessage() []byte { return nil } -//* +// * // Response: Signed message // @end type EthereumMessageSignature struct { @@ -647,7 +647,7 @@ func (x *EthereumMessageSignature) GetAddressHex() string { return "" } -//* +// * // Request: Ask device to verify message // @start // @next Success diff --git a/accounts/usbwallet/trezor/messages-management.pb.go b/accounts/usbwallet/trezor/messages-management.pb.go index af435184b1..983e2d281d 100644 --- a/accounts/usbwallet/trezor/messages-management.pb.go +++ b/accounts/usbwallet/trezor/messages-management.pb.go @@ -24,7 +24,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -//* +// * // Structure representing passphrase source type ApplySettings_PassphraseSourceType int32 @@ -85,7 +85,7 @@ func (ApplySettings_PassphraseSourceType) EnumDescriptor() ([]byte, []int) { return file_messages_management_proto_rawDescGZIP(), []int{4, 0} } -//* +// * // Type of recovery procedure. These should be used as bitmask, e.g., // `RecoveryDeviceType_ScrambledWords | RecoveryDeviceType_Matrix` // listing every method supported by the host computer. @@ -149,7 +149,7 @@ func (RecoveryDevice_RecoveryDeviceType) EnumDescriptor() ([]byte, []int) { return file_messages_management_proto_rawDescGZIP(), []int{17, 0} } -//* +// * // Type of Recovery Word request type WordRequest_WordRequestType int32 @@ -210,7 +210,7 @@ func (WordRequest_WordRequestType) EnumDescriptor() ([]byte, []int) { return file_messages_management_proto_rawDescGZIP(), []int{18, 0} } -//* +// * // Request: Reset device to default state and ask for device details // @start // @next Features @@ -269,7 +269,7 @@ func (x *Initialize) GetSkipPassphrase() bool { return false } -//* +// * // Request: Ask for device details (no device reset) // @start // @next Features @@ -569,7 +569,7 @@ func (x *Features) GetNoBackup() bool { return false } -//* +// * // Request: clear session (removes cached PIN, passphrase, etc). // @start // @next Success @@ -711,7 +711,7 @@ func (x *ApplySettings) GetDisplayRotation() uint32 { return 0 } -//* +// * // Request: set flags of the device // @start // @next Success @@ -763,7 +763,7 @@ func (x *ApplyFlags) GetFlags() uint32 { return 0 } -//* +// * // Request: Starts workflow for setting/changing/removing the PIN // @start // @next Success @@ -815,7 +815,7 @@ func (x *ChangePin) GetRemove() bool { return false } -//* +// * // Request: Test if the device is alive, device sends back the message in Success response // @start // @next Success @@ -890,7 +890,7 @@ func (x *Ping) GetPassphraseProtection() bool { return false } -//* +// * // Request: Abort last operation that required user interaction // @start // @next Failure @@ -984,7 +984,7 @@ func (x *GetEntropy) GetSize() uint32 { return 0 } -//* +// * // Response: Reply with random data generated by internal RNG // @end type Entropy struct { @@ -1034,7 +1034,7 @@ func (x *Entropy) GetEntropy() []byte { return nil } -//* +// * // Request: Request device to wipe all sensitive data and settings // @start // @next Success @@ -1190,7 +1190,7 @@ func (x *LoadDevice) GetU2FCounter() uint32 { return 0 } -//* +// * // Request: Ask device to do initialization involving user interaction // @start // @next EntropyRequest @@ -1312,7 +1312,7 @@ func (x *ResetDevice) GetNoBackup() bool { return false } -//* +// * // Request: Perform backup of the device seed if not backed up using ResetDevice // @start // @next Success @@ -1445,7 +1445,7 @@ func (x *EntropyAck) GetEntropy() []byte { return nil } -//* +// * // Request: Start recovery workflow asking user for specific words of mnemonic // Used to recovery device safely even on untrusted computer. // @start @@ -1567,7 +1567,7 @@ func (x *RecoveryDevice) GetDryRun() bool { return false } -//* +// * // Response: Device is waiting for user to enter word of the mnemonic // Its position is shown only on device's internal display. // @next WordAck @@ -1618,7 +1618,7 @@ func (x *WordRequest) GetType() WordRequest_WordRequestType { return WordRequest_WordRequestType_Plain } -//* +// * // Request: Computer replies with word from the mnemonic // @next WordRequest // @next Success @@ -1670,7 +1670,7 @@ func (x *WordAck) GetWord() string { return "" } -//* +// * // Request: Set U2F counter // @start // @next Success diff --git a/accounts/usbwallet/trezor/messages.pb.go b/accounts/usbwallet/trezor/messages.pb.go index 39b8493273..4518db679e 100644 --- a/accounts/usbwallet/trezor/messages.pb.go +++ b/accounts/usbwallet/trezor/messages.pb.go @@ -25,7 +25,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -//* +// * // Mapping between TREZOR wire identifier (uint) and a protobuf message type MessageType int32 diff --git a/consensus/tests/engine_v2_tests/proposed_block_test.go b/consensus/tests/engine_v2_tests/proposed_block_test.go index 3f39a24a66..ee8a07d24b 100644 --- a/consensus/tests/engine_v2_tests/proposed_block_test.go +++ b/consensus/tests/engine_v2_tests/proposed_block_test.go @@ -298,9 +298,9 @@ func TestShouldNotSendVoteMsgIfBlockInfoRoundNotEqualCurrentRound(t *testing.T) } /* - Block and round relationship diagram for this test - ... - 13(3) - 14(4) - 15(5) - 16(6) - \ 14'(7) + Block and round relationship diagram for this test + ... - 13(3) - 14(4) - 15(5) - 16(6) + \ 14'(7) */ func TestShouldNotSendVoteMsgIfBlockNotExtendedFromAncestor(t *testing.T) { // Block number 905, 906 have forks and forkedBlock is the 906th diff --git a/core/gen_genesis.go b/core/gen_genesis.go index 181f6740d7..119ee6f10b 100644 --- a/core/gen_genesis.go +++ b/core/gen_genesis.go @@ -19,19 +19,19 @@ var _ = (*genesisSpecMarshaling)(nil) // MarshalJSON marshals as JSON. func (g Genesis) MarshalJSON() ([]byte, error) { type Genesis struct { - Config *params.ChainConfig `json:"config"` - Nonce math.HexOrDecimal64 `json:"nonce"` - Timestamp math.HexOrDecimal64 `json:"timestamp"` - ExtraData hexutil.Bytes `json:"extraData"` - GasLimit math.HexOrDecimal64 `json:"gasLimit" gencodec:"required"` - Difficulty *math.HexOrDecimal256 `json:"difficulty" gencodec:"required"` - Mixhash common.Hash `json:"mixHash"` - Coinbase common.Address `json:"coinbase"` + Config *params.ChainConfig `json:"config"` + Nonce math.HexOrDecimal64 `json:"nonce"` + Timestamp math.HexOrDecimal64 `json:"timestamp"` + ExtraData hexutil.Bytes `json:"extraData"` + GasLimit math.HexOrDecimal64 `json:"gasLimit" gencodec:"required"` + Difficulty *math.HexOrDecimal256 `json:"difficulty" gencodec:"required"` + Mixhash common.Hash `json:"mixHash"` + Coinbase common.Address `json:"coinbase"` Alloc map[common.UnprefixedAddress]types.Account `json:"alloc" gencodec:"required"` - Number math.HexOrDecimal64 `json:"number"` - GasUsed math.HexOrDecimal64 `json:"gasUsed"` - ParentHash common.Hash `json:"parentHash"` - BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` + Number math.HexOrDecimal64 `json:"number"` + GasUsed math.HexOrDecimal64 `json:"gasUsed"` + ParentHash common.Hash `json:"parentHash"` + BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` } var enc Genesis enc.Config = g.Config @@ -58,19 +58,19 @@ func (g Genesis) MarshalJSON() ([]byte, error) { // UnmarshalJSON unmarshals from JSON. func (g *Genesis) UnmarshalJSON(input []byte) error { type Genesis struct { - Config *params.ChainConfig `json:"config"` - Nonce *math.HexOrDecimal64 `json:"nonce"` - Timestamp *math.HexOrDecimal64 `json:"timestamp"` - ExtraData *hexutil.Bytes `json:"extraData"` - GasLimit *math.HexOrDecimal64 `json:"gasLimit" gencodec:"required"` - Difficulty *math.HexOrDecimal256 `json:"difficulty" gencodec:"required"` - Mixhash *common.Hash `json:"mixHash"` - Coinbase *common.Address `json:"coinbase"` + Config *params.ChainConfig `json:"config"` + Nonce *math.HexOrDecimal64 `json:"nonce"` + Timestamp *math.HexOrDecimal64 `json:"timestamp"` + ExtraData *hexutil.Bytes `json:"extraData"` + GasLimit *math.HexOrDecimal64 `json:"gasLimit" gencodec:"required"` + Difficulty *math.HexOrDecimal256 `json:"difficulty" gencodec:"required"` + Mixhash *common.Hash `json:"mixHash"` + Coinbase *common.Address `json:"coinbase"` Alloc map[common.UnprefixedAddress]types.Account `json:"alloc" gencodec:"required"` - Number *math.HexOrDecimal64 `json:"number"` - GasUsed *math.HexOrDecimal64 `json:"gasUsed"` - ParentHash *common.Hash `json:"parentHash"` - BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` + Number *math.HexOrDecimal64 `json:"number"` + GasUsed *math.HexOrDecimal64 `json:"gasUsed"` + ParentHash *common.Hash `json:"parentHash"` + BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` } var dec Genesis if err := json.Unmarshal(input, &dec); err != nil { diff --git a/core/genesis_alloc_devnet.go b/core/genesis_alloc_devnet.go index 2d8e7bd3b8..19f542ac75 100644 --- a/core/genesis_alloc_devnet.go +++ b/core/genesis_alloc_devnet.go @@ -1,3 +1,3 @@ package core -const DevnetAllocData = "{\"0000000000000000000000000000000000000000\":{\"balance\":\"0x0\"},\"0000000000000000000000000000000000000001\":{\"balance\":\"0x0\"},\"0000000000000000000000000000000000000068\":{\"balance\":\"0xd3c21bcecceda10000000\"},\"0000000000000000000000000000000000000088\":{\"code\":\"0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063012679511461019b578063025e7c27146101c957806302aa9be21461022c57806306a49fce1461026e5780630db02622146102d85780630e3e4fb81461030157806315febd68146103715780632a3640b1146103a85780632d15cc041461042a5780632f9c4bba146104b8578063302b687214610522578063326586521461058e5780633477ee2e14610640578063441a3e70146106a357806358e7525f146106cf5780635b860d271461071c5780635b9cd8cc146107695780636dd7d8ea1461082457806372e44a3814610852578063a9a981a31461089f578063a9ff959e146108c8578063ae6e43f5146108f1578063b642facd1461092a578063c45607df146109a3578063d09f1ab4146109f0578063d161c76714610a19578063d51b9e9314610a42578063d55b7dff14610a93578063ef18374a14610abc578063f2ee3c7d14610ae5578063f5c9512514610b1e578063f8ac9dd514610b4c575b600080fd5b6101c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b75565b005b34156101d457600080fd5b6101ea60048080359060200190919050506111fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561023757600080fd5b61026c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061123b565b005b341561027957600080fd5b610281611796565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102c45780820151818401526020810190506102a9565b505050509050019250505060405180910390f35b34156102e357600080fd5b6102eb61182a565b6040518082815260200191505060405180910390f35b341561030c57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611830565b604051808215151515815260200191505060405180910390f35b341561037c57600080fd5b610392600480803590602001909190505061185f565b6040518082815260200191505060405180910390f35b34156103b357600080fd5b6103e8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043557600080fd5b610461600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104a4578082015181840152602081019050610489565b505050509050019250505060405180910390f35b34156104c357600080fd5b6104cb6119dc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561050e5780820151818401526020810190506104f3565b505050509050019250505060405180910390f35b341561052d57600080fd5b610578600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a79565b6040518082815260200191505060405180910390f35b341561059957600080fd5b6105c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b03565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106055780820151818401526020810190506105ea565b50505050905090810190601f1680156106325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064b57600080fd5b6106616004808035906020019091905050611da2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106ae57600080fd5b6106cd6004808035906020019091908035906020019091905050611de1565b005b34156106da57600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061208d565b6040518082815260200191505060405180910390f35b341561072757600080fd5b610753600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120d9565b6040518082815260200191505060405180910390f35b341561077457600080fd5b6107a9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506121a1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e95780820151818401526020810190506107ce565b50505050905090810190601f1680156108165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610850600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061226a565b005b341561085d57600080fd5b610889600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612653565b6040518082815260200191505060405180910390f35b34156108aa57600080fd5b6108b261266b565b6040518082815260200191505060405180910390f35b34156108d357600080fd5b6108db612671565b6040518082815260200191505060405180910390f35b34156108fc57600080fd5b610928600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612677565b005b341561093557600080fd5b610961600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ae57600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ca2565b6040518082815260200191505060405180910390f35b34156109fb57600080fd5b610a03612cee565b6040518082815260200191505060405180910390f35b3415610a2457600080fd5b610a2c612cf4565b6040518082815260200191505060405180910390f35b3415610a4d57600080fd5b610a79600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612cfa565b604051808215151515815260200191505060405180910390f35b3415610a9e57600080fd5b610aa6612d53565b6040518082815260200191505060405180910390f35b3415610ac757600080fd5b610acf612d59565b6040518082815260200191505060405180910390f35b3415610af057600080fd5b610b1c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d63565b005b3415610b2957600080fd5b610b4a600480803590602001908201803590602001919091929050506134f1565b005b3415610b5757600080fd5b610b5f6135f0565b6040518082815260200191505060405180910390f35b6000600b543410151515610b8857600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141580610c1c57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050115b1515610c2757600080fd5b81600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151515610c8457600080fd5b610cd934600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b915060088054806001018281610cef919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160011515815260200183815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160010155905050610eb834600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5160016009546135f690919063ffffffff16565b6009819055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156110185760078054806001018281610fb6919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600a600081548092919060010191905055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611069919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611109919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c1338434604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60078181548110151561120b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828280600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156112cd57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561140657600b546113f882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b1015151561140557600080fd5b5b61145b84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061153384600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115cb43600f546135f690919063ffffffff16565b9250611632846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816116db9190613659565b9160005260206000209001600085909190915055507faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa2338686604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b61179e613685565b600880548060200260200160405190810160405280929190818152602001828054801561182057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116117d6575b5050505050905090565b600a5481565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000838152602001908152602001600020549050919050565b6006602052816000526040600020818154811015156118d657fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611911613685565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156119d057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611986575b50505050509050919050565b6119e4613699565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015611a6f57602002820191906000526020600020905b815481526020019060010190808311611a5b575b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b0b6136ad565b611b1482612cfa565b15611c655760036000611b2684612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600160036000611b6f86612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611bba57fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c595780601f10611c2e57610100808354040283529160200191611c59565b820191906000526020600020905b815481529060010190602001808311611c3c57829003601f168201915b50505050509050611d9d565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611cf657fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d955780601f10611d6a57610100808354040283529160200191611d95565b820191906000526020600020905b815481529060010190602001808311611d7857829003601f168201915b505050505090505b919050565b600881815481101515611db157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282600082111515611df457600080fd5b814310151515611e0357600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600084815260200190815260200160002054111515611e6457600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611eb357fe5b906000526020600020900154141515611ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008681526020019081526020016000205492506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020600090556000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184815481101515611fc457fe5b9060005260206000209001600090553373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561201357600080fd5b7ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568338685604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008082600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561213857600080fd5b61214184612c36565b915061214b612d59565b6064600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561219757fe5b0492505050919050565b6003602052816000526040600020818154811015156121bc57fe5b9060005260206000209001600091509150508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122625780601f1061223757610100808354040283529160200191612262565b820191906000526020600020905b81548152906001019060200180831161224557829003601f168201915b505050505081565b600c54341015151561227b57600080fd5b80600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff1615156122d757600080fd5b61232c34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561249b57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161244b919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b61252d34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc338334604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b60046020528060005260406000206000915090505481565b60095481565b600f5481565b6000806000833373ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561271957600080fd5b84600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561277557600080fd5b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160146101000a81548160ff0219169083151502179055506127e6600160095461361490919063ffffffff16565b600981905550600094505b6008805490508510156128bb578573ffffffffffffffffffffffffffffffffffffffff1660088681548110151561282457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156128ae5760088581548110151561287b57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556128bb565b84806001019550506127f1565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061299284600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7243600e546135f690919063ffffffff16565b9250612ad9846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054806001018281612b829190613659565b9160005260206000209001600085909190915055507f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d33387604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600d5481565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff169050919050565b600b5481565b6000600a54905090565b600080612d6e613685565b600080600033600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612dcf57600080fd5b87600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612e2b57600080fd5b612e3433612c36565b9750612e3f89612c36565b9650600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612ed757600080fd5b6001600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550604b612fc4612d59565b6064600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561301057fe5b041015156134e65760016008805490500360405180591061302e5750595b9080825280602002602001820160405250955060009450600093505b600880549050841015613357578673ffffffffffffffffffffffffffffffffffffffff166130b160088681548110151561308057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c36565b73ffffffffffffffffffffffffffffffffffffffff16141561334a576130e3600160095461361490919063ffffffff16565b6009819055506008848154811015156130f857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868680600101975081518110151561313857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060088481548110151561318357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160006008868154811015156131c457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905560018201600090555050600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006132bb91906136c1565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061330691906136e2565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090555b838060010194505061304a565b600092505b600780549050831015613439578673ffffffffffffffffffffffffffffffffffffffff1660078481548110151561338f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561342c576007838154811015156133e657fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600a6000815480929190600190039190505550613439565b828060010193505061335c565b7fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e8787604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156134d15780820151818401526020810190506134b6565b50505050905001935050505060405180910390a15b505050505050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816135429190613703565b91600052602060002090016000848490919290919250919061356592919061372f565b50507f949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a15050565b600c5481565b600080828401905083811015151561360a57fe5b8091505092915050565b600082821115151561362257fe5b818303905092915050565b8154818355818115116136545781836000526020600020918201910161365391906137af565b5b505050565b8154818355818115116136805781836000526020600020918201910161367f91906137af565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b50805460008255906000526020600020908101906136df91906137d4565b50565b508054600082559060005260206000209081019061370091906137af565b50565b81548183558181151161372a5781836000526020600020918201910161372991906137d4565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061377057803560ff191683800117855561379e565b8280016001018555821561379e579182015b8281111561379d578235825591602001919060010190613782565b5b5090506137ab91906137af565b5090565b6137d191905b808211156137cd5760008160009055506001016137b5565b5090565b90565b6137fd91905b808211156137f957600081816137f09190613800565b506001016137da565b5090565b90565b50805460018160011615610100020316600290046000825580601f106138265750613845565b601f01602090049060005260206000209081019061384491906137af565b5b505600a165627a7a72305820f5bbb127b52ce86c873faef85cff176563476a5e49a3d88eaa9a06a8f432c9080029\",\"storage\":{\"0x0000000000000000000000000000000000000000000000000000000000000007\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x0000000000000000000000000000000000000000000000000000000000000008\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x0000000000000000000000000000000000000000000000000000000000000009\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x000000000000000000000000000000000000000000000000000000000000000a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x000000000000000000000000000000000000000000000000000000000000000b\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x000000000000000000000000000000000000000000000000000000000000000c\":\"0x00000000000000000000000000000000000000000000054b40b1f852bda00000\",\"0x000000000000000000000000000000000000000000000000000000000000000d\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x000000000000000000000000000000000000000000000000000000000000000e\":\"0x000000000000000000000000000000000000000000000000000000000013c680\",\"0x000000000000000000000000000000000000000000000000000000000000000f\":\"0x0000000000000000000000000000000000000000000000000000000000069780\",\"0x030c4482e31df0bec3a61ba9044822c841d3be0a21a4a43d22ffabb19a238030\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x03857c1c3036c8068aecc274ccdef26c09d6bc8d7323c3b0af04944281aea3c5\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x04606a03b4103377c3cc40f7d070c9672b8c34f833337c95acd6cc3b9ef873be\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x04606a03b4103377c3cc40f7d070c9672b8c34f833337c95acd6cc3b9ef873bf\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x0f0a4bf138332e4dee2840995f18ef3f4e7ce9800a43298cd303f652f37e2760\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x0f77b98b641f695810840536460aceac3aa93db4b69360cb1e825fc50a01cbf8\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x125b08b20a070fdff51220f22ab5783fe8553385c29d73595065987e274ae2ba\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x125b08b20a070fdff51220f22ab5783fe8553385c29d73595065987e274ae2bb\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x141b2f299c67c202a3f56d8c761ef8412df00a99dc4d7df7132fea8b618710fb\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x15e82e9588701aace370d9b0ae88a15878117328c72679be3a43f1fde5480b52\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x19474e4e22de9b7e74a0e935e50e07474f1922fca9ca508d627a1753b89a04c0\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x1a53676945466c0303c4763ecd9fe35b640c62214817fc1cd445cd2df311d75e\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x1acfc824f6e62266e1ddfd5296eb428cb6235e11eb419042440ee2cd234f5064\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x206df8c61c26c41c2f5d8628f9b0af634f51cea5204c2860beac8743b789d8f9\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x213528a16906ba2c7ae2d13a88332596a8f7dba04445edce4dd35851adc6270b\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x217e08ed8a88d1aa61780ebbfa2433d8ee93fe281a28caa61609ffd7feb6ff48\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x217e08ed8a88d1aa61780ebbfa2433d8ee93fe281a28caa61609ffd7feb6ff49\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x2bbcd29309cdf0c2e0fb87eb0912eda2715ff0d0800356af3b13b1877fc96294\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x2ea8dbac375e20907f0f6064477fb65f425b25387bc4af4a9fa0d909542ad6ec\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x2f46cce9be56b195a997053b94333e3e8608e77a9049008a7867ece9434d7490\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x32f30f989a9121096e27b0ceff2143dfd8ad0a279e39b2dbdd4720d758b1235e\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x334998a4166b71bbee90c9a5395d45b437458344b336983ce195ac15c4cabf41\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x37bbbe931ce8669c7360584cc0c8719480098d88b382fa5147ab6070f6a995e9\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x383c8c93b8864dd3dd80dcce451bff3ccecfe0ef316daeffc3429e8c734ca219\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x424c760de55550140740213338215fb5e72732d77ff28c6fcdce25cc0da4b4df\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x42b4293dae5548c9e2c405a2d603c1b7c254591f10e1a19d475c9573a806ddbf\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x4315dd31061c8b8e85c5b7d9df3c6dda7f6e48ad32c7bd25549115df18f68eb7\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x433573bf8c109958dcd2a79e075574b3fa76ee1309194d6985ec9eb993cfc4a8\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x433573bf8c109958dcd2a79e075574b3fa76ee1309194d6985ec9eb993cfc4a9\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x471f33d3408681a476d422388b3e426fc8fd1f4db2b3cf07127fc0430da13d5a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x48ddfeab6816c7d8ea504eaceba35584eed68f73e8bca46561c49f828945d870\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x4bcc08cdec386d590e3c1b686244142bf6e504749f55207aea8cba6292b4a05c\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930991\":\"0x000000000000000000000000311bdf9066246e68559816e7f636435867f824ef\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930992\":\"0x000000000000000000000000442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930993\":\"0x00000000000000000000000047318441696e9ae962633c16e04d53935272639d\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930994\":\"0x000000000000000000000000537fc89618edae86950e12687a612e15c4786b84\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930995\":\"0x00000000000000000000000073898cc3c5beca5841306b26fdb4e30411392a6a\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930996\":\"0x00000000000000000000000074826141342a4dc33a1045cefa4182b6212ec031\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930997\":\"0x0000000000000000000000007bc30fbeb7208192d1474b5f87ffbc056de43c11\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930998\":\"0x000000000000000000000000888c073313b36cf03cf1f739f39443551ff12bbe\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930999\":\"0x0000000000000000000000008d993351c0e2db739f9bcbfdeda94d73b50b16d3\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099a\":\"0x000000000000000000000000a242960b7ca1937e826bda6c397df74d9f9ab01a\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099b\":\"0x000000000000000000000000a89af636787499e81362e815e36f28763eac120b\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099c\":\"0x000000000000000000000000abebf5a6cbe6113780cbe489e3eb0db882381aeb\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099d\":\"0x000000000000000000000000af81190100d82f41ad2c95898195c7a47dc59115\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099e\":\"0x000000000000000000000000bb5ec85408683795da2f604a5c0464868eabfcb6\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099f\":\"0x000000000000000000000000da489a1b4304f49aafaec938c7adc48539470624\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a0\":\"0x000000000000000000000000e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a1\":\"0x000000000000000000000000efea93e384a6ccaaf28e33790a2d1b2625bf964d\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a2\":\"0x000000000000000000000000fc087e2622b02b0bb78713e872c02796ef64c8f1\",\"0x4df12e1188de9c93b847240eddba997020037c5f8010088c71c6f497ea6865ab\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x5479b436a6706e20dbebc992f8b75e09f5ef33b9bfc92f6eb52af893bc9f3ef5\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x5a72b959cac93391bff267c6c91f4da4895e3f8769bb512241703807da099182\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x6528b6895a372dd9abf5c9b1e2d763877056e06dcadeefb947482c05a58f1a46\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x6528b6895a372dd9abf5c9b1e2d763877056e06dcadeefb947482c05a58f1a47\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x690ae50193386ef0c1f3aecb62d156ec48e51576b8faca760d2e782148d2685a\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x69dc30401af3a46fb5caf938fefd3bb163e08eed5018359c7ce99b0a6ac5bcad\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x6f24e27f6bf706ecff22e1cc7232c2b995103d66093d2976eeaa6ced126c7cf3\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x724b5bbb48fc97209628eb6b34adb8dd3cd583180ac721afdf706c4c57bbc253\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x76dfe65765497bb6461c122d3715541832ddc6bed4af9859d0afcafd98e85d3d\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x78131ffee5eb0b7466641acad70a5e37f247a658acd6910a0e0159013272500f\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x78131ffee5eb0b7466641acad70a5e37f247a658acd6910a0e01590132725010\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x7860877d0fdf5b8349b69cf151013101002a515fc77b7d9ac9deea724189b49d\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x78f000d26dc5cb7bb6625ad3bbdeb559c2237595558ca062c170e72b826dcaa8\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x7c5e55320fbb9389307827678ad755ae9bbff14bc2f0b7311e273ea6f816b5e6\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x850302252de9a45ae306fefaef8c0b466423440d4916233feb535a91f5c13884\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x850302252de9a45ae306fefaef8c0b466423440d4916233feb535a91f5c13885\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x8f6c89a2950c399a6bd26ec8e4f8342cef555205270052553492ac8caab48637\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x92174186dda351528a078fccba50a5ff5332041fd6f861d5ba9f30d9e7416b01\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x927695b4feff242034e5b416f50ee8f8804c7c79d682e9b504e1d7ad0376d415\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x9428e90ccbc254697b04337e1bfa9ed42a163a0530cac6ed589ff0e86db639ff\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x979ead4e6ad3f623d00d4c31505cce1a654a543281a073df41b8429781a4700a\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x979ead4e6ad3f623d00d4c31505cce1a654a543281a073df41b8429781a4700b\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa0654653e606a2b16e75ace42178d92a333f7bd8fd554600cd8c0dda8959a747\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xa0654653e606a2b16e75ace42178d92a333f7bd8fd554600cd8c0dda8959a748\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa16feed71a191c25a16b840899c1130128bae680b9fb5afedfad18ee25baa3cc\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xa16feed71a191c25a16b840899c1130128bae680b9fb5afedfad18ee25baa3cd\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa40e19ad57e57cf5498a358191ef21a46727990f0833f60ef287bb2512f473b2\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xadd3379ca12eb6e907655b06c632df1dfb1d3810478f04657d0eb1f2514ada7d\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xb07bd76227cbb5a5e93cd5635ab731faceb120715f763221afde9bf9c66d93e1\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xb7a1ebae33d313df562db52e6a17cc25a4fc71072bc8f38e28cca51dca772d2f\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xb7a1ebae33d313df562db52e6a17cc25a4fc71072bc8f38e28cca51dca772d30\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xbd072001a6fd52f3f36f5c32bd3ba9c4ffd3e427ab5661fb687b4b37342e32da\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xbe19bdb2daf84051554e5f7b28c240f2394dfdc01ed9931b1d2270301ce6197a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xbe5c577780cc5cb207d59bca6035e982dd13627ef17edb6a67300e707c7ab194\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xbe5c577780cc5cb207d59bca6035e982dd13627ef17edb6a67300e707c7ab195\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd6b02d8d4bab22276f46bd01c273377c92e6ebf28cab145c363c2ad13651ab01\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd6b02d8d4bab22276f46bd01c273377c92e6ebf28cab145c363c2ad13651ab02\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd6e5468fdf7c0709dc80d32848fc6c62d31a193138d0962e6edc92694d422212\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd71673afb2d4fa2bfb83c3892943b95ad4701e2fd78801199c07446743897d39\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd71673afb2d4fa2bfb83c3892943b95ad4701e2fd78801199c07446743897d3a\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9c5f37af5366d29a8e3839d99c1dbe7d1b1e3f1e2f5a3ac117401809b0d2501\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd9c5f37af5366d29a8e3839d99c1dbe7d1b1e3f1e2f5a3ac117401809b0d2502\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9cfd15c4a9619e16321f9e4042a566871512a8c0375122ca56a91ed5dfaa5e2\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd9cfd15c4a9619e16321f9e4042a566871512a8c0375122ca56a91ed5dfaa5e3\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9d4d93f562d5dc8184de584a08046769c25c10f1cebee1617c95d9212c093ec\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xe0d37705568ac8274db84c0b672ef9a5b02459e4607af2736a98b235c5342cf9\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xe20533b9acd093b6b21eda56a3ad045315f0999f910d7ccada9ec110917d3dc2\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xe6920aeacdafc0d4f7573369e69a8a79eaee08f9d9f620e22831ee53d8de618c\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xe6a03f7a1a989ef0b5a97e8964334cc7ddb72a67de4c24b5f891847210a9db11\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xe6a03f7a1a989ef0b5a97e8964334cc7ddb72a67de4c24b5f891847210a9db12\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xea2b7d5c8733427922e04399ac310174bb0431233be39c6a708646879c299ed9\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3\":\"0x000000000000000000000000311bdf9066246e68559816e7f636435867f824ef\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4\":\"0x000000000000000000000000442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee5\":\"0x00000000000000000000000047318441696e9ae962633c16e04d53935272639d\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee6\":\"0x000000000000000000000000537fc89618edae86950e12687a612e15c4786b84\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee7\":\"0x00000000000000000000000073898cc3c5beca5841306b26fdb4e30411392a6a\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee8\":\"0x00000000000000000000000074826141342a4dc33a1045cefa4182b6212ec031\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee9\":\"0x0000000000000000000000007bc30fbeb7208192d1474b5f87ffbc056de43c11\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eea\":\"0x000000000000000000000000888c073313b36cf03cf1f739f39443551ff12bbe\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eeb\":\"0x0000000000000000000000008d993351c0e2db739f9bcbfdeda94d73b50b16d3\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eec\":\"0x000000000000000000000000a242960b7ca1937e826bda6c397df74d9f9ab01a\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eed\":\"0x000000000000000000000000a89af636787499e81362e815e36f28763eac120b\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eee\":\"0x000000000000000000000000abebf5a6cbe6113780cbe489e3eb0db882381aeb\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eef\":\"0x000000000000000000000000af81190100d82f41ad2c95898195c7a47dc59115\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef0\":\"0x000000000000000000000000bb5ec85408683795da2f604a5c0464868eabfcb6\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef1\":\"0x000000000000000000000000da489a1b4304f49aafaec938c7adc48539470624\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef2\":\"0x000000000000000000000000e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef3\":\"0x000000000000000000000000efea93e384a6ccaaf28e33790a2d1b2625bf964d\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef4\":\"0x000000000000000000000000fc087e2622b02b0bb78713e872c02796ef64c8f1\",\"0xf511943a3baf5478bbcb2a8fc05b1bd215ad2612dcea88999bb647d8a1bc497b\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf6c2c7fc452bd777ae6315a05df702a9c84c84319642f738c02d7265e7b03519\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf7c5c70c003782446997bfaca3df73d3f4529e5610bd8f00aa705bd9f2b7bea5\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfb99b5de22d1e4ca0e5857616be3d3df0df3f371c6dae7e7c3df24980cae362b\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfd6dda287eb8b2e65f6136280e7f54c250f820b79064da60c2f09859788892b6\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfdc6e9ef6103a34656ae73183b1f07e0d09db52b8500c3d560707c8f426d61b7\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfdc6e9ef6103a34656ae73183b1f07e0d09db52b8500c3d560707c8f426d61b8\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\"},\"balance\":\"0xbe951906eba2aa800000\"},\"0000000000000000000000000000000000000089\":{\"code\":\"0x6060604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663e341eaa4811461005b578063e7ec6aef14610076578063f4145a83146100df575b600080fd5b341561006657600080fd5b610074600435602435610104565b005b341561008157600080fd5b61008c600435610227565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156100cb5780820151838201526020016100b3565b505050509050019250505060405180910390f35b34156100ea57600080fd5b6100f26102ac565b60405190815260200160405180910390f35b438290101561011257600080fd5b600280546101289184910263ffffffff6102b216565b43111561013457600080fd5b600082815260016020819052604090912080549091810161015583826102c8565b5060009182526020808320919091018390558282528190526040902080546001810161018183826102c8565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19163373ffffffffffffffffffffffffffffffffffffffff8116919091179091557f62855fa22e051687c32ac285857751f6d3f2c100c72756d8d30cb7ecb1f64f5490838360405173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091526040808301919091526060909101905180910390a15050565b61022f6102f1565b600082815260208181526040918290208054909290918281020190519081016040528092919081815260200182805480156102a057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575b50505050509050919050565b60025481565b6000828201838110156102c157fe5b9392505050565b8154818355818115116102ec576000838152602090206102ec918101908301610303565b505050565b60206040519081016040526000815290565b61032191905b8082111561031d5760008155600101610309565b5090565b905600a165627a7a72305820a8ceddaea8e4ae00991e2ae81c8c88e160dd8770f255523282c24c2df4c30ec70029\",\"storage\":{\"0x0000000000000000000000000000000000000000000000000000000000000002\":\"0x0000000000000000000000000000000000000000000000000000000000000384\"},\"balance\":\"0x0\"},\"0000000000000000000000000000000000000090\":{\"code\":\"0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663284180fc811461006657806334d38600146100d8578063d442d6cc14610129578063e11f5ba21461015a575b600080fd5b341561007157600080fd5b610085600160a060020a0360043516610170565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156100c45780820151838201526020016100ac565b505050509050019250505060405180910390f35b34156100e357600080fd5b61012760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506101f395505050505050565b005b341561013457600080fd5b610148600160a060020a0360043516610243565b60405190815260200160405180910390f35b341561016557600080fd5b61012760043561025e565b61017861028e565b60008083600160a060020a0316600160a060020a031681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156101e757602002820191906000526020600020905b815481526001909101906020018083116101d2575b50505050509050919050565b610384430661032081101561020757600080fd5b610352811061021557600080fd5b600160a060020a033316600090815260208190526040902082805161023e9291602001906102a0565b505050565b600160a060020a031660009081526001602052604090205490565b610384430661035281101561027257600080fd5b50600160a060020a033316600090815260016020526040902055565b60206040519081016040526000815290565b8280548282559060005260206000209081019282156102dd579160200282015b828111156102dd57825182556020909201916001909101906102c0565b506102e99291506102ed565b5090565b61030791905b808211156102e957600081556001016102f3565b905600a165627a7a7230582034991c8dc4001fc254f3ba2811c05d2e7d29bee3908946ca56d1545b2c852de20029\",\"balance\":\"0x0\"},\"0000000000000000000000000000000000000099\":{\"balance\":\"0x92e8434aaaf80e1800000\"},\"311bdf9066246e68559816e7f636435867f824ef\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"47318441696e9ae962633c16e04d53935272639d\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"537fc89618edae86950e12687a612e15c4786b84\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"73898cc3c5beca5841306b26fdb4e30411392a6a\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"74826141342a4dc33a1045cefa4182b6212ec031\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"7bc30fbeb7208192d1474b5f87ffbc056de43c11\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"888c073313b36cf03cf1f739f39443551ff12bbe\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"8d993351c0e2db739f9bcbfdeda94d73b50b16d3\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"a242960b7ca1937e826bda6c397df74d9f9ab01a\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"a89af636787499e81362e815e36f28763eac120b\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"abebf5a6cbe6113780cbe489e3eb0db882381aeb\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"af81190100d82f41ad2c95898195c7a47dc59115\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"bb5ec85408683795da2f604a5c0464868eabfcb6\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"da489a1b4304f49aafaec938c7adc48539470624\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"de5b54e8e7b585153add32f472e8d545e5d42a82\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"efea93e384a6ccaaf28e33790a2d1b2625bf964d\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"fc087e2622b02b0bb78713e872c02796ef64c8f1\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"}}" \ No newline at end of file +const DevnetAllocData = "{\"0000000000000000000000000000000000000000\":{\"balance\":\"0x0\"},\"0000000000000000000000000000000000000001\":{\"balance\":\"0x0\"},\"0000000000000000000000000000000000000068\":{\"balance\":\"0xd3c21bcecceda10000000\"},\"0000000000000000000000000000000000000088\":{\"code\":\"0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063012679511461019b578063025e7c27146101c957806302aa9be21461022c57806306a49fce1461026e5780630db02622146102d85780630e3e4fb81461030157806315febd68146103715780632a3640b1146103a85780632d15cc041461042a5780632f9c4bba146104b8578063302b687214610522578063326586521461058e5780633477ee2e14610640578063441a3e70146106a357806358e7525f146106cf5780635b860d271461071c5780635b9cd8cc146107695780636dd7d8ea1461082457806372e44a3814610852578063a9a981a31461089f578063a9ff959e146108c8578063ae6e43f5146108f1578063b642facd1461092a578063c45607df146109a3578063d09f1ab4146109f0578063d161c76714610a19578063d51b9e9314610a42578063d55b7dff14610a93578063ef18374a14610abc578063f2ee3c7d14610ae5578063f5c9512514610b1e578063f8ac9dd514610b4c575b600080fd5b6101c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610b75565b005b34156101d457600080fd5b6101ea60048080359060200190919050506111fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561023757600080fd5b61026c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061123b565b005b341561027957600080fd5b610281611796565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102c45780820151818401526020810190506102a9565b505050509050019250505060405180910390f35b34156102e357600080fd5b6102eb61182a565b6040518082815260200191505060405180910390f35b341561030c57600080fd5b610357600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611830565b604051808215151515815260200191505060405180910390f35b341561037c57600080fd5b610392600480803590602001909190505061185f565b6040518082815260200191505060405180910390f35b34156103b357600080fd5b6103e8600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043557600080fd5b610461600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104a4578082015181840152602081019050610489565b505050509050019250505060405180910390f35b34156104c357600080fd5b6104cb6119dc565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561050e5780820151818401526020810190506104f3565b505050509050019250505060405180910390f35b341561052d57600080fd5b610578600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a79565b6040518082815260200191505060405180910390f35b341561059957600080fd5b6105c5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b03565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106055780820151818401526020810190506105ea565b50505050905090810190601f1680156106325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561064b57600080fd5b6106616004808035906020019091905050611da2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106ae57600080fd5b6106cd6004808035906020019091908035906020019091905050611de1565b005b34156106da57600080fd5b610706600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061208d565b6040518082815260200191505060405180910390f35b341561072757600080fd5b610753600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120d9565b6040518082815260200191505060405180910390f35b341561077457600080fd5b6107a9600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506121a1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e95780820151818401526020810190506107ce565b50505050905090810190601f1680156108165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610850600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061226a565b005b341561085d57600080fd5b610889600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612653565b6040518082815260200191505060405180910390f35b34156108aa57600080fd5b6108b261266b565b6040518082815260200191505060405180910390f35b34156108d357600080fd5b6108db612671565b6040518082815260200191505060405180910390f35b34156108fc57600080fd5b610928600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612677565b005b341561093557600080fd5b610961600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612c36565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156109ae57600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ca2565b6040518082815260200191505060405180910390f35b34156109fb57600080fd5b610a03612cee565b6040518082815260200191505060405180910390f35b3415610a2457600080fd5b610a2c612cf4565b6040518082815260200191505060405180910390f35b3415610a4d57600080fd5b610a79600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612cfa565b604051808215151515815260200191505060405180910390f35b3415610a9e57600080fd5b610aa6612d53565b6040518082815260200191505060405180910390f35b3415610ac757600080fd5b610acf612d59565b6040518082815260200191505060405180910390f35b3415610af057600080fd5b610b1c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d63565b005b3415610b2957600080fd5b610b4a600480803590602001908201803590602001919091929050506134f1565b005b3415610b5757600080fd5b610b5f6135f0565b6040518082815260200191505060405180910390f35b6000600b543410151515610b8857600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050141580610c1c57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050115b1515610c2757600080fd5b81600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151515610c8457600080fd5b610cd934600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b915060088054806001018281610cef919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506060604051908101604052803373ffffffffffffffffffffffffffffffffffffffff16815260200160011515815260200183815250600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff02191690831515021790555060408201518160010155905050610eb834600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5160016009546135f690919063ffffffff16565b6009819055506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905014156110185760078054806001018281610fb6919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600a600081548092919060010191905055505b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611069919061362d565b9160005260206000209001600085909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281611109919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f7635f1d87b47fba9f2b09e56eb4be75cca030e0cb179c1602ac9261d39a8f5c1338434604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b60078181548110151561120b57fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828280600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156112cd57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561140657600b546113f882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b1015151561140557600080fd5b5b61145b84600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061153384600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461361490919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115cb43600f546135f690919063ffffffff16565b9250611632846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010180548060010182816116db9190613659565b9160005260206000209001600085909190915055507faa0e554f781c3c3b2be110a0557f260f11af9a8aa2c64bc1e7a31dbb21e32fa2338686604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050505050565b61179e613685565b600880548060200260200160405190810160405280929190818152602001828054801561182057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116117d6575b5050505050905090565b600a5481565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000838152602001908152602001600020549050919050565b6006602052816000526040600020818154811015156118d657fe5b90600052602060002090016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611911613685565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156119d057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611986575b50505050509050919050565b6119e4613699565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805480602002602001604051908101604052809291908181526020018280548015611a6f57602002820191906000526020600020905b815481526020019060010190808311611a5b575b5050505050905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b0b6136ad565b611b1482612cfa565b15611c655760036000611b2684612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600160036000611b6f86612c36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611bba57fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c595780601f10611c2e57610100808354040283529160200191611c59565b820191906000526020600020905b815481529060010190602001808311611c3c57829003601f168201915b50505050509050611d9d565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905003815481101515611cf657fe5b90600052602060002090018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611d955780601f10611d6a57610100808354040283529160200191611d95565b820191906000526020600020905b815481529060010190602001808311611d7857829003601f168201915b505050505090505b919050565b600881815481101515611db157fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282600082111515611df457600080fd5b814310151515611e0357600080fd5b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600084815260200190815260200160002054111515611e6457600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611eb357fe5b906000526020600020900154141515611ecb57600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008681526020019081526020016000205492506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020600090556000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010184815481101515611fc457fe5b9060005260206000209001600090553373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050151561201357600080fd5b7ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568338685604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008082600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561213857600080fd5b61214184612c36565b915061214b612d59565b6064600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561219757fe5b0492505050919050565b6003602052816000526040600020818154811015156121bc57fe5b9060005260206000209001600091509150508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122625780601f1061223757610100808354040283529160200191612262565b820191906000526020600020905b81548152906001019060200180831161224557829003601f168201915b505050505081565b600c54341015151561227b57600080fd5b80600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff1615156122d757600080fd5b61232c34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561249b57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161244b919061362d565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b61252d34600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546135f690919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc338334604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15050565b60046020528060005260406000206000915090505481565b60095481565b600f5481565b6000806000833373ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561271957600080fd5b84600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff16151561277557600080fd5b6000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160146101000a81548160ff0219169083151502179055506127e6600160095461361490919063ffffffff16565b600981905550600094505b6008805490508510156128bb578573ffffffffffffffffffffffffffffffffffffffff1660088681548110151561282457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156128ae5760088581548110151561287b57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556128bb565b84806001019550506127f1565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054935061299284600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461361490919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7243600e546135f690919063ffffffff16565b9250612ad9846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000868152602001908152602001600020546135f690919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000858152602001908152602001600020819055506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054806001018281612b829190613659565b9160005260206000209001600085909190915055507f4edf3e325d0063213a39f9085522994a1c44bea5f39e7d63ef61260a1e58c6d33387604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600d5481565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff169050919050565b600b5481565b6000600a54905090565b600080612d6e613685565b600080600033600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612dcf57600080fd5b87600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a900460ff161515612e2b57600080fd5b612e3433612c36565b9750612e3f89612c36565b9650600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612ed757600080fd5b6001600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550604b612fc4612d59565b6064600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540281151561301057fe5b041015156134e65760016008805490500360405180591061302e5750595b9080825280602002602001820160405250955060009450600093505b600880549050841015613357578673ffffffffffffffffffffffffffffffffffffffff166130b160088681548110151561308057fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612c36565b73ffffffffffffffffffffffffffffffffffffffff16141561334a576130e3600160095461361490919063ffffffff16565b6009819055506008848154811015156130f857fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868680600101975081518110151561313857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060088481548110151561318357fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160006008868154811015156131c457fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549060ff021916905560018201600090555050600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006132bb91906136c1565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061330691906136e2565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090555b838060010194505061304a565b600092505b600780549050831015613439578673ffffffffffffffffffffffffffffffffffffffff1660078481548110151561338f57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561342c576007838154811015156133e657fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600a6000815480929190600190039190505550613439565b828060010193505061335c565b7fe18d61a5bf4aa2ab40afc88aa9039d27ae17ff4ec1c65f5f414df6f02ce8b35e8787604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156134d15780820151818401526020810190506134b6565b50505050905001935050505060405180910390a15b505050505050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060010182816135429190613703565b91600052602060002090016000848490919290919250919061356592919061372f565b50507f949360d814b28a3b393a68909efe1fee120ee09cac30f360a0f80ab5415a611a338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437820191505094505050505060405180910390a15050565b600c5481565b600080828401905083811015151561360a57fe5b8091505092915050565b600082821115151561362257fe5b818303905092915050565b8154818355818115116136545781836000526020600020918201910161365391906137af565b5b505050565b8154818355818115116136805781836000526020600020918201910161367f91906137af565b5b505050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b50805460008255906000526020600020908101906136df91906137d4565b50565b508054600082559060005260206000209081019061370091906137af565b50565b81548183558181151161372a5781836000526020600020918201910161372991906137d4565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061377057803560ff191683800117855561379e565b8280016001018555821561379e579182015b8281111561379d578235825591602001919060010190613782565b5b5090506137ab91906137af565b5090565b6137d191905b808211156137cd5760008160009055506001016137b5565b5090565b90565b6137fd91905b808211156137f957600081816137f09190613800565b506001016137da565b5090565b90565b50805460018160011615610100020316600290046000825580601f106138265750613845565b601f01602090049060005260206000209081019061384491906137af565b5b505600a165627a7a72305820f5bbb127b52ce86c873faef85cff176563476a5e49a3d88eaa9a06a8f432c9080029\",\"storage\":{\"0x0000000000000000000000000000000000000000000000000000000000000007\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x0000000000000000000000000000000000000000000000000000000000000008\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x0000000000000000000000000000000000000000000000000000000000000009\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x000000000000000000000000000000000000000000000000000000000000000a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x000000000000000000000000000000000000000000000000000000000000000b\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x000000000000000000000000000000000000000000000000000000000000000c\":\"0x00000000000000000000000000000000000000000000054b40b1f852bda00000\",\"0x000000000000000000000000000000000000000000000000000000000000000d\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x000000000000000000000000000000000000000000000000000000000000000e\":\"0x000000000000000000000000000000000000000000000000000000000013c680\",\"0x000000000000000000000000000000000000000000000000000000000000000f\":\"0x0000000000000000000000000000000000000000000000000000000000069780\",\"0x030c4482e31df0bec3a61ba9044822c841d3be0a21a4a43d22ffabb19a238030\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x03857c1c3036c8068aecc274ccdef26c09d6bc8d7323c3b0af04944281aea3c5\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x04606a03b4103377c3cc40f7d070c9672b8c34f833337c95acd6cc3b9ef873be\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x04606a03b4103377c3cc40f7d070c9672b8c34f833337c95acd6cc3b9ef873bf\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x0f0a4bf138332e4dee2840995f18ef3f4e7ce9800a43298cd303f652f37e2760\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x0f77b98b641f695810840536460aceac3aa93db4b69360cb1e825fc50a01cbf8\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x125b08b20a070fdff51220f22ab5783fe8553385c29d73595065987e274ae2ba\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x125b08b20a070fdff51220f22ab5783fe8553385c29d73595065987e274ae2bb\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x141b2f299c67c202a3f56d8c761ef8412df00a99dc4d7df7132fea8b618710fb\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x15e82e9588701aace370d9b0ae88a15878117328c72679be3a43f1fde5480b52\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x19474e4e22de9b7e74a0e935e50e07474f1922fca9ca508d627a1753b89a04c0\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x1a53676945466c0303c4763ecd9fe35b640c62214817fc1cd445cd2df311d75e\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x1acfc824f6e62266e1ddfd5296eb428cb6235e11eb419042440ee2cd234f5064\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x206df8c61c26c41c2f5d8628f9b0af634f51cea5204c2860beac8743b789d8f9\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x213528a16906ba2c7ae2d13a88332596a8f7dba04445edce4dd35851adc6270b\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x217e08ed8a88d1aa61780ebbfa2433d8ee93fe281a28caa61609ffd7feb6ff48\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x217e08ed8a88d1aa61780ebbfa2433d8ee93fe281a28caa61609ffd7feb6ff49\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x2bbcd29309cdf0c2e0fb87eb0912eda2715ff0d0800356af3b13b1877fc96294\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x2ea8dbac375e20907f0f6064477fb65f425b25387bc4af4a9fa0d909542ad6ec\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x2f46cce9be56b195a997053b94333e3e8608e77a9049008a7867ece9434d7490\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x32f30f989a9121096e27b0ceff2143dfd8ad0a279e39b2dbdd4720d758b1235e\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x334998a4166b71bbee90c9a5395d45b437458344b336983ce195ac15c4cabf41\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x37bbbe931ce8669c7360584cc0c8719480098d88b382fa5147ab6070f6a995e9\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x383c8c93b8864dd3dd80dcce451bff3ccecfe0ef316daeffc3429e8c734ca219\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x424c760de55550140740213338215fb5e72732d77ff28c6fcdce25cc0da4b4df\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x42b4293dae5548c9e2c405a2d603c1b7c254591f10e1a19d475c9573a806ddbf\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x4315dd31061c8b8e85c5b7d9df3c6dda7f6e48ad32c7bd25549115df18f68eb7\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x433573bf8c109958dcd2a79e075574b3fa76ee1309194d6985ec9eb993cfc4a8\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x433573bf8c109958dcd2a79e075574b3fa76ee1309194d6985ec9eb993cfc4a9\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x471f33d3408681a476d422388b3e426fc8fd1f4db2b3cf07127fc0430da13d5a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x48ddfeab6816c7d8ea504eaceba35584eed68f73e8bca46561c49f828945d870\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x4bcc08cdec386d590e3c1b686244142bf6e504749f55207aea8cba6292b4a05c\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930991\":\"0x000000000000000000000000311bdf9066246e68559816e7f636435867f824ef\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930992\":\"0x000000000000000000000000442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930993\":\"0x00000000000000000000000047318441696e9ae962633c16e04d53935272639d\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930994\":\"0x000000000000000000000000537fc89618edae86950e12687a612e15c4786b84\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930995\":\"0x00000000000000000000000073898cc3c5beca5841306b26fdb4e30411392a6a\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930996\":\"0x00000000000000000000000074826141342a4dc33a1045cefa4182b6212ec031\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930997\":\"0x0000000000000000000000007bc30fbeb7208192d1474b5f87ffbc056de43c11\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930998\":\"0x000000000000000000000000888c073313b36cf03cf1f739f39443551ff12bbe\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab930999\":\"0x0000000000000000000000008d993351c0e2db739f9bcbfdeda94d73b50b16d3\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099a\":\"0x000000000000000000000000a242960b7ca1937e826bda6c397df74d9f9ab01a\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099b\":\"0x000000000000000000000000a89af636787499e81362e815e36f28763eac120b\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099c\":\"0x000000000000000000000000abebf5a6cbe6113780cbe489e3eb0db882381aeb\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099d\":\"0x000000000000000000000000af81190100d82f41ad2c95898195c7a47dc59115\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099e\":\"0x000000000000000000000000bb5ec85408683795da2f604a5c0464868eabfcb6\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab93099f\":\"0x000000000000000000000000da489a1b4304f49aafaec938c7adc48539470624\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a0\":\"0x000000000000000000000000e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a1\":\"0x000000000000000000000000efea93e384a6ccaaf28e33790a2d1b2625bf964d\",\"0x4d08b2b0194071b50be4200cf623b02a2489a2090e82dca38562a22eab9309a2\":\"0x000000000000000000000000fc087e2622b02b0bb78713e872c02796ef64c8f1\",\"0x4df12e1188de9c93b847240eddba997020037c5f8010088c71c6f497ea6865ab\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x5479b436a6706e20dbebc992f8b75e09f5ef33b9bfc92f6eb52af893bc9f3ef5\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x5a72b959cac93391bff267c6c91f4da4895e3f8769bb512241703807da099182\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x6528b6895a372dd9abf5c9b1e2d763877056e06dcadeefb947482c05a58f1a46\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x6528b6895a372dd9abf5c9b1e2d763877056e06dcadeefb947482c05a58f1a47\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x690ae50193386ef0c1f3aecb62d156ec48e51576b8faca760d2e782148d2685a\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x69dc30401af3a46fb5caf938fefd3bb163e08eed5018359c7ce99b0a6ac5bcad\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x6f24e27f6bf706ecff22e1cc7232c2b995103d66093d2976eeaa6ced126c7cf3\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x724b5bbb48fc97209628eb6b34adb8dd3cd583180ac721afdf706c4c57bbc253\":\"0x0000000000000000000000000000000000000000000000000000000000000012\",\"0x76dfe65765497bb6461c122d3715541832ddc6bed4af9859d0afcafd98e85d3d\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x78131ffee5eb0b7466641acad70a5e37f247a658acd6910a0e0159013272500f\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x78131ffee5eb0b7466641acad70a5e37f247a658acd6910a0e01590132725010\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x7860877d0fdf5b8349b69cf151013101002a515fc77b7d9ac9deea724189b49d\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x78f000d26dc5cb7bb6625ad3bbdeb559c2237595558ca062c170e72b826dcaa8\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0x7c5e55320fbb9389307827678ad755ae9bbff14bc2f0b7311e273ea6f816b5e6\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x850302252de9a45ae306fefaef8c0b466423440d4916233feb535a91f5c13884\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x850302252de9a45ae306fefaef8c0b466423440d4916233feb535a91f5c13885\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0x8f6c89a2950c399a6bd26ec8e4f8342cef555205270052553492ac8caab48637\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x92174186dda351528a078fccba50a5ff5332041fd6f861d5ba9f30d9e7416b01\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x927695b4feff242034e5b416f50ee8f8804c7c79d682e9b504e1d7ad0376d415\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x9428e90ccbc254697b04337e1bfa9ed42a163a0530cac6ed589ff0e86db639ff\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0x979ead4e6ad3f623d00d4c31505cce1a654a543281a073df41b8429781a4700a\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0x979ead4e6ad3f623d00d4c31505cce1a654a543281a073df41b8429781a4700b\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa0654653e606a2b16e75ace42178d92a333f7bd8fd554600cd8c0dda8959a747\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xa0654653e606a2b16e75ace42178d92a333f7bd8fd554600cd8c0dda8959a748\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa16feed71a191c25a16b840899c1130128bae680b9fb5afedfad18ee25baa3cc\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xa16feed71a191c25a16b840899c1130128bae680b9fb5afedfad18ee25baa3cd\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xa40e19ad57e57cf5498a358191ef21a46727990f0833f60ef287bb2512f473b2\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xadd3379ca12eb6e907655b06c632df1dfb1d3810478f04657d0eb1f2514ada7d\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xb07bd76227cbb5a5e93cd5635ab731faceb120715f763221afde9bf9c66d93e1\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xb7a1ebae33d313df562db52e6a17cc25a4fc71072bc8f38e28cca51dca772d2f\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xb7a1ebae33d313df562db52e6a17cc25a4fc71072bc8f38e28cca51dca772d30\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xbd072001a6fd52f3f36f5c32bd3ba9c4ffd3e427ab5661fb687b4b37342e32da\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xbe19bdb2daf84051554e5f7b28c240f2394dfdc01ed9931b1d2270301ce6197a\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xbe5c577780cc5cb207d59bca6035e982dd13627ef17edb6a67300e707c7ab194\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xbe5c577780cc5cb207d59bca6035e982dd13627ef17edb6a67300e707c7ab195\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd6b02d8d4bab22276f46bd01c273377c92e6ebf28cab145c363c2ad13651ab01\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd6b02d8d4bab22276f46bd01c273377c92e6ebf28cab145c363c2ad13651ab02\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd6e5468fdf7c0709dc80d32848fc6c62d31a193138d0962e6edc92694d422212\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd71673afb2d4fa2bfb83c3892943b95ad4701e2fd78801199c07446743897d39\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd71673afb2d4fa2bfb83c3892943b95ad4701e2fd78801199c07446743897d3a\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9c5f37af5366d29a8e3839d99c1dbe7d1b1e3f1e2f5a3ac117401809b0d2501\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd9c5f37af5366d29a8e3839d99c1dbe7d1b1e3f1e2f5a3ac117401809b0d2502\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9cfd15c4a9619e16321f9e4042a566871512a8c0375122ca56a91ed5dfaa5e2\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xd9cfd15c4a9619e16321f9e4042a566871512a8c0375122ca56a91ed5dfaa5e3\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xd9d4d93f562d5dc8184de584a08046769c25c10f1cebee1617c95d9212c093ec\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xe0d37705568ac8274db84c0b672ef9a5b02459e4607af2736a98b235c5342cf9\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xe20533b9acd093b6b21eda56a3ad045315f0999f910d7ccada9ec110917d3dc2\":\"0x000000000000000000000000000000000000000000084595161401484a000000\",\"0xe6920aeacdafc0d4f7573369e69a8a79eaee08f9d9f620e22831ee53d8de618c\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xe6a03f7a1a989ef0b5a97e8964334cc7ddb72a67de4c24b5f891847210a9db11\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xe6a03f7a1a989ef0b5a97e8964334cc7ddb72a67de4c24b5f891847210a9db12\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\",\"0xea2b7d5c8733427922e04399ac310174bb0431233be39c6a708646879c299ed9\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3\":\"0x000000000000000000000000311bdf9066246e68559816e7f636435867f824ef\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4\":\"0x000000000000000000000000442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee5\":\"0x00000000000000000000000047318441696e9ae962633c16e04d53935272639d\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee6\":\"0x000000000000000000000000537fc89618edae86950e12687a612e15c4786b84\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee7\":\"0x00000000000000000000000073898cc3c5beca5841306b26fdb4e30411392a6a\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee8\":\"0x00000000000000000000000074826141342a4dc33a1045cefa4182b6212ec031\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee9\":\"0x0000000000000000000000007bc30fbeb7208192d1474b5f87ffbc056de43c11\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eea\":\"0x000000000000000000000000888c073313b36cf03cf1f739f39443551ff12bbe\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eeb\":\"0x0000000000000000000000008d993351c0e2db739f9bcbfdeda94d73b50b16d3\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eec\":\"0x000000000000000000000000a242960b7ca1937e826bda6c397df74d9f9ab01a\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eed\":\"0x000000000000000000000000a89af636787499e81362e815e36f28763eac120b\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eee\":\"0x000000000000000000000000abebf5a6cbe6113780cbe489e3eb0db882381aeb\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636eef\":\"0x000000000000000000000000af81190100d82f41ad2c95898195c7a47dc59115\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef0\":\"0x000000000000000000000000bb5ec85408683795da2f604a5c0464868eabfcb6\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef1\":\"0x000000000000000000000000da489a1b4304f49aafaec938c7adc48539470624\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef2\":\"0x000000000000000000000000e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef3\":\"0x000000000000000000000000efea93e384a6ccaaf28e33790a2d1b2625bf964d\",\"0xf3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ef4\":\"0x000000000000000000000000fc087e2622b02b0bb78713e872c02796ef64c8f1\",\"0xf511943a3baf5478bbcb2a8fc05b1bd215ad2612dcea88999bb647d8a1bc497b\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf6c2c7fc452bd777ae6315a05df702a9c84c84319642f738c02d7265e7b03519\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"0xf7c5c70c003782446997bfaca3df73d3f4529e5610bd8f00aa705bd9f2b7bea5\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfb99b5de22d1e4ca0e5857616be3d3df0df3f371c6dae7e7c3df24980cae362b\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfd6dda287eb8b2e65f6136280e7f54c250f820b79064da60c2f09859788892b6\":\"0x000000000000000000000000de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfdc6e9ef6103a34656ae73183b1f07e0d09db52b8500c3d560707c8f426d61b7\":\"0x000000000000000000000001de5b54e8e7b585153add32f472e8d545e5d42a82\",\"0xfdc6e9ef6103a34656ae73183b1f07e0d09db52b8500c3d560707c8f426d61b8\":\"0x000000000000000000000000000000000000000000000a968163f0a57b400000\"},\"balance\":\"0xbe951906eba2aa800000\"},\"0000000000000000000000000000000000000089\":{\"code\":\"0x6060604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663e341eaa4811461005b578063e7ec6aef14610076578063f4145a83146100df575b600080fd5b341561006657600080fd5b610074600435602435610104565b005b341561008157600080fd5b61008c600435610227565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156100cb5780820151838201526020016100b3565b505050509050019250505060405180910390f35b34156100ea57600080fd5b6100f26102ac565b60405190815260200160405180910390f35b438290101561011257600080fd5b600280546101289184910263ffffffff6102b216565b43111561013457600080fd5b600082815260016020819052604090912080549091810161015583826102c8565b5060009182526020808320919091018390558282528190526040902080546001810161018183826102c8565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19163373ffffffffffffffffffffffffffffffffffffffff8116919091179091557f62855fa22e051687c32ac285857751f6d3f2c100c72756d8d30cb7ecb1f64f5490838360405173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091526040808301919091526060909101905180910390a15050565b61022f6102f1565b600082815260208181526040918290208054909290918281020190519081016040528092919081815260200182805480156102a057602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575b50505050509050919050565b60025481565b6000828201838110156102c157fe5b9392505050565b8154818355818115116102ec576000838152602090206102ec918101908301610303565b505050565b60206040519081016040526000815290565b61032191905b8082111561031d5760008155600101610309565b5090565b905600a165627a7a72305820a8ceddaea8e4ae00991e2ae81c8c88e160dd8770f255523282c24c2df4c30ec70029\",\"storage\":{\"0x0000000000000000000000000000000000000000000000000000000000000002\":\"0x0000000000000000000000000000000000000000000000000000000000000384\"},\"balance\":\"0x0\"},\"0000000000000000000000000000000000000090\":{\"code\":\"0x6060604052600436106100615763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663284180fc811461006657806334d38600146100d8578063d442d6cc14610129578063e11f5ba21461015a575b600080fd5b341561007157600080fd5b610085600160a060020a0360043516610170565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156100c45780820151838201526020016100ac565b505050509050019250505060405180910390f35b34156100e357600080fd5b61012760046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506101f395505050505050565b005b341561013457600080fd5b610148600160a060020a0360043516610243565b60405190815260200160405180910390f35b341561016557600080fd5b61012760043561025e565b61017861028e565b60008083600160a060020a0316600160a060020a031681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156101e757602002820191906000526020600020905b815481526001909101906020018083116101d2575b50505050509050919050565b610384430661032081101561020757600080fd5b610352811061021557600080fd5b600160a060020a033316600090815260208190526040902082805161023e9291602001906102a0565b505050565b600160a060020a031660009081526001602052604090205490565b610384430661035281101561027257600080fd5b50600160a060020a033316600090815260016020526040902055565b60206040519081016040526000815290565b8280548282559060005260206000209081019282156102dd579160200282015b828111156102dd57825182556020909201916001909101906102c0565b506102e99291506102ed565b5090565b61030791905b808211156102e957600081556001016102f3565b905600a165627a7a7230582034991c8dc4001fc254f3ba2811c05d2e7d29bee3908946ca56d1545b2c852de20029\",\"balance\":\"0x0\"},\"0000000000000000000000000000000000000099\":{\"balance\":\"0x92e8434aaaf80e1800000\"},\"311bdf9066246e68559816e7f636435867f824ef\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"442a44a6fc20f5b8dfa8b304d7137581f7e6bef3\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"47318441696e9ae962633c16e04d53935272639d\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"537fc89618edae86950e12687a612e15c4786b84\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"73898cc3c5beca5841306b26fdb4e30411392a6a\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"74826141342a4dc33a1045cefa4182b6212ec031\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"7bc30fbeb7208192d1474b5f87ffbc056de43c11\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"888c073313b36cf03cf1f739f39443551ff12bbe\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"8d993351c0e2db739f9bcbfdeda94d73b50b16d3\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"a242960b7ca1937e826bda6c397df74d9f9ab01a\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"a89af636787499e81362e815e36f28763eac120b\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"abebf5a6cbe6113780cbe489e3eb0db882381aeb\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"af81190100d82f41ad2c95898195c7a47dc59115\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"bb5ec85408683795da2f604a5c0464868eabfcb6\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"da489a1b4304f49aafaec938c7adc48539470624\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"de5b54e8e7b585153add32f472e8d545e5d42a82\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"e1f9c75ce33e568d8fa3ace90497ee0c60dc921e\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"efea93e384a6ccaaf28e33790a2d1b2625bf964d\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"},\"fc087e2622b02b0bb78713e872c02796ef64c8f1\":{\"balance\":\"0x200000000000000000000000000000000000000000000000000000000000000\"}}" diff --git a/core/txpool/list.go b/core/txpool/list.go index 8b22abffea..50eebf152a 100644 --- a/core/txpool/list.go +++ b/core/txpool/list.go @@ -489,7 +489,7 @@ func (h *priceHeap) Pop() interface{} { // better candidates for inclusion while in other cases (at the top of the baseFee peak) // the floating heap is better. When baseFee is decreasing they behave similarly. type pricedList struct { - all *lookup // Pointer to the map of all transactions + all *lookup // Pointer to the map of all transactions urgent, floating priceHeap // Heaps of prices of all the stored **remote** transactions stales int64 // Number of stale price points to (re-heap trigger) reheapMu sync.Mutex // Mutex asserts that only one routine is reheaping the list diff --git a/crypto/secp256k1/dummy.go b/crypto/secp256k1/dummy.go index c52cb87bb5..83da43ef85 100644 --- a/crypto/secp256k1/dummy.go +++ b/crypto/secp256k1/dummy.go @@ -19,4 +19,3 @@ import ( _ "github.com/XinFinOrg/XDPoSChain/crypto/secp256k1/libsecp256k1/src" _ "github.com/XinFinOrg/XDPoSChain/crypto/secp256k1/libsecp256k1/src/modules/recovery" ) - diff --git a/eth/downloader/queue.go b/eth/downloader/queue.go index 6952499df5..2fd36dcfe0 100644 --- a/eth/downloader/queue.go +++ b/eth/downloader/queue.go @@ -477,9 +477,10 @@ func (q *queue) ReserveReceipts(p *peerConnection, count int) (*fetchRequest, bo // to access the queue, so they already need a lock anyway. // // Returns: -// item - the fetchRequest -// progress - whether any progress was made -// throttle - if the caller should throttle for a while +// +// item - the fetchRequest +// progress - whether any progress was made +// throttle - if the caller should throttle for a while func (q *queue) reserveHeaders(p *peerConnection, count int, taskPool map[common.Hash]*types.Header, taskQueue *prque.Prque[int64, *types.Header], pendPool map[string]*fetchRequest, kind uint) (*fetchRequest, bool, bool) { // Short circuit if the pool has been depleted, or if the peer's already diff --git a/eth/downloader/resultstore.go b/eth/downloader/resultstore.go index 85a7b94d6f..0230f3581e 100644 --- a/eth/downloader/resultstore.go +++ b/eth/downloader/resultstore.go @@ -71,10 +71,11 @@ func (r *resultStore) SetThrottleThreshold(threshold uint64) uint64 { // wants to reserve headers for fetching. // // It returns the following: -// stale - if true, this item is already passed, and should not be requested again -// throttled - if true, the store is at capacity, this particular header is not prio now -// item - the result to store data into -// err - any error that occurred +// +// stale - if true, this item is already passed, and should not be requested again +// throttled - if true, the store is at capacity, this particular header is not prio now +// item - the result to store data into +// err - any error that occurred func (r *resultStore) AddFetch(header *types.Header, fastSync bool) (stale, throttled bool, item *fetchResult, err error) { r.lock.Lock() defer r.lock.Unlock() diff --git a/p2p/discv5/sim_testmain_test.go b/p2p/discv5/sim_testmain_test.go index 77e751c419..47c2f77383 100644 --- a/p2p/discv5/sim_testmain_test.go +++ b/p2p/discv5/sim_testmain_test.go @@ -14,6 +14,7 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . +//go:build go1.4 && nacl && faketime_simulation // +build go1.4,nacl,faketime_simulation package discv5 diff --git a/p2p/netutil/toobig_notwindows.go b/p2p/netutil/toobig_notwindows.go index 47b6438572..f9f936ae56 100644 --- a/p2p/netutil/toobig_notwindows.go +++ b/p2p/netutil/toobig_notwindows.go @@ -14,7 +14,8 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . -//+build !windows +//go:build !windows +// +build !windows package netutil diff --git a/p2p/netutil/toobig_windows.go b/p2p/netutil/toobig_windows.go index dfbb6d44f0..652903e83c 100644 --- a/p2p/netutil/toobig_windows.go +++ b/p2p/netutil/toobig_windows.go @@ -14,7 +14,8 @@ // You should have received a copy of the GNU Lesser General Public License // along with the go-ethereum library. If not, see . -//+build windows +//go:build windows +// +build windows package netutil diff --git a/p2p/simulations/mocker.go b/p2p/simulations/mocker.go index 24900d0831..ae93eac796 100644 --- a/p2p/simulations/mocker.go +++ b/p2p/simulations/mocker.go @@ -28,20 +28,20 @@ import ( "github.com/XinFinOrg/XDPoSChain/p2p/discover" ) -//a map of mocker names to its function +// a map of mocker names to its function var mockerList = map[string]func(net *Network, quit chan struct{}, nodeCount int){ "startStop": startStop, "probabilistic": probabilistic, "boot": boot, } -//Lookup a mocker by its name, returns the mockerFn +// Lookup a mocker by its name, returns the mockerFn func LookupMocker(mockerType string) func(net *Network, quit chan struct{}, nodeCount int) { return mockerList[mockerType] } -//Get a list of mockers (keys of the map) -//Useful for frontend to build available mocker selection +// Get a list of mockers (keys of the map) +// Useful for frontend to build available mocker selection func GetMockerList() []string { list := make([]string, 0, len(mockerList)) for k := range mockerList { @@ -50,7 +50,7 @@ func GetMockerList() []string { return list } -//The boot mockerFn only connects the node in a ring and doesn't do anything else +// The boot mockerFn only connects the node in a ring and doesn't do anything else func boot(net *Network, quit chan struct{}, nodeCount int) { _, err := connectNodesInRing(net, nodeCount) if err != nil { @@ -58,7 +58,7 @@ func boot(net *Network, quit chan struct{}, nodeCount int) { } } -//The startStop mockerFn stops and starts nodes in a defined period (ticker) +// The startStop mockerFn stops and starts nodes in a defined period (ticker) func startStop(net *Network, quit chan struct{}, nodeCount int) { nodes, err := connectNodesInRing(net, nodeCount) if err != nil { @@ -95,10 +95,10 @@ func startStop(net *Network, quit chan struct{}, nodeCount int) { } } -//The probabilistic mocker func has a more probabilistic pattern -//(the implementation could probably be improved): -//nodes are connected in a ring, then a varying number of random nodes is selected, -//mocker then stops and starts them in random intervals, and continues the loop +// The probabilistic mocker func has a more probabilistic pattern +// (the implementation could probably be improved): +// nodes are connected in a ring, then a varying number of random nodes is selected, +// mocker then stops and starts them in random intervals, and continues the loop func probabilistic(net *Network, quit chan struct{}, nodeCount int) { nodes, err := connectNodesInRing(net, nodeCount) if err != nil { @@ -161,7 +161,7 @@ func probabilistic(net *Network, quit chan struct{}, nodeCount int) { } -//connect nodeCount number of nodes in a ring +// connect nodeCount number of nodes in a ring func connectNodesInRing(net *Network, nodeCount int) ([]discover.NodeID, error) { ids := make([]discover.NodeID, nodeCount) for i := 0; i < nodeCount; i++ { diff --git a/rpc/doc.go b/rpc/doc.go index 69b80a9afa..4bc0d6d8f7 100644 --- a/rpc/doc.go +++ b/rpc/doc.go @@ -15,7 +15,6 @@ // along with the go-ethereum library. If not, see . /* - Package rpc implements bi-directional JSON-RPC 2.0 on multiple transports. It provides access to the exported methods of an object across a network or other I/O @@ -23,16 +22,16 @@ connection. After creating a server or client instance, objects can be registere them visible as 'services'. Exported methods that follow specific conventions can be called remotely. It also has support for the publish/subscribe pattern. -RPC Methods +# RPC Methods Methods that satisfy the following criteria are made available for remote access: - - method must be exported - - method returns 0, 1 (response or error) or 2 (response and error) values + - method must be exported + - method returns 0, 1 (response or error) or 2 (response and error) values An example method: - func (s *CalcService) Add(a, b int) (int, error) + func (s *CalcService) Add(a, b int) (int, error) When the returned error isn't nil the returned integer is ignored and the error is sent back to the client. Otherwise the returned integer is sent back to the client. @@ -41,7 +40,7 @@ Optional arguments are supported by accepting pointer values as arguments. E.g. to do the addition in an optional finite field we can accept a mod argument as pointer value. - func (s *CalcService) Add(a, b int, mod *int) (int, error) + func (s *CalcService) Add(a, b int, mod *int) (int, error) This RPC method can be called with 2 integers and a null value as third argument. In that case the mod argument will be nil. Or it can be called with 3 integers, in that case mod @@ -56,40 +55,40 @@ to the client out of order. An example server which uses the JSON codec: - type CalculatorService struct {} + type CalculatorService struct {} - func (s *CalculatorService) Add(a, b int) int { - return a + b - } + func (s *CalculatorService) Add(a, b int) int { + return a + b + } - func (s *CalculatorService) Div(a, b int) (int, error) { - if b == 0 { - return 0, errors.New("divide by zero") - } - return a/b, nil - } + func (s *CalculatorService) Div(a, b int) (int, error) { + if b == 0 { + return 0, errors.New("divide by zero") + } + return a/b, nil + } - calculator := new(CalculatorService) - server := NewServer() - server.RegisterName("calculator", calculator) - l, _ := net.ListenUnix("unix", &net.UnixAddr{Net: "unix", Name: "/tmp/calculator.sock"}) - server.ServeListener(l) + calculator := new(CalculatorService) + server := NewServer() + server.RegisterName("calculator", calculator) + l, _ := net.ListenUnix("unix", &net.UnixAddr{Net: "unix", Name: "/tmp/calculator.sock"}) + server.ServeListener(l) -Subscriptions +# Subscriptions The package also supports the publish subscribe pattern through the use of subscriptions. A method that is considered eligible for notifications must satisfy the following criteria: - - method must be exported - - first method argument type must be context.Context - - method must have return types (rpc.Subscription, error) + - method must be exported + - first method argument type must be context.Context + - method must have return types (rpc.Subscription, error) An example method: - func (s *BlockChainService) NewBlocks(ctx context.Context) (rpc.Subscription, error) { - ... - } + func (s *BlockChainService) NewBlocks(ctx context.Context) (rpc.Subscription, error) { + ... + } When the service containing the subscription method is registered to the server, for example under the "blockchain" namespace, a subscription is created by calling the @@ -101,7 +100,7 @@ the client and server. The server will close the connection for any write error. For more information about subscriptions, see https://geth.ethereum.org/docs/interacting-with-geth/rpc/pubsub -Reverse Calls +# Reverse Calls In any method handler, an instance of rpc.Client can be accessed through the ClientFromContext method. Using this client instance, server-to-client method calls can be