maticnetwork / bor Goto Github PK
View Code? Open in Web Editor NEWOfficial repository for the Polygon Blockchain
Home Page: https://polygon.technology/
License: GNU Lesser General Public License v3.0
Official repository for the Polygon Blockchain
Home Page: https://polygon.technology/
License: GNU Lesser General Public License v3.0
my problem is RPC method eth_getLogs crashed: runtime error: invalid memory address or nil pointer dereference:
goroutine 840 [running]:
github.com/ethereum/go-ethereum/rpc.(*callback).call.func1(0xc00023d293, 0xb, 0xc00a5bfd50)
github.com/ethereum/go-ethereum/rpc/service.go:200 +0xba
panic(0x1214ca0, 0x1ebb540)
runtime/panic.go:969 +0x175
github.com/ethereum/go-ethereum/eth/filters.(*PublicFilterAPI).GetLogs(0xc0014faae0, 0x15e1920, 0xc0015e6380, 0x0, 0xc0038092e0, 0xc003809300, 0xc00a85a0a0, 0x1, 0x1, 0xc0005eb4a0, ...)
github.com/ethereum/go-ethereum/eth/filters/api.go:344 +0x50
reflect.Value.call(0xc00048d900, 0xc000489aa8, 0x13, 0x13a1ced, 0x4, 0xc00018c5a0, 0x3, 0x3, 0xc00018c5d0, 0xc003809060, ...)
reflect/value.go:475 +0x8c7
reflect.Value.Call(0xc00048d900, 0xc000489aa8, 0x13, 0xc00018c5a0, 0x3, 0x3, 0x16, 0x0, 0x0)
reflect/value.go:336 +0xb9
github.com/ethereum/go-ethereum/rpc.(*callback).call(0xc001edb4a0, 0x15e1920, 0xc0015e6380, 0xc00023d293, 0xb, 0xc003809060, 0x1, 0x1, 0x0, 0x0, ...)
github.com/ethereum/go-ethereum/rpc/service.go:206 +0x2c5
github.com/ethereum/go-ethereum/rpc.(*handler).runMethod(0xc0015be990, 0x15e1920, 0xc0015e6380, 0xc0033aa000, 0xc001edb4a0, 0xc003809060, 0x1, 0x1, 0x1)
github.com/ethereum/go-ethereum/rpc/handler.go:389 +0x8a
github.com/ethereum/go-ethereum/rpc.(*handler).handleCall(0xc0015be990, 0xc0005eb440, 0xc0033aa000, 0xc001568ec0)
github.com/ethereum/go-ethereum/rpc/handler.go:337 +0x294
github.com/ethereum/go-ethereum/rpc.(*handler).handleCallMsg(0xc0015be990, 0xc0005eb440, 0xc0033aa000, 0x15ccb01)
github.com/ethereum/go-ethereum/rpc/handler.go:298 +0x1be
github.com/ethereum/go-ethereum/rpc.(*handler).handleMsg.func1(0xc0005eb440)
github.com/ethereum/go-ethereum/rpc/handler.go:139 +0x46
github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc.func1(0xc0015be990, 0xc0038084e0)
github.com/ethereum/go-ethereum/rpc/handler.go:226 +0xd2
created by github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc
github.com/ethereum/go-ethereum/rpc/handler.go:222 +0x66
WARN [06-03|21:51:55.899] Served eth_getLogs conn=192.168.1.17:61357 reqid=4366892086736830 t="891.712µs" err="method handler crashed"
Geth version: geth version
OS & Version: linux
Commit hash : arpit/hot-fix-26-05-2021
bor continue sync with latest block
bor stop sync after catch up the latest block
curl -v -H "Content-Type: application/json" -X POST -d '{"jsonrpc":"2.0","id":"curltext","method":"eth_syncing"}' localhost:8545
{"jsonrpc":"2.0","id":"curltext","result":{"currentBlock":"0xe72792","highestBlock":"0xe727da","knownStates":"0x6cc97a4","pulledStates":"0x6cc97a4","startingBlock":"0x0"}}
{"log":"INFO [05-31|09:35:56.718] Retrying again in 5 seconds for next Heimdall span path=bor/span/2368\n","stream":"stderr","time":"2021-05-31T09:35:56.718335613Z"}
{"log":"INFO [05-31|09:36:01.721] Retrying again in 5 seconds for next Heimdall span path=bor/span/2368\n","stream":"stderr","time":"2021-05-31T09:36:01.72116917Z"}
When submitting logs: please submit them as text and not screenshots.
system
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
bor:
Version: 1.10.3-stable
Git Commit: d33ce83cba5e1a1078e339882c048b9a8b210c69
Git Commit Date: 20210531
Architecture: amd64
Go Version: go1.16.4
Operating System: linux
GOPATH=/root/go
GOROOT=/root/.go
heimdalld:
0.2.1-mainnet
heimdall: default
bor:
BOR_DIR=/root/svc/bor_data
DATA_DIR=$BOR_DIR/data
/root/svc/bin/bor --datadir $DATA_DIR \
--port 30303 \
--ws --ws.addr '0.0.0.0' \
--ws.port 8546 \
--http --http.addr '0.0.0.0' \
--http.vhosts '*' \
--http.corsdomain '*' \
--http.port 8545 \
--cache 4096 \
--cache.trie 30 \
--cache.gc 0 \
--cache.snapshot 20 \
--ipcpath $DATA_DIR/bor.ipc \
--http.api 'eth,net,web3,txpool,bor' \
--syncmode 'full' \
--gcmode 'archive' \
--networkid '137' \
--miner.gaslimit '20000000' \
--miner.gastarget '20000000' \
--txpool.nolocals \
--txpool.accountslots '128' \
--txpool.globalslots '20000' \
--txpool.lifetime '0h16m0s' \
--maxpeers 200 \
--metrics \
--pprof --pprof.port 7071 --pprof.addr '0.0.0.0' \
--bootnodes "enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303,enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303"
INFO [06-01|07:09:54.469] Fetching state sync events queryParams="from-id=265615&to-time=1622249810&limit=50"
INFO [06-01|07:09:54.502] Skip duplicated bad block number=15,054,016 hash=5e5b04..49b7d2
ERROR[06-01|07:09:54.586]
########## BAD BLOCK #########
Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, Berlin: 14750000, YOLO v3: <nil>, Engine: bor}
Number: 15054016
Hash: 0x5e5b043d69cd912bcea0f82a6fe78719c145f41dc8a70d350b233a184149b7d2
0: cumulative: 270435 gas: 270435 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x53e5ffc1a80dbe7b72d79d8ed7182727c68bd5764c4279236ee9c74fc73e248f logs: [0xc0005b8630 0xc0005b86e0 0xc0005b8790 0xc0005b8840 0xc0005b88f0 0xc0005b89a0 0xc0005b8a50 0xc0005b8b00 0xc0005b8bb0 0xc0005b8c60 0xc0005b8d10 0xc0005b8dc0 0xc0005b8e70] bloom: 00200000200000000002000080200000000000000020000000000000000000000000400000000000000000004000000000008000000100000000000000000000400004000000080100000008000000a00040000000000000004100000000000000000000400000120000000000000400000000000000000080080110000000000000004000000000804100000000000000000000000000080000004000000010200800000000000000000000000000000000000000000000000000000000004000800002000000000001000201000000000000002800001010100000000080000801000000000000000040000000000000000000000080000000000000100000 state:
.....
......
...
350: cumulative: 19999819 gas: 51625 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0xcefe8ad9a4632602fb247af6c92d05f64add752a868dec3ec33b7e402e813882 logs: [0xc019cf2580 0xc019cf2630] bloom: 00000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000008000000000000000000000000000000004000000000000000008000000800000000000000000000100000200000000000000000000000000000000000000020000000000000080000010000000000000000000010000800000000000000000000000000000000400000000000000200000000000000000000000000000000000000000000000000000000000004800000042000000000001000000000002000000000000000000104000000000000000000000000000000000000000000000000000000000000000000000100000 state:
Error: invalid merkle root (remote: c8273e08d00960889c611de7786c6fbb016cc01440d5161e5668694f046b84ae local: 4aabc50c984c1ef50252792ee70337934ba1abcd18ef0c0afa7175724f4a2a21)
##############################
WARN [06-01|07:10:29.513] Synchronisation failed, dropping peer peer=a1221d8abc7acb5b3ff70cc4cd9567bb7173454f1233e92157ee9c08c5b0d85c err="retrieved hash chain is invalid: invalid merkle root (remote: c8273e08d00960889c611de7786c6fbb016cc01440d5161e5668694f046b84ae local: 4aabc50c984c1ef50252792ee70337934ba1abcd18ef0c0afa7175724f4a2a21)"
ERROR[06-01|07:10:29.513] Ethereum peer removal failed peer=a1221d8a err="peer not registered"
it starts to report an error when it is synchronized here, and then it is not synchronized.How can I solve it?pls
As a requirement of implementation for ICON's interoperability technology BTP, integrated chains need to add pre-compilation functions for sha3 and erecover.
Om Parikh mentioned that it would be great if the integration is done at the contract level instead of the client level. Pre-compiles would likely be cheaper, but if this is cheap enough to execute at the contract level the ICON team is fine with it. It has been added as a precompile to Substrate SDK Frontier pallet and is in PR on BSC waiting for their next hard fork.
As long as the solution is feasible from a cost perspective, the ICON team is open to either option.
BTP Documentation: https://drive.google.com/file/d/1SP5i6zE9SrVufRh_PnBrM5TyCPZjoShm/view?usp=sharing
Hi, I don't understand anything about heimdall and bor.
Bor is a fork of go-ethereum, in other blockchains go-ethereum is enough to setup a full node.
What is the purpose of heimdall ? Can we run a full node using bor without heimdall ?
Thanks for the answers!
I start with the heimdalld service,When he is completed in sync,I start bor service,A few days passed, eth.syncing = false.
btw why heimdalld service latest_block_height is 5322308 and catching_up is false,bug the block explorer block is 1512072.
Environment:
heimdalld version
0.2.1-mainnet
bor version
Bor
Version: 1.10.3-stable
Git Commit: d33ce83
Architecture: amd64
Go Version: go1.13
Operating System: linux
curl localhost:26657/status
"jsonrpc": "2.0",
"id": "",
"result": {
"node_info": {
"protocol_version": {
"p2p": "7",
"block": "10",
"app": "0"
},
"id": "ac85a69c9534919f7175947645f9ed28c0923de2",
"listen_addr": "tcp://0.0.0.0:26656",
"network": "heimdall-137",
"version": "0.32.7",
"channels": "4020212223303800",
"moniker": "ap-east-1.compute.internal",
"other": {
"tx_index": "on",
"rpc_address": "tcp://127.0.0.1:26657"
}
},
"sync_info": {
"latest_block_hash": "1618FEE880C2DCC8F7E36345A5952F18598449FF0004A2065D3DC8DEA941FB4D",
"latest_app_hash": "2A09AD495477EFD5900597437EBF6F45A495569BAF8F7C1EAB1AF3190FA4CEBD",
"latest_block_height": "5322308",
"latest_block_time": "2021-06-03T02:43:09.21284239Z",
"catching_up": false
},
"validator_info": {
"address": "6C38C5DEC00B3EDADB2B8A7D7432505E3AD8F635",
"pub_key": {
"type": "tendermint/PubKeySecp256k1",
"value": "BGZeYE9AXUz5ivmIAs4QWjK+KoZGdRHFmV5up0miAuhPMdw1GwHnF6FaI6MreujGp1oI5taoeZB6CXHsbDsj6jI="
},
"voting_power": "0"
}
}
journalctl -u heimdalld.service -f
Jun 03 02:44:49 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: E[2021-06-03|02:44:49.992] Error while fetching mainchain receipt error="403 Forbidden invalid host specified\n" txHash=0x14d0d4249f0f2879a413826ebee9fb44cd9aaf5f366bbc6458e7781a6994ce96
Jun 03 02:44:49 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: E[2021-06-03|02:44:49.992] Error while fetching mainchain receipt error="403 Forbidden invalid host specified\n" txHash=0xa004101176a9d0feb3359f50d0758c588c0f9a79d6e9840027ef9fc4fab6f49d
Jun 03 02:44:49 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:44:49.993] Executed block module=state height=5322320 validTxs=9 invalidTxs=1
Jun 03 02:44:50 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:44:50.015] Committed state module=state height=5322320 txs=10 appHash=E63F25158D4C4562FA7314E303EE03FD6C0546D39AC1DB8A53B62076EB285593
Jun 03 02:44:58 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:44:58.515] Executed block module=state height=5322321 validTxs=0 invalidTxs=0
Jun 03 02:44:58 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:44:58.535] Committed state module=state height=5322321 txs=0 appHash=E63F25158D4C4562FA7314E303EE03FD6C0546D39AC1DB8A53B62076EB285593
Jun 03 02:45:05 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: E[2021-06-03|02:45:05.402] Stopping peer for error module=p2p peer="Peer{MConn{168.119.156.237:26656} 32a009af86747e496d87eb811fbe1adc7144d27d out}" err=EOF
Jun 03 02:45:07 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:45:07.157] Executed block module=state height=5322322 validTxs=0 invalidTxs=0
Jun 03 02:45:07 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:45:07.179] Committed state module=state height=5322322 txs=0 appHash=D7FD9B8EB05E4342D44FAB3388EE4B901250D0304D009271CF8879FD8C64F576
Jun 03 02:45:14 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:45:14.062] Executed block module=state height=5322323 validTxs=0 invalidTxs=0
Jun 03 02:45:14 ip-10-148-8-49.ap-east-1.compute.internal heimdalld[12053]: I[2021-06-03|02:45:14.083] Committed state module=state height=5322323 txs=0 appHash=D7FD9B8EB05E4342D44FAB3388EE4B901250D0304D009271CF8879FD8C64F576
bor log
journalctl -u bor.service -f
Jun 02 22:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-02|22:57:43.294] Writing clean trie cache to disk path=/home/amber/data/.heimdalld/data/bor/triecache threads=1
Jun 02 22:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-02|22:57:43.296] Persisted the clean trie cache path=/home/amber/data/.heimdalld/data/bor/triecache elapsed=1.553ms
Jun 02 23:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-02|23:57:43.294] Writing clean trie cache to disk path=/home/amber/data/.heimdalld/data/bor/triecache threads=1
Jun 02 23:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-02|23:57:43.295] Persisted the clean trie cache path=/home/amber/data/.heimdalld/data/bor/triecache elapsed="687.451µs"
Jun 03 00:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-03|00:57:43.294] Writing clean trie cache to disk path=/home/amber/data/.heimdalld/data/bor/triecache threads=1
Jun 03 00:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-03|00:57:43.295] Persisted the clean trie cache path=/home/amber/data/.heimdalld/data/bor/triecache elapsed="695.218µs"
Jun 03 01:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-03|01:57:43.294] Writing clean trie cache to disk path=/home/amber/data/.heimdalld/data/bor/triecache threads=1
Jun 03 01:57:43 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: INFO [06-03|01:57:43.295] Persisted the clean trie cache path=/home/amber/data/.heimdalld/data/bor/triecache elapsed="683.177µs"
Jun 03 02:13:13 ip-10-148-8-49.ap-east-1.compute.internal bash[26558]: WARN [06-03|02:13:13.362] Served eth_coinbase reqid=3 t="40.594µs" err="etherbase must be explicitly specified"```
eth.syncing
false
eth.blockNumber
0
admin.peers.length
3
go.mod
declaring the repo's path as github.com/maticnetwork/bor
.
go.mod
declares the repo's path as github.com/ethereum/go-ethereum
.
Use the repo in a Go project with go.mod
enabled.
Geth version: 1.10.3
OS & Version: Linux - Ubuntu
Docker finishes building bor with no errors
Docker starts building and ends up erorring with "operation not permitted"
Create a new directory called bor
clone the git for bor
docker build --tag bor:latest .
Hi,
I am scared to have interference with geth if I install it. Is it possible to sync the Ethereum blockchain with this version of bor ?
Thank for your answer
Line 1252 in 436ed45
why?
if err != nil {
state.Finalise(true)
}
Hi team,
Bor sync process stuck with error:
Mar 30 14:53:48 bash[109786]: INFO [03-30|14:53:48.454] Fetching state sync events queryParams="from-id=552&to-time=1597662416&limit=50"
Mar 30 14:53:48 bash[109786]: ERROR[03-30|14:53:48.456]
Mar 30 14:53:48 bash[109786]: ########## BAD BLOCK #########
Mar 30 14:53:48 bash[109786]: Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, YOLO v1: <nil>, Engine: bor}
Mar 30 14:53:48 bash[109786]: Number: 3299968
Mar 30 14:53:48 bash[109786]: Hash: 0xe66c096439cbe39d62157bbb1c8d34d7c990f8328bf19887fcd3aab68423d717
Mar 30 14:53:48 bash[109786]: 0: cumulative: 170395 gas: 170395 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0xa187a4c4744f16a67fa9a1afcd87897787e3a6633674dd3af54729ca67b97ae3 logs: [0xc0006ba790 0xc0006ba840] bloom: 00000000000000000008000000000000000000000000000000000000000000000000000000000000000080000000000000008000000000000040000200000000000000000000000000020000000000800000000000000000000100000002000000000000000000000000000000000000000000000000000080000000000000000000000000000400000000000000000040000000000000000000002000000000200000000000000000000010000000000000000000000000000000000000004000000000000000000001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000010000000000100100 state:
Mar 30 14:53:48 bash[109786]: Error: invalid merkle root (remote: 73d7ada375cd8731c3a452e683faef9097c737160b8f8fa89b234ab024e28533 local: 52b6fbd9c1cf5e4f1653678c3f44dd42ba9423d11bea1a23e9baecc41166c5db)
Mar 30 14:53:48 bash[109786]: ##############################
Mar 30 14:53:48 bash[109786]:
Mar 30 14:53:48 bash[109786]: WARN [03-30|14:53:48.456] Synchronisation failed, dropping peer peer=317b056032dfea66 err="retrieved hash chain is invalid: invalid merkle root (remote: 73d7ada375cd8731c3a452e683faef9097c737160b8f8fa89b234ab024e28533 local: 52b6fbd9c1cf5e4f1653678c3f44dd42ba9423d11bea1a23e9baecc41166c5db)"
I try to restart the bor service several times but not work.
Bor
Version: 1.9.16-stable
Git Commit: a1b7e2fcbbd753210e2c264bac633e2acd61839c
Architecture: amd64
Protocol Versions: [65 64 63]
Go Version: go1.15.5
Operating System: linux
GOPATH=/root/go
GOROOT=/root/.go
Jan 27 05:52:05 x bash[18140]: WARN [01-27|05:52:05.355] Synchronisation failed, dropping peer peer=425fb951f45be104 err="retrieved hash chain is invalid: unknown ancestor"
Jan 27 05:52:13 x bash[18140]: ERROR[01-27|05:52:13.942]
Jan 27 05:52:13 x bash[18140]: ########## BAD BLOCK #########
Jan 27 05:52:13 x bash[18140]: Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, YOLO v1: <nil>, Engine: bor}
Jan 27 05:52:13 x bash[18140]: Number: 9811556
Jan 27 05:52:13 x bash[18140]: Hash: 0x3d135064e1a20ebc3b7b771cc3d5c5358b12b5e8e7bc7b01572c0b3f03e7d7e0
Jan 27 05:52:13 x bash[18140]: Error: unknown ancestor
Jan 27 05:52:13 x bash[18140]: ##############################
Jan 27 05:52:13 x bash[18140]:
Jan 27 05:52:13 x bash[18140]: WARN [01-27|05:52:13.942] Synchronisation failed, dropping peer peer=9ec0a4f565fd1814 err="retrieved hash chain is invalid: unknown ancestor"
gopkg.in/olebedev/go-duktape.v3
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:14:16: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:16:15: undefined: DebugRequestFunc
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:17:15: undefined: DebugDetachedFunc
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:31:30: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:33:14: undefined: DebugRequestFunc
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/dbgsockettransport.go:34:15: undefined: DebugDetachedFunc
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/timers.go:11:10: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/timers.go:30:10: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/timers.go:37:20: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/timers.go:63:22: undefined: Context
../gop/pkg/mod/gopkg.in/olebedev/[email protected]/timers.go:63:22: too many errors
root@ecs-fbcd:~/bor# go version
go version go1.16.4 linux/amd64
root@ecs-fbcd:~/bor# uname -a
Linux ecs-fbcd 4.15.0-91-generic #92-Ubuntu SMP Fri Feb 28 11:09:48 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
First is here:
https://github.com/maticnetwork/bor/blob/master/consensus/bor/bor.go#L1125
Is it safe to just ignore the error?
The other one is :
https://github.com/maticnetwork/bor/blob/master/consensus/bor/bor.go#L1281
Why is the state Finalized only when there is an error?
Geth version: geth version
OS & Version: Windows/Linux/OSX Ubuntu 20.04
Commit hash : (if develop
)
[backtrace]
When submitting logs: please submit them as text and not screenshots.
~/maticNode/bor-0.2.6$ make bor
env GO111MODULE=on go run build/ci.go install ./cmd/geth
build github.com/ethereum/go-ethereum/build: cannot find module for path crypto/ed25519
make: *** [Makefile:17: bor] Error 1
@mini-deb:~/maticNode/bor-0.2.6$
If I send two consecutive transactions with the same gas price, I expect the first transaction would be packed in front of the second transaction. I understand this is not 100% guaranteed in a blockchain. However, I expect a certain level of certainty can be achieved. But in matic, it is often not the case currently. I found a lot of transactions I sent are packed in the wrong order. I looked at the bor code and it seems the block producing code is sorting the transactions based on their arrival time as go-ethereum does. Therefore, I don't understand why it doesn't provide the same level of certainty of ordering as go-ethereum? On eth network, if I send two consecutive transactions with the same gas price, 80% to 90% they are packaged in the right order while in matic the order seems to be random.
Jan 23 04:53:26 x bash[27383]: ##############################
Jan 23 04:53:26 x bash[27383]: Error: invalid merkle root (remote: 938a5fb4f18ac9eca34914d96b7fd4aa93eaaa481121428a042751eff649d7db local: e06e06caca82a2eba484f270f2ff4154d40afebc3f17bb5d9f25be519194b0b5)
Jan 23 04:53:26 x bash[27383]: 1: cumulative: 1073324 gas: 1007966 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x241330546e67d067df56df37a2a0d697f7b7bd235cd07a35c0bacdeb82f28352 logs: [0xc019986a50 0xc019986b00 0xc019986bb0 0xc019986c60 0xc019986d10 0xc019986dc0 0xc019986e70 0xc019986f20 0xc019986fd0 0xc019987080 0
Jan 23 04:53:26 x bash[27383]: 0: cumulative: 65358 gas: 65358 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x5861b43420755f70d7b3b3d0e4d07555e71620734111e23370d385636cd63404 logs: [0xc0199868f0 0xc0199869a0] bloom: 00000000000000000000000000000008000000000000400000000000000000000000000000000000008000000000000000008
Jan 23 04:53:26 x bash[27383]: Hash: 0xf02e6e2c3042aeaa48584456b5af21008f798948ca015378dabf14db2dae2c02
Jan 23 04:53:26 x bash[27383]: Number: 9937600
Jan 23 04:53:26 x bash[27383]: Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, YOLO v1: <nil>, Engine: bor}
Jan 23 04:53:26 x bash[27383]: ########## BAD BLOCK #########
Jan 23 04:53:26 x bash[27383]: ERROR[01-23|04:53:26.431]
Jan 23 04:53:26 x bash[27383]: ERROR[01-23|04:53:26.430] Error while committing span error="header not found"
Jan 23 04:53:25 x bash[27383]: WARN [01-23|04:53:25.732] Synchronisation failed, dropping peer peer=036b2838cb1c9bd7 err="retrieved hash chain is invalid: invalid merkle root (remote: 938a5fb4f18ac9eca34914d96b7fd4aa93eaaa481121428a042751eff649d7db local: e06e06caca82a2eba484f270f2ff4154d40afebc3f17bb5d9f25be519194b0b5)"
Jan 23 04:53:25 x bash[27383]:
Jan 23 04:53:25 x bash[27383]: ##############################
Jan 23 04:53:25 x bash[27383]: Error: invalid merkle root (remote: 938a5fb4f18ac9eca34914d96b7fd4aa93eaaa481121428a042751eff649d7db local: e06e06caca82a2eba484f270f2ff4154d40afebc3f17bb5d9f25be519194b0b5)
Jan 23 04:53:25 x bash[27383]: 1: cumulative: 1073324 gas: 1007966 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x241330546e67d067df56df37a2a0d697f7b7bd235cd07a35c0bacdeb82f28352 logs: [0xc0233706e0 0xc023370790 0xc023370840 0xc0233708f0 0xc0233709a0 0xc023370a50 0xc023370b00 0xc023370bb0 0xc023370c60 0xc023370d10 0
Jan 23 04:53:25 x bash[27383]: 0: cumulative: 65358 gas: 65358 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x5861b43420755f70d7b3b3d0e4d07555e71620734111e23370d385636cd63404 logs: [0xc023370580 0xc023370630] bloom: 00000000000000000000000000000008000000000000400000000000000000000000000000000000008000000000000000008
Jan 23 04:53:25 x bash[27383]: Hash: 0xf02e6e2c3042aeaa48584456b5af21008f798948ca015378dabf14db2dae2c02
Jan 23 04:53:25 x bash[27383]: Number: 9937600
Jan 23 04:53:25 x bash[27383]: Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, YOLO v1: <nil>, Engine: bor}
Having similar or same problem again with CS-2008. Gave up on CS-2007 and stuck to the default Bor ports, which made it work. See #67.
config.toml:
##### rpc server configuration options #####
[rpc]
# TCP or UNIX socket address for the RPC server to listen on
laddr = "tcp://127.0.0.1:26757"
# A list of origins a cross-domain request can be executed from
# Default value '[]' disables cors support
# Use '["*"]' to allow any origin
cors_allowed_origins = []
heimdall-config.toml:
# This is a TOML config file.
# For more information, see https://github.com/toml-lang/toml
##### RPC and REST configs #####
# RPC endpoint for bor chain
bor_rpc_url = "http://localhost:8555"
# RPC endpoint for tendermint
tendermint_rpc_url = "http://0.0.0.0:26757"
# Heimdall REST server endpoint
heimdall_rest_server = "http://0.0.0.0:1317"
start.sh:
args="/usr/bin/bor --datadir $DATA_DIR --port '30703' --rpc --rpcaddr '0.0.0.0' --rpcvhosts '*' --rpccorsdomain '*' --rpcport '8555' --ipcpath /etc/bor/bor.ipc --rpcapi 'db,eth,net,web3,txpool,bor' --networkid $NETWORK_ID --miner.gaslimit '200000000' --miner.gastarget '20000000' --txpool.nolocals --txpool.accountslots '128' --txpool.globalslots '20000' --txpool.lifetime '0h16m0s' "
bor.service:
Jun 04 08:58:44 andromeda bash[11578]: INFO [06-04|08:58:44.626] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:46 andromeda bash[11578]: INFO [06-04|08:58:46.671] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:49 andromeda bash[11578]: INFO [06-04|08:58:49.629] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:51 andromeda bash[11578]: INFO [06-04|08:58:51.675] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:54 andromeda bash[11578]: INFO [06-04|08:58:54.633] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:56 andromeda bash[11578]: INFO [06-04|08:58:56.678] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:58:59 andromeda bash[11578]: INFO [06-04|08:58:59.636] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:59:01 andromeda bash[11578]: INFO [06-04|08:59:01.686] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:59:04 andromeda bash[11578]: INFO [06-04|08:59:04.640] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Jun 04 08:59:06 andromeda bash[11578]: INFO [06-04|08:59:06.689] Retrying again in 5 seconds for next Heimdall span path=bor/span/68
Bor
Version: 1.10.1-stable
Git Commit: 11880ac
Architecture: amd64
Go Version: go1.15.5
Operating System: linux
/root/go/bin/bor --nousb --datadir /root/.bor/data --port 30303 --http --http.addr '0.0.0.0' --ws --ws.addr '0.0.0.0' --ws.port 8546 --http.vhosts '*' --http.corsdomain '*' --http.port 8545 --ipcpath /root/.bor/data/bor.ipc --snapshot=false --http.api 'eth,net,web3,txpool,bor' --syncmode 'full' --networkid '137' --miner.gaslimit '200000000' --miner.gastarget '20000000' --txpool.nolocals --txpool.accountslots '128' --txpool.globalslots '20000' --txpool.lifetime '0h16m0s' --maxpeers 200 --metrics --pprof --pprof.port 7071 --pprof.addr '0.0.0.0'
Block height stop synchronization
INFO [05-24|01:23:25.401] Looking for peers peercount=1 tried=62 static=0
INFO [05-24|01:23:36.225] Looking for peers peercount=0 tried=96 static=0
INFO [05-24|01:23:46.800] Looking for peers peercount=1 tried=104 static=0
INFO [05-24|01:23:57.427] Looking for peers peercount=1 tried=55 static=0
ERROR[05-24|01:24:05.903] Snapshot extension registration failed peer=101502b5 err="peer connected on snap without compatible eth support"
INFO [05-24|01:24:07.474] Looking for peers peercount=2 tried=107 static=0
INFO [05-24|01:24:17.745] Looking for peers peercount=1 tried=83 static=0
INFO [05-24|01:24:29.445] Looking for peers peercount=1 tried=77 static=0
INFO [05-24|01:24:39.499] Looking for peers peercount=2 tried=101 static=0
INFO [05-24|01:24:59.643] Looking for peers peercount=2 tried=74 static=0
ERROR[05-24|01:25:06.035] Snapshot extension registration failed peer=c5b271da err="peer connected on snap without compatible eth support"
How to solve it please?
INFO [06-15|05:23:51.446] Initialised chain configuration config="{ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, Berlin: 14750000, YOLO v3: <nil>, Engine: bor}"
ERROR[06-15|05:23:51.447] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:23:51.447] Deep froze chain segment blocks=0 elapsed=1.381ms number=15173293
INFO [06-15|05:23:51.643] Initialising Ethereum protocol network=137 dbversion=8
INFO [06-15|05:23:51.955] Loaded most recent local header number=15730204 hash="941f92…afc210" td=162369744 age=1h46m52s
INFO [06-15|05:23:51.955] Loaded most recent local full block number=15725312 hash="117efc…3a76be" td=162296635 age=4h44m12s
INFO [06-15|05:23:51.955] Loaded most recent local fast block number=15730204 hash="941f92…afc210" td=162369744 age=1h46m52s
INFO [06-15|05:23:51.956] Loaded last fast-sync pivot marker number=15178430
WARN [06-15|05:23:51.956] Head state missing, repairing number=15725312 hash="117efc…3a76be" snaproot="4df521…954c30"
ERROR[06-15|05:24:51.447] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:24:51.447] Deep froze chain segment blocks=0 elapsed="326.404µs" number=15173293
ERROR[06-15|05:25:51.448] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:25:51.448] Deep froze chain segment blocks=0 elapsed="421.405µs" number=15173293
ERROR[06-15|05:26:51.450] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:26:51.450] Deep froze chain segment blocks=0 elapsed="301.904µs" number=15173293
ERROR[06-15|05:27:51.451] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:27:51.451] Deep froze chain segment blocks=0 elapsed="370.905µs" number=15173293
ERROR[06-15|05:28:51.453] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:28:51.453] Deep froze chain segment blocks=0 elapsed="340.904µs" number=15173293
ERROR[06-15|05:29:51.454] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:29:51.454] Deep froze chain segment blocks=0 elapsed="359.205µs" number=15173293
ERROR[06-15|05:30:51.455] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:30:51.455] Deep froze chain segment blocks=0 elapsed="391.805µs" number=15173293
ERROR[06-15|05:31:51.456] Block receipts missing, can't freeze number=15173294 hash="d0ca0b…3f7b36"
INFO [06-15|05:31:51.456] Deep froze chain segment blocks=0 elapsed="368.604µs" number=15173293
Bor version: 0.2.5 (compiled from sources of Releases section)
OS & Version: Linux
Network: Mumbai test net chain id 80001
Bor
executable periodically produces 'BAD BLOCK' messages after completing sync process.
The log file shows the following:
INFO [05-19|18:44:48.024] Unindexed transactions blocks=1 txs=0 tail=11678538 elapsed="66.12µs"
INFO [05-19|18:44:50.028] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="466.471µs" mgasps=0.000 number=14028538 hash="71b3bf…78745e" dirty=715.58KiB
INFO [05-19|18:44:50.028] Unindexed transactions blocks=1 txs=0 tail=11678539 elapsed="502.451µs"
INFO [05-19|18:44:52.026] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="420.531µs" mgasps=0.000 number=14028539 hash="7051ef…c0fa27" dirty=715.58KiB
INFO [05-19|18:44:52.027] Unindexed transactions blocks=1 txs=0 tail=11678540 elapsed=1.070ms
INFO [05-19|18:44:54.024] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="487.661µs" mgasps=0.000 number=14028540 hash="cf1ebd…ef150e" dirty=715.58KiB
INFO [05-19|18:44:54.025] Unindexed transactions blocks=1 txs=0 tail=11678541 elapsed="92.999µs"
INFO [05-19|18:44:56.023] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="441.99µs" mgasps=0.000 number=14028541 hash="95d379…c1487c" dirty=715.58KiB
INFO [05-19|18:44:56.024] Unindexed transactions blocks=1 txs=0 tail=11678542 elapsed="95.59µs"
INFO [05-19|18:44:58.023] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="518.101µs" mgasps=0.000 number=14028542 hash="d3fa2b…b459ad" dirty=715.58KiB
INFO [05-19|18:44:58.031] Unindexed transactions blocks=1 txs=0 tail=11678543 elapsed=6.058ms
INFO [05-19|18:45:00.024] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed="646.021µs" mgasps=0.000 number=14028543 hash="4f50da…979217" dirty=709.87KiB
INFO [05-19|18:45:00.031] Unindexed transactions blocks=1 txs=0 tail=11678544 elapsed="131.56µs"
WARN [05-19|18:45:06.146] Failed to load old bad blocks error="leveldb: not found"
ERROR[05-19|18:45:06.147]
########## BAD BLOCK #########
Chain config: {ChainID: 80001 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 2722000, Muir Glacier: 2722000, Berlin: 13996000, YOLO v3: <nil>, Engine: bor}
Number: 14028544
Hash: 0x0359922c6308e8f94f3621a2167d2871892851d6ae5efa3fde54ce3ca2bfdd4b
0: cumulative: 59704 gas: 59704 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x499829f3862c9b7bddccb71dc5056bb620dd73e7775f2f486c5621d85388e43f logs: [0xc031ec1b80 0xc031ec1c30] bloom: 00000000000040000000000000000000000000040000000000000000000000000000000000000000000000000000010000018020000000000001000000000000000000000000000000000000000000800000000000000000000100000000800000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000080000000000000200001000000000000480000000000000000000000000000000000000000024000000000000000008001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000002100000 state:
Error: invalid merkle root (remote: be3bdcbfb79e46d9558531f6e61fe1a07f4572225acf0cd723bf401db735cd8c local: eb83300e06300de629037234fd25923c23b7c3c7599eb16f7bcf509f5fc9f67e)
##############################
INFO [05-19|18:45:06.234] Skip duplicated bad block number=14028544 hash="035992…bfdd4b"
ERROR[05-19|18:45:06.235]
########## BAD BLOCK #########
Chain config: {ChainID: 80001 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 2722000, Muir Glacier: 2722000, Berlin: 13996000, YOLO v3: <nil>, Engine: bor}
Number: 14028544
Hash: 0x0359922c6308e8f94f3621a2167d2871892851d6ae5efa3fde54ce3ca2bfdd4b
0: cumulative: 59704 gas: 59704 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x499829f3862c9b7bddccb71dc5056bb620dd73e7775f2f486c5621d85388e43f logs: [0xc0415940b0 0xc041594160] bloom: 00000000000040000000000000000000000000040000000000000000000000000000000000000000000000000000010000018020000000000001000000000000000000000000000000000000000000800000000000000000000100000000800000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000080000000000000200001000000000000480000000000000000000000000000000000000000024000000000000000008001000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001000000002100000 state:
Error: invalid merkle root (remote: be3bdcbfb79e46d9558531f6e61fe1a07f4572225acf0cd723bf401db735cd8c local: eb83300e06300de629037234fd25923c23b7c3c7599eb16f7bcf509f5fc9f67e)
##############################
INFO [05-19|18:45:07.097] Skip duplicated bad block number=14028544 hash="035992…bfdd4b"
ERROR[05-19|18:45:07.102]
Command line options:
./bor-bin --datadir /home/explorer/mumbai-chain --rpc --rpcaddr XX.XXX.XX.XXX --rpcport 38546 --port 33001 --bootnodes "enode://320553cda00dfc003f499a3ce9598029f364fbb3ed1222fdc20a94d97dcc4d8ba0cd0bfa996579dcc6d17a534741fb0a5da303a90579431259150de66b597251@54.147.31.250:30303" --networkid 80001 --bor.withoutheimdall
0.2.1-mumbai
192.168.9.41 : heimdalld is syncing
192.168.9.40: heimdalld is not syncing
"id": "ec0b7ee065727193b752d6bdd15923606c99cec7",
"listen_addr": "tcp://162.55.210.19:26656",
"network": "heimdall-80001",
"version": "0.32.7",
seeds="[email protected]:26656"
Connection to 162.55.210.19 26656 port [tcp/*] succeeded!
192.168.9.40 use seeds is [email protected]:26656
bug heimdalld is not syncing, Why not sync?
Following requests randomly throws missing trie node
error
curl 'https://rpc-mainnet.matic.network/' \
-H 'content-type: application/json' \
-H 'accept: */*' \
--data-raw '{"method":"eth_call","params":[{"to":"0xcbca837161be50efa5925bb9cc77406468e76751","data":"0x252dba420000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000010f00000000000000000000000000000000000000000000000000000000000021e00000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000232000000000000000000000000000000000000000000000000000000000000023c00000000000000000000000000000000000000000000000000000000000002460000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025a0000000000000000000000000000000000000000000000000000000000000264000000000000000000000000000000000000000000000000000000000000026e00000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000282000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000029600000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002fa0000000000000000000000000000000000000000000000000000000000000304000000000000000000000000000000000000000000000000000000000000030e00000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000322000000000000000000000000000000000000000000000000000000000000032c00000000000000000000000000000000000000000000000000000000000003360000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034a0000000000000000000000000000000000000000000000000000000000000354000000000000000000000000000000000000000000000000000000000000035e00000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000372000000000000000000000000000000000000000000000000000000000000037c00000000000000000000000000000000000000000000000000000000000003860000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039a00000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000412000000000000000000000000000000000000000000000000000000000000041c00000000000000000000000000000000000000000000000000000000000004260000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043a0000000000000000000000000000000000000000000000000000000000000444000000000000000000000000000000000000000000000000000000000000044e00000000000000000000000000000000000000000000000000000000000004580000000000000000000000000000000000000000000000000000000000000462000000000000000000000000000000000000000000000000000000000000046c00000000000000000000000000000000000000000000000000000000000004760000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048a0000000000000000000000000000000000000000000000000000000000000494000000000000000000000000000000000000000000000000000000000000049e00000000000000000000000000000000000000000000000000000000000004a800000000000000000000000000000000000000000000000000000000000004b200000000000000000000000000000000000000000000000000000000000004bc00000000000000000000000000000000000000000000000000000000000004c600000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000004da00000000000000000000000000000000000000000000000000000000000004e400000000000000000000000000000000000000000000000000000000000004ee00000000000000000000000000000000000000000000000000000000000004f80000000000000000000000000000000000000000000000000000000000000502000000000000000000000000000000000000000000000000000000000000050c00000000000000000000000000000000000000000000000000000000000005160000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000052a0000000000000000000000000000000000000000000000000000000000000534000000000000000000000000000000000000000000000000000000000000053e00000000000000000000000000000000000000000000000000000000000005480000000000000000000000000000000000000000000000000000000000000552000000000000000000000000000000000000000000000000000000000000055c00000000000000000000000000000000000000000000000000000000000005660000000000000000000000000000000000000000000000000000000000000570000000000000000000000000000000000000000000000000000000000000057a0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e000000000000000000000000000000000000000000000000000000000000059800000000000000000000000000000000000000000000000000000000000005a200000000000000000000000000000000000000000000000000000000000005ac00000000000000000000000000000000000000000000000000000000000005b600000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005de00000000000000000000000000000000000000000000000000000000000005e800000000000000000000000000000000000000000000000000000000000005f200000000000000000000000000000000000000000000000000000000000005fc00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000061a0000000000000000000000000000000000000000000000000000000000000624000000000000000000000000000000000000000000000000000000000000062e00000000000000000000000000000000000000000000000000000000000006380000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c00000000000000000000000000000000000000000000000000000000000006560000000000000000000000000000000000000000000000000000000000000660000000000000000000000000000000000000000000000000000000000000066a0000000000000000000000000000000000000000000000000000000000000674000000000000000000000000000000000000000000000000000000000000067e00000000000000000000000000000000000000000000000000000000000006880000000000000000000000000000000000000000000000000000000000000692000000000000000000000000000000000000000000000000000000000000069c00000000000000000000000000000000000000000000000000000000000006a600000000000000000000000000000000000000000000000000000000000006b000000000000000000000000000000000000000000000000000000000000006ba00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006e200000000000000000000000000000000000000000000000000000000000006ec00000000000000000000000000000000000000000000000000000000000006f60000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000071e00000000000000000000000000000000000000000000000000000000000007280000000000000000000000000000000000000000000000000000000000000732000000000000000000000000000000000000000000000000000000000000073c00000000000000000000000000000000000000000000000000000000000007460000000000000000000000000000000000000000000000000000000000000750000000000000000000000000000000000000000000000000000000000000075a0000000000000000000000000000000000000000000000000000000000000764000000000000000000000000000000000000000000000000000000000000076e00000000000000000000000000000000000000000000000000000000000007780000000000000000000000000000000000000000000000000000000000000782000000000000000000000000000000000000000000000000000000000000078c000000000000000000000000000000000000000000000000000000000000079600000000000000000000000000000000000000000000000000000000000007a000000000000000000000000000000000000000000000000000000000000007aa00000000000000000000000000000000000000000000000000000000000007b400000000000000000000000000000000000000000000000000000000000007be00000000000000000000000000000000000000000000000000000000000007c800000000000000000000000000000000000000000000000000000000000007d200000000000000000000000000000000000000000000000000000000000007dc00000000000000000000000000000000000000000000000000000000000007e600000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000007fa0000000000000000000000000000000000000000000000000000000000000804000000000000000000000000000000000000000000000000000000000000080e00000000000000000000000000000000000000000000000000000000000008180000000000000000000000000000000000000000000000000000000000000822000000000000000000000000000000000000000000000000000000000000082c00000000000000000000000000000000000000000000000000000000000008360000000000000000000000000000000000000000000000000000000000000840000000000000000000000000000000000000000000000000000000000000084a0000000000000000000000000000000000000000000000000000000000000854000000000000000000000000000000000000000000000000000000000000085e00000000000000000000000000000000000000000000000000000000000008680000000000000000000000000000000000000000000000000000000000000872000000000000000000000000000000000000000000000000000000000000087c00000000000000000000000000000000000000000000000000000000000008860000000000000000000000000000000000000000000000000000000000000890000000000000000000000000000000000000000000000000000000000000089a00000000000000000000000000000000000000000000000000000000000008a400000000000000000000000000000000000000000000000000000000000008ae00000000000000000000000000000000000000000000000000000000000008b800000000000000000000000000000000000000000000000000000000000008c200000000000000000000000000000000000000000000000000000000000008cc00000000000000000000000000000000000000000000000000000000000008d600000000000000000000000000000000000000000000000000000000000008e000000000000000000000000000000000000000000000000000000000000008ea00000000000000000000000000000000000000000000000000000000000008f400000000000000000000000000000000000000000000000000000000000008fe00000000000000000000000000000000000000000000000000000000000009080000000000000000000000000000000000000000000000000000000000000912000000000000000000000000000000000000000000000000000000000000091c00000000000000000000000000000000000000000000000000000000000009260000000000000000000000000000000000000000000000000000000000000930000000000000000000000000000000000000000000000000000000000000093a0000000000000000000000000000000000000000000000000000000000000944000000000000000000000000000000000000000000000000000000000000094e00000000000000000000000000000000000000000000000000000000000009580000000000000000000000000000000000000000000000000000000000000962000000000000000000000000000000000000000000000000000000000000096c00000000000000000000000000000000000000000000000000000000000009760000000000000000000000000000000000000000000000000000000000000980000000000000000000000000000000000000000000000000000000000000098a0000000000000000000000000000000000000000000000000000000000000994000000000000000000000000000000000000000000000000000000000000099e00000000000000000000000000000000000000000000000000000000000009a800000000000000000000000000000000000000000000000000000000000009b200000000000000000000000000000000000000000000000000000000000009bc00000000000000000000000000000000000000000000000000000000000009c600000000000000000000000000000000000000000000000000000000000009d000000000000000000000000000000000000000000000000000000000000009da00000000000000000000000000000000000000000000000000000000000009e400000000000000000000000000000000000000000000000000000000000009ee00000000000000000000000000000000000000000000000000000000000009f80000000000000000000000000000000000000000000000000000000000000a020000000000000000000000000000000000000000000000000000000000000a0c0000000000000000000000000000000000000000000000000000000000000a160000000000000000000000000000000000000000000000000000000000000a200000000000000000000000000000000000000000000000000000000000000a2a0000000000000000000000000000000000000000000000000000000000000a340000000000000000000000000000000000000000000000000000000000000a3e0000000000000000000000000000000000000000000000000000000000000a480000000000000000000000000000000000000000000000000000000000000a520000000000000000000000000000000000000000000000000000000000000a5c0000000000000000000000000000000000000000000000000000000000000a660000000000000000000000000000000000000000000000000000000000000a700000000000000000000000000000000000000000000000000000000000000a7a0000000000000000000000000000000000000000000000000000000000000a840000000000000000000000000000000000000000000000000000000000000a8e0000000000000000000000000000000000000000000000000000000000000a980000000000000000000000000000000000000000000000000000000000000aa20000000000000000000000000000000000000000000000000000000000000aac0000000000000000000000000000000000000000000000000000000000000ab60000000000000000000000000000000000000000000000000000000000000ac00000000000000000000000000000000000000000000000000000000000000aca0000000000000000000000000000000000000000000000000000000000000ad40000000000000000000000000000000000000000000000000000000000000ade0000000000000000000000000000000000000000000000000000000000000ae80000000000000000000000000000000000000000000000000000000000000af20000000000000000000000000000000000000000000000000000000000000afc0000000000000000000000000000000000000000000000000000000000000b060000000000000000000000000000000000000000000000000000000000000b100000000000000000000000000000000000000000000000000000000000000b1a0000000000000000000000000000000000000000000000000000000000000b240000000000000000000000000000000000000000000000000000000000000b2e0000000000000000000000000000000000000000000000000000000000000b380000000000000000000000000000000000000000000000000000000000000b420000000000000000000000000000000000000000000000000000000000000b4c0000000000000000000000000000000000000000000000000000000000000b560000000000000000000000000000000000000000000000000000000000000b600000000000000000000000000000000000000000000000000000000000000b6a0000000000000000000000000000000000000000000000000000000000000b740000000000000000000000000000000000000000000000000000000000000b7e0000000000000000000000000000000000000000000000000000000000000b880000000000000000000000000000000000000000000000000000000000000b920000000000000000000000000000000000000000000000000000000000000b9c0000000000000000000000000000000000000000000000000000000000000ba60000000000000000000000000000000000000000000000000000000000000bb00000000000000000000000000000000000000000000000000000000000000bba0000000000000000000000000000000000000000000000000000000000000bc40000000000000000000000000000000000000000000000000000000000000bce0000000000000000000000000000000000000000000000000000000000000bd80000000000000000000000000000000000000000000000000000000000000be20000000000000000000000000000000000000000000000000000000000000bec0000000000000000000000000000000000000000000000000000000000000bf60000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c0a0000000000000000000000000000000000000000000000000000000000000c140000000000000000000000000000000000000000000000000000000000000c1e0000000000000000000000000000000000000000000000000000000000000c280000000000000000000000000000000000000000000000000000000000000c320000000000000000000000000000000000000000000000000000000000000c3c0000000000000000000000000000000000000000000000000000000000000c460000000000000000000000000000000000000000000000000000000000000c500000000000000000000000000000000000000000000000000000000000000c5a0000000000000000000000000000000000000000000000000000000000000c640000000000000000000000000000000000000000000000000000000000000c6e0000000000000000000000000000000000000000000000000000000000000c780000000000000000000000000000000000000000000000000000000000000c820000000000000000000000000000000000000000000000000000000000000c8c0000000000000000000000000000000000000000000000000000000000000c960000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000caa0000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000017a3831b39cc557296d0c322f9c2d42c0b3a8f3f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e2c6a4a3a83399775ba104f16f94d2eae905d40900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000002781ae2716980c677ccc16c19a01ee8fdfacb51900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000bd6f5bdc401ab1ca811e40755f4a2ddad75ce2cc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000020ec02894d748c59c01b6bf08fe283d7bb75a5d200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000027747771ce20e60d24344e2a62a1377960cced000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008af4277c5e84158494e2ee4cdef463f87abdae4c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009ddfa8c806acedae4836e5497f4eb2e69efc1b5200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000025d5c9dbc1e12163b973261a08739927e4f72ba800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005f1f32fc64c1fd7c01d7b2d585638525e5c71bcc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d84e11bee5d555ccd905817cb8cbbd5b6e6c4f0d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000cac546561f1a780f7964fc5704f05496f661e36f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000439966c8314bbaa4b0441c1a6063d9321c94b1b200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005efc49268677c71694366cb500cf822da274052900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000098de69fc87790bf9679e5b781a03e6821f3d2f7500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000012ef2cd4231d5cf655a6cdd4ac1524ffaa439c1700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000004eb172821b5bc013269c4f6f6204f092d44197ec00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e4957d0691f3aaeb414c693c1e8acde0bf4a22c300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000089e2aebc454556f60f2b6facd1746bcb58f0b4f300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e23da0be88c9b56c815c0525e5c1c687a99a8def00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c638b10eb5d754bd26bb8ddaca71c7e52d1db93c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000275381048c9d6b9cde3375815466f9ae14736a8600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000099ec3fc3ad815d56cc670fa1ab17c12261da8afe00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f3152f7f73b3cc394708e6c465c4bc8598cc44f500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000001efd269b5c99b2b64344f1785a47e25521bff1400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000000dbe6dfc86866b80c930e70111de8cf4382b82400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f5ee0f5366413b53bf0b3e3f4907b5f798cb260100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000007fcf4974da52fd6941a21e47fd7466fe3545ff6600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e95c0af734bf5d659d361022656d12fa1afc391b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a0cf2a077f1337c21c447967d96f275aa4a35ccb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ba90930afce3a234dc1e67119eed5e322039b28300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f0d338bb31dd4669c9466d98b74c357bd2037f0300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000faa795fece9f8c564e122f1ee216c24faba2373b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000062b693ef00712013ae5e29c2e560b9064b2999e500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e78d15ea83675cfb6c087ebbf8fe44e200cacc3100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000985116f8c174fe13325d36685424d1796cc11f5100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006fcf9d80e2b597f4b3fa764b5626f573a9fc93d300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000817887f7537ca8ae5409cb68c23242ee66a7155700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000060523cd3f5cf0061c6f042545371fa6ff8cd397b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000701a603f90d8d138b13d9b4ed3c4c9641e7f360600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ab725fde81c4f328466e9b7873ef85ba85aee2f200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e4a4ce1517101324bc27bcc803f84af6afe3509b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000257b5a6b4e777b14b00c31f5e3874a5fa1c4145b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003a460471ac951110ceeb7519583d0f7d4b2261b500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d1bd938d5d25ad815a7e869b4d55e20ab869792500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e988e368b1b129958d3ebcd6b4bcfbae0b94345300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006802b4028d41ca367137dc50ebd3f5eeedc8be5500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000cd64cea2447ef4d540e818aa38e2f9efa38eed8a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f14763edc67fc8d8846f2c6c485efa5e806692e000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e5f6dbc39334f3e79c149efb8c8c9c8dec474af100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ffea5a2cfaf1aafbb87a1fe4eed5413da45c30a000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f5a8e355621e487c1e2f2d55f0070a084427661f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e04ae3fda841868a9d9210db3a2f0ebd931aa0a800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006afd9b4f9db4a9b7dfb7e3a51ab95ae04f7e059100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000002948dc62cc75c04aec267e8c6a777dce58c58a300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001c190aea1409ac9036ed45e829de2018002ac3d700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000203852c828085dfa7f9cedc640a9e2d49624b5ff00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000068e2f35c9a73f845843922637de4944c4cb4e45900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000bc03357a564ecbf4a422926561e71ca4eef6dcc200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000007d616916d228d1663d1e546e686a0c63bda95b0900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f0b22f7e45a223a106c35eda11bd055a70a234dd00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000dac12b6ddbf055ee542f0ed460a32d1e9f361ca400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000066633cc6b84cd127a0bb84864c1a4ea0172469a600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000319f20df92df7fac58c3a245028dd0ad4aec6c5f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000022a32ea6f463636d2b43eb141c65c03ca03fd03000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000055871c767d82d7e19053a60a9ae601ed21046f2300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000daf35d6ae75f3c075aaba5e333e597660062dd7400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000007a601520558b1ca1d51dc253cb061268c5aa0d9700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000b97b5f370548bc8aba84f8635f034880a439f41700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ddf86597aff5c826643bced8ef0b84b10a2847ab00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000dbb9d557191501fd2cadf5a9fd80845f162d20dd00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000fc381eac20ce0b0fe3308d56b4b6108ed759e20600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000024055d456255f02e5b6287efe2d4111900e69d3900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000061477eaa5e33400acc353390ca001be0eb706eb400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a72511883e1d69b63ec7c744dca756a7a698d0ae00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000089cb5f3c9a7831b2b22f73bdf15b23b3e40364500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c10898eda672fdfc4ac0228bb1da9b2bf54c768f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009302861905cc81e8353b1fdf5deeaa9f528f2e7400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f5fe364d18f4a5a53badce9a046ba74cfc97f6fb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000170c3d36b7b6fa957c8b454c416f66c4085971c700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f5da92f931fa3bca1bd6a2ffc7fd843549212f5d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000057c5983009ef69e814c53c4a7c85d7b33395a3dc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008dadff9eee13ccbcc35bb22e99416427d63ef8c900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000795f50722cf5ad82f78dda8dc8f7b235332977c300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f562f49bf62724b1888391df40ccd34cadf48d2900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a9d89a5caf6480496acc8f4096fe254f24329ef000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f7b10d603907658f690da534e9b7dbc4dab3e2d600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000028a8ba35597696a27c6b7b433c178a4358f9cec800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000004dd05e12d0244575c77c31c24f0e273610c085d900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000258c19d5e104d19e1f68c9ee22ad28b4c1a36fee00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000002a8d763a923d546e0a73c954a08be37978e380cc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009b2abdad222dac308a65378b4aa578b81eeaf13a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000094a5b840f6898e5178649a2b117b3ce3bb7aa87300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000308b1583d8ee4faf4907f9e347f21efcff7e2e7a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f8a5552f5af4d325aba476c190a04e633d7e23f400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000099ec8dc3831f67359a18420449fb028d5dcaa60f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000453970503c56c4086b9ddcf13d7992bad698ebdf00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a93c50f5b351d5c961fc7b147a01f8068b27271200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000f963886d6801c2fbe644e54c8fa405e1737f2ea00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000000fdbb477d1cd363c333eac93fe7eb0397acd47000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000054c3a6d1db1c37264411f7944f354ea582db6d8000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009bc4fff3d6c07950604110d7fb16741a768ed92a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000022cab81e0fee2bad5b015dbbeb6a374a1b8738de00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000102a84cbf1575c7f202707c59fa6db279e60917600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a56e389a9ee4fe1d00d0fa2c90b06425e6952d7100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005ae899713d0a696f85b43bd90473b5268f0c1b3000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000cc2884f4c3b509c5a92cca8ea525c4734e3037dc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ae11c4bf0fbf44c77bf020d64b45f75079737d9300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000b9d0bfd36730219d7ade67897fc63b2535ebf3d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000cbf7d1c2012629e4689f6c2ca10c4e3a7ce1a75c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000151eaaa48bbd08b7cc37b52216cf54f54c41b24b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000061d21716c9af33d522a98ec82befe3588f6a76ff00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a03d1648be58e6957c81c1c201236e189b6ee6af00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a709f9904a4e3cf50816609834175446c224657700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000075c32299da1395c5ba98c6e213f0deb1320a33cb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000059af3fe14cb38e6ff055599de90988411e340a6500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009841fde9a964bf7aa61805868c27be53e29f515f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000007494efb9fc623b74b31714192826c70eba7423f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000034ec9c1d89ce8afa701d079fd908fca95f49667a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a10cc020610ddfe1e544910943be93beb3761f6100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000044927a09e9e0f905419c319593bafbd94d96373e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000044f887a4ebd0c5fb3fb1c3d9f18148ed5f8c4e9000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000009a1a849974d021a0f74366e5020884ff73e3abb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008f022ff0d225a0f8c7343d4050f1163ba202951000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d952fb344ddacc0c0e8c23cc686c10d5dda11a9700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005b2d192182cc6e39b047880995b67e179b89f63e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000bff18ab4db2f6ec31d2fc807bc5e0832b3335e5400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000082e9b5b3f64b424d00e554fd1ccd24d7e62b22db00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000730ca23bcd88802da1e19766db0a98e005d8fda100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f18adb9a57c5661e5f13a84f2913a7656fb40ad700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c54a79174cb43729e65a95e41028c9bac7ab459200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000656f305e8ab934afcf7fa871b52b84c06862eb8400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000419614fbf315cb564c9b6747a84ec21462adb5bf00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000da5b2cd0d0bb26e79fb3210233ddabdb7de131c900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ee6cc14fe6b97e2537d281fb8cfbc3dde73da93900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000337c9d8848e664c79983e4b8870dfa26d4c26b4000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000b0c4cc1aa998df91d2c27ce06641261707a8c9c300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000b93f75bd435a5f47c789513c6b951cd79c5dd95100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e86b827c00848c6ac7afc02ae5f83ef43eac9abd00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000445ba6f9f553872fa9cdc14f5c0639365b39c14000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e594dcab544b5f1c2134c1aaa12ba191e8208c7100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e3b6a53d9bc1efc5ad1d94dc4e92023df914c41500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008f7d7e9adfa6da73273391c57bab0ef22651c7bb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c3b89178f60d3ca00845e57e9e4cc4333138d63700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000feef2c71603343c36de34a6f6934dc12f427e14a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000be9be55a8fc079c35c91fdfaa0a2d1cc13570d9000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006ab8f9d1513d22996f4657c152f577b71004db3a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d7f8868338f87f3b0bb96d6e1635afcd5cb5eb5b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008aa4b092f444767f483e573abae6c0513d3dc83900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000004177a5c0e2369f6830a4c3825afc8fb3dd47790d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009ff84b91998df96a6587db8dde8d4e47518107d600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a8956b519bf5efd9107d733ec8797af9d8b44f4200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000cecd76f81769e8f3b1029b5ab9090280a62978f500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000804b028f2257e2bda0247f76db1423a88137bfee00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000092f93fadcacb86f6bd163a87a0944341b838cc6200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000cf359a40c302cc3a793d91acb1fd735382692f400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008928b26de9ecc59cacdba095c6ed6237f48ddbd200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003b486d3b5dedd0f87c6a58a2217cdc305cd43a1b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000004ada1b9d9fe28abd9585f58cfeed2169a39e1c6b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001c0e68b94a8c8bd16812c8e020ff92d2ae502ed700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005469c5cd1ad9a984c034260fab01cc56581d3dc400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000064f6df320ed6799e9bc392afaea5614294e5391900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000092f4ea1693328fa9546c83508cf049d26fa6182c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000010b989914a478ed7de2d2c4cc4e835bbd3de229b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008cf43ae56733529d8650790187b37410fe44322e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000064ca70142d16dcbe05f56700ddad7935be63e11400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ee5cda91e4ddcde24d44dafd74bed4ba068f8ac200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ecf494b4ea6fc8bd0209fc942b28a899969445a600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d5b88cc148a41cc431999aba56df961336bbc1d800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a7d7ac8fe7e8693b5599c69cc7d4f6226677845b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000002bfe6398fee545f1f422db3f65ec86e09385b90000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c7c955514a80ae7682199af0d499c61ed9aaeb4400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000b2c980a75f76c664b00b18647bbad08e3df0460d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000aec41d6c79ee13f26f4982106463a0bbd6cc31dc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000004e483558e4e59416eea246f643d78470a7d6d5a900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003dfcca4d1c80a21626dc0140c7d7fa170c23ce4b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003a121c46a6c3aaf501ca2b7397f1bfe36892486300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e1a1d5c32888c5b140917b296e82cf3a448f37a600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000a8ef379a729e9b009e5f09a7364c7ac6768e63c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000075d5ced39b418d5e25f4a05db87fcc8bceed7e6600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c79c88386c95130bf7c20a184cb8281ed639fab400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000066697dabffe51a73e506f463b27e388512ed6ecd00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009fe9e5f532669509030e4fae68556b855efa517900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000035001a8bdb3a224d05f086094c12fd4c9009986d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000aea6e95efcf6770d04bc44d398c502b80f51015f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008f9be4310f9abb0e5843cc6363908c9b01dfeb3f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008d61eff2f1eed647a5948e630334975dab07ee6f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003b298e0fdef4ebb8bf9e629005f8b3f2eeba1e3800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c81f250f6d6bdab0432ef4c56ea170aaa4f2e07e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003825a396dedd74a2714a7603f039ed109dfc77e400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000019a88cfc0b097e6f9f2bfdd0cc18765e169ca05c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000b0ce77b18b8663baa0d6be63b7c5ee0bdf93300100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008fade13740e742a15436713e44fdf213769622a600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000af4a5d3f972195dcf3d1a3e703d213912fe49c2800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e7b6be706a2042e0cd56eabc0d160d2496a0ec2c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000072328e7393e71b51a23d0cc6b8e939bfd5c2c81700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000628c084f4b72c1297e96c7005f309ae89f982a600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008fc04dec888eacf5ff6e480a670d67f6364c720800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000079fbadc28c46663a121e9fee2a863b74277094d400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005a384227b65fa093dec03ec34e111db80a04061500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a53c56ee83b2f0cf3d00b360ff79ead4d7a3a66300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d20cc7de93c9f8d1877294bf62f812edce933be000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c7ca46dcc1ddaad78081b12f64bd61d9f0f2f22d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001c5a7e2250cc51ebec2b8fefe2ef705c01a483ce00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000024c0be8e1031140e5ab4e76bf0f9feadc2efdd6b00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005bcaf05e99a7fd678f3f9ecb32983f2bfbba582d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000fd119bb66648177cfe7840bf44dc05c667a1aca400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008ba7e4d44f4b1dcee13b8d2343329ce0351bf3bc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000034e3138a54d5fa6a23f64418fda2e34d8ecd113500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008ba922eb891a734f17b14e7ff8800e6626912e5d00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000b83f617ad1b093e071248930366ca447aa8197100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000524c91701fcc461c90b3120769b5f295f706a1600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000086d3af9ff0e89cc2382d8b171aff5ebce5ef435100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c8465c855ae253ecf06d3602056d480f2ce702a800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f309921083cdaeb3758bc8c24a4156edfa64ca2f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d9f0efd7af7d729969c1e9dfd6d4de73a25fe1ae00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006299dbe5be8ed5d5df9ff5a21b485c7da0cf347600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000253be37968e4013d7d4f3656941c57ee2f4b4cb400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009546d583e4116e7a991b3676233f9d35625e005e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005ee1e4413f0ad466e20b9cd4c107ef10a3ea78f000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c98e00e62321b73be34b845eba75e5905058835500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000b6bf854cb7c816518a96317893e43ab219bd36500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001e4192486061ab91d00fcb17bc8c31eb24feb23000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000de670a7b89b532d788bcd1cb27513a8e1b01679300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000be1e110f4a2fd54622cd516e86b29f619ad994bf00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000059480d300ad462d72988e47b42cfcef6db6e225100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008debc343a259253aa43be5e47eb58a9e668e3ce200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000064ed2d64912e45d004a64b0f9f3d759533c395e800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ba21325681ffd7d623993a2a564f6390654e294800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000da294570098d1fe503beac1ebb63980bfc48f4d200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000aeda7e9cb7c80f828a4fa1e3c23e679ec3b4b57a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f1b3a985e3ac73dc81f8fcd419c4dda247d2292c00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009a8ab692a6d73242c74a727ac7587aeda778b13100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000b81747f504dfc906a215e301d8b8ad82e44cbd200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000067de6d9bd31f8baf7147a953fc1f42b71b0c9c6e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ae5b56ca47e84b6c749e0454680c4161b9da979000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000e307c2d3236be4706e5d7601ee39f16d796d819500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000f8a7d7b73eae24981c4d4995cf84409daddd530600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000059e9f8f07f9d339c48c8521af341a1a2337a9e2200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ac77bf4d5df51f5d5298216d09a63fe3b60c33cb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c0366d8cabc3ec311c0e5878f72bb61b25f67c4600000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003f0c46fd387de612ea24cb0c21d06e430da02fd100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003929d8e8e6b983e36e612d2d39eb0ab49b496cf900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000c2ec205cf0f50995dd84f0655b54848844bda7400000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000a315652901f1e88581dc626e76e1f79eef34d67800000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000054c1530628a67c3ef537f01712b9bb517acdaec200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000956f1ce3ff2ea59a8b41df83ce9f85ed59d73f9200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000003cd49c9ad5766fb4a19a42db15e516480dc5867300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000059e5fe3a536d2fa69614e0a0692f5c6e3d6dcbfc00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009a8def1275e081c444d97710bba164c11a578c5a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000005c5a4ae893c4232a050b01a84e193e107dd80ca200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000c68bba423525576c7684e7ea25e7d5f079b1361e00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001c8915f70850873a03df2d6cdba71b226bcdfeb300000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000003d813abfba88e76407d09ef92e05f164ac1a98500000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006c6b7bd85ef4dd5ce57700bf2fe7dc9c21ac04fb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ba2010e19fa7ca59982a70ff957e1f14c03e2aeb00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000009325564ade7683706107685cf1993678b116326100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000a4815677bb775036fab8d2ca43357a8652f4ea700000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000d02fccd51c8ab2ca3a1ce3079a209f395d72c23000000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000549bf684c22dc0214c2dbdf4dc3b77102b46d23200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ee7f85b62642b9e2c5687790b5b4df9fc7f7442f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000bba2379f5cc9a2f248c5cf18ad72379ae2478f4200000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001af1f839bc24cdcb12c2028ba7c0d51b30d10d1100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000008a16f98775db38a7d113f57a563f9c752f97262f00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000088798416deb63ce03417cad6af8257358a264ac100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000001c012b03f1c2dea274d2eeeb566b0eeabfe3af1a00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000000c404f55595ab844d519a084ff1b8cb36aaad1d100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000ce6cd4ef7907151089ec7ac49ab3ded3a9e0d4fa00000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a082310000000000000000000000006b0883c28a7558144350cfe6c522dad1e567cc9900000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a08231000000000000000000000000101addc07d63a6b35b199153252168ab9889dca100000000000000000000000000000000000000000000000000000000000000000000000000000000385eeac5cb85a38a9a07a70c73e0a3271cfb54a70000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002470a0823100000000000000000000000092f3766b5213569939be41a2185396ed5f35980600000000000000000000000000000000000000000000000000000000"},"0xaff47e"],"id":47,"jsonrpc":"2.0"}'
commitState
executes onStateReceive
on target address. Since onStateReceive
has custom code, including failure, having and executing finalizeState
is required after executing commitState
.
bor/v1.10.3-stable-d33ce83c/linux-amd64/go1.15.5
block number shiould be monotonically increasing
that is, repeated calls should either return the same value, or higher value (by 1)
MOST of the time, we get the expected behaviour.
SOME times, we get smaller values (-1, -3) and sometimes its over 8000 blocks INTO THE PAST
The script below is expected to return mostly "0" (same block number as last iteration) or "1" (new block number is 1 above last)
But occasionally it returns huge NEGATIVE number (e.g. -10506) - which means there is probably one node which is stuck few hours behind all others.
const Web3=require('web3')
async function run() {
web3 = new Web3('rpc-mainnet.maticvigil.com')
counter=0;
let last;
while (true) {
counter++;
n = await web3.eth.getBlockNumber()
console.log(counter, n-last)
last=n
}
}
run()
I am getting "invalid merkle root" error periodically on Matic Production chain (chain id 137) . It syncs, then it gets this error after a few minutes. I have downloaded Bor from master repository today to ensure I am using updated code but the error doesn't go away despite using latest sources:
Bor
Version: 1.10.3-stable
Architecture: amd64
Go Version: go1.16.4
Operating System: linux
GOPATH=
GOROOT=/usr/local/go
Error: invalid merkle root (remote: 0b947bfaaed605cad3027c331ad662eabf8a3e5cb1b705815f9ecf6fd26847c3 local: 9ed0666e5d127f14503b8c9c1bce224d0d16a9c4ff76edb6db41f5d12a4b6401)
##############################
INFO [07-16|16:44:02.480] Skip duplicated bad block number=16,929,536 hash=62ef13..5b1675
ERROR[07-16|16:44:02.484]
########## BAD BLOCK #########
Chain config: {ChainID: 137 Homestead: 0 DAO: DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, Berlin: 14750000, YOLO v3: , Engine: bor}
.................
Number: 16929536
Hash: 0x62ef135cea59b06d585d1a4dd1dbc71f9ea159b7943cb056f8640b20985b1675
WARN [07-16|16:42:14.083] Synchronisation failed, dropping peer peer=8588fa01ebc737bc9803f849027cba642ce031cd09276d117c8c5858bb510343 err="retrieved hash chain is invalid: invalid merkle root (remote: 0b947bfaaed605cad3027c331ad662eabf8a3e5cb1b705815f9ecf6fd26847c3 local: 9ed0666e5d127f14503b8c9c1bce224d0d16a9c4ff76edb6db41f5d12a4b6401)"
ERROR[07-16|16:42:14.083] Ethereum peer removal failed peer=8588fa01 err="peer not registered"
Bor version: 1.9.0-stable
OS & Version: Ubuntu 18.04 LTS
Bor should sign and achieve checkpoints.
0% checkpoints.
Change p2p port to 30703 and rpcport to 8555 in bor.service
Either one or the other or both being reset back to default clears the issue.
Bor implement newCorsHandler function to tell browsers to give a web application running at one origin, access to selected resources from a different origin.
but a mis-configuration in newCorsHandler make Bor allows any domain on the web to access local node's resources.
in summary, adversary could make a CSRF (Cross-site request forgery) attack to induce Bor users send HTTP-requests to bor Server side without their knowledge. which make a severity potential security risk
Geth version: eth65
OS & Version: MacOS catalina 10.15.6
Commit hash : a1b7e2f
Bor should deny any website to access local node's resources
Bor allows any domain on the web to access local node's resources actually.
code for CORS configuration is location to bor/node/rpcstack.go,L40-L52:
func newCorsHandler(srv http.Handler, allowedOrigins []string) http.Handler {
// disable CORS support if user has not specified a custom CORS configuration
if len(allowedOrigins) == 0 {
return srv
}
c := cors.New(cors.Options{
AllowedOrigins: allowedOrigins,
AllowedMethods: []string{http.MethodPost, http.MethodGet},
MaxAge: 600,
AllowedHeaders: []string{"*"},
})
return c.Handler(srv)
}
cors.New generate a configuration with allowCredentials == true
and the AllowedOrigins was set into "*" in bor/cmd/puppeth/module_explorer.go,L38-L39:
echo $'geth --networkid {{.NetworkID}} --syncmode "full" --gcmode "archive" --port {{.EthPort}} --bootnodes {{.Bootnodes}} --ethstats \'{{.Ethstats}}\' --cache=512 --http --http.api "net,web3,eth,shh,debug" --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" --exitwhensynced' >> explorer.sh && \
echo $'exec geth --networkid {{.NetworkID}} --syncmode "full" --gcmode "archive" --port {{.EthPort}} --bootnodes {{.Bootnodes}} --ethstats \'{{.Ethstats}}\' --cache=512 --http --http.api "net,web3,eth,shh,debug" --http.corsdomain "*" --http.vhosts "*" --ws --ws.origins "*" &' >> explorer.sh && \
that mean any website on public network has access to call the interface of puppeth module of the local Bor node.
its a representative CORS mis-configuration vulnerability.
maybe we could modify http.corsdomain params into a few specified site in bor/cmd/puppeth/module_explorer.go,L38-L39
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:40:57.384] Served debug_traceTransaction conn=172.31.8.211:48833 reqid=0 t=5.513940233s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:40:58.835] Imported new chain segment blocks=42 txs=13 mgas=0.495 elapsed=2m52.845s mgasps=0.003 number=9835648 hash="97a9b6…3771ac" age=1h6m15s dirty=0.00B
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: ERROR[01-27|13:40:59.071] RPC method debug_traceTransaction crashed: runtime error: invalid memory address or nil pointer dereference
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: goroutine 34919971 [running]:
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*callback).call.func1(0xc03aafdbc0, 0x16, 0xc034bfbd28)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/service.go:200 +0xba
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: panic(0x1261060, 0x1f4c670)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: runtime/panic.go:969 +0x1b9
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers.(*dbWrapper).pushObject.func3(0xc0385e4e58, 0x7fed867145b0)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers/tracer.go:213 +0x100
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/go-duktape%2ev3.goFunctionCall(0x7fe7ac631e40, 0x10)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/[email protected]/duktape.go:157 +0xb8
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/go-duktape%2ev3._cgoexpwrap_f81c1a3ad1a4_goFunctionCall(0x7fe7ac631e40, 0x10f42d9)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: _cgo_gotypes.go:3633 +0x2b
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/go-duktape%2ev3._Cfunc_duk_pcall_prop(0x7fe7ac631e40, 0x200000000, 0x0)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: _cgo_gotypes.go:2341 +0x4d
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/go-duktape%2ev3.(*Context).PcallProp.func1(0xc037dbe2e0, 0x0, 0x2, 0x7fec7db2c550)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/[email protected]/api.go:786 +0x71
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/go-duktape%2ev3.(*Context).PcallProp(0xc037dbe2e0, 0x0, 0x2, 0x2)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: gopkg.in/olebedev/[email protected]/api.go:786 +0x3f
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers.(*Tracer).call(0xc04363f1e0, 0x13f39f6, 0x6, 0xc034bfa428, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, ...)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers/tracer.go:513 +0x110
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers.(*Tracer).GetResult(0xc04363f1e0, 0x1644dc0, 0xc028ddea20, 0xc038707d28, 0xc014542de0, 0x0)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/tracers/tracer.go:641 +0x458
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth.(*PrivateDebugAPI).traceTx(0xc00068ebe0, 0x1638c00, 0xc01385aa00, 0x1644dc0, 0xc028ddea20, 0x14d6d20, 0x14d6d30, 0xc020ba8180, 0x518e5131d33ca8f, 0x77ea6537e4dd9191, ...)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/api_tracer.go:852 +0x9c5
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth.(*PrivateDebugAPI).TraceTransaction(0xc00068ebe0, 0x1638c00, 0xc01385aa00, 0x552f001d9af1d190, 0xebceeb06a3fc0d7d, 0x4bfc024b871daedf, 0xe762b97e4c9f7b44, 0xc030d18f20, 0x0, 0x0, ...)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/eth/api_tracer.go:756 +0x290
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: reflect.Value.call(0xc0001e3d00, 0xc0026e4ed8, 0x13, 0x13f0b84, 0x4, 0xc03838e0c0, 0x4, 0x4, 0xc03838e0f0, 0xc0424cb620, ...)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: reflect/value.go:476 +0x8c7
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: reflect.Value.Call(0xc0001e3d00, 0xc0026e4ed8, 0x13, 0xc03838e0c0, 0x4, 0x4, 0x16, 0x10, 0x0)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: reflect/value.go:337 +0xb9
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*callback).call(0xc00292ede0, 0x1638c00, 0xc01385aa00, 0xc03aafdbc0, 0x16, 0xc0424cb620, 0x2, 0x2, 0x0, 0x0, ...)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/service.go:206 +0x2c5
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*handler).runMethod(0xc01a988c60, 0x1638c00, 0xc01385aa00, 0xc012e48d90, 0xc00292ede0, 0xc0424cb620, 0x2, 0x2, 0x2)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:389 +0x8a
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*handler).handleCall(0xc01a988c60, 0xc0424cb590, 0xc012e48d90, 0x8)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:337 +0x294
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*handler).handleCallMsg(0xc01a988c60, 0xc0424cb590, 0xc012e48d90, 0xc03df53138)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:298 +0x1be
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*handler).handleBatch.func2(0xc0424cb590)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:119 +0xf6
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc.func1(0xc01a988c60, 0xc01385a980)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:226 +0xd2
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: created by github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: github.com/ethereum/go-ethereum/rpc/handler.go:222 +0x66
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]:
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:40:59.120] Served debug_traceTransaction conn=172.31.8.211:48833 reqid=0 t=199.673267ms err="method handler crashed"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:40:59.154] Fetching state updates from Heimdall fromID=6359 to=2021-01-27T12:34:43Z
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:40:59.169] Fetching state sync events queryParams="from-id=6359&to-time=1611750883&limit=50"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:00.810] Served debug_traceTransaction conn=172.31.8.211:53543 reqid=0 t=5.206924807s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:00.884] Served debug_traceTransaction conn=172.31.8.211:53403 reqid=1 t=5.146862845s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:00.892] Looking for peers peercount=2 tried=123 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:02.151] Fetching state updates from Heimdall fromID=6359 to=2021-01-27T12:39:01Z
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:02.151] Fetching state sync events queryParams="from-id=6359&to-time=1611751141&limit=50"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: ERROR[01-27|13:41:03.260]
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: ########## BAD BLOCK #########
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: Chain config: {ChainID: 80001 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 2722000, Muir Glacier: 2722000, YOLO v2: <nil>, Engine: bor}
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: Number: 9835776
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: Hash: 0xdf5a7ca45aa43c07699a30d15fc9ae1b84125536b81992969ee8b655f1437917
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: Error: invalid merkle root (remote: c251958af5b1f485911cf5f82cd5aedbb1505292d3a248641a415f15cac3411a local: b63f23e4e7b7bcac4b930af3cf606d61879043249fafa8072d986d903d2cf2b1)
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: ##############################
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]:
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:03.337] Synchronisation failed, retrying err="no peers to keep download active"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:03.423] Fetching state updates from Heimdall fromID=6359 to=2021-01-27T12:39:01Z
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:03.429] Fetching state sync events queryParams="from-id=6359&to-time=1611751141&limit=50"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:04.492] Fetching state updates from Heimdall fromID=6359 to=2021-01-27T12:39:01Z
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:04.530] Fetching state sync events queryParams="from-id=6359&to-time=1611751141&limit=50"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:05.703] Served debug_traceTransaction conn=172.31.8.211:48833 reqid=0 t=5.97619187s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:06.463] Served debug_traceTransaction conn=172.31.8.211:51311 reqid=0 t=5.425221377s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:06.477] Served debug_traceTransaction conn=172.31.8.211:53403 reqid=0 t=5.438786379s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:41:07.287] Served debug_traceTransaction conn=172.31.8.211:59021 reqid=0 t=5.098661337s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:41:17.160] Looking for peers peercount=2 tried=59 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:42:36.930] Looking for peers peercount=2 tried=0 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:42:43.845] Synchronisation failed, retrying err="peer is unknown or unhealthy"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:42:47.899] Looking for peers peercount=0 tried=19 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:44:16.005] Served debug_traceTransaction conn=172.31.8.211:51311 reqid=0 t=3m8.842379552s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:44:16.019] Served debug_traceTransaction conn=172.31.8.211:59021 reqid=1 t=3m8.279656594s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:44:17.155] Served debug_traceTransaction conn=172.31.8.211:53403 reqid=0 t=3m9.266241947s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:44:18.801] Looking for peers peercount=1 tried=0 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:45:28.953] Looking for peers peercount=3 tried=18 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:45:29.093] Deep froze chain segment blocks=128 elapsed=2m46.011s number=9745775 hash="6dcc39…dd40bf"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:45:52.677] Looking for peers peercount=1 tried=41 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:45:52.850] Served debug_traceTransaction conn=172.31.8.211:48833 reqid=1 t=4m38.640596952s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:45:52.850] Served debug_traceTransaction conn=172.31.8.211:53403 reqid=1 t=1m35.12278696s err="execution timeout"
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:03.465] Looking for peers peercount=0 tried=0 static=0
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:08.860] Got interrupt, shutting down...
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: WARN [01-27|13:46:09.047] Already shutting down, interrupt more to panic. times=9
Jan 27 13:46:09 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:09.537] HTTP server stopped endpoint=[::]:8545
Jan 27 13:46:08 ip-172-31-8-74 systemd[1]: Stopping bor...
Jan 27 13:46:10 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:10.037] HTTP server stopped endpoint=[::]:8546
Jan 27 13:46:10 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:10.040] IPC endpoint closed url=/home/ubuntu/.bor/data/bor.ipc
Jan 27 13:46:10 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:10.043] Ethereum protocol stopped
Jan 27 13:46:10 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:10.045] Transaction pool stopped
Jan 27 13:46:10 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:10.049] Writing clean trie cache to disk path=/home/ubuntu/.bor/data/bor/triecache threads=8
Jan 27 13:46:13 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:13.636] Looking for peers peercount=0 tried=107 static=0
Jan 27 13:46:15 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:15.609] Persisted the clean trie cache path=/home/ubuntu/.bor/data/bor/triecache elapsed=5.560s
Jan 27 13:46:15 ip-172-31-8-74 bash[2251]: INFO [01-27|13:46:15.615] Blockchain stopped
Jan 27 13:46:19 ip-172-31-8-74 systemd[1]: Stopped bor.
-- Reboot --
Jan 27 13:46:40 ip-172-31-8-74 systemd[1]: Starting bor...
Jan 27 13:46:40 ip-172-31-8-74 systemd[1]: Started bor.
Problem: The 'archive' mode is reported as enabled, but the datadir is of the same size as of a Full node and 'missing trie node' error is shown on accessing balances of first blocks.
Geth version:
Bor
Version: 1.10.1-stable
Architecture: amd64
Go Version: go1.16.4
Operating System: linux
GOPATH=
GOROOT=/usr/local/go
OS & Version: Ubuntu 20
Command executed:
./bor --datadir /home/matic/mumbai-chain --gcmode archive --port 33001 --bootnodes enode://320553cda00dfc003f499a3ce9598029f364fbb3ed1222fdc20a94d97dcc4d8ba0cd0bfa996579dcc6d17a534741fb0a5da303a90579431259150de66b597251@54.147.31.250:30303 --networkid 80001 --bor.heimdall http://127.0.0.1:1317 --http --http.addr XX.XX.XX.XX --http.port 38546 --http.vhosts * --http.corsdomain * --http.api eth,net,web3,txpool,bor
No error when getting balance of an account using past blocks.
Seeing this error:
Error: missing trie node ffcb834d62706995e9e7bf10cc9a9e42a82fea998d59b3a5cfad8975dbfe3f87 (path )
at web3.js:6347:37(47)
at web3.js:5081:62(37)
at <eval>:1:15(5)
Test example:
INFO [06-16|02:46:53.053] Enabling recording of key preimages since archive mode is used
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',0)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',1)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',2)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',3)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',4)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',5)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',10)
0
> eth.getBalance('0x1b2E85De21C7CF4bD1787c6Ac4bd505e83b62Ba5',100)
Error: missing trie node ffcb834d62706995e9e7bf10cc9a9e42a82fea998d59b3a5cfad8975dbfe3f87 (path )
at web3.js:6347:37(47)
at web3.js:5081:62(37)
at <eval>:1:15(5)
> eth.syncing
{
currentBlock: 346688,
highestBlock: 15156663,
knownStates: 874894,
pulledStates: 841883,
startingBlock: 0
}
>
With archival node, there should be never errors of type "missing trie node"
Hello there,
we are trying to get "trace_Transactions" in the MATIC archive node. However unsuccessfully:
curl -X POST --header 'Content-type: application/json' --data '{"jsonrpc":"2.0", "method":"debug_traceTransaction", "params":["0xf71e7b06b6d19e8002c3c02b42057206a08f21bc2a8e983da478684779a6453a", {}], "id":1}' 127.0.0.1:8545
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"genesis is not traceable"}}
node flags:
--port 30303 \ --http --http.addr '0.0.0.0' \ --http.vhosts '*' \ --http.corsdomain '*' \ --http.port 8545 \ --ipcpath $DATA_DIR/bor.ipc \ --http.api 'personal,eth,net,web3,debug,txpool,bor' \ --syncmode 'full' \ --networkid '137' \ --miner.gaslimit '20000000' \ --miner.gastarget '20000000' \ --txpool.nolocals \ --txpool.accountslots '128' \ --txpool.globalslots '20000' \ --txpool.lifetime '0h16m0s' \ --maxpeers 200 \ --metrics \ --pprof --pprof.port 7071 --pprof.addr '0.0.0.0' --bootnodes "enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303,enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303" --gcmode archive
any ideas?
HI, team:
I have built an archived (--gcmode=archive
) node to implement trace functionality and have encountered several problems:
Do you have any plans to optimize the performance of the trace module? Or introduce a Parity version of bor?
PR #90 introduced BorReceiptLogs, which gives logs from state-sync as well. But, that introduced a delay in response time for the log filter query.
What's a good Bor seed node to use when starting a new node?
Bor version:
OS & Version: Linux
Synching block 14949120
May 29 19:14:53 bash[768]: ERROR[05-29|19:14:53.353]
May 29 19:14:53 bash[768]: ########## BAD BLOCK #########
May 29 19:14:53 bash[768]: Chain config: {ChainID: 137 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: 0 EIP155: 0 EIP158: 0 Byzantium: 0 Constantinople: 0 Petersburg: 0 Istanbul: 3395000, Muir Glacier: 3395000, Berlin: 14750000, YOLO v3: <nil>, Engine: bor}
May 29 19:14:53 bash[768]: Number: 14949120
May 29 19:14:53 bash[768]: Hash: 0x54f7207baa0eb97ec2717fe46a16e1a802e2c82f05351d4b6397cdafa2ba9a30
....
May 29 19:14:53 bash[768]: 361: cumulative: 19858206 gas: 262481 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x454a41d465c4aa2d1ca3fe2b754f68bea5fbd05c87dbb67bb2a794889367a95a logs: [0xc02aeb0c60 0xc02aeb0d10 0xc02aeb0dc0 0xc02aeb0e70] bloom: 00000000000000000000000110000000000000000000000008000400000000000000000000000400000000000000000020008000000000000000000000000080000008008000000000000008000000a01000000000000000000100100000000000000004000000000000000000008000000010000000000080000010000000000000000000800004002000000000000000000100000000000000000000004040200200000000000000000000000000000100000000000000000000000000004000000002000040000001000000000000000000000000000000100000000000001000000000000800000000000100010000000000000000800000200000100000 state:
May 29 19:14:53 bash[768]: 362: cumulative: 19948779 gas: 90573 contract: 0x0000000000000000000000000000000000000000 status: 1 tx: 0x6a575526998a1bf8e3ae805c3cc6f92a496a9eac8f238478c2749fae708bf00b logs: [0xc031cde0b0 0xc031cde160 0xc031cde210 0xc031cde2c0 0xc031cde370] bloom: 00040000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000008040000000000000000000200000000008008000000000000008000000800000000000000000000100008000200000000000000000000000000000000000000000000002000080000010000800000000000000000000000000000000000000000401000000008040000000000040220000000000000000000000000000000000000000000000000000000000004000000002000010000001000000000000000000000000000000100000000000000010040000000000000000000000000000000000000000402000000000100000 state:
May 29 19:14:53 bash[768]: Error: invalid merkle root (remote: b59e44dc74664fda7529a3abf29faeb077383cc8a914a9767b111a6de612be91 local: 074a5554a863b35e82f5ce2553d250bc8e8ad1d980eaebc7ecc2685f5aebaa9a)
May 29 19:14:53 bash[768]: ##############################
May 29 19:14:53 bash[768]:
May 29 19:14:53 bash[768]: WARN [05-29|19:14:53.364] Synchronisation failed, dropping peer peer=011055e5994da9f7fe3b7416aa11f27c395fb2664b8a2eff62bf0233b0cb4c8e err="retrieved hash chain is invalid: invalid merkle root (remote: b59e44dc74664fda7529a3abf29faeb077383cc8a914a9767b111a6de612be91 local: 074a5554a863b35e82f5ce2553d250bc8e8ad1d980eaebc7ecc2685f5aebaa9a)"
Try to synch the block.
If have tried on different machines with different configs and against different heimdall servers (including the official one). The synch always fails with this block.
Ubuntu 18.04 LTS
j@andromeda:~$ wget https://matic-public.s3.amazonaws.com/v0.1.8/matic-bor_0.1.8_amd64.deb
--2020-06-03 11:01:21-- https://matic-public.s3.amazonaws.com/v0.1.8/matic-bor_0.1.8_amd64.deb
Resolving matic-public.s3.amazonaws.com (matic-public.s3.amazonaws.com)... 52.216.145.179
Connecting to matic-public.s3.amazonaws.com (matic-public.s3.amazonaws.com)|52.216.145.179|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30151682 (29M) [binary/octet-stream]
Saving to: ‘matic-bor_0.1.8_amd64.deb.1’
matic-bor_0.1.8_amd64.deb.1 100%[====================================================================>] 28.75M 3.49MB/s in 6.2s
2020-06-03 11:01:28 (4.66 MB/s) - ‘matic-bor_0.1.8_amd64.deb.1’ saved [30151682/30151682]
j@andromeda:~$ sudo dpkg -i matic-bor_0.1.8_amd64.deb.1
(Reading database ... 135721 files and directories currently installed.)
Preparing to unpack matic-bor_0.1.8_amd64.deb.1 ...
Unpacking matic-bor (0.1.8) ...
dpkg: error processing archive matic-bor_0.1.8_amd64.deb.1 (--install):
trying to overwrite '/usr/bin/bootnode', which is also in package bootnode 1.9.14+build22127+bionic
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
matic-bor_0.1.8_amd64.deb.1
In the current package : matic-bor_1.0.0_amd64.deb the bor.service points to the wrong path for the EnvironmentFile. it points to /home/ubuntu/metadata
The service will fail to start with the error
Error: bor.service: Failed to load environment files: No such file or directory
I changed the path to /etc/bor/metadata to fix the problem.
Hello,
I did experimentations running my bor node and I found out that when I send a transaction, it is never included in the next block, but always in the block after. (Even when I send the transaction immediately once I get a "newblock" callback.)
Any reason for that ? Is there a way to make my dapp more responsive ?
Error details
Since Bor uses consensus/bor.go
consensus, it is failing while fetching the validators
INFO [03-15|23:09:37.578] Bumping default cache on mainnet provided=1024 updated=4096
INFO [03-15|23:09:37.581] Maximum peer count ETH=50 LES=0 total=50
INFO [03-15|23:09:37.607] Allocated cache and file handles database=/Users/jdkanani/matic/testnets/bor-devnet/node1/bor/chaindata cache=2.00GiB handles=5120
INFO [03-15|23:09:37.695] Opened ancient database database=/Users/jdkanani/matic/testnets/bor-devnet/node1/bor/chaindata/ancient
INFO [03-15|23:09:38.040] Loaded most recent local header number=0 hash=13b5e3…d73f00 td=1 age=10mo7h7m
INFO [03-15|23:09:38.040] Loaded most recent local full block number=0 hash=13b5e3…d73f00 td=1 age=10mo7h7m
INFO [03-15|23:09:38.040] Loaded most recent local fast block number=0 hash=13b5e3…d73f00 td=1 age=10mo7h7m
INFO [03-15|23:09:38.040] Importing blockchain file=state.json
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4705b40]
goroutine 68 [running]:
github.com/maticnetwork/bor/internal/ethapi.(*PublicBlockChainAPI).Call(0x0, 0x5028e00, 0xc0000dc600, 0x0, 0xc0001d3540, 0xc00017a0c0, 0x0, 0x0, 0xc000176400, 0x0, ...)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/internal/ethapi/api.go:815 +0x50
github.com/maticnetwork/bor/consensus/bor.(*Bor).GetCurrentValidators(0xc0000eec60, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:950 +0x4cb
github.com/maticnetwork/bor/consensus/bor.(*Bor).snapshot(0xc0000eec60, 0x502f880, 0xc04259e000, 0x0, 0x6b9ccba97fe3b513, 0x5870f002ceeed546, 0x1da4cb9ecc22c5f8, 0x3fd7582f6f6e08, 0xc01d456c30, 0x0, ...)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:469 +0x4ea
github.com/maticnetwork/bor/consensus/bor.(*Bor).verifyCascadingFields(0xc0000eec60, 0x502f880, 0xc04259e000, 0xc0001a7680, 0xc01d456c30, 0x0, 0x5, 0x0, 0x0)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:403 +0x151
github.com/maticnetwork/bor/consensus/bor.(*Bor).verifyHeader(0xc0000eec60, 0x502f880, 0xc04259e000, 0xc0001a7680, 0xc01d456c30, 0x0, 0x5, 0x0, 0x0)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:372 +0x288
github.com/maticnetwork/bor/consensus/bor.(*Bor).VerifyHeaders.func1(0xc01d456c30, 0x5, 0x5, 0xc0000eec60, 0x502f880, 0xc04259e000, 0xc000406420, 0xc000105020)
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:308 +0xa5
created by github.com/maticnetwork/bor/consensus/bor.(*Bor).VerifyHeaders
/Users/jdkanani/go/src/github.com/maticnetwork/bor/build/_workspace/src/github.com/maticnetwork/bor/consensus/bor/bor.go:306 +0xda
Reproduction steps
Export state
bor --datadir /Users/jdkanani/matic/testnets/bor-devnet/node1 export state.json
Import state in clean bor setup
bor --datadir /Users/jdkanani/matic/testnets/bor-devnet/node1 import state.json
Version
Branch: master
Step 9 seems to be wrong:
$ sudo vi /etc/bor/metadata
// eg: add the address in following format "VALIDATOR_ADDRESS=0xasdasklhemwlmasdsad3ewwew"
The quotation marks should be after the equal sign. It didn't work for me till I wrote it like this (service wouldn't start in the next step):
VALIDATOR_ADDRESS="0xasdasklhemwlmasdsad3ewwew"
bor version 0.2.6
Sync status
{"jsonrpc":"2.0","id":2,"result":{"currentBlock":"0xfd61bf","highestBlock":"0xfd9baf","knownStates":"0xdb38d6c","pulledStates":"0xdb38d6c","startingBlock":"0xfd61be"}}
Error log
Error: invalid merkle root (remote: ea18115eadd531498215b2bf538b47d85e9193644d51a401a4b57a98e12b47c7 local: 7da6f20f6f28f1eeb9ad5e9e0625ebe95dd63f99bf02550c30d438d7e7b92e46)
##############################
WARN [07-08|00:20:07.059] Synchronisation failed, dropping peer peer=c10fe9a46be34011251bc8141963c5f1568febdca6496146c9923f154365946b err="retrieved hash chain is invalid: invalid merkle root (remote: ea18115eadd531498215b2bf538b47d85e9193644d51a401a4b57a98e12b47c7 local: 7da6f20f6f28f1eeb9ad5e9e0625ebe95dd63f99bf02550c30d438d7e7b92e46)"
ERROR[07-08|00:20:07.062] Ethereum peer removal failed peer=c10fe9a4 err="peer not registered"
INFO [07-08|00:20:08.512] Looking for peers peercount=2 tried=82 static=0
I[2021-07-08|00:20:10.111] Executed block module=state height=11106 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:10.114] Committed state module=state height=11106 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
I[2021-07-08|00:20:15.116] Executed block module=state height=11107 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:15.118] Committed state module=state height=11107 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
INFO [07-08|00:20:18.543] Looking for peers peercount=3 tried=38 static=0
I[2021-07-08|00:20:20.119] Executed block module=state height=11108 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:20.122] Committed state module=state height=11108 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
I[2021-07-08|00:20:25.128] Executed block module=state height=11109 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:25.132] Committed state module=state height=11109 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
INFO [07-08|00:20:28.587] Looking for peers peercount=3 tried=56 static=0
I[2021-07-08|00:20:30.131] Executed block module=state height=11110 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:30.134] Committed state module=state height=11110 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
I[2021-07-08|00:20:35.135] Executed block module=state height=11111 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:35.138] Committed state module=state height=11111 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
INFO [07-08|00:20:38.665] Looking for peers peercount=4 tried=13 static=0
I[2021-07-08|00:20:40.140] Executed block module=state height=11112 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:40.142] Committed state module=state height=11112 txs=0 appHash=E0205951EA1A4EE5D9DAA12BE1C8154489E59AB828E93AC2501BFAFBB5DC9E67
I[2021-07-08|00:20:45.143] Executed block module=state height=11113 validTxs=0 invalidTxs=0
I[2021-07-08|00:20:45.146] Committed state module=state height=11113 txs=0 appHash=E0205951EA1A4EE5D9DAA12B
I restarted bor but symton was same.
Here are the options to launch bor
bor --maxpeers=$MAXPEERS --datadir $DATADIR
--networkid 137 --port $P2PPORT
--http --http.addr=0.0.0.0 --http.port=3000 --http.corsdomain=* --http.vhosts=*
--bor.heimdall=0.0.0.0:1317 &
Can anyone address this problem?
Thanks
While running graph-node to index contracts on Polygon, we call getBlockByHash
to fetch all transactions for a given block, so that transaction information is available while processing a given event.
Our Polygon RPC providers intermittently do not return one of the transactions, which breaks subgraph indexing for events contained within those transactions, as they expect to find a transaction for all the triggers identified in a block. The missing transactions are always transactions from 0x0000000000000000000000000000000000000000 to 0x0000000000000000000000000000000000000000 (example)
We have seen this behaviour intermittently while indexing multiple subgraphs, reported by users of the hosted service here: graphprotocol/graph-node#2552. We have not been able to isolate a consistent test case. If we clear our block cache (so that we call getBlockByHash
again), the second attempt is successful and indexing can continue.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.