Browse Source

Merge pull request 'pull from hush/dev' (#5) from hush/silentdragonlite-cli:dev into dev

Reviewed-on: https://git.hush.is/lucretius/silentdragonlite-cli/pulls/5
pull/27/head
lucretius 4 months ago
parent
commit
f97cd7d041
  1. 45
      lib/proto/compact_formats.proto
  2. 100
      lib/proto/service.proto
  3. 108
      lib/src/lightclient/checkpoints.rs

45
lib/proto/compact_formats.proto

@ -1,6 +1,7 @@
syntax = "proto3";
package cash.z.wallet.sdk.rpc;
option go_package = "walletrpc";
option go_package = "lightwalletd/walletrpc";
option swift_prefix = "";
// Remember that proto3 fields are all optional. A field that is not present will be set to its zero value.
// bytes fields of hashes are in canonical little-endian format.
@ -11,11 +12,11 @@ option go_package = "walletrpc";
// 3. Update your witnesses to generate new Sapling spend proofs.
message CompactBlock {
uint32 protoVersion = 1; // the version of this wire format, for storage
uint64 height = 2; // the height of this block
bytes hash = 3;
bytes prevHash = 4;
uint32 time = 5;
bytes header = 6; // (hash, prevHash, and time) OR (full header)
uint64 height = 2; // the height of this block
bytes hash = 3; // the ID (hash) of this block, same as in block explorers
bytes prevHash = 4; // the ID (hash) of this block's predecessor
uint32 time = 5; // Unix epoch time when the block was mined
bytes header = 6; // (hash, prevHash, and time) OR (full header)
repeated CompactTx vtx = 7; // compact transactions from this block
}
@ -23,8 +24,8 @@ message CompactTx {
// Index and hash will allow the receiver to call out to chain
// explorers or other data structures to retrieve more information
// about this transaction.
uint64 index = 1;
bytes hash = 2;
uint64 index = 1; // the index within the full block
bytes hash = 2; // the ID (hash) of this transaction, same as in block explorers
// The transaction fee: present if server can provide. In the case of a
// stateless server and a transaction with transparent inputs, this will be
@ -33,16 +34,32 @@ message CompactTx {
// valueBalance + (sum(vPubNew) - sum(vPubOld) - sum(tOut))
uint32 fee = 3;
repeated CompactSpend spends = 4;
repeated CompactOutput outputs = 5;
repeated CompactSaplingSpend spends = 4;
repeated CompactSaplingOutput outputs = 5;
}
// CompactSaplingSpend is a Sapling Spend Description as described in 7.3 of the Zcash
// protocol specification.
message CompactSaplingSpend {
bytes nf = 1; // nullifier (see the Zcash protocol specification)
}
// output is a Sapling Output Description as described in section 7.4 of the
// Zcash protocol spec. Total size is 948.
message CompactSaplingOutput {
bytes cmu = 1; // note commitment u-coordinate
bytes epk = 2; // ephemeral public key
bytes ciphertext = 3; // first 52 bytes of ciphertext
}
/*
message CompactSpend {
bytes nf = 1;
bytes nf = 1; // nullifier (see the Zcash protocol specification)
}
message CompactOutput {
bytes cmu = 1;
bytes epk = 2;
bytes ciphertext = 3;
bytes cmu = 1; // note commitment u-coordinate
bytes epk = 2; // ephemeral public key
bytes ciphertext = 3; // first 52 bytes of ciphertext
}
*/

100
lib/proto/service.proto

@ -1,7 +1,7 @@
syntax = "proto3";
package cash.z.wallet.sdk.rpc;
option go_package = "walletrpc";
option go_package = "lightwalletd/walletrpc";
option swift_prefix = "";
import "compact_formats.proto";
// A BlockID message contains identifiers to select a block: a height or a
@ -56,14 +56,13 @@ message LightdInfo {
uint64 longestchain = 9;
uint64 notarized = 10;
}
message Coinsupply {
string result = 1;
string coin = 2;
int64 height = 3;
int64 supply = 4;
int64 zfunds = 5;
int64 total = 6;
uint64 height = 3;
uint64 supply = 4;
uint64 zfunds = 5;
uint64 total = 6;
}
message TransparentAddress {
@ -75,28 +74,97 @@ message TransparentAddressBlockFilter {
BlockRange range = 2;
}
message Address {
string address = 1;
}
message AddressList {
repeated string addresses = 1;
}
message Balance {
int64 valueZat = 1;
}
message Exclude {
repeated bytes txid = 1;
}
// The TreeState is derived from the Hush getblockmerkletree rpc.
// https://faq.hush.is/rpc/getblockmerkletree.html
message TreeState {
string network = 1; // "main" or "test"
uint64 height = 2; // block height
string hash = 3; // block id
uint32 time = 4; // Unix epoch time when the block was mined
string saplingTree = 5; // sapling commitment tree state
}
// Results are sorted by height, which makes it easy to issue another
// request that picks up from where the previous left off.
message GetAddressUtxosArg {
repeated string addresses = 1;
uint64 startHeight = 2;
uint32 maxEntries = 3; // zero means unlimited
}
message GetAddressUtxosReply {
string address = 6;
bytes txid = 1;
int32 index = 2;
bytes script = 3;
int64 valueZat = 4;
uint64 height = 5;
}
message GetAddressUtxosReplyList {
repeated GetAddressUtxosReply addressUtxos = 1;
}
service CompactTxStreamer {
// Compact Blocks
// Return the height of the tip of the best chain
rpc GetLatestBlock(ChainSpec) returns (BlockID) {}
// Return the compact block corresponding to the given block identifier
rpc GetBlock(BlockID) returns (CompactBlock) {}
// Return a list of consecutive compact blocks
rpc GetBlockRange(BlockRange) returns (stream CompactBlock) {}
// Transactions
// Return the requested full (not compact) transaction (as from zcashd)
rpc GetTransaction(TxFilter) returns (RawTransaction) {}
// Submit the given transaction to the Zcash network
rpc SendTransaction(RawTransaction) returns (SendResponse) {}
// t-Address support
// Return the txids corresponding to the given t-address within the given block range
rpc GetTaddressTxids(TransparentAddressBlockFilter) returns (stream RawTransaction) {}
// wrapper for GetTaddressTxids
rpc GetAddressTxids(TransparentAddressBlockFilter) returns (stream RawTransaction) {}
rpc GetTaddressBalance(AddressList) returns (Balance) {}
rpc GetTaddressBalanceStream(stream Address) returns (Balance) {}
// Return the compact transactions currently in the mempool; the results
// can be a few seconds out of date. If the Exclude list is empty, return
// all transactions; otherwise return all *except* those in the Exclude list
// (if any); this allows the client to avoid receiving transactions that it
// already has (from an earlier call to this rpc). The transaction IDs in the
// Exclude list can be shortened to any number of bytes to make the request
// more bandwidth-efficient; if two or more transactions in the mempool
// match a shortened txid, they are all sent (none is excluded). Transactions
// in the exclude list that don't exist in the mempool are ignored.
rpc GetMempoolTx(Exclude) returns (stream CompactTx) {}
// Return a stream of current Mempool transactions. This will keep the output stream open while
// there are mempool transactions. It will close the returned stream when a new block is mined.
rpc GetMempoolStream(Empty) returns (stream RawTransaction) {}
// GetTreeState returns the note commitment tree state corresponding to the given block.
// See section 3.7 of the Zcash protocol specification. It returns several other useful
// values also (even though they can be obtained using GetBlock).
// The block can be specified by either height or hash.
rpc GetTreeState(BlockID) returns (TreeState) {}
rpc GetLatestTreeState(Empty) returns (TreeState) {}
// Misc
rpc GetAddressUtxos(GetAddressUtxosArg) returns (GetAddressUtxosReplyList) {}
rpc GetAddressUtxosStream(GetAddressUtxosArg) returns (stream GetAddressUtxosReply) {}
// Return information about this lightwalletd instance and the blockchain
rpc GetLightdInfo(Empty) returns (LightdInfo) {}
// Testing-only, requires lightwalletd --ping-very-insecure (do not enable in production)
// rpc Ping(Duration) returns (PingResponse) {}
rpc GetCoinsupply(Empty) returns (Coinsupply) {}
//Mempool
rpc GetMempoolTx(Exclude) returns (stream CompactTx) {}
rpc GetMempoolStream(Empty) returns (stream RawTransaction) {}
}
}

108
lib/src/lightclient/checkpoints.rs

@ -381,6 +381,114 @@ fn get_main_checkpoint(height: u64) -> Option<(u64, &'static str, &'static str)
(1260000,"00000000b7fc90789fca4e53b5966707642d1d9ffcccc99c28fd194135d08618",
"016c56aca9eb431f561ff0076de88125a2a8496fa43a208bcb56e205138f066e480170ed150eead6d280ca06ee78ebe0a1e497fe626b5c1d0fd27f9ac011a0e3fa471500000156d5c46488b0e090a5f9e3dca3972b1361b4a035543662bf976cf36433679a010179de564d31701fcd2ead3ed7ad15c474fa6d3c3953d58a84de3265f4b42be62601348192d6c386c1cbe064ab3775d88e02b19317f287c8484a55f92521ea72d7370174dbd601820a8a446fd50ad50efb280936a18ea72ef862703dc29378466a376a010ba60f0f93ee5039e7041c1eede618fdf670bbfede4df885015628806a768f1d00015d52e07f708eb16da7d7e66fc1a32621c978171adef97e353c8babda575fef0b0195da1a9dd2c7dec13ba6b796f010dd64e9f3cdc40b132aad0c0997787ff8a925000168230f898166cc02b4b2f96958dedd24ebcf87d102e7dd28f08f1998b9d06f3701b4658fe046bba8df072bbd368969e3b2c5c387769ab74a9462374b15060463620001df509699f1009b4996aa329153ecd50c0c131e4c74cc78691c6492c1c362c019014aa507e6d089d8dc9a374085fd757952589b1f6625c2ad01540c7762cce7d73d0001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1270000,"00000000041c198471a04f305344aeae7650140175c97d62765861d6416a4ed1",
"01aa4f0d662a02d6205630b6becc2520dd67e290784a79017e54bec50a818a7e6701284a633aeec3f98db932323908febea122743f401ffd0b9b3b5254ff6689f768150000000001d4797cd87b99cac8b7c5da05852a527421cca77a529753fb1fac42bc6924a10501ffaaad4f376ed41b5f109e953e319293b2d193983f623cbcbbda28d11299911201a1d4adaba3301f2760811862f0d83d0fe227d9696de57d3fdb397d441f8c953001a15e2f347cc58507bb5cfd34d295c8bffe94ad92d5d195b51a7cd448a5919a4e0130a340676af3449263564cfa7c9a2e322b1e6d2de66173c168a0bce54a3bf934000001c3edce0df21c9bb91730c9f84e4021d9531b5d86b2e4bf95e5a7c022fc222d5400016244c4119437c4569ed468ba7777fa8169e9515fdfd3246c2c2c7b8a49e2ea4a01df509699f1009b4996aa329153ecd50c0c131e4c74cc78691c6492c1c362c019014aa507e6d089d8dc9a374085fd757952589b1f6625c2ad01540c7762cce7d73d0001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1280000,"0000000172d327c94631b30e851ada193ad0d4b05a659db7e92cdaf4a5859841",
"012f189b8e7e8d4ed31e63f26477e4944bcf24ebe2b1bc87e7ba4ddfead53df5490132633b0452e6ee907f69ee12d93b357590a1d4f89b0cff14ecb6db3c0efb973315000140bf0832101b85af9a3634fbb8fdd62d20638eda071859382e7a0dca1455633f00000000017a2ae902e520a3612ca41c729de5620bc7a4bb2254c4d45ecfa33587d54b3c640154c27323fb6b37e1c36d3851872ff0164c3b4996350a60a6d6afea0167f965680000000001cd1eda1387aea1a8eaba300f06bd3ce823febc156e7a551c9ffb355dba061d60016244c4119437c4569ed468ba7777fa8169e9515fdfd3246c2c2c7b8a49e2ea4a01df509699f1009b4996aa329153ecd50c0c131e4c74cc78691c6492c1c362c019014aa507e6d089d8dc9a374085fd757952589b1f6625c2ad01540c7762cce7d73d0001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1290000,"0000000305db71205f1c622693cc55fee7c3b7c26400e13e82b3855a13c40df7",
"01ff51396359add84d9ee4f1bbc6ba7fef7427a4b023d9732f5413b6202ab3c76200150001030dd4c88f0b2ba4764475181f612603b056f11f4df30b8302448a971bb937170197e3ba47ecdabe3705552a0027ddd622e6f8f6eb5e6d02766b1736b55fa0ee410173da9642855d9310b5e613818b63aeb471fd609cada15670fcd6692655aa212b0101b7b566cb6d82f4c744e743b963745e8f174dc59520eb1130388afdb14721690000012a40d9243f9e1a6422dbeae97d81acf783443bf9e1a204a3240e6a456b8d915f000000018ea6abb4d839e41177c01382db3c69e491450b898c260f0c6afd4e1906007a6201cd1eda1387aea1a8eaba300f06bd3ce823febc156e7a551c9ffb355dba061d60016244c4119437c4569ed468ba7777fa8169e9515fdfd3246c2c2c7b8a49e2ea4a01df509699f1009b4996aa329153ecd50c0c131e4c74cc78691c6492c1c362c019014aa507e6d089d8dc9a374085fd757952589b1f6625c2ad01540c7762cce7d73d0001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1300000,"00000003f498d56accc70c7257bfd708a22128dda0a038499f0c984f3e9ba2c0",
"0154d0ab0e747f55ce06b8d0a26190b55de89ac316afcae9125a5b35bb7add602d01ccae3e5bee18904063043ed9f182353a60373436700f8736c622ee1295c5d82e1500014294547ff33b9dd396eba07cc89a37240e3604458855fe79472f1eb71bb4ca3301024861538b380cf1f62b4f0efa84373e10c0bfac5eec5bb4b738a43ba6c13347000001b772befd90630de2d8576e4efdd4d3aab1134d64225c2f16ca354499ae83073a01b88d5eddc3bc917b11258b918cafab58597eee40ef9c021f9ec11b5a8c12e1050001e89579da4919280b3117af80fb1f07fc0e01b50b0635f3d8e108e365a82a08410142fd322541f3cea3dde5cbf43a64e72950704a63cea10ad7781eff61121ed62b0000000000000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1310000,"00000000cd97fe334d3be6f3fda419589ebf643bffab3194d5cdeb7d324d123c",
"01b5ba71ffa3543856777b9752e69e365f2befc5f510d802ca732d62bbf734e9440015012246d0dad83200d00542c57cfed8c6402f5156ebdc30a40d1e23f1e6237bcb5d01c8b1c4ee99fcbb76e8ab80abb973b383983f9a9815235de57f579524a49f6a38000001b8d2e3c93ef0c11df0efede3779d6e70acc4b1df797a86fb48fe2a6aba90415e019a150780d96ddd53388e455f6bc596bc2c444095d33a1a10d969ed8af166e526013239200560b5212ee84b72ae22b6f608f47b93622c04f7e4446cc49164bccb1501866f8ab942f35aad856bb406757b3aa155661b62250d45d10f82b03dacd2d21e01f292b74288d1c82e1708a43be0d4d114148f2a3bdfe43f886131e69fd9fa645600017f94a5993c238eb6f37c4eac4fe1ce2af093fed021849f75144606adde6fd420000185a8cbd76cd8fa8760152032e411fb884d2465617202efb2db7f65633481f26f0000000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1320000,"00000000995d4bafd5b3e9bcc709cf0623090008aa34c9ee6b44c815ad08bc48",
"01e997fecc5d718084b3cecaa69e45754309ec519c1aff83fcd4dac7c2bc58086401990844102e4c958ed8180f0d6dd1033539b565685f76b5cc93c2e9f5a8c6471d15000001b55b1efadc76e5d3eeeb4e291651ffd0d9d438535bafd00b6e0e6e80d5e9424801af5cdbde66d2d4473633d728f9822fb66e13ae846e278f19d48604acffae4a440152123d7723a7fdd2d15e11137e2a4f79e80a168a8a28fd186e9c62e94242b85d0001dc7d8470d225e1b31800a8e97f2f7b5ae753ceee6fe6b7d4718799929b28755901386aa30ef79e865a02a70db7924083b97ff554041c5d2dc86ba5016ee800ef1d00000153b1bbc4f08ec454d8921327035b9af1c5e349e6c894807eaf391318797b0a6e0000016b7fb5c9643c91102aad82dcbfe22fcb1d2c8af31057fdbc1cf4adaf9901d91100000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1330000,"000000004bfdeafb2dcdbb7b0a214c62fc4f03583f3f6f27bbe2dd78c083bc6a",
"01366fd1a0d525398df283778fedb0c51927cab0824a0edb62f12659012199e15401c3bfa3a862a42c887785197f584e05123ce8aab1fada69cbd38cb4134054e4101501cf0183ac26ad552ec4b176f08605ea83cd36160856bb9fdcda4ff29a0ece6b3a0001a8ffbd594b0cb08a2f63579a67ac28c859f64dfc60c8dc27a48427013107fb6a0001a43595332a65522bfc47de716855a27e3a07513d80c7488068ea956f923c204c01601417cacf850d64d5577f13b9a1dcbed20dd5b251211d6073f6bc60c777a125000000016bcc0413d0ceb351aacf269fb8d7f3ef58361b8496840ae5111966925888965c0001eeac840024fe032da0a4a645953622829733e01e35733f80ce36cd83450cf10600016b7fb5c9643c91102aad82dcbfe22fcb1d2c8af31057fdbc1cf4adaf9901d91100000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1340000,"0000000296642fe481256d81da12afbbfc867a6e56f7e88ee575376171a2eb2b",
"01e2aca02502cf0123f0a733d76f58ce64ef01ef4c2150f2e31eba0efbd1e8a16901f0c93c79f34e3f25bd376961995bdd37e79e9f8123fd577214cb0d546e255446150000000148d92a66c03debffd1352c77039a946958e7b72c2144d169d745043361d76b1c01bdbfa492c8d003f2f8f936df439469bb33c8a63c40ce007bdb3388ac0f3cb6420175ce5ef66e41ceb8d808a9d65ef52b64a7579993fb21aa7ebe35fdf3d6c95c30017a7e335b52c39b2afe58f898ecd9a1391a6bd072e487b729923641029b992e720001699dbd4984b09871c56e2c37298de74c8b5a0dcf0426ae4a9628cd828073de0701fa09a4ff3fc9d3dc9bf509f8c9309e3836ee980ca989c993e16e576d7e756662000001bb9d23de1629656a5002c1a7dde44452904d3f1b0153acdb96ad5a30d0bb6035016b7fb5c9643c91102aad82dcbfe22fcb1d2c8af31057fdbc1cf4adaf9901d91100000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1350000,"0000000040bdf5b1900a2d20f6fb7824f7f0ad2117a357ac212388bbe5238f40",
"018c9e81606764e5e4ddcb394208f7af43bf1f058d9968d01fc5d4bed68db9211200150001287f89fb5c0426800f3a78961ec0583cd5a9afc34ec2bf9e94c6abd04491c55d0001e672659839d5f31a8e74ae637335464110ffd20578f98c33152dd62f3773d91700000000015966a87175a3cb4d0a0813193bd6a206a0d592bd6e2cb8f97d45d85ded3a556d00000181d05915c012f68cf2d32295294532ffdc1db5c2a14bc1c2447b048577531a2301bb9d23de1629656a5002c1a7dde44452904d3f1b0153acdb96ad5a30d0bb6035016b7fb5c9643c91102aad82dcbfe22fcb1d2c8af31057fdbc1cf4adaf9901d91100000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1360000,"00000002e0a212bc285eef4232f6805f95ef054582a43fd4b926ed23e75ec378",
"01df84b3b74f8f5d043572a7546bf93f220e079e5955e761ad98a19207a992df2e016b34211be559838c98b236e6bbe0d1fe6f9c9adcd25cb59fb5b62f23ad301d56150000000001a019247df5c95eab49e0f622553411d353e465820bb997606298bdde09912f680000000120febd109cd5aa72a39af81773540f3e84965df0e40c6bef2e1dd619845cf84801069525c7bd728b6254afbc8359657d03b60726036746d9a82747a67d8f2f366d00000000017445b082f98141aa0d940882707945e8339d57737e36e0f1a3359d44456ec734000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1370000,"000000033c971fbcf50d26531667597acd4abf989473c10a7ecd23cd4546dc05",
"01166ad90b061ad3bf6381b46134a1709123567fdfac278433be1698f533197505001500017553b832182c217296601739a5b491ac9bd5b5f9c2f5d8a070bb99281fd8de64011a123843b680c316cea597a381f434c2d7cf73164eae586de4c0fc47ccabf1090127e88210bbb662d8688ab4405c57fcdb3991d40fbe51b722ed63350a720714340125544441d1bde725d8f06ec9b89ea8d09b034a1a3441e4822a6df93dad93223e00010c7d993dd51b9ab2440e46b83c11fbc7ffa026ce533ad4b58c3b2f82840dc445000192d0ce94b4f07d865e53886803d458b79f6a8eae70f81a83c5fb1efb758df25100017affa0d302edcbb379677626143dfab2c094b1e25cf37a968081f38c6dc0514a012e8289df4f4015b0f4b05bc17faa1a036a2fb0088506cfb2b83342893725e5120000017445b082f98141aa0d940882707945e8339d57737e36e0f1a3359d44456ec734000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1380000,"000000023a6ce85edc04e5af620930477bea1aaf31ee262678968976717d176e",
"019421a811b3d7625a1c74ef3e17d727b1ca6c4700e6ac76bcf8090dc08926d71b019ca3647c062831e3ac802970e5e06c7cc7a747e7601522c77649348d685fe3301501b8fdcd7126fbebf0f2fc4d7dff65e74aacf2c24a7403fe0d17a807cd273a48410001d4faf8b561fa81c230f72af05f4208932ab7b70a64374e215a17154feee0764900000001107f45e4a2e04748518785e094daf793f9ef968b530273c80f254b3ce86d9428015fd044ccf3cf5580280e25bb1b8921e24017dcbaa94b6cba698afdec24fd32720000016663995573a5bab4b0cd940b9148dfe246dd2401f5dc8931b0ebed85a34f622a0147d72c8e17fec6c90ee0d4f8fb78a8a4aa7360e85ccb8ea800e67f4afbadce33015a5860ff18b2a7419a85f4861aae38ab0e64ae842c91a4ca86a0b5711e5a5b6900017445b082f98141aa0d940882707945e8339d57737e36e0f1a3359d44456ec734000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1390000,"00000001f4f78ddb8d92d00fea207be21bed937c632a70681a522f2b21257f30",
"0156dc6263d4a5b9aed7df092b7c4ff500a1f46af115c7400ff5b2d174c4ccbd620015013c91b3983dcaa0350e973886eee5314f5636c33ef2bf0714635699825b13db1b017118d3862d56b8d655e104dc627cd5d29d845d5a879588b6cc565b5c76e1c364014f39855c43f73dfba9781dc4d3f475730a152a8219b66023c12220c7b67c8a22017c2d633d9dfde81c8545d467947c4d6f44c2d10db4cf324ead3181d66db5916000017a5ef3dcd15d96cf6ea7bdebd6b08adeddcf75ea1af299b147c455e626b3344c0001c6e587c76d2e56acfee61a8af9b89c6f535b9a0de496bbbf8a8b1c27142de02e0129090f67a827c807057e339d94ebe5d26921e233e8e7088a7f442ef104bde92c000168cbbe72c1c4e3fe7b014a9dcd211dbc2e51e7e5437b5de7797817cb0a63175d00000185f8542f77e6e01fcb4c9cde5c390c063ca80e89d39ac03817142086e43ccb2a017445b082f98141aa0d940882707945e8339d57737e36e0f1a3359d44456ec734000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1400000,"00000008d0941b9a5b394d19cff188a665cb8a57b89de8ad06f58fd08c6fcb8e",
"012dbf4ef46f0d00feb75e6e34e14ce72d9bcb774dcd890eab6328adbd9fabae15018f389e9d27d0a9877c13c27a57e88774f444dfac119792868fa7f5c262a8c95a150171a050ef6e54462a4de14ea53c92c93b3f5be4892967b23bd6dd1456cb3daf3d00014a77b1932dab168421459890f24207b348123423958b5baa6654ab159a961349000181ee8f53a09f2c1f3e567e3e70c7abe98aeda5a5d0a683f66c5e8409e635cf3b0000000000015cb8bfc55ef9a0dc25b1fd2a33187d0f77c25564e60b73eaa83691a38fbf0d02000121df2eaf715ace77ead0bcb7ab0cceb97c228ea57897e514c00fc5f234e976300185f8542f77e6e01fcb4c9cde5c390c063ca80e89d39ac03817142086e43ccb2a017445b082f98141aa0d940882707945e8339d57737e36e0f1a3359d44456ec734000129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1410000,"000000071ffa758ba71f243c8b4106cdabaaa5ec0df9247af03f5dc9221b58b2",
"01e13fc6cb9faa72c7e78b5aa6cb39369a032fcf6408920c4da7e2413dc72bcb160015000137944c1824fa144097df000fa9efaf320f8642ba251a5e095734bf6a2aaecb730182a852dc9d1163dc7fb76ea4acf5d3bc8036a4f44a8d8b07a2cf88d821e291110001883c92e9477e185a7e9f3232221be53874453154d5c6328c27720ad8a18a4d64000001750002abd239906761f437d5292df3a3aecfac1975283ba8936dba2e1afa7c3f00000000000000012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1420000,"0000000720e4e42612867d768dea333e255b9c660401072e1db5c2c0a927cb5e",
"016f0c18073b9f0e8e5cea84f9f56cdb3b2d8e6a18922eb1d7036b79a529ae6c6f010563681f9f9a91df3ff572b00ca3c90cce8fdb31e872ee127b2015323a26c33f15000001bb732c934241dc83e49ecd1675883c5f85391f408c65767f3b6374e85fd29d0501b3e1a844b72c6f09b0c7dc418b368ae05033a2b986fdb811b67c03999c5822600132693a5aa386d2d277b2a9ee9a3c817203ff326e280b9c4f197610ff09c1ae24015a0038e662df338af6c605d540c11bce9feeb243cfe0618fc203f0c139df4715000001434be856a8ae56ba6a17e2ce52c9029a12f73264d63966a38e68665e507cec1b0145310efd354420a6b267a0ac1fcb2eb5dff102d87f051dc4254705578fb6752001397dbab204e89d8ec263ea7cec16b0ec5c0a13bc61abb103895003b72781720001159199c0176b5cae220eaadf50eacf92bd17ade3ba2d6c247a2359b9019eb659000000012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1430000,"000000066375bf5edfb65bec45cfa47042b47e3aea87da9236da5b9f4ca70f84",
"0175dcd1343c9d5e07f3195043b605626f81b88071c31f6a5fc0ae900f170ed205014359d75dc4c94f4048bf44a8a182a18768aa4c60167a1312aae55ea95ead8d56150001c424e72313147674d468d308382167f9812f682b5e9abeed33a21f6911dd2f7301ccde0679ebf8f4f20d9bb2e41f96fc394e106118267757dcf7d8f3336ffcc72b013065dc4f2f9786453772f66c3e71aeea04f38a9773259fb6ffaa71d9e7646802016f4efb90f63de4413a27b774b216cf614bf8b27e4fd041473bde68445d575b3b01ee5b354371c5b9cada16df0c120907ee2928681e9237384d1b49de85cd66b9390126c696517f1dba2a81a0e74099b1f8d3fa2a65ee991344e8fe94d4f53a624c56000001a2fc4b1843af353e9287fe23854906267e892a053f714d1eb472b7f1d3dafe010153aa5aafa9c11464a123d59badb7743bb67fc2686550452df004897abc2ef66401fcc633dd7d6fb7f00d1b2bd8c0a99db4be5c8c6393b84fd36d6b2562db3c60480134f45736d1336cb1f55432e553afb2843f58fbd53a1424f546bbb68f4926ce460000012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1440000,"00000001025150e823cedbe98c30f09385017b229bc247420d43854ddb1c4ff0",
"01c96fa25dd7e8d53195f97031006d2cb1f2758c4b12fef11b588de57c69784455001501d3c916889978629148d469916a9d9b5770ac23657d69989e3e4fde867ff6c04b016c46a62678cea4266cc095d7f287bb3f5bb5dcc0d408a921d210843cab43227201dc162e6835b6b9e5c930ae8bab60ecf12fe735ae20355e5681d6fb0d78a4254f0001a708465a549e5798486fe87a2dfb0732e35974248cf14ec7840cda4bf5424f6201935fcb60099ad7fdf6b06fe286c5d95e25210e4826ecfe432af130f7eb6da472000001c4954e9df77cc98c76c6ee8c266ddf7bb193e4284cd39f3f9288f55e72cd920300014b8ed9563d4cbd1fd3e278bc201509a95645ff5414ba8b5dc3734cd5dcd966210111921d0b1f05672fb165599bed630e0cf8267e832b4c4ec4e6154e880e100f3f00019309b9363ebf08e38aa5ba8a8937532af004fb2d0c77f0b306b1e928516f702800012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1450000,"00000001ba8b62f62c313bad5f3e5e5b1068060e7b52855a703575e8b999e980",
"01062fdf962638e40cdf292711483f13aacc7adb20970e698451554eb39f0c96550015018b2a0192536c7b078ebafba23cadc4553ce910882b1d533a2f393440bbea120a015e5702d657da65aae04535f90ba42480be7b9a80b1d407ea55d536e8b7de79150117eb1a826ddd4705151442d3b2d9e148b771ee3bcab6c71e6e2f12572556460900000001b470a160ac7c4cf0474f54d05b4759d67dfc1d53239f7325fc10b3b8e0a70e5800000001f0df59b96f31f8753d8c82b30652e05a95b887ccd20939be6721195307a9647301739a817c8780e31798dab9a36e7a234df3799f85ac127b0191d8033b92c1f005012f3bb696570f0ac464a701f0ba745eb269c66f99026909b1c596234950b2d919019309b9363ebf08e38aa5ba8a8937532af004fb2d0c77f0b306b1e928516f702800012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1460000,"00000005153ae6e0e3f6dabd9ae9c3e02cbb2cdd61fc9cc697f94a943d3e7c31",
"01d4bf8b5ab1566fbf2c641008a65776866da18d3a90ee79521fac2177c26ca43e01e03d8a0d3b4092d7406f72833dd0e0bafe98920301164c5e7b5c300e01dc4443150001437e540964f73c898e5405a1af51ae34367076bcef86503aae34d92ce289e064000001e238cd66315e1f88b7fca6049bc0c40ec8c5e31ac2d603f79e1358be5aa6e41a00000000000162890d418ca91fc1dce31a115ba58a3d543d3a5ce293549ad698e23e58ed1e6101db4441db6eaac29cd078df0685d7d7124d5d2889664550f0b9cca3c2731df958000001faf6cdafacc60ed1b3b10777af659d02de872c23760ab9284486f92b4670af5a012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1470000,"00000001be9faf4c236b5925b9d82a843c98fdecb0db32a7b971c7f0e06ae686",
"013fc66f1aaf5428876bcba3c13eaf73c600bcbabdf0c6876f815f547cdafb585c01555aa955ed996be9e1acbdfc1c1c90c66157148baec627d5b1854796c911633c1501ae5f94529f588c2a468e68376c11b671369638bed86f182c787eff05935c276b000001f9efa221186444b30c09adb18f50049cd2e75a55a8e5644669be0ff084d5470501cdeadb4714448e7102061689fa3dcda163270c0fd6e712ef8c0b70d5899cef37014431821f9f977b204a710d621173ea98a612cf1e3bc1d3574af9e0638ec09e5900000152622e13f673b2776139957e1d5ad6cfedfff470f6a35dcace7c2b37076da64c014e096a16bed1a93215733b76a130aaffb9fc0a47d1a6fd497f9b89b64189071e000129121619d51717862f03cacfb05221cebf0118cd359558e20067c5ecccc172500176334579d1b7828cac70c63961ef5ce2c2e057b76812cdaa377e9990f568bc3f0001faf6cdafacc60ed1b3b10777af659d02de872c23760ab9284486f92b4670af5a012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1480000,"000000061fc1275ef78b285aec0a73edc82861a0d390503c3b4c5455d8242acc",
"01e2c7c111a10f50427bc4bc897e4ec3663d8c8f35aa588e92e7ea044c53b8a7150015000000019f147addb25fa3b22db6d2629ec21d569f97e9cb99e72604d8d2fdb1e0d88c0f01bfcd48547222892d0a02ddb9d5c993ae28595d01e28daea9d75df186ee611e6d000173b557332d245327c0b1472cf4a28e058527f4781a16844931bce099d0a94c4e010c50783bdf7fe4edd6e8676b8ae3ad6770e67601d4b934395d3efe32efee9e5e000001548aea4e8877dfce4d1cf9146c1d995e01365effe75c59793db2eeaec04c112a0191bfe1bc84ec45224de2151bd3ff73c758afd19aba2710a1d5d5c68f9846af670001048eff1e2456fde7d076e192449cf565729879f1ad37393b5b0583c3597b636e01faf6cdafacc60ed1b3b10777af659d02de872c23760ab9284486f92b4670af5a012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1490000,"00000002271c1f284ad47cfc27332ea820045602f62381dd10cdfe77cbf73cce",
"01ee724ea0ccc38da9b996e7d4324ebc8fa96cf02584226835ed68ecb2734d9d240015000000000000000001731883b430616e3b2f973be6189d6555f14d3a4f4d48576b072bf635390cee210108037602f447ed3d39a212fdbd967e7e2b5a79ecd2f241d571cca1273308a72601acb845b8a7c6a288ec4534bfd55dec73eeb20b3b6b926482ed1bcdf8f205a2240152cbaf618ef392310700621cbd0158fc48718fd6b7933781c4c914f1709b135201a050d10929e616bdb7599d670fc08d44065d2ba307434443bacdfb3a467e391b01048eff1e2456fde7d076e192449cf565729879f1ad37393b5b0583c3597b636e01faf6cdafacc60ed1b3b10777af659d02de872c23760ab9284486f92b4670af5a012a5cc87bee766002799c55ceb4811e7f7393a1e6a4cbec47deffc5f5545c0e630129e917c1084ce9790872926426d49c072d65efba4028dc1d29c4ff163f2f794001007357498cf229fb2aa34a72ecff748d7aa6f1a4e486f3eecf8a57673ad0ce340001708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1500000,"0000000015757461b6c1169980a8be062898c1aca4861e45290bb2f07edac0fa",
"01ca0b0297a0cb17ca41bfee5396e1ef252485c9d07087b684ff52922a1fca6c230127ad4a6c7f09cbc7b26cb93a4d0be56bf9db0fd11f71e2984507a9928bf6135a150001bb5b561b4c49473ba301f931e1bfb70e71926e416906f1841d2a7769f23c07100001eab4cdc55c3ad81a08c4c0e7a8ed79f754881de4b44718ed4230fa20b3f33c4101c1ccf91e6f5272f8dcabb246b65faae325473a7cca1c6860a358b4c5852b227000013b7051ca25271585b515cb34b0c32a5d5c6957aba18b05a83fe24da5aee9fc1f0000011f91bb48e98e17dd128559e09c5725df99d204258274a7b716a2c421ef59d107000001b80be3abe749b80354f89195cad85c45d89e5b3ccffff88ca10e6eb4a0c37238000000000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1510000,"00000003a10174289817f24b4c8f60378e2f075e6bba3fce06e766e5f6eb90f1",
"01971f1e5c04ad6f515c265fb7ca287cd3e325ce679e99bf665688eb036972e4430015000001687da9f56edd4364dc7e7ee3e6887a2e7933e8111c80888e3c089b3974364e12000165b3b9949855b0caeca9057520d8d1ea313f85d880371ab9adc1a72f782b242f00010acf40cff2e4749c17f58352b9ebbfc93f3093320cdf16d6b1e052dd34012c35017cd2a09bb7b82061cf0a2f0aface1b1fadbef1bfc0118d2d74062cbf06406e2401ec221b063215234d84074ed3bce108f0067a39f0583da2c02944734e0f00597201ad177ae3fd3637c38a38b30b0909b5437dc54edbd7bfb29a3d3d86d12726e96e0155a16a02a55e3e59aec6e2b40b292636610c515a08f432e25e2a96b6d0ae757101447d962c014e0aa51c2939c259ca2bd31b7458f28c76d51073fa9d0505e5f01501b80be3abe749b80354f89195cad85c45d89e5b3ccffff88ca10e6eb4a0c37238000000000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1520000,"00000007fba88eea7c09076fa7693b7ef39feb161bd7d96299deff6f16887ce7",
"016da64c5c9b5db696dc386c9b230e60e3572f1baab569af0e3ae3800d920c3a34015a90e174da6cd71e7b9505d4efa1ed7a91e00904c931210b80eb95fa5dc19431150001461b3858cf8585506809f331942869ee7bc88cd01ea4fd3d3ddb6298f9ee882801f9f5dd3908aeb65b36afa6df68ed369dc3bb354f3f7a116f6c7c55cc02868c0c01fb4b292d6a79bd9b8a0d067986ee1ecfe82763b8c7d590bfc71ee21508778a26000001bce18fa0af931af2f6b448202692ad31d197de42e322b871b2d21eb36b3d4e1101770741860cf8ba2a06a6f36601463c51fd8a117f60a020c7acab47e3fd7ce84d000000016f50ed4e26245944913c521adfc3e08b600f4e14c120b38afe2a78b1dbd471560001637dc44b8bb875ee3dc2796619ab3bdab974206e4dbc44435cb6bd734c47f31f0000000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1530000,"000000027efbba859044503a52fd35ea1a1fac64e6b159dbdcebcf861f521396",
"01d700df59367140aeee819c9264ec44182a544bf1d61a44f5ae9801bc940523020015012145e4feee12794f1d91327ac04aaa7a5cf154c527265c60d12b31e86f31fc4201aa1fab9261488d0d5d12982fcf10ddadd4a13fca190729d3fb9ed4ad4afe902201c4a760b9cf362345ce4251c5058be602fc324f8e2ec7e81f30a617c5aebb3a01000000000000000000011f07cccbe7288652b08cbca3184e3a4f7963e5c090597806e5b5bd156c84132001637dc44b8bb875ee3dc2796619ab3bdab974206e4dbc44435cb6bd734c47f31f0000000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1540000,"000000093b7b4861ec7cf9c1262ac89815b515160e383819383ae2bce4d9d15a",
"011342c13e4934fee3cf4ea3e2e40e7cf6430a0174f2715804085535f68ad7d90c00150000000001cc346113164aae165662668adf9cc53a91610dd04bd2a6b15a105d5b9d63a90f012061331d786c5f9f2e65b28dc34c87f66077aaf183189d261a739878891b0d42000001af41255e72b7762008ff731b1704c886dc54d587d6771411d4d60499e2b6176c0000013f9474168eaca54b4d736885e9169c891d9eba9bf22693dcfc7a87d29f2f206d011f07cccbe7288652b08cbca3184e3a4f7963e5c090597806e5b5bd156c84132001637dc44b8bb875ee3dc2796619ab3bdab974206e4dbc44435cb6bd734c47f31f0000000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1550000,"00000000b6414f92b836b1a6400976ea986216b28ab041ea038844d3c56683b7",
"012959a80b2361c3caf552ac681ac8ee53d4f7d7918d7efecf241b955cddffae06001501f854b0728fdb8b83e14988ae5c6f7a152bb8815e3b56b2ac44c07df8644f512e000000000001c5211557d874cad6c86442b2d6ab582ad40b504f50839684939d06fe0542793d0138f66e9b6eb361417a9004c6d7fff767873e697d12a1e16ffb5cd347327e650d015bf7b25e2d937ca6903efcb779bfb0a523bbf5d6498be86d07e80ef6207e331200000000000125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1560000,"0000000b6295fcf534ba222c7d68b5ee14445e2519a62c512cfd3010778d044a",
"0117edf3b6b6db9a9f728c1b084078006a7cddce36dbaff33e92ff2dac65576028001500000001acc1dbfa656f36048482a56c369676f2a3140e814d695d5d038bcd4b4c1138290119c41be4c3cc878a1c2f3c07f068b7950bed5b7b955275bb524c61778d42d326000113ff65779be1fa31c731c366a3cdaadf24d170d3c62fada99ed928ba923f0c4101613bbb7d09e97f0e05d5bb51d73a8738a9bc1d3661af063c8be2e9f67997f71c000123cbd4c96011968bd75db9dc8d5e14c0b4f603c96ea5e21f3e61474c63cc3c3b00013ecb9ab98402ef99e0b98cb4418dfaf5cb5fc1ededa798473166fd644888283d00000125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1570000,"000000069f9bdf236df00a42975f1ec785fb915e900e044352043c6ecb1cb34d",
"01f3261dc0617e334b65ca331389fed5133c038a0d202797d66f4c102d9c83d6650160e0aad042372518cad7c7188f11c40ae814b342c9bec000ebd3380f91a931631501b31de24776c40363ac58eba6ea6fcdbbc5a770686ef60224b1728a2210b7211d0001a52e639c975f9a6d08fed8bf695a1f63dd9a9f4531acd4623e3f1dc5463ff46c000000019060e603e69002f2d257840561b4590be7249a30f84acb2f8adebc5f5e7f3308000197e088d7bec23e30ef0df831c8cc1de48f7321332aa94fabe5e21f3ce9c95e4700000001143588a059963f5858e40572537e922ef3135194315e178b790d7cc163478f04000125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1580000,"0000000897f1f891389334c3cc14841378246bd7666232b52a1a755ac092f8a5",
"01558f9f250df9da58711bd03e0ab2062ca3762bf636d71ee75f58dd2bf6ff8b72010ebc561a6797e26de46d73ed389ae6250cd5909931658f048069c5321444a2411501cf113ab9087777a20b32e5893f9028688c9240529b8b3682e50990dd2979231e01bccf5a5f334a91d864b068ced192e6ba95b73449b0fc7f62b25a5dd451732325015329fb72c027eb29673788d24f576208d044c1d58abba320467d0cafc4c93a6f019a69d1b1ba2b5cd37e13b95455ee87bca4e597ac4504ce0edee56303a76db61c01b8ddfa8020797eaaf70800f906e41795b487cd28d8456a3b8f718510a507ef1101ed830c798394c87515d79a50e3e8beb1ba59582cd3ade27fe524803702b3b2620140f65f7ad86f0922fd84fb91f52f29c4b3ddbf2df719df160cff9a85ec8320010001669ff43d86a7362a42f7e848ec9c65ba43f37db16a97aba07947668e904f733701545a7f49f7e7d639d26b565cc102c766a09c48a35d99dc1dc0d81dbcb489244401298669f9aa43c8014d707636f2eb5b4c1f6ac7a7c0829264cb7f70bf2026a4100001143588a059963f5858e40572537e922ef3135194315e178b790d7cc163478f04000125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1590000,"0000000124680145c0bef5178b36aab191b7e59a456d7df83c4696eaaec17beb",
"013f1bfd7e56bf3101fb403f12025e5e13c3af5858ac85b243ccd535d344bb916401224ec528e8535ad9686cf4571d1ca110b709b9e8d607658c596daa687103d9691501c8bbb0f7d30c63d0731cefb57fbcc7cd3b39f5a5ff1356b139e674975a0d4a2801f25c13991e52dda8eb5bf251863e8c8bcd545e731e9a259de18ef46bfb50192c0152de9695535114914a9a6a0ac971c0bf15317fd669fdd3df002f4df87b179b4601e2791babe7064b61e73983b307e167e00fa4bb63a395717a294153c1f462223f00010d6dd5b68eb1774243ce7432c2ffaeb0d6cfce5a2ad4f0b8568585ec0b1bef4100016c9d83cefcaf3d27937ecb51187e6a59fb9f9aab956185be34e3df2efd4b5b1000013f77095217f3d96cded8612ffbbec3fca13ff07b415e3923e511bdb5c6cb3111017e3a84ece7c82421ec87669f0689ddcbb3eeb7f568c1f9ab9da210c437df562b000001fdb08d995349a8ef46813684149318c56e4eb13b8d45091b97615f19ab75b22e0125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1600000,"0000000e4dfb00523f8535e5bbc66401dc0aed33ffcba721c275ca0a35f2477b",
"0137a6ca552cb484e82240915c6ba673c54021f54167e3a70b11e58769cd5a464601257c3ec2a62d68f9acdcd7e879c8582e837882d6484f6cfe0785080a8afba04515016f657f1b16a1d111d877db63da5b90221dfbfa7c542fceb5a864c200483e9f0a01bda7c5a7d87ba7b6422f1e736d08f2b8281641f890e934e562d0ea2f6d34662b011502d741feb4ff5b96f43ec817d07d7e016be617ff7a7263631e106d4fd0dd2b000001c119905221927860a0d0397c5d0f9cf81c443d91c9ec47292ed651b4ab8fc004000001ca290b18e9523cc028abd61060174156bf559003c60ab42771f63f7f026a114101d792a7073b1c2189cd654259bdedc49002fb3b332347f40c6137a460e18ba60b0000019feca10203b8cf204fa30d003c3bdc58ceaa16acec7ea186965f72bc3f12636401fdb08d995349a8ef46813684149318c56e4eb13b8d45091b97615f19ab75b22e0125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1610000,"00000000318ea4aea52e334b9b3f8bf91e63fe485468936bba68485ae1095a46",
"0107fa598f71ceb0c4f0c27352c39ccb0d2f3db75177df7e2fb430789a8c61e52d001501fb18ccdf825ec2ee3c1b1e2faa627f2e2d5cddd951ef52180ae9cd665ae41a72015a1802b4732638b38b39be844f6bef3a3c2db76594a70f95983696401c1b72570000000001ecc07ae0469c4c027f81532b62e69b781d01d96cd14b0dc9b4bb815710598526000000013b3adf8da7f712d30195b7874e2d92fe9980f898fcf2c8e171023f6ce529ce3b01913b76ea8c0876d59e936d5247363a54dbf4e03bf4a9ac9f7cd2faabaf12b207019feca10203b8cf204fa30d003c3bdc58ceaa16acec7ea186965f72bc3f12636401fdb08d995349a8ef46813684149318c56e4eb13b8d45091b97615f19ab75b22e0125c334cd519e383870df442ed17c7472f684244fffd16f3b98210b6166dfde4400000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
(1620000,"000000048c6667a8724512cbd999bc491ec8522b1f3817001c7ba485dec46d10",
"01eb8a3b067a71d2e6686e825734082de9d83a0e95c9c263246addc16873547c68013e06723bb1d16eb6ec9877e1ad9cffcffc73699e9a2a9f88ad4f4b85ac3f0a681500014f6d4feac67da46c00c726a59ab226cfe1641b0dd6d19a87849f1b82d6838925000001bfaecc149cb1bb9d26b59b32c92bd73710003bfaeecee3da9c32c757954e0f38016a717ab8ceb7d7aa433073b2015bc8842f267aa66e2ccf620ae02b672a4eeb3201868aced3b0eeec75b2d06b6f97f035abeb83c8fb4657cea908d1e24707f89253000101990cb33ebc55fc786e97b85f0137bee6fc961f6c57f298cf6ed7c886269a5801e7178f4dde7b917f3ddd408bb11204ab309114a7d25c41530e93f328c98fcd5001afc9b45263c748c61fcf9b74c33073073a31a8fa20aad6215471d948344c50650000000001c2b480770a4ed4aa312595eba91cb25a5e4cb4dd368b51f0d639f866a23fe12e000001491139c6c100cdd9176607c63fa695709727d919634d2983a9412c3010ed6d3d01708c9850eb440b259f233187662c5228804cb4500263949301b6fac8f6428f2301d6f84c424acdb1d10f8cef641662e0f63f954f07fe6199d504a61979c9ba3e13"
),
];
find_checkpoint(height, checkpoints)

Loading…
Cancel
Save