wallet: unit test the migration dedup code.

This is based on a real database, which values changed.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2025-10-01 15:39:03 +09:30
parent fb973fea05
commit 5b06e65325
2 changed files with 862 additions and 0 deletions

View File

@@ -38,6 +38,7 @@ WALLET_SQL_FILES := \
wallet/test/run-db.c \
wallet/test/run-wallet.c \
wallet/test/run-chain_moves_duplicate-detect.c \
wallet/test/run-migrate_remove_chain_moves_duplicates.c \
wallet/statements_gettextgen.po: $(WALLET_SQL_FILES) $(FORCE)
@if $(call SHA256STAMP_CHANGED); then \

View File

@@ -0,0 +1,861 @@
#include "config.h"
#include <common/setup.h>
#include <common/status_levels.h>
#include <common/utils.h>
#include <stdio.h>
#include <unistd.h>
#include "lightningd/log.h"
struct node_id;
struct logger;
static void db_log_(struct logger *log UNUSED, enum log_level level UNUSED, const struct node_id *node_id UNUSED, bool call_notifier UNUSED, const char *fmt UNUSED, ...)
{
}
#define log_ db_log_
#include "wallet/wallet.c"
#include "db/bindings.c"
#include "db/db_sqlite3.c"
#include "db/exec.c"
#include "db/utils.c"
#include "wallet/db.c"
#include "common/coin_mvt.c"
/* AUTOGENERATED MOCKS START */
/* Generated stub for bip32_pubkey */
void bip32_pubkey(struct lightningd *ld UNNEEDED, struct pubkey *pubkey UNNEEDED, u32 index UNNEEDED)
{ fprintf(stderr, "bip32_pubkey called!\n"); abort(); }
/* Generated stub for bitcoind_getrawblockbyheight_ */
void bitcoind_getrawblockbyheight_(const tal_t *ctx UNNEEDED,
struct bitcoind *bitcoind UNNEEDED,
u32 height UNNEEDED,
void (*cb)(struct bitcoind *bitcoind_ UNNEEDED,
u32 height_ UNNEEDED,
struct bitcoin_blkid *blkid UNNEEDED,
struct bitcoin_block *blk UNNEEDED,
void *arg) UNNEEDED,
void *arg UNNEEDED)
{ fprintf(stderr, "bitcoind_getrawblockbyheight_ called!\n"); abort(); }
/* Generated stub for chain_mvt_index_created */
u64 chain_mvt_index_created(struct lightningd *ld UNNEEDED,
struct db *db UNNEEDED,
const struct mvt_account_id *account UNNEEDED,
struct amount_msat credit UNNEEDED,
struct amount_msat debit UNNEEDED)
{ fprintf(stderr, "chain_mvt_index_created called!\n"); abort(); }
/* Generated stub for channel_by_dbid */
struct channel *channel_by_dbid(struct lightningd *ld UNNEEDED, const u64 dbid UNNEEDED)
{ fprintf(stderr, "channel_by_dbid called!\n"); abort(); }
/* Generated stub for channel_gossip_get_remote_update */
const struct peer_update *channel_gossip_get_remote_update(const struct channel *channel UNNEEDED)
{ fprintf(stderr, "channel_gossip_get_remote_update called!\n"); abort(); }
/* Generated stub for channel_gossip_update */
void channel_gossip_update(struct channel *channel UNNEEDED)
{ fprintf(stderr, "channel_gossip_update called!\n"); abort(); }
/* Generated stub for channel_mvt_index_created */
u64 channel_mvt_index_created(struct lightningd *ld UNNEEDED,
struct db *db UNNEEDED,
const struct mvt_account_id *account UNNEEDED,
struct amount_msat credit UNNEEDED,
struct amount_msat debit UNNEEDED)
{ fprintf(stderr, "channel_mvt_index_created called!\n"); abort(); }
/* Generated stub for channel_scid_or_local_alias */
struct short_channel_id channel_scid_or_local_alias(const struct channel *chan UNNEEDED)
{ fprintf(stderr, "channel_scid_or_local_alias called!\n"); abort(); }
/* Generated stub for channel_state_name */
const char *channel_state_name(const struct channel *channel UNNEEDED)
{ fprintf(stderr, "channel_state_name called!\n"); abort(); }
/* Generated stub for connect_htlc_in */
void connect_htlc_in(struct htlc_in_map *map UNNEEDED, struct htlc_in *hin UNNEEDED)
{ fprintf(stderr, "connect_htlc_in called!\n"); abort(); }
/* Generated stub for connect_htlc_out */
void connect_htlc_out(struct htlc_out_map *map UNNEEDED, struct htlc_out *hout UNNEEDED)
{ fprintf(stderr, "connect_htlc_out called!\n"); abort(); }
/* Generated stub for create_onionreply */
struct onionreply *create_onionreply(const tal_t *ctx UNNEEDED,
const struct secret *shared_secret UNNEEDED,
const u8 *failure_msg UNNEEDED)
{ fprintf(stderr, "create_onionreply called!\n"); abort(); }
/* Generated stub for fatal */
void fatal(const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "fatal called!\n"); abort(); }
/* Generated stub for fatal_vfmt */
void fatal_vfmt(const char *fmt UNNEEDED, va_list ap UNNEEDED)
{ fprintf(stderr, "fatal_vfmt called!\n"); abort(); }
/* Generated stub for find_peer_by_dbid */
struct peer *find_peer_by_dbid(struct lightningd *ld UNNEEDED, u64 dbid UNNEEDED)
{ fprintf(stderr, "find_peer_by_dbid called!\n"); abort(); }
/* Generated stub for forward_index_created */
u64 forward_index_created(struct lightningd *ld UNNEEDED,
enum forward_status status UNNEEDED,
struct short_channel_id in_channel UNNEEDED,
u64 in_htlc_id UNNEEDED,
struct amount_msat in_amount UNNEEDED,
const struct short_channel_id *out_channel UNNEEDED)
{ fprintf(stderr, "forward_index_created called!\n"); abort(); }
/* Generated stub for forward_index_deleted */
void forward_index_deleted(struct lightningd *ld UNNEEDED,
enum forward_status status UNNEEDED,
struct short_channel_id in_channel UNNEEDED,
u64 in_htlc_id UNNEEDED,
const struct amount_msat *in_amount UNNEEDED,
const struct short_channel_id *out_channel UNNEEDED)
{ fprintf(stderr, "forward_index_deleted called!\n"); abort(); }
/* Generated stub for forward_index_update_status */
u64 forward_index_update_status(struct lightningd *ld UNNEEDED,
enum forward_status status UNNEEDED,
struct short_channel_id in_channel UNNEEDED,
u64 in_htlc_id UNNEEDED,
struct amount_msat in_amount UNNEEDED,
const struct short_channel_id *out_channel UNNEEDED)
{ fprintf(stderr, "forward_index_update_status called!\n"); abort(); }
/* Generated stub for fromwire_hsmd_get_channel_basepoints_reply */
bool fromwire_hsmd_get_channel_basepoints_reply(const void *p UNNEEDED, struct basepoints *basepoints UNNEEDED, struct pubkey *funding_pubkey UNNEEDED)
{ fprintf(stderr, "fromwire_hsmd_get_channel_basepoints_reply called!\n"); abort(); }
/* Generated stub for fromwire_hsmd_get_output_scriptpubkey_reply */
bool fromwire_hsmd_get_output_scriptpubkey_reply(const tal_t *ctx UNNEEDED, const void *p UNNEEDED, u8 **script UNNEEDED)
{ fprintf(stderr, "fromwire_hsmd_get_output_scriptpubkey_reply called!\n"); abort(); }
/* Generated stub for get_channel_basepoints */
void get_channel_basepoints(struct lightningd *ld UNNEEDED,
const struct node_id *peer_id UNNEEDED,
const u64 dbid UNNEEDED,
struct basepoints *local_basepoints UNNEEDED,
struct pubkey *local_funding_pubkey UNNEEDED)
{ fprintf(stderr, "get_channel_basepoints called!\n"); abort(); }
/* Generated stub for hash_cid */
size_t hash_cid(const struct channel_id *cid UNNEEDED)
{ fprintf(stderr, "hash_cid called!\n"); abort(); }
/* Generated stub for htlc_in_check */
struct htlc_in *htlc_in_check(const struct htlc_in *hin UNNEEDED, const char *abortstr UNNEEDED)
{ fprintf(stderr, "htlc_in_check called!\n"); abort(); }
/* Generated stub for htlc_out_connect_htlc_in */
void htlc_out_connect_htlc_in(struct htlc_out *hout UNNEEDED, struct htlc_in *hin UNNEEDED)
{ fprintf(stderr, "htlc_out_connect_htlc_in called!\n"); abort(); }
/* Generated stub for htlcs_index_created */
u64 htlcs_index_created(struct lightningd *ld UNNEEDED,
u64 htlc_id UNNEEDED,
const struct channel *channel UNNEEDED,
const struct sha256 *payment_hash UNNEEDED,
enum side owner UNNEEDED,
u32 expiry UNNEEDED,
struct amount_msat amount UNNEEDED,
enum htlc_state hstate UNNEEDED)
{ fprintf(stderr, "htlcs_index_created called!\n"); abort(); }
/* Generated stub for htlcs_index_deleted */
void htlcs_index_deleted(struct lightningd *ld UNNEEDED,
const struct channel *channel UNNEEDED,
u64 num_deleted UNNEEDED)
{ fprintf(stderr, "htlcs_index_deleted called!\n"); abort(); }
/* Generated stub for htlcs_index_update_status */
u64 htlcs_index_update_status(struct lightningd *ld UNNEEDED,
u64 htlc_id UNNEEDED,
const struct channel *channel UNNEEDED,
const struct sha256 *payment_hash UNNEEDED,
enum side owner UNNEEDED,
u32 expiry UNNEEDED,
struct amount_msat amount UNNEEDED,
enum htlc_state hstate UNNEEDED)
{ fprintf(stderr, "htlcs_index_update_status called!\n"); abort(); }
/* Generated stub for inflight_set_last_tx */
void inflight_set_last_tx(struct channel_inflight *inflight UNNEEDED,
struct bitcoin_tx *last_tx STEALS UNNEEDED,
const struct bitcoin_signature last_sig UNNEEDED)
{ fprintf(stderr, "inflight_set_last_tx called!\n"); abort(); }
/* Generated stub for invoices_new */
struct invoices *invoices_new(const tal_t *ctx UNNEEDED,
struct wallet *wallet UNNEEDED,
struct timers *timers UNNEEDED)
{ fprintf(stderr, "invoices_new called!\n"); abort(); }
/* Generated stub for logv */
void logv(struct logger *logger UNNEEDED, enum log_level level UNNEEDED, const struct node_id *node_id UNNEEDED,
bool call_notifier UNNEEDED, const char *fmt UNNEEDED, va_list ap UNNEEDED)
{ fprintf(stderr, "logv called!\n"); abort(); }
/* Generated stub for memleak_scan_outpointfilter */
void memleak_scan_outpointfilter(struct htable *memtable UNNEEDED,
const struct outpointfilter *opf UNNEEDED)
{ fprintf(stderr, "memleak_scan_outpointfilter called!\n"); abort(); }
/* Generated stub for migrate_from_account_db */
void migrate_from_account_db(struct lightningd *ld UNNEEDED, struct db *db UNNEEDED)
{ fprintf(stderr, "migrate_from_account_db called!\n"); abort(); }
/* Generated stub for new_channel */
struct channel *new_channel(struct peer *peer UNNEEDED, u64 dbid UNNEEDED,
/* NULL or stolen */
struct wallet_shachain *their_shachain STEALS UNNEEDED,
enum channel_state state UNNEEDED,
enum side opener UNNEEDED,
/* NULL or stolen */
struct logger *log STEALS UNNEEDED,
const char *transient_billboard TAKES UNNEEDED,
u8 channel_flags UNNEEDED,
bool req_confirmed_ins_local UNNEEDED,
bool req_confirmed_ins_remote UNNEEDED,
const struct channel_config *our_config UNNEEDED,
u32 minimum_depth UNNEEDED,
u64 next_index_local UNNEEDED,
u64 next_index_remote UNNEEDED,
u64 next_htlc_id UNNEEDED,
const struct bitcoin_outpoint *funding UNNEEDED,
struct amount_sat funding_sats UNNEEDED,
struct amount_msat push UNNEEDED,
struct amount_sat our_funds UNNEEDED,
bool remote_channel_ready UNNEEDED,
/* NULL or stolen */
struct short_channel_id *scid TAKES UNNEEDED,
struct short_channel_id *old_scids TAKES UNNEEDED,
struct short_channel_id alias_local UNNEEDED,
struct short_channel_id *alias_remote STEALS UNNEEDED,
struct channel_id *cid UNNEEDED,
struct amount_msat our_msatoshi UNNEEDED,
struct amount_msat msatoshi_to_us_min UNNEEDED,
struct amount_msat msatoshi_to_us_max UNNEEDED,
struct bitcoin_tx *last_tx STEALS UNNEEDED,
const struct bitcoin_signature *last_sig UNNEEDED,
/* NULL or stolen */
const struct bitcoin_signature *last_htlc_sigs STEALS UNNEEDED,
const struct channel_info *channel_info UNNEEDED,
const struct fee_states *fee_states TAKES UNNEEDED,
/* NULL or stolen */
u8 *remote_shutdown_scriptpubkey STEALS UNNEEDED,
const u8 *local_shutdown_scriptpubkey UNNEEDED,
u64 final_key_idx UNNEEDED,
bool last_was_revoke UNNEEDED,
/* NULL or stolen */
struct changed_htlc *last_sent_commit STEALS UNNEEDED,
u32 first_blocknum UNNEEDED,
u32 min_possible_feerate UNNEEDED,
u32 max_possible_feerate UNNEEDED,
const struct basepoints *local_basepoints UNNEEDED,
const struct pubkey *local_funding_pubkey UNNEEDED,
bool has_future_per_commitment_point UNNEEDED,
u32 feerate_base UNNEEDED,
u32 feerate_ppm UNNEEDED,
/* NULL or stolen */
const u8 *remote_upfront_shutdown_script STEALS UNNEEDED,
u64 local_static_remotekey_start UNNEEDED,
u64 remote_static_remotekey_start UNNEEDED,
const struct channel_type *type STEALS UNNEEDED,
enum side closer UNNEEDED,
u32 close_attempt_height UNNEEDED,
enum state_change reason UNNEEDED,
/* NULL or stolen */
const struct bitcoin_outpoint *shutdown_wrong_funding STEALS UNNEEDED,
const struct height_states *height_states TAKES UNNEEDED,
u32 lease_expiry UNNEEDED,
secp256k1_ecdsa_signature *lease_commit_sig STEALS UNNEEDED,
u32 lease_chan_max_msat UNNEEDED,
u16 lease_chan_max_ppt UNNEEDED,
struct amount_msat htlc_minimum_msat UNNEEDED,
struct amount_msat htlc_maximum_msat UNNEEDED,
bool ignore_fee_limits UNNEEDED,
/* NULL or stolen */
struct peer_update *peer_update STEALS UNNEEDED,
u64 last_stable_connection UNNEEDED,
const struct channel_stats *stats UNNEEDED,
struct channel_state_change **state_changes STEALS UNNEEDED)
{ fprintf(stderr, "new_channel called!\n"); abort(); }
/* Generated stub for new_channel_state_change */
struct channel_state_change *new_channel_state_change(const tal_t *ctx UNNEEDED,
struct timeabs timestamp UNNEEDED,
enum channel_state old_state UNNEEDED,
enum channel_state new_state UNNEEDED,
enum state_change cause UNNEEDED,
const char *message TAKES UNNEEDED)
{ fprintf(stderr, "new_channel_state_change called!\n"); abort(); }
/* Generated stub for new_inflight */
struct channel_inflight *new_inflight(struct channel *channel UNNEEDED,
struct pubkey *remote_funding STEALS UNNEEDED,
const struct bitcoin_outpoint *funding_outpoint UNNEEDED,
u32 funding_feerate UNNEEDED,
struct amount_sat funding_sat UNNEEDED,
struct amount_sat our_funds UNNEEDED,
struct wally_psbt *funding_psbt STEALS UNNEEDED,
const u32 lease_expiry UNNEEDED,
const secp256k1_ecdsa_signature *lease_commit_sig UNNEEDED,
const u32 lease_chan_max_msat UNNEEDED,
const u16 lease_chan_max_ppt UNNEEDED,
const u32 lease_blockheight_start UNNEEDED,
const struct amount_msat lease_fee UNNEEDED,
const struct amount_sat lease_amt UNNEEDED,
s64 splice_amnt UNNEEDED,
bool i_am_initiator UNNEEDED,
bool force_sign_first UNNEEDED,
bool i_sent_sigs UNNEEDED)
{ fprintf(stderr, "new_inflight called!\n"); abort(); }
/* Generated stub for new_logger */
struct logger *new_logger(const tal_t *ctx UNNEEDED, struct log_book *record UNNEEDED,
const struct node_id *default_node_id UNNEEDED,
const char *fmt UNNEEDED, ...)
{ fprintf(stderr, "new_logger called!\n"); abort(); }
/* Generated stub for new_peer */
struct peer *new_peer(struct lightningd *ld UNNEEDED, u64 dbid UNNEEDED,
const struct node_id *id UNNEEDED,
const struct wireaddr_internal *addr UNNEEDED,
const struct wireaddr *last_known_addr UNNEEDED,
const u8 *their_features TAKES UNNEEDED,
bool connected_incoming UNNEEDED)
{ fprintf(stderr, "new_peer called!\n"); abort(); }
/* Generated stub for notify_chain_mvt */
void notify_chain_mvt(struct lightningd *ld UNNEEDED,
const struct chain_coin_mvt *chain_mvt UNNEEDED,
u64 id UNNEEDED)
{ fprintf(stderr, "notify_chain_mvt called!\n"); abort(); }
/* Generated stub for notify_channel_mvt */
void notify_channel_mvt(struct lightningd *ld UNNEEDED,
const struct channel_coin_mvt *chan_mvt UNNEEDED,
u64 id UNNEEDED)
{ fprintf(stderr, "notify_channel_mvt called!\n"); abort(); }
/* Generated stub for notify_forward_event */
void notify_forward_event(struct lightningd *ld UNNEEDED,
const struct htlc_in *in UNNEEDED,
/* May be NULL if we don't know. */
const struct short_channel_id *scid_out UNNEEDED,
/* May be NULL. */
const struct amount_msat *amount_out UNNEEDED,
enum forward_status state UNNEEDED,
enum onion_wire failcode UNNEEDED,
struct timeabs *resolved_time UNNEEDED,
enum forward_style forward_style UNNEEDED,
u64 created_index UNNEEDED,
u64 updated_index UNNEEDED)
{ fprintf(stderr, "notify_forward_event called!\n"); abort(); }
/* Generated stub for onion_wire_name */
const char *onion_wire_name(int e UNNEEDED)
{ fprintf(stderr, "onion_wire_name called!\n"); abort(); }
/* Generated stub for outpointfilter_add */
void outpointfilter_add(struct outpointfilter *of UNNEEDED,
const struct bitcoin_outpoint *outpoint UNNEEDED)
{ fprintf(stderr, "outpointfilter_add called!\n"); abort(); }
/* Generated stub for outpointfilter_matches */
bool outpointfilter_matches(struct outpointfilter *of UNNEEDED,
const struct bitcoin_outpoint *outpoint UNNEEDED)
{ fprintf(stderr, "outpointfilter_matches called!\n"); abort(); }
/* Generated stub for outpointfilter_new */
struct outpointfilter *outpointfilter_new(tal_t *ctx UNNEEDED)
{ fprintf(stderr, "outpointfilter_new called!\n"); abort(); }
/* Generated stub for outpointfilter_remove */
void outpointfilter_remove(struct outpointfilter *of UNNEEDED,
const struct bitcoin_outpoint *outpoint UNNEEDED)
{ fprintf(stderr, "outpointfilter_remove called!\n"); abort(); }
/* Generated stub for peer_set_dbid */
void peer_set_dbid(struct peer *peer UNNEEDED, u64 dbid UNNEEDED)
{ fprintf(stderr, "peer_set_dbid called!\n"); abort(); }
/* Generated stub for plugin_hook_db_sync */
void plugin_hook_db_sync(struct db *db UNNEEDED)
{ fprintf(stderr, "plugin_hook_db_sync called!\n"); abort(); }
/* Generated stub for psbt_fixup */
const u8 *psbt_fixup(const tal_t *ctx UNNEEDED, const u8 *psbtblob UNNEEDED)
{ fprintf(stderr, "psbt_fixup called!\n"); abort(); }
/* Generated stub for remove_htlc_in_by_dbid */
struct htlc_in *remove_htlc_in_by_dbid(struct htlc_in_map *remaining_htlcs_in UNNEEDED,
u64 dbid UNNEEDED)
{ fprintf(stderr, "remove_htlc_in_by_dbid called!\n"); abort(); }
/* Generated stub for rune_unique_id */
u64 rune_unique_id(const struct rune *rune UNNEEDED)
{ fprintf(stderr, "rune_unique_id called!\n"); abort(); }
/* Generated stub for sendpay_index_created */
u64 sendpay_index_created(struct lightningd *ld UNNEEDED,
const struct sha256 *payment_hash UNNEEDED,
u64 partid UNNEEDED,
u64 groupid UNNEEDED,
enum payment_status status UNNEEDED)
{ fprintf(stderr, "sendpay_index_created called!\n"); abort(); }
/* Generated stub for sendpay_index_deleted */
void sendpay_index_deleted(struct lightningd *ld UNNEEDED,
const struct sha256 *payment_hash UNNEEDED,
u64 partid UNNEEDED,
u64 groupid UNNEEDED,
enum payment_status status UNNEEDED)
{ fprintf(stderr, "sendpay_index_deleted called!\n"); abort(); }
/* Generated stub for sendpay_index_update_status */
u64 sendpay_index_update_status(struct lightningd *ld UNNEEDED,
const struct sha256 *payment_hash UNNEEDED,
u64 partid UNNEEDED,
u64 groupid UNNEEDED,
enum payment_status status UNNEEDED)
{ fprintf(stderr, "sendpay_index_update_status called!\n"); abort(); }
/* Generated stub for to_canonical_invstr */
const char *to_canonical_invstr(const tal_t *ctx UNNEEDED, const char *invstring UNNEEDED)
{ fprintf(stderr, "to_canonical_invstr called!\n"); abort(); }
/* Generated stub for towire_hsmd_get_channel_basepoints */
u8 *towire_hsmd_get_channel_basepoints(const tal_t *ctx UNNEEDED, const struct node_id *peerid UNNEEDED, u64 dbid UNNEEDED)
{ fprintf(stderr, "towire_hsmd_get_channel_basepoints called!\n"); abort(); }
/* Generated stub for towire_hsmd_get_output_scriptpubkey */
u8 *towire_hsmd_get_output_scriptpubkey(const tal_t *ctx UNNEEDED, u64 channel_id UNNEEDED, const struct node_id *peer_id UNNEEDED, const struct pubkey *commitment_point UNNEEDED)
{ fprintf(stderr, "towire_hsmd_get_output_scriptpubkey called!\n"); abort(); }
/* Generated stub for towire_temporary_node_failure */
u8 *towire_temporary_node_failure(const tal_t *ctx UNNEEDED)
{ fprintf(stderr, "towire_temporary_node_failure called!\n"); abort(); }
/* Generated stub for txfilter_add_scriptpubkey */
void txfilter_add_scriptpubkey(struct txfilter *filter UNNEEDED, const u8 *script TAKES UNNEEDED)
{ fprintf(stderr, "txfilter_add_scriptpubkey called!\n"); abort(); }
/* Generated stub for wait_index_name */
const char *wait_index_name(enum wait_index index UNNEEDED)
{ fprintf(stderr, "wait_index_name called!\n"); abort(); }
/* Generated stub for wait_subsystem_name */
const char *wait_subsystem_name(enum wait_subsystem subsystem UNNEEDED)
{ fprintf(stderr, "wait_subsystem_name called!\n"); abort(); }
/* Generated stub for wire_sync_read */
u8 *wire_sync_read(const tal_t *ctx UNNEEDED, int fd UNNEEDED)
{ fprintf(stderr, "wire_sync_read called!\n"); abort(); }
/* Generated stub for wire_sync_write */
bool wire_sync_write(int fd UNNEEDED, const void *msg TAKES UNNEEDED)
{ fprintf(stderr, "wire_sync_write called!\n"); abort(); }
/* AUTOGENERATED MOCKS END */
static const char *setup_stmts[] = {
SQL("CREATE TABLE vars ("
" name VARCHAR(32)"
", val VARCHAR(255)"
", PRIMARY KEY (name)"
");"),
SQL("ALTER TABLE vars ADD COLUMN intval INTEGER"),
SQL("ALTER TABLE vars ADD COLUMN blobval BLOB"),
SQL("CREATE TABLE move_accounts ("
" id BIGSERIAL,"
" name TEXT,"
" PRIMARY KEY (id),"
" UNIQUE (name)"
")"),
SQL("INSERT INTO move_accounts VALUES(1,'wallet')"),
SQL("INSERT INTO move_accounts VALUES(2,'external')"),
SQL("INSERT INTO move_accounts VALUES(3,'0333333333333333333333333333333333333333333333333333333333333333')"),
SQL("INSERT INTO move_accounts VALUES(4,'0444444444444444444444444444444444444444444444444444444444444444')"),
SQL("INSERT INTO move_accounts VALUES(5,'0555555555555555555555555555555555555555555555555555555555555555')"),
SQL("INSERT INTO move_accounts VALUES(6,'0666666666666666666666666666666666666666666666666666666666666666')"),
SQL("INSERT INTO move_accounts VALUES(7,'0777777777777777777777777777777777777777777777777777777777777777')"),
SQL("INSERT INTO move_accounts VALUES(8,'0888888888888888888888888888888888888888888888888888888888888888')"),
SQL("INSERT INTO move_accounts VALUES(9,'0999999999999999999999999999999999999999999999999999999999999999')"),
SQL("INSERT INTO move_accounts VALUES(10,'1010101010101010101010101010101010101010101010101010101010101010')"),
SQL("INSERT INTO move_accounts VALUES(11,'1111111111111111111111111111111111111111111111111111111111111111')"),
SQL("INSERT INTO move_accounts VALUES(12,'1212121212121212121212121212121212121212121212121212121212121212')"),
SQL("INSERT INTO move_accounts VALUES(13,'1313131313131313131313131313131313131313131313131313131313131313')"),
SQL("INSERT INTO move_accounts VALUES(14,'1414141414141414141414141414141414141414141414141414141414141414')"),
SQL("INSERT INTO move_accounts VALUES(15,'1515151515151515151515151515151515151515151515151515151515151515')"),
SQL("INSERT INTO move_accounts VALUES(16,'1616161616161616161616161616161616161616161616161616161616161616')"),
SQL("INSERT INTO move_accounts VALUES(17,'1717171717171717171717171717171717171717171717171717171717171717')"),
SQL("INSERT INTO move_accounts VALUES(18,'1818181818181818181818181818181818181818181818181818181818181818')"),
SQL("INSERT INTO move_accounts VALUES(19,'1919191919191919191919191919191919191919191919191919191919191919')"),
SQL("INSERT INTO move_accounts VALUES(20,'2020202020202020202020202020202020202020202020202020202020202020')"),
SQL("INSERT INTO move_accounts VALUES(21,'2121212121212121212121212121212121212121212121212121212121212121')"),
SQL("INSERT INTO move_accounts VALUES(22,'2222222222222222222222222222222222222222222222222222222222222222')"),
SQL("INSERT INTO move_accounts VALUES(23,'2323232323232323232323232323232323232323232323232323232323232323')"),
SQL("INSERT INTO move_accounts VALUES(24,'2424242424242424242424242424242424242424242424242424242424242424')"),
SQL("INSERT INTO move_accounts VALUES(25,'2525252525252525252525252525252525252525252525252525252525252525')"),
SQL("INSERT INTO move_accounts VALUES(26,'2626262626262626262626262626262626262626262626262626262626262626')"),
SQL("INSERT INTO move_accounts VALUES(27,'2727272727272727272727272727272727272727272727272727272727272727')"),
SQL("INSERT INTO move_accounts VALUES(28,'2828282828282828282828282828282828282828282828282828282828282828')"),
SQL("INSERT INTO move_accounts VALUES(29,'2929292929292929292929292929292929292929292929292929292929292929')"),
SQL("INSERT INTO move_accounts VALUES(30,'3030303030303030303030303030303030303030303030303030303030303030')"),
SQL("INSERT INTO move_accounts VALUES(31,'3131313131313131313131313131313131313131313131313131313131313131')"),
SQL("INSERT INTO move_accounts VALUES(32,'3232323232323232323232323232323232323232323232323232323232323232')"),
SQL("INSERT INTO move_accounts VALUES(33,'3333333333333333333333333333333333333333333333333333333333333333')"),
SQL("CREATE TABLE channels ("
" id INTEGER,"
" full_channel_id BLOB,"
" PRIMARY KEY (id)"
")"),
SQL("INSERT INTO channels VALUES(1,x'3333333333333333333333333333333333333333333333333333333333333333');"),
SQL("INSERT INTO channels VALUES(2,x'0333333333333333333333333333333333333333333333333333333333333333');"),
SQL("CREATE TABLE chain_moves ( id INTEGER, account_channel_id INTEGER references channels(id), account_nonchannel_id INTEGER references move_accounts(id), tag_bitmap INTEGER NOT NULL, credit_or_debit INTEGER NOT NULL, timestamp INTEGER NOT NULL, utxo BLOB NOT NULL, spending_txid BLOB, peer_id BLOB, payment_hash BLOB, block_height INTEGER NOT NULL, output_sat INTEGER NOT NULL, originating_channel_id INTEGER references channels(id), originating_nonchannel_id INTEGER references move_accounts(id), output_count INTEGER, PRIMARY KEY (id));"),
SQL("INSERT INTO chain_moves VALUES(1,NULL,1,1,4129952999111245900,1669569232,X'6b02441bf2972dcdbda29f9f47852252a6af0b1d7b8c59c4c080a2f3a63f57db40f290bc',NULL,NULL,NULL,764931,3368308195239528967,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(2,NULL,1,2,-4129952999111245900,1670694932,X'6b02441bf2972dcdbda29f9f47852252a6af0b1d7b8c59c4c080a2f3a63f57db40f290bc',X'add8f56d3d7168d7728688df6435b917d1bcc380b12a8eedb455130fa2c31a71',NULL,NULL,766815,3368308195239528967,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(3,NULL,2,262208,1412350682875706778,1670695838,X'10c2cdbc7bf0f77dbd752ec214700edfcca37e51bbab97691458ca6478ea79d15593f10f',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,766815,3347606868495301304,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(4,NULL,1,1,1422654191566129647,1676669231,X'405acab69e4b285f1e3d87ffd8738ca42de4baff83c114fbfb2525e002b7c567d9674e04',NULL,NULL,NULL,777058,4172213718286516375,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(5,NULL,1,1,1571685892149722415,1676757190,X'5a8096ce71c95d06e411fd4fec48e64e3154839437fec619a528321750d2f9bd60806562',NULL,NULL,NULL,777235,3493762588730114810,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(6,NULL,3,64,0,1676782332,X'9307165c229d099a5add379c8d94f3f7df60734af5fcaa5ae780c24e0db0c16fb91e9a41',NULL,X'504187560942d202146ea0b25372303fb9db91647a10319097a5e406cf1d16a7d2',NULL,777280,3098771700292012016,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(7,NULL,1,2,-1422654191566129647,1676803123,X'405acab69e4b285f1e3d87ffd8738ca42de4baff83c114fbfb2525e002b7c567d9674e04',X'0f740dd24795e5096b94698cf724be9bb6e5b572bca297104b704e490fa1daea',NULL,NULL,777328,4172213718286516375,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(8,NULL,1,1,1940652805653724551,1676803123,X'ecc47f15c2e0d2d2405e8e685fb8c9e04009e043c6f60547b22eba3ffeeaf2d85fbf60a0',NULL,NULL,NULL,777328,3241639297502779225,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(9,NULL,4,262208,1788481305187113947,1676804296,X'a3c392a9b6153800643511dbbad4476202eabbdf9bc3f809d799b4c51a7332c29fc8b004',NULL,X'5590ce0b77c012133087fae3439a821891355dabccfb2f7378c06c310fa95b7186',NULL,777328,3098771700292012016,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(10,NULL,1,1,4531122423140396347,1676813974,X'3c7cdf86b8abcf1bd5a6991b212dee7ccaeba63f5308f7ae4519e5210a1b7bd5ab6a18ce',NULL,NULL,NULL,777343,3073441752195658384,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(11,NULL,1,2,-1571685892149722415,1676814727,X'5a8096ce71c95d06e411fd4fec48e64e3154839437fec619a528321750d2f9bd60806562',X'757926ecb6ad24d1f80acf4ee8d30a6a66fee37cbac4b9c94bbd1d31e1ca468b',NULL,NULL,777345,3493762588730114810,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(12,NULL,1,2,-1940652805653724551,1676814727,X'ecc47f15c2e0d2d2405e8e685fb8c9e04009e043c6f60547b22eba3ffeeaf2d85fbf60a0',X'757926ecb6ad24d1f80acf4ee8d30a6a66fee37cbac4b9c94bbd1d31e1ca468b',NULL,NULL,777345,3241639297502779225,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(13,NULL,1,2,-4531122423140396347,1676814727,X'3c7cdf86b8abcf1bd5a6991b212dee7ccaeba63f5308f7ae4519e5210a1b7bd5ab6a18ce',X'757926ecb6ad24d1f80acf4ee8d30a6a66fee37cbac4b9c94bbd1d31e1ca468b',NULL,NULL,777345,3073441752195658384,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(14,NULL,1,1,3333785043303506744,1676814727,X'5e327163623bb475b67b9afd6b945117d9450dd22ca18839ff384037db42dc89d3118a30',NULL,NULL,NULL,777345,2472932290461042250,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(15,NULL,5,262208,464939141490647461,1676815359,X'4fa40f081712cd486a66e2ff9f3328bb3adf093f7cd26c553a4c2ad5660b9c84f792e06e',NULL,X'b5be0df85d34fdb4e293fd4eb8955896a8f26e3bcab535c65340f961e2ea84a4da',NULL,777345,436315101733705738,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(16,NULL,6,64,0,1676856402,X'91ea58ef25b499ce147462ef8d7fa10dc0adaf7f8b8df378dd388ae1ab0a691036e82bea',NULL,X'67936bdcf766310c47f7d23c579b4b9ded056c2d0df86f188ce55a2aeb688b31b0',NULL,777414,436315101733705738,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(17,NULL,1,1,1670051117413919596,1690109102,X'ccfc08537895b66b1dbee32be3f8c661dae18a616bd2a1975818a5c6bb7ccaaa2226eeff',NULL,NULL,NULL,799899,2336560737385657873,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(18,NULL,4,128,-3613187095206618212,1690109102,X'a3c392a9b6153800643511dbbad4476202eabbdf9bc3f809d799b4c51a7332c29fc8b004',X'e416a5aad8d68597abb68b93232106358dac575e4b5b7cf48b1b29297ee04ba8',X'5590ce0b77c012133087fae3439a821891355dabccfb2f7378c06c310fa95b7186',NULL,799899,3098771700292012016,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(19,NULL,7,16384,2791351516988177756,1690109102,X'6535984fdb3f033ffc9586b9bfa4419ad203589d9af44bead8ac4ba330d26ab7071d042f',NULL,NULL,NULL,799899,2417520128102500904,NULL,4,NULL);"),
SQL("INSERT INTO chain_moves VALUES(20,NULL,6,128,-274774977847326544,1696269825,X'91ea58ef25b499ce147462ef8d7fa10dc0adaf7f8b8df378dd388ae1ab0a691036e82bea',X'07a34b654e405d25a3ca09e80717f40774f9cfd53e851f751cdc5b316bf9e8ac',X'67936bdcf766310c47f7d23c579b4b9ded056c2d0df86f188ce55a2aeb688b31b0',NULL,810333,436315101733705738,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(21,NULL,7,16384,4248895243544713024,1696269825,X'8c2d5d3b6c9e072a0e562f907fbb2c374a23d0dc6c9fb0a48cbeeeb53287e964dd78ff7e',NULL,NULL,NULL,810333,3111058639569521332,NULL,6,NULL);"),
SQL("INSERT INTO chain_moves VALUES(22,NULL,5,128,-2127925682213202579,1696277456,X'4fa40f081712cd486a66e2ff9f3328bb3adf093f7cd26c553a4c2ad5660b9c84f792e06e',X'4c33b3c5069c3926fa413bcdf07764da6d1766664ea35152e8a2ab3fb110a697',X'b5be0df85d34fdb4e293fd4eb8955896a8f26e3bcab535c65340f961e2ea84a4da',NULL,810349,436315101733705738,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(23,NULL,7,16384,1470016205803732037,1696277456,X'29f22dee4246c591669c3a22ba21ee016152cef42a43b4246a479399b26771e616a511b9',NULL,NULL,NULL,810349,158809385045960497,NULL,5,NULL);"),
SQL("INSERT INTO chain_moves VALUES(24,NULL,1,1,1636849231863062954,1696376667,X'7da79a80c91093655ce69ccb4a38c8008f7e98c63baea75c98f821f55f9624202c330bb1',NULL,NULL,NULL,810536,1465516612145980644,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(25,NULL,6,256,3669407661246213670,1696376668,X'db1a2e32d0eebc8126d7cc1713e096eee769f7767ed000d4f3064532ebc1901a8bb6c628',NULL,X'67936bdcf766310c47f7d23c579b4b9ded056c2d0df86f188ce55a2aeb688b31b0',NULL,810333,2347411980531075587,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(26,NULL,6,4096,-3669407661246213670,1696376668,X'db1a2e32d0eebc8126d7cc1713e096eee769f7767ed000d4f3064532ebc1901a8bb6c628',X'57994d49f7d578feae7a375ee4c2ba2e42d17b9e3a01d8b7f670f9337c6a32a4',X'67936bdcf766310c47f7d23c579b4b9ded056c2d0df86f188ce55a2aeb688b31b0',NULL,810536,2347411980531075587,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(27,NULL,1,1,3685838138571659353,1696382292,X'a797548ed4c0f48a38c6fb3a8c1c910e48a96a6579e2ab2388d7e451d11396de23008067',NULL,NULL,NULL,810550,1786816827404869850,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(28,NULL,5,256,4490426546945889079,1696382293,X'c61279e59894dfcbf15d4cef08cb95d23a4fc8209aeb4e8ca9de2ba69c97355cfe1dc892',NULL,X'b5be0df85d34fdb4e293fd4eb8955896a8f26e3bcab535c65340f961e2ea84a4da',NULL,810349,2270496097414011050,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(29,NULL,5,4096,-4490426546945889079,1696382293,X'c61279e59894dfcbf15d4cef08cb95d23a4fc8209aeb4e8ca9de2ba69c97355cfe1dc892',X'829ee685db416b87db81c14598586704f36f912e0d627edd4cf265aea8cc12a3',X'b5be0df85d34fdb4e293fd4eb8955896a8f26e3bcab535c65340f961e2ea84a4da',NULL,810550,2270496097414011050,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(30,NULL,1,1,280337985065010750,1696676533,X'555955320ea0bf75908b448338b8c6a0f83534ca32d4249b54c7437a17aecb1348531bbd',NULL,NULL,NULL,811056,1853242186104936565,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(31,NULL,1,2,-3685838138571659353,1696678756,X'a797548ed4c0f48a38c6fb3a8c1c910e48a96a6579e2ab2388d7e451d11396de23008067',X'73a70a499b78b452b5fbd6625de9a5bd4394e3c3f37a8b078510226f1e108b43',NULL,NULL,811058,1786816827404869850,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(32,NULL,1,2,-1636849231863062954,1696678756,X'7da79a80c91093655ce69ccb4a38c8008f7e98c63baea75c98f821f55f9624202c330bb1',X'73a70a499b78b452b5fbd6625de9a5bd4394e3c3f37a8b078510226f1e108b43',NULL,NULL,811058,1465516612145980644,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(33,NULL,1,2,-280337985065010750,1696678756,X'555955320ea0bf75908b448338b8c6a0f83534ca32d4249b54c7437a17aecb1348531bbd',X'73a70a499b78b452b5fbd6625de9a5bd4394e3c3f37a8b078510226f1e108b43',NULL,NULL,811058,1853242186104936565,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(34,NULL,1,2,-3333785043303506744,1696678756,X'5e327163623bb475b67b9afd6b945117d9450dd22ca18839ff384037db42dc89d3118a30',X'73a70a499b78b452b5fbd6625de9a5bd4394e3c3f37a8b078510226f1e108b43',NULL,NULL,811058,2472932290461042250,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(35,NULL,1,1,1080871899388401948,1696678756,X'f548f4985aacd3bcbf8a359afc0e59674bc8a2d749bb64e81ccae6636939336c09033924',NULL,NULL,NULL,811058,3023943311442413481,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(36,NULL,8,262208,3061959294346907765,1696680108,X'5ef54a7d08142de425e9ae06158aa100491b0035fd0114f30403b6270d5776c566aa67cf',NULL,X'61d63986731ffab4cb4b7bc4a0be3ef5b3414ce4400ece7de1dfcf1ca308895a49',NULL,811058,4422600516032338300,NULL,NULL,1);"),
SQL("INSERT INTO chain_moves VALUES(37,NULL,1,2,-1080871899388401948,1707639840,X'f548f4985aacd3bcbf8a359afc0e59674bc8a2d749bb64e81ccae6636939336c09033924',X'eb0feef81d9e9e0c0f42446bb318e82b15f05643ee17dd428ca148891d7821af',NULL,NULL,829943,3023943311442413481,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(38,NULL,1,2,-1670051117413919596,1707639840,X'ccfc08537895b66b1dbee32be3f8c661dae18a616bd2a1975818a5c6bb7ccaaa2226eeff',X'eb0feef81d9e9e0c0f42446bb318e82b15f05643ee17dd428ca148891d7821af',NULL,NULL,829943,2336560737385657873,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(39,NULL,1,1,547625407550270803,1707639840,X'aa652cd701b1b35e58a61962505b855ec5f17fe9fc288abeabe8b74455095ba6c8ea3cda',NULL,NULL,NULL,829943,758859247351124176,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(40,NULL,9,262208,2021139196254530811,1707640655,X'd33b63d6d6e6b553cef56842cf60b7a6b9e65edeac0a7426094e206d63ffcab4524aeeb4',NULL,X'781517b73792151961980e0ebc08cb989a27512783c8e3ae0d49b1fc76fef13993',NULL,829943,3087730977722107513,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(41,NULL,1,1,687241461564853608,1708302535,X'31c236d1b82d090213e4d585a00d0221a668efdc9729dcfedc9a5c57a1d93bfbd81058de',NULL,NULL,NULL,831053,2436648364153178062,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(42,NULL,1,1,3898783404521335898,1708457883,X'e8f39f8fc15fa6e3a3a525655a48942152a51acf37dab6b5d64c34fd6e09312f5b95d05c',NULL,NULL,NULL,831298,2287176225919803905,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(43,NULL,8,128,-3061959294346907765,1708457883,X'5ef54a7d08142de425e9ae06158aa100491b0035fd0114f30403b6270d5776c566aa67cf',X'e2beb80374e285cc147ab8b63403bdf9a16af3c3559af77cd0bfba90ac51274c',X'61d63986731ffab4cb4b7bc4a0be3ef5b3414ce4400ece7de1dfcf1ca308895a49',NULL,831298,4422600516032338300,NULL,NULL,1);"),
SQL("INSERT INTO chain_moves VALUES(44,NULL,1,2,-547625407550270803,1708461318,X'aa652cd701b1b35e58a61962505b855ec5f17fe9fc288abeabe8b74455095ba6c8ea3cda',X'e033d1c669863a7aea1ab1909c6f130b5de76d4902dda974ba3ee9e2b0923cc3',NULL,NULL,831303,758859247351124176,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(45,NULL,1,2,-3898783404521335898,1708461318,X'e8f39f8fc15fa6e3a3a525655a48942152a51acf37dab6b5d64c34fd6e09312f5b95d05c',X'e033d1c669863a7aea1ab1909c6f130b5de76d4902dda974ba3ee9e2b0923cc3',NULL,NULL,831303,2287176225919803905,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(46,NULL,1,2,-687241461564853608,1708461318,X'31c236d1b82d090213e4d585a00d0221a668efdc9729dcfedc9a5c57a1d93bfbd81058de',X'e033d1c669863a7aea1ab1909c6f130b5de76d4902dda974ba3ee9e2b0923cc3',NULL,NULL,831303,2436648364153178062,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(47,NULL,1,1,4572464366552274204,1708461318,X'ada7e104ea5d434660f3ca5c00290e38adabafcb2e3694a5cec3cf79e34aec9846fd0f31',NULL,NULL,NULL,831303,1187162900612815972,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(48,NULL,10,262208,3420986848739855287,1708463010,X'96316818bdf6fe56adff62d0a89df35981b6d4dd9bfda617d0020a412b3cab24dd22b5b6',NULL,X'777af8cb6a17a1f609eb458510e7e3de6f8dc3f5f2186d32fdbb7b7b4ad46b8add',NULL,831303,2109005249630167152,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(49,NULL,1,1,1075675519345865988,1708834578,X'464bc9d953019c8957e500979b11dd93a0a76274e2ed6a5651992700728819bca568ab3d',NULL,NULL,NULL,831919,2628951369507330409,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(50,NULL,1,1,1326981450659285395,1708838440,X'6dee551172d57b8411cd8e2b467bfa03652c95e4d03bd98b3bd78c72d4b87fe7ca7467ca',NULL,NULL,NULL,831924,3166526941196633208,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(51,NULL,1,1,336005845589532953,1708842676,X'3bdb2a9b90f24380cf74fa14bd03e25e707c5dc6c4bdd8bc27b6999c1976d21078892d5b',NULL,NULL,NULL,831933,3689256452912009976,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(52,NULL,1,1,3624887595199327795,1708849367,X'c60b749a742b9c73fe1127f20c5aa99a005c440fdf92d9d4afd237c262bdc0369ec059ca',NULL,NULL,NULL,831942,3439325462517470992,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(53,NULL,1,1,1523913021940140802,1708854376,X'b2cc5fe734162ae6018f5305ad843863e21186cb1362b620bb2c1ec9a3bdc7618c8a63fd',NULL,NULL,NULL,831952,3750671515733545299,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(54,NULL,1,2,-1326981450659285395,1708856400,X'6dee551172d57b8411cd8e2b467bfa03652c95e4d03bd98b3bd78c72d4b87fe7ca7467ca',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,3166526941196633208,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(55,NULL,1,2,-1523913021940140802,1708856400,X'b2cc5fe734162ae6018f5305ad843863e21186cb1362b620bb2c1ec9a3bdc7618c8a63fd',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,3750671515733545299,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(56,NULL,1,2,-4572464366552274204,1708856400,X'ada7e104ea5d434660f3ca5c00290e38adabafcb2e3694a5cec3cf79e34aec9846fd0f31',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,1187162900612815972,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(57,NULL,1,2,-3624887595199327795,1708856400,X'c60b749a742b9c73fe1127f20c5aa99a005c440fdf92d9d4afd237c262bdc0369ec059ca',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,3439325462517470992,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(58,NULL,1,2,-1075675519345865988,1708856400,X'464bc9d953019c8957e500979b11dd93a0a76274e2ed6a5651992700728819bca568ab3d',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,2628951369507330409,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(59,NULL,1,2,-336005845589532953,1708856400,X'3bdb2a9b90f24380cf74fa14bd03e25e707c5dc6c4bdd8bc27b6999c1976d21078892d5b',X'4764e9a45018dc645225f66c924eee9336ab488d25b025c3e4756c7595ae11cc',NULL,NULL,831956,3689256452912009976,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(60,NULL,1,1,2299221750015314006,1708856400,X'1434a9f42ba508c66cbd9dca3bdaf66f901e57d8e43b0afe18d4d5eb2bd7f774da674011',NULL,NULL,NULL,831956,455488245754908316,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(61,NULL,11,262208,3031354298125445697,1708857535,X'906d17d26b952d4cf97004a4a715d91267e6295d7d4f25909231c209b44e6539d62969f7',NULL,X'd356c6456ae2ad1debfabdc985acbfca59d641391db2fe6546677de5f006725d79',NULL,831956,2736121925540689015,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(62,NULL,1,1,3799066612637910113,1709991919,X'd6f9a4691287cc99228df24f8fae3b8b8568086026b714629b95b1e3f8cf3678873a3d58',NULL,NULL,NULL,833905,1395402962406267866,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(63,NULL,1,2,-3799066612637910113,1710248546,X'd6f9a4691287cc99228df24f8fae3b8b8568086026b714629b95b1e3f8cf3678873a3d58',X'f32ef37a46b556f39a5bbf9c0a0bcd352bac85d232192f8beced98abe23f3bd2',NULL,NULL,834360,1395402962406267866,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(64,NULL,1,1,2244033094684857095,1710248546,X'3c047c7702624971a380538e445a7d3b5082caaff7f10a3274207d9c5fdddbe602948239',NULL,NULL,NULL,834360,769762578019648915,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(65,NULL,12,262208,2930877046076062029,1710249723,X'9d67d93885aa93ce7e270865fbf8c20a016422e8416bc77b2a986fe6fc3a0c2f57c3ddd8',NULL,X'9a0e2d6808ea35ec45d1a258e78fdee0769020c2ecff7cce63e95e28a401365ad9',NULL,834360,1621786175593753646,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(66,NULL,1,1,1942331397895450828,1711847858,X'4ae72d9451d9ac6a3c55d708a50cbce17b0e19b249d90c618c0c602f42a70a3273a72c80',NULL,NULL,NULL,837038,2175903664600946332,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(67,NULL,1,2,-2244033094684857095,1713473794,X'3c047c7702624971a380538e445a7d3b5082caaff7f10a3274207d9c5fdddbe602948239',X'db8958612631d6ceb9d230312ce6d6e71cc89dfc24fba6fc17cb0927fdff5569',NULL,NULL,839829,769762578019648915,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(68,NULL,1,2,-2299221750015314006,1713473794,X'1434a9f42ba508c66cbd9dca3bdaf66f901e57d8e43b0afe18d4d5eb2bd7f774da674011',X'db8958612631d6ceb9d230312ce6d6e71cc89dfc24fba6fc17cb0927fdff5569',NULL,NULL,839829,455488245754908316,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(69,NULL,1,2,-1942331397895450828,1713473794,X'4ae72d9451d9ac6a3c55d708a50cbce17b0e19b249d90c618c0c602f42a70a3273a72c80',X'db8958612631d6ceb9d230312ce6d6e71cc89dfc24fba6fc17cb0927fdff5569',NULL,NULL,839829,2175903664600946332,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(70,NULL,1,1,2275089577505042541,1713473794,X'4be0eb7e285ada30a18bc7f1efdd097af6691c887305a7f67047ac2437d8e75b2b91f719',NULL,NULL,NULL,839829,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(71,NULL,13,262208,1874279784426261997,1713473833,X'0863efb25e910eb70ee81b5f1ac440140f1bf522e40c7fb6daa27780954c752597be39d8',NULL,X'0c446a30b98a666f9f94c8e80d584d1ffd150529883cd6359d682b1acb0681f116',NULL,839829,4086865643970418626,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(72,NULL,11,128,-3075740217706699758,1714681451,X'906d17d26b952d4cf97004a4a715d91267e6295d7d4f25909231c209b44e6539d62969f7',X'322064f6dfad70ebb481164cb5798f0df472cb0ff6281bd4d9041743e2d8d20c',X'd356c6456ae2ad1debfabdc985acbfca59d641391db2fe6546677de5f006725d79',NULL,841822,2736121925540689015,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(73,NULL,7,16384,3809782765066827760,1714681452,X'46b1f54a2cfb104f09d7485e5a2e1d22cc74fbef152f096042746d264568a02860b5111b',NULL,NULL,NULL,841822,4320351549426745310,NULL,11,NULL);"),
SQL("INSERT INTO chain_moves VALUES(74,NULL,1,1,1633446746905288681,1714811324,X'f2c5683f8605f278775e2c52d2eeed9c9ae2d8fa596d6d846e52bb8d6ed4d198716c8cf6',NULL,NULL,NULL,842027,1413438094813292177,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(75,NULL,11,256,765777774065444747,1714811324,X'045d55b2fbc66b14d50f51d0fd0820435e6d54a5efde002f03ebf1bd950d8542cc7fe873',NULL,X'd356c6456ae2ad1debfabdc985acbfca59d641391db2fe6546677de5f006725d79',NULL,841822,2605220280273455446,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(76,NULL,11,4096,-765777774065444747,1714811324,X'045d55b2fbc66b14d50f51d0fd0820435e6d54a5efde002f03ebf1bd950d8542cc7fe873',X'0d19ebd21e20a6bba96513966c3e9e2606abcdaec58df28e834d1e7a2ac3aa93',X'd356c6456ae2ad1debfabdc985acbfca59d641391db2fe6546677de5f006725d79',NULL,842027,2605220280273455446,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(77,NULL,9,128,-2936306087296448349,1722329619,X'd33b63d6d6e6b553cef56842cf60b7a6b9e65edeac0a7426094e206d63ffcab4524aeeb4',X'2ab9da4b8614ef4122e0b7b545fd6f096a6dc0b0584639f9ab579b511a97d3e8',X'781517b73792151961980e0ebc08cb989a27512783c8e3ae0d49b1fc76fef13993',NULL,854637,3087730977722107513,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(78,NULL,7,16384,3734209353696972396,1722329620,X'1bc72c6274bf9b15e3c14a2726d7d9bdf55fc63e933a2ea3ae13063f10dd6915cc05cc8b',NULL,NULL,NULL,854637,1539054457737988252,NULL,9,NULL);"),
SQL("INSERT INTO chain_moves VALUES(79,NULL,1,1,3317182195289328212,1722450189,X'0b9b48c39ee037211a9baf0908a1aeb5f4f5d3adc86e6bfdd70556319af2f18b4794f0ab',NULL,NULL,NULL,854842,961007885582066804,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(80,NULL,9,256,1915361967176428745,1722450190,X'224b733063801b56829a9b19447bf221d9848df37a8d62a3dfcbcc96408593b8d587abdd',NULL,X'781517b73792151961980e0ebc08cb989a27512783c8e3ae0d49b1fc76fef13993',NULL,854637,866312025816686018,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(81,NULL,9,4096,-1915361967176428745,1722450190,X'224b733063801b56829a9b19447bf221d9848df37a8d62a3dfcbcc96408593b8d587abdd',X'10fd569fdb66ffc6113378f178431771336747ba8b7500429f3f81486e6ea2a6',X'781517b73792151961980e0ebc08cb989a27512783c8e3ae0d49b1fc76fef13993',NULL,854842,866312025816686018,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(82,NULL,3,128,-2345196004380687401,1723970074,X'9307165c229d099a5add379c8d94f3f7df60734af5fcaa5ae780c24e0db0c16fb91e9a41',X'4c14b29984add04a29f8c5b8115a09bb1013bd5ee751053773b4d42a6f9f3d13',X'504187560942d202146ea0b25372303fb9db91647a10319097a5e406cf1d16a7d2',NULL,857308,3098771700292012016,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(83,NULL,7,16384,1441764870717350486,1723970075,X'0717cdfd2725fbdd7e526848de3c5a01595a0b289545583c6598295a9a22e0eae3a85b28',NULL,NULL,NULL,857308,3184784605579421204,NULL,3,NULL);"),
SQL("INSERT INTO chain_moves VALUES(84,NULL,1,1,2651959438320148249,1724154973,X'bb732400492b8de6442d8a095aec31a6b3ec71c42f58515612aac1f5bfc639b84335f7c3',NULL,NULL,NULL,857610,1290075522522883098,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(85,NULL,3,256,110362534854406184,1724154973,X'f01ce7ec282b910cde8eedf7b3a0a14fbb561c83892d8dc75448117ad83cf5e515d7915b',NULL,X'504187560942d202146ea0b25372303fb9db91647a10319097a5e406cf1d16a7d2',NULL,857308,1145802966936347850,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(86,NULL,3,4096,-110362534854406184,1724154973,X'f01ce7ec282b910cde8eedf7b3a0a14fbb561c83892d8dc75448117ad83cf5e515d7915b',X'f03a48cfe3ff568e3da767c4122a23c5140199c4beef158ade6ba02852cd1438',X'504187560942d202146ea0b25372303fb9db91647a10319097a5e406cf1d16a7d2',NULL,857610,1145802966936347850,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(87,NULL,14,64,0,1724295393,X'410286dcc25dabe1b57a011e896dc35e88ef33d68110dd1ad539cf9475c0b7ba87016f15',NULL,X'55910417a7e9819fd20dac68c7a6c99c2808fd924146ccf518c5b9fbd0171f436f',NULL,857849,1476006037269115109,NULL,NULL,1);"),
SQL("INSERT INTO chain_moves VALUES(88,NULL,14,128,0,1724926481,X'410286dcc25dabe1b57a011e896dc35e88ef33d68110dd1ad539cf9475c0b7ba87016f15',X'7e6fb7a8752fd6882b25670bb2851baf90bee82602b6e65aab0fb399bd8986e0',X'55910417a7e9819fd20dac68c7a6c99c2808fd924146ccf518c5b9fbd0171f436f',NULL,858946,1476006037269115109,NULL,NULL,1);"),
SQL("INSERT INTO chain_moves VALUES(89,NULL,7,16384,974239553734335066,1724926481,X'1a49dbf5d6e7fe2a243617c882d7fc87eecd6a9c1aaffa5732ae49c0a94b3a0aaeb5e2fe',NULL,NULL,NULL,858946,1705191068029294022,NULL,14,NULL);"),
SQL("INSERT INTO chain_moves VALUES(90,NULL,15,64,0,1726946941,X'0499dbfe951b3ea27930be17b4486675dc55601dc49de82db2834c367a7a59767afda06e',NULL,X'd3bcff0fdcdc6837411e666fca158288fd7612d9b9e51d9cfb2f532a58cca8d3d7',NULL,862279,4583560711567770718,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(91,NULL,13,128,-3375467920630885105,1728532861,X'0863efb25e910eb70ee81b5f1ac440140f1bf522e40c7fb6daa27780954c752597be39d8',X'f6a1553d9960baf6edb5e037662626604b20c969f21dfa334e23aa4323a44f47',X'0c446a30b98a666f9f94c8e80d584d1ffd150529883cd6359d682b1acb0681f116',NULL,864987,4086865643970418626,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(92,NULL,7,8192,650435257441666850,1728532863,X'e6d9d2f131e8b63333149d8a96a20e750c776469386af4dfc6193afbb82591d5323efef0',NULL,NULL,NULL,864987,615095005453626630,NULL,13,NULL);"),
SQL("INSERT INTO chain_moves VALUES(93,NULL,7,8192,650435257441666850,1728532863,X'3992a721defea71258885eea6778ec4102663f2843420df7c8cca1bd93c1f9bf5f14b76f',NULL,NULL,NULL,864987,615095005453626630,NULL,13,NULL);"),
SQL("INSERT INTO chain_moves VALUES(94,NULL,7,16384,3236261121243803391,1728532863,X'afc731f3a96bc732c72abc3fcd9d9c4908e7b857a751075d2f37bc9ae419271c129cbebf',NULL,NULL,NULL,864987,245069207314223361,NULL,13,NULL);"),
SQL("INSERT INTO chain_moves VALUES(95,NULL,1,1,4502207543567594591,1728702686,X'2506d3bbf5846a99581af9b441163e8d0f0635a302e1b6d0f566fa1aeb6db3c7c8ef22d8',NULL,NULL,NULL,865270,3378166233821159855,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(96,NULL,13,256,767519259871841757,1728702686,X'03705f6e9068ddf02aa4e81c748fdfb813646e715b0b8d88b914180d466f14dffa52c4c0',NULL,X'0c446a30b98a666f9f94c8e80d584d1ffd150529883cd6359d682b1acb0681f116',NULL,864987,2439599683301263178,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(97,NULL,13,4096,-767519259871841757,1728702686,X'03705f6e9068ddf02aa4e81c748fdfb813646e715b0b8d88b914180d466f14dffa52c4c0',X'0020569712ddd5ffc9d7bb77f42f083b57ed60e1266fedb7a11501cfa097beb6',X'0c446a30b98a666f9f94c8e80d584d1ffd150529883cd6359d682b1acb0681f116',NULL,865270,2439599683301263178,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(98,NULL,2,128,-2676933296822926514,1729489077,X'10c2cdbc7bf0f77dbd752ec214700edfcca37e51bbab97691458ca6478ea79d15593f10f',X'4445b6eac617700b3ffa8e7277377191a1d2a0c6299ebbe418b877185f732a4e',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,866656,3347606868495301304,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(99,NULL,7,16384,4031124929465967061,1729489078,X'bd23044b47e87c6d65fec662a67dc01466ff785443272e266842c3c6d5faa5f09e69a446',NULL,NULL,NULL,866656,1776655648865817712,NULL,2,NULL);"),
SQL("INSERT INTO chain_moves VALUES(100,NULL,2,1024,1995671032812047674,1729489380,X'299a454efaf9461e9d9bd03c9d8fc7fbdd589571d8b66c9b39689531dbfa07644b4b4f57',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',X'36b02c41b85a4c6082cc1d3db871fabf315507988bbf395a72c6433a844714c7',866656,2757686456625040389,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(101,NULL,2,1024,-1995671032812047674,1729489380,X'299a454efaf9461e9d9bd03c9d8fc7fbdd589571d8b66c9b39689531dbfa07644b4b4f57',X'38cdf182621a763f653460eb683a734acfc35b81d67691fc60b1020d91420d68',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,866657,2757686456625040389,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(102,NULL,7,512,1995671032812047674,1729516841,X'299a454efaf9461e9d9bd03c9d8fc7fbdd589571d8b66c9b39689531dbfa07644b4b4f57',NULL,NULL,NULL,866656,2757686456625040389,NULL,2,NULL);"),
SQL("INSERT INTO chain_moves VALUES(103,NULL,1,1,3586847186561915188,1729718586,X'43ad448a8414ba2ac4f902f132ba26862589badd9fd9ef51593eba2e281199963dd59e4f',NULL,NULL,NULL,867056,2682365636857729776,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(104,NULL,2,256,3022520901007623543,1729718587,X'2df99ad5a9b64fb3ec64a1107571276b832a529a24152833d99c3a57db6c2f511c693086',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,866656,2866863612772368667,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(105,NULL,2,4096,-3022520901007623543,1729718587,X'2df99ad5a9b64fb3ec64a1107571276b832a529a24152833d99c3a57db6c2f511c693086',X'55a53b0c5e14f4dac69d340b9629915e3534b1c43cde2f90a0389052c82c9e28',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,867056,2866863612772368667,NULL,NULL,3);"),
SQL("INSERT INTO chain_moves VALUES(106,NULL,1,2,-3586847186561915188,1729769843,X'43ad448a8414ba2ac4f902f132ba26862589badd9fd9ef51593eba2e281199963dd59e4f',X'7745695511ed7897ded632df952f8a4f7c5c3d8629bc88a51afa6a15e126336c',NULL,NULL,867136,2682365636857729776,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(107,NULL,1,2,-1633446746905288681,1729769843,X'f2c5683f8605f278775e2c52d2eeed9c9ae2d8fa596d6d846e52bb8d6ed4d198716c8cf6',X'7745695511ed7897ded632df952f8a4f7c5c3d8629bc88a51afa6a15e126336c',NULL,NULL,867136,1413438094813292177,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(108,NULL,1,2,-3317182195289328212,1729769843,X'0b9b48c39ee037211a9baf0908a1aeb5f4f5d3adc86e6bfdd70556319af2f18b4794f0ab',X'7745695511ed7897ded632df952f8a4f7c5c3d8629bc88a51afa6a15e126336c',NULL,NULL,867136,961007885582066804,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(109,NULL,1,2,-4502207543567594591,1729769843,X'2506d3bbf5846a99581af9b441163e8d0f0635a302e1b6d0f566fa1aeb6db3c7c8ef22d8',X'7745695511ed7897ded632df952f8a4f7c5c3d8629bc88a51afa6a15e126336c',NULL,NULL,867136,3378166233821159855,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(110,NULL,1,2,-2275089577505042541,1729769843,X'4be0eb7e285ada30a18bc7f1efdd097af6691c887305a7f67047ac2437d8e75b2b91f719',X'7745695511ed7897ded632df952f8a4f7c5c3d8629bc88a51afa6a15e126336c',NULL,NULL,867136,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(111,NULL,1,1,3119924309746554214,1729769845,X'7d2102f4081b33f955393448dc6f664f23d7db98443de52ad6b709fa7b3fc92a00113287',NULL,NULL,NULL,867136,871023312883204291,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(112,NULL,16,262208,1025352579819710830,1729771871,X'74b1a671770835a51dc3f1371f072103eaf37d2b22b6bff0c68602f73721860f5297c7bc',NULL,X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,867136,1015008858229484045,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(113,NULL,1,1,298176585891364645,1732437431,X'8510e729505988afc0d921a96939e7799ccfef31607aa5b6cedd735d74c9117c42bbd6a0',NULL,NULL,NULL,871731,3740692629376106296,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(114,NULL,1,2,-298176585891364645,1732438879,X'8510e729505988afc0d921a96939e7799ccfef31607aa5b6cedd735d74c9117c42bbd6a0',X'2efeda95d69363d9df4bfb975a08be87d49cc79d1902730341d08947a0a1ce88',NULL,NULL,871734,3740692629376106296,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(115,NULL,17,262208,4571274150123266743,1732439393,X'5a42911712b154f0d1548e96e3f2e5f3fd63479b63eb201c6437576300b02eedfa3575f5',NULL,X'0fb4ec13be0d876fc3079c15c81effc56901e208dedc3a02e88177cbb94bc1df90',NULL,871734,1384584939663130247,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(116,NULL,1,1,3104000624793132117,1732443477,X'b404c547a5e193cbd1b978bb63c2c2c76cc2fd8179bdfb881ed9126bea13ced0aa84489d',NULL,NULL,NULL,871741,1724715800563885340,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(117,NULL,1,2,-3104000624793132117,1732446460,X'b404c547a5e193cbd1b978bb63c2c2c76cc2fd8179bdfb881ed9126bea13ced0aa84489d',X'7f5464a42f42d881d567b7a401390a91519fae6a437476796ad4b141491b679c',NULL,NULL,871744,1724715800563885340,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(118,NULL,18,262208,1619920080659339061,1732449686,X'427825482bd584123cdd6efc9c94d39c8a5103c480a2ecf1c49c52bd4ce1fa53dec8d58d',NULL,X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,871744,814522978316396936,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(119,NULL,1,1,967142192314306803,1733820254,X'9704508aa31493bf7efe934ce2c428b71180a539fbc63e1c73b0b05e26c5ae1ee8e5e7d7',NULL,NULL,NULL,874079,46245226490180713,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(120,NULL,1,2,-2651959438320148249,1733824150,X'bb732400492b8de6442d8a095aec31a6b3ec71c42f58515612aac1f5bfc639b84335f7c3',X'ff2cd16df0a6a07e6556d3ac61ad475d1cd34ac3bc71680ba3079837d85a6064',NULL,NULL,874087,1290075522522883098,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(121,NULL,1,2,-3119924309746554214,1733824150,X'7d2102f4081b33f955393448dc6f664f23d7db98443de52ad6b709fa7b3fc92a00113287',X'ff2cd16df0a6a07e6556d3ac61ad475d1cd34ac3bc71680ba3079837d85a6064',NULL,NULL,874087,871023312883204291,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(122,NULL,1,2,-967142192314306803,1733824150,X'9704508aa31493bf7efe934ce2c428b71180a539fbc63e1c73b0b05e26c5ae1ee8e5e7d7',X'ff2cd16df0a6a07e6556d3ac61ad475d1cd34ac3bc71680ba3079837d85a6064',NULL,NULL,874087,46245226490180713,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(123,NULL,1,1,2275089577505042541,1733824152,X'11b45e278e9f09bae1aa7a601d6808b1a24c9a77ecc5af73df6631bf44d9ffec278e345b',NULL,NULL,NULL,874087,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(124,NULL,19,262208,3788905661120338157,1733826031,X'70fee06b0f950aa2ccebe29cbbd325edf8240c437620cab2283ccf84f20796ee733e6f47',NULL,X'01580dabb4cf4b09c73d989f65a65ccb5a9d46a1143bdebe123cd0e31c9b16e0d6',NULL,874087,992952082252583417,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(125,NULL,17,128,-2440935417059062219,1735123377,X'5a42911712b154f0d1548e96e3f2e5f3fd63479b63eb201c6437576300b02eedfa3575f5',X'50b1f1283b128270a69c66920cce84f9cd4f4e08d1dfb3d7e335b51c2b7f32f5',X'0fb4ec13be0d876fc3079c15c81effc56901e208dedc3a02e88177cbb94bc1df90',NULL,876299,1384584939663130247,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(126,NULL,7,8192,650435257441666850,1735123377,X'ee02e5873c88259d3d3f5614e687f25bc3daab7e4313af9d8120037688159683ec9041b0',NULL,NULL,NULL,876299,615095005453626630,NULL,17,NULL);"),
SQL("INSERT INTO chain_moves VALUES(127,NULL,7,8192,650435257441666850,1735123377,X'7897c756504176855255da8a37f3b9ca73b274060e9c6602fb3e50e6f2ca18f7fa5bdbcd',NULL,NULL,NULL,876299,615095005453626630,NULL,17,NULL);"),
SQL("INSERT INTO chain_moves VALUES(128,NULL,7,16384,348838921661829401,1735123379,X'60b8499921eff22053d395936c100f2f4668a60dd597edc6b29f9f8dca3fc4da606760d8',NULL,NULL,NULL,876299,4154076709932683421,NULL,17,NULL);"),
SQL("INSERT INTO chain_moves VALUES(129,NULL,1,1,4410104760272345144,1735155741,X'e305f2d2d36e2349c2dc1e1968fd3290220c25da2c432f63b8e871a4d71567b5274d262e',NULL,NULL,NULL,876360,835259545472225715,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(130,NULL,1,2,-4410104760272345144,1735156478,X'e305f2d2d36e2349c2dc1e1968fd3290220c25da2c432f63b8e871a4d71567b5274d262e',X'cf3dfd81f8bc2a3a1961405c531ff1ca95bf640d7467178008f5808558352b04',NULL,NULL,876363,835259545472225715,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(131,NULL,20,262208,1728036815231106245,1735156638,X'890e362518242a2cdbcc4c47cd73691476382cbdc4b084d0d82e141bdbefda9457500096',NULL,X'33c038f2a438a2d9eb5344db8432406908a30fabf16a8ee7620361adf747751105',NULL,876363,1870769406550727050,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(132,NULL,1,1,2585165940672027798,1735261497,X'1da5744c43ab6995084e1e7144026e60ade634454dceaa6cee86b8ac1d6a10a4db8a3b97',NULL,NULL,NULL,876517,3780090494744428625,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(133,NULL,17,256,479563846904907197,1735261497,X'765f79d59f5d8d9ff2f7e8f057b8eb02a21ec4e76fed9f742e980b1b54586e2b40bb1ea6',NULL,X'0fb4ec13be0d876fc3079c15c81effc56901e208dedc3a02e88177cbb94bc1df90',NULL,876299,4262839217487052490,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(134,NULL,17,4096,-479563846904907197,1735261497,X'765f79d59f5d8d9ff2f7e8f057b8eb02a21ec4e76fed9f742e980b1b54586e2b40bb1ea6',X'fb40b81a4615129ffcb47f5ec311abb88c84b084977df9ecc9d37f4834a82c87',X'0fb4ec13be0d876fc3079c15c81effc56901e208dedc3a02e88177cbb94bc1df90',NULL,876517,4262839217487052490,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(135,NULL,1,1,2856127695296955422,1735271528,X'a5484626763c826169480ab17e088e51c7233ebbee9e70364ca0aa84041a0670bd291eff',NULL,NULL,NULL,876542,438208460792070374,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(136,NULL,1,2,-2585165940672027798,1735274605,X'1da5744c43ab6995084e1e7144026e60ade634454dceaa6cee86b8ac1d6a10a4db8a3b97',X'fd64891e7dfb0074901077ca74fd65527ea275aab372e89295bffee4148a4205',NULL,NULL,876545,3780090494744428625,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(137,NULL,1,2,-2856127695296955422,1735274605,X'a5484626763c826169480ab17e088e51c7233ebbee9e70364ca0aa84041a0670bd291eff',X'fd64891e7dfb0074901077ca74fd65527ea275aab372e89295bffee4148a4205',NULL,NULL,876545,438208460792070374,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(138,NULL,21,262208,3916799911907391241,1735274759,X'd6c6157f3ec44f160bb72a75286eeafa294525d483b75d6ff9c18fa5d316a8069725aed2',NULL,X'1e4e82ecdf3bc66ad4f8a9858469cb5ee99dde9731aaa16a7f495cbe511e050782',NULL,876545,1652830886015361303,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(139,NULL,18,128,-1843168891002143746,1735301033,X'427825482bd584123cdd6efc9c94d39c8a5103c480a2ecf1c49c52bd4ce1fa53dec8d58d',X'd7a3dce3d06468a8946dd60a7edac75743283ea7c4e3521274fb1d7f6d9c5769',X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,876589,814522978316396936,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(140,NULL,7,8192,650435257441666850,1735301037,X'9fc5a8ba513debf5e11d48f7ee843ada4684992fc85be463f1f838b62a50cbe2460b0468',NULL,NULL,NULL,876589,615095005453626630,NULL,18,NULL);"),
SQL("INSERT INTO chain_moves VALUES(141,NULL,7,8192,650435257441666850,1735301037,X'4292fadab73b783ff686946adca16473cb720706a6e22867d867cc50beb5d17c94cbae5e',NULL,NULL,NULL,876589,615095005453626630,NULL,18,NULL);"),
SQL("INSERT INTO chain_moves VALUES(142,NULL,7,16384,2235890907501922526,1735301037,X'f5dc3088966795c3557f01364d3532ab066f4c1ddcc3e75c40360f1ed45d778bdae10293',NULL,NULL,NULL,876589,1742908200252555707,NULL,18,NULL);"),
SQL("INSERT INTO chain_moves VALUES(143,NULL,1,2,-2275089577505042541,1735301311,X'11b45e278e9f09bae1aa7a601d6808b1a24c9a77ecc5af73df6631bf44d9ffec278e345b',X'5cc66246f4783d28864fb86efebfab8cebd0cac21761fdf031462384615718e2',NULL,NULL,876591,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(144,NULL,1,1,4443247542136349058,1735301313,X'a4243f3a1ad940b6fdfd3fa96aa9eecfd93ae7043529d3a2a74d6b2a84e9b64a53a0fe89',NULL,NULL,NULL,876591,4440779045472877264,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(145,NULL,18,1024,1872599101502984385,1735301313,X'e1c8fc993fc71a2680ab86d91ddcfd85a6b0127ebf48d33f96c0a3d461435b5d74ad67ac',NULL,X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',X'096e1ab6074306b0a221a2ff5e2e22ea4636e4a387bbc45d3fc6c320a2119830',876589,4050641445642261125,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(146,NULL,18,1024,-1872599101502984385,1735301313,X'e1c8fc993fc71a2680ab86d91ddcfd85a6b0127ebf48d33f96c0a3d461435b5d74ad67ac',X'5cc66246f4783d28864fb86efebfab8cebd0cac21761fdf031462384615718e2',X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,876591,4050641445642261125,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(147,NULL,1,1,1882846673487903401,1735575249,X'da68081bb6ac4efb977fe22e3f4c17e9dc645c58c2940125f5d3d138a63b7903ecd54673',NULL,NULL,NULL,877070,2373230926729851864,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(148,NULL,18,256,3489899007958857998,1735575249,X'0daeb29af02b28ca674510b024d7aba7abe549e1532072d308b762d7b567cdc91c5df1bb',NULL,X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,876589,2133960760075793555,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(149,NULL,18,4096,-3489899007958857998,1735575249,X'0daeb29af02b28ca674510b024d7aba7abe549e1532072d308b762d7b567cdc91c5df1bb',X'1f7df2b5dcdebf53ba76e757a6cf620e89b70e0ec73978faf7f1a6ca745eccf8',X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,877070,2133960760075793555,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(150,NULL,1,1,4110316909617027350,1735575493,X'bc3b7e3589a2ffdb2755b37a8f108701cb168400a613563a4316eae353b22729515b8673',NULL,NULL,NULL,877071,2755904494491152687,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(151,NULL,18,2048,1872599101502984385,1735575493,X'09dd5794b04aedd30445102aac40f21cfb08498717a2cf5dbde14fbc512bb39b22241ed0',NULL,X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,876591,4050641445642261125,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(152,NULL,18,4096,-1872599101502984385,1735575493,X'09dd5794b04aedd30445102aac40f21cfb08498717a2cf5dbde14fbc512bb39b22241ed0',X'979158156d5c15a751e5d8504e809695560bba049e81ea8c57af4f40022d1ee2',X'7a573b2d961d75d725ce7b5e21a11d106d8256b2c21b7e54f7e498403dfd40fa44',NULL,877071,4050641445642261125,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(153,NULL,1,1,4137563552924779143,1735576438,X'7e343a38916a15ab56fdbec236d7400a04d79ab9f2c4037a4154f25e7141f08286f69222',NULL,NULL,NULL,877074,1666728033095157503,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(154,NULL,1,2,-4110316909617027350,1735580647,X'bc3b7e3589a2ffdb2755b37a8f108701cb168400a613563a4316eae353b22729515b8673',X'c88cf5bd0cc0613726e7987ebcfe92ace7490702d809aa45a9dd4b3dcf7fffc3',NULL,NULL,877082,2755904494491152687,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(155,NULL,1,2,-4443247542136349058,1735580647,X'a4243f3a1ad940b6fdfd3fa96aa9eecfd93ae7043529d3a2a74d6b2a84e9b64a53a0fe89',X'c88cf5bd0cc0613726e7987ebcfe92ace7490702d809aa45a9dd4b3dcf7fffc3',NULL,NULL,877082,4440779045472877264,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(156,NULL,1,2,-1882846673487903401,1735580647,X'da68081bb6ac4efb977fe22e3f4c17e9dc645c58c2940125f5d3d138a63b7903ecd54673',X'c88cf5bd0cc0613726e7987ebcfe92ace7490702d809aa45a9dd4b3dcf7fffc3',NULL,NULL,877082,2373230926729851864,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(157,NULL,1,2,-4137563552924779143,1735580647,X'7e343a38916a15ab56fdbec236d7400a04d79ab9f2c4037a4154f25e7141f08286f69222',X'c88cf5bd0cc0613726e7987ebcfe92ace7490702d809aa45a9dd4b3dcf7fffc3',NULL,NULL,877082,1666728033095157503,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(158,NULL,1,1,2275089577505042541,1735580649,X'41580ed2340ead4d74ca3decf159b4e1bdd8addc65e558d57c833939dfcd75482b310f45',NULL,NULL,NULL,877082,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(159,NULL,22,262208,716659744514203749,1735581839,X'f2851de570c2855adcf2d19b31957f261bdc90d9d6430d16514cfda48623397a06d35ec7',NULL,X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877082,2340705724665246895,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(160,NULL,22,128,-1764075605339478342,1735847775,X'f2851de570c2855adcf2d19b31957f261bdc90d9d6430d16514cfda48623397a06d35ec7',X'd283f84338bd6d95be539e1674f8004725fb18c28d01b13d1a3db26d51ce94f1',X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877540,2340705724665246895,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(161,NULL,7,8192,650435257441666850,1735847777,X'77fa2befd7cda32f7e03fc2cdfe1ae51c89f93f537a983e10efb3c3edb326ae4e99f5154',NULL,NULL,NULL,877540,615095005453626630,NULL,22,NULL);"),
SQL("INSERT INTO chain_moves VALUES(162,NULL,7,8192,650435257441666850,1735847777,X'60a4a0f89e2ea90fc037e0b223b9528bfee95ae805c325fa2d007f21de2951a92230fa54',NULL,NULL,NULL,877540,615095005453626630,NULL,22,NULL);"),
SQL("INSERT INTO chain_moves VALUES(163,NULL,7,16384,3092172579726020191,1735847777,X'94f530a9e9b56a4dfd096a620975446985842e69a7eee91f4539dd92f4d8e4a2b6be911f',NULL,NULL,NULL,877540,2163153098586280327,NULL,22,NULL);"),
SQL("INSERT INTO chain_moves VALUES(164,NULL,1,2,-2275089577505042541,1735847837,X'41580ed2340ead4d74ca3decf159b4e1bdd8addc65e558d57c833939dfcd75482b310f45',X'ae3c0a933924b9147ee3fcfd0b0bbfa5bd90f3fc393f2afb6f34fe3e2203dc9e',NULL,NULL,877541,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(165,NULL,1,1,4579943644798944726,1735847841,X'624d42bb8666df7d05bd0902caf2580c7e6b64eb7e01124d5aac2d951ebebe5a2f23aaf9',NULL,NULL,NULL,877541,2824199420396326384,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(166,NULL,22,1024,3887612352109465748,1735847841,X'07b0efdc9fb0248797c3d8004fb1b108423ee29556bd602f4d2a3796253b60884f1064b0',NULL,X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',X'34101c0bcfbc54c38069ad6811e2a6e93f846970b25ea617ed3b2b0f84c2c070',877540,3526706581314547386,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(167,NULL,22,1024,-3887612352109465748,1735847841,X'07b0efdc9fb0248797c3d8004fb1b108423ee29556bd602f4d2a3796253b60884f1064b0',X'ae3c0a933924b9147ee3fcfd0b0bbfa5bd90f3fc393f2afb6f34fe3e2203dc9e',X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877541,3526706581314547386,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(168,NULL,1,1,2533122811975559625,1735935494,X'23ad869ac398c102dfdeb43078f721f879dafffa5c9154629b2d76ac9fbbda50eecd6c28',NULL,NULL,NULL,877686,1959991115547205236,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(169,NULL,1,1,832991094762878384,1735935496,X'aecc662898ea1825e4562904275e54b98343e3ce8c082dceb67aae2a8dfa4350ae77a233',NULL,NULL,NULL,877686,3817890179242448024,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(170,NULL,22,256,3710988229588837732,1735935496,X'2154ef3cc3dc5b5c0605d9103f790c36467c3ea124a1e00b4a1238be65c8d2dc0cd9eebb',NULL,X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877540,2637457316395661247,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(171,NULL,22,4096,-3710988229588837732,1735935496,X'2154ef3cc3dc5b5c0605d9103f790c36467c3ea124a1e00b4a1238be65c8d2dc0cd9eebb',X'394948d00b7e0855aa62ad0ff9f7ba64b14608121d1014aff3cdf5af6ac82bb5',X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877686,2637457316395661247,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(172,NULL,22,2048,3887612352109465748,1735935496,X'911bc462ab2a5af9a0e5dfd86ecea55b1703e4855cdb8ab4286a8b90174314cb0d72440d',NULL,X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877541,3526706581314547386,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(173,NULL,22,4096,-3887612352109465748,1735935496,X'911bc462ab2a5af9a0e5dfd86ecea55b1703e4855cdb8ab4286a8b90174314cb0d72440d',X'de8dbd371361d7e377f3262dcf1e77da57dfb124b0341047ca56696e6ec50529',X'f1471c4c061aa5d359de5ce66805a7ea4757f4925219d9f12627b5f6b93a924552',NULL,877686,3526706581314547386,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(174,NULL,1,1,4273610125016454074,1735961871,X'7459275b2afc51224cb4880e6573279af836be66b8498b918738555ebcb4d6b7a6406db5',NULL,NULL,NULL,877733,1842495629598575381,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(175,NULL,1,1,64717531201935777,1735970441,X'237545454d96bea86c22ce4f64793aabf30528ab8fc52ac8ce4cc017209baf1e1637ad10',NULL,NULL,NULL,877743,4202969267390316985,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(176,NULL,1,2,-4579943644798944726,1735997311,X'624d42bb8666df7d05bd0902caf2580c7e6b64eb7e01124d5aac2d951ebebe5a2f23aaf9',X'703b189c9a5c12ee5ffad29ff84ccd79c8c290e9d8b68340bb7f16dfe2407fcb',NULL,NULL,877788,2824199420396326384,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(177,NULL,1,2,-64717531201935777,1735997311,X'237545454d96bea86c22ce4f64793aabf30528ab8fc52ac8ce4cc017209baf1e1637ad10',X'703b189c9a5c12ee5ffad29ff84ccd79c8c290e9d8b68340bb7f16dfe2407fcb',NULL,NULL,877788,4202969267390316985,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(178,NULL,1,2,-832991094762878384,1735997311,X'aecc662898ea1825e4562904275e54b98343e3ce8c082dceb67aae2a8dfa4350ae77a233',X'703b189c9a5c12ee5ffad29ff84ccd79c8c290e9d8b68340bb7f16dfe2407fcb',NULL,NULL,877788,3817890179242448024,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(179,NULL,1,2,-2533122811975559625,1735997311,X'23ad869ac398c102dfdeb43078f721f879dafffa5c9154629b2d76ac9fbbda50eecd6c28',X'703b189c9a5c12ee5ffad29ff84ccd79c8c290e9d8b68340bb7f16dfe2407fcb',NULL,NULL,877788,1959991115547205236,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(180,NULL,1,2,-4273610125016454074,1735997311,X'7459275b2afc51224cb4880e6573279af836be66b8498b918738555ebcb4d6b7a6406db5',X'703b189c9a5c12ee5ffad29ff84ccd79c8c290e9d8b68340bb7f16dfe2407fcb',NULL,NULL,877788,1842495629598575381,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(181,NULL,1,1,2275089577505042541,1735997314,X'ba4279356e00be668d7e41e5636dbc07c4a0a266b2877fed2599513149fb048f3c5ae654',NULL,NULL,NULL,877788,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(182,NULL,23,262208,317889810638737034,1735997471,X'6dc956fa6d8ad036f84764beef9376ada2f4267bcd508bb97e6021b86dc9bb57a5f868b2',NULL,X'7b02eb80ecd230bee728e3b3971fe9e33e72a0ce4b3d141cf3ac182cd53bcd0fae',NULL,877788,421375346367903791,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(183,NULL,1,1,2254342828543429373,1736031849,X'85d3b96ceaca2af2347bd5b3c1d35966c56a645297cc98c653131f4194afa540486a7b4a',NULL,NULL,NULL,877852,1896024850479399550,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(184,NULL,23,128,-3805230309517340681,1736031853,X'6dc956fa6d8ad036f84764beef9376ada2f4267bcd508bb97e6021b86dc9bb57a5f868b2',X'e3b8ab7825118d3b4023c4cf921f326f86c8e82c75c74f90e7492257c7678f2f',X'7b02eb80ecd230bee728e3b3971fe9e33e72a0ce4b3d141cf3ac182cd53bcd0fae',NULL,877852,421375346367903791,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(185,NULL,7,16384,1673196172065243776,1736031853,X'49cb55c79f632bc781ccb7ace448e07d0c2d1fd9f3ded139f0f16f92e3bcdddb82079cc5',NULL,NULL,NULL,877852,925585316725004549,NULL,23,NULL);"),
SQL("INSERT INTO chain_moves VALUES(186,NULL,24,64,0,1736203079,X'1025a76ef766dbed3aeb497d856c41504eb204d495fb453ef62aeb496958264c9c820875',NULL,X'ec9de3cc1786c0dd25f4ec0e82c956ccaaef44c70175c3f4e519235050f3a35e93',NULL,878132,11523472626215693,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(187,NULL,1,1,3588210115002915633,1736678440,X'2bdbe7e94a19e2bfbaf651f557f622ed6dfeef562f9086a9b44faa3b3062be18ae9f9876',NULL,NULL,NULL,878914,480541519376886413,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(188,NULL,10,128,-536429493426179581,1736678440,X'96316818bdf6fe56adff62d0a89df35981b6d4dd9bfda617d0020a412b3cab24dd22b5b6',X'bd7d58fc1bb823c02d9bfc85c82b61d98ad3e02a86a03fbac60032923084925a',X'777af8cb6a17a1f609eb458510e7e3de6f8dc3f5f2186d32fdbb7b7b4ad46b8add',NULL,878914,2109005249630167152,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(189,NULL,7,16384,2818152895002778261,1736678440,X'4e99011c635239f5f6a47313a4a551fe45c65a4bf10a78e57f96e14b60462ba0e8793558',NULL,NULL,NULL,878914,4047799290723266643,NULL,10,NULL);"),
SQL("INSERT INTO chain_moves VALUES(190,NULL,1,2,-2254342828543429373,1736680615,X'85d3b96ceaca2af2347bd5b3c1d35966c56a645297cc98c653131f4194afa540486a7b4a',X'3e11ccee64cfadedec1b7270c0e09f0fe1b3b14947ccdff0745d416012f552fe',NULL,NULL,878917,1896024850479399550,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(191,NULL,1,2,-3588210115002915633,1736680615,X'2bdbe7e94a19e2bfbaf651f557f622ed6dfeef562f9086a9b44faa3b3062be18ae9f9876',X'3e11ccee64cfadedec1b7270c0e09f0fe1b3b14947ccdff0745d416012f552fe',NULL,NULL,878917,480541519376886413,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(192,NULL,1,1,1592528609533523024,1736680617,X'5591ab4ca4a427a1507e915cc6139351708fa673f407baa74e10e32996219af57327d416',NULL,NULL,NULL,878917,4564555834509429243,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(193,NULL,25,262208,3617414054317858061,1736680859,X'd121a47a8e7573792340eb6b4e3c456c33462b331705573552a7e4f538816ec9e8217f49',NULL,X'0b2be54bd004106cbe1957ba7da2d9fe556fa72233ac6e421bb72f332c30a221e0',NULL,878917,2447508790313772770,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(194,NULL,26,262208,66393465842894528,1736681524,X'65dcec8d2dfb85e68c071e517aaa2d5d86ea36f98b51e2a14ee35ee3b63bb02e79034110',NULL,X'dbad1ad8381171bd3119e3ee867c3f2cbfecf2911616b1d5f59557c1ade6602607',NULL,878917,2087278122645093104,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(195,NULL,26,128,-66393465842894528,1736681524,X'65dcec8d2dfb85e68c071e517aaa2d5d86ea36f98b51e2a14ee35ee3b63bb02e79034110',X'81d71a7f23ed3d32a8cde7af943a04f9f5bfc1cd0955e64f41b8bf434cfbb379',X'dbad1ad8381171bd3119e3ee867c3f2cbfecf2911616b1d5f59557c1ade6602607',NULL,878920,2087278122645093104,NULL,NULL,2);"),
SQL("INSERT INTO chain_moves VALUES(196,NULL,7,8192,650435257441666850,1736681524,X'd8f9bfd7ed77d81a2bb159b8446e6719e12d9f1b60b47ee918b614e3191c2284b5b6bcb8',NULL,NULL,NULL,878920,615095005453626630,NULL,26,NULL);"),
SQL("INSERT INTO chain_moves VALUES(197,NULL,1,1,3731596108069095940,1736681524,X'f2a3b04afa9c763029b59b386fe2cc937973a76f32535ae9a9e9bfd0f7cd27b19e898e84',NULL,NULL,NULL,878920,4361884470385149099,NULL,26,NULL);"),
SQL("INSERT INTO chain_moves VALUES(198,NULL,1,2,-3731596108069095940,1736684577,X'f2a3b04afa9c763029b59b386fe2cc937973a76f32535ae9a9e9bfd0f7cd27b19e898e84',X'0e20070b22130a76a09d40955852f5ad2ae4c8b00d616d863eb75f9f8619eb45',NULL,NULL,878926,4361884470385149099,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(199,NULL,1,2,-1592528609533523024,1736684577,X'5591ab4ca4a427a1507e915cc6139351708fa673f407baa74e10e32996219af57327d416',X'0e20070b22130a76a09d40955852f5ad2ae4c8b00d616d863eb75f9f8619eb45',NULL,NULL,878926,4564555834509429243,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(200,NULL,1,1,3669098430761311690,1736684579,X'34b458365a0fd32df68d2257d7dd035e32ca18a6a3dc5e74b409aa93c4c317441aa0887d',NULL,NULL,NULL,878926,1452158899773869893,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(201,NULL,27,262208,3281710404628881798,1736685405,X'ecedd6843722ba500a03d03879fe63db9da491ccabc1c1ce5c7630cae7f153baf7f66137',NULL,X'4798438d93db359ce4cf22411e9716fd98f824dfbf80783517c6d11f5978be7684',NULL,878926,323698044276287539,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(202,NULL,1,1,1998644081095339722,1736687217,X'012e95a93b6ed641d87d15de39a95d9d636b775f0cc576ded571146674d4571176b5a479',NULL,NULL,NULL,878932,1802636172584762605,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(203,NULL,1,2,-3669098430761311690,1736688854,X'34b458365a0fd32df68d2257d7dd035e32ca18a6a3dc5e74b409aa93c4c317441aa0887d',X'3da90ec0327bf2c3af1b41dabc891f6399c0f67fc65fb5a907278738c43f17a7',NULL,NULL,878936,1452158899773869893,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(204,NULL,1,2,-1998644081095339722,1736688854,X'012e95a93b6ed641d87d15de39a95d9d636b775f0cc576ded571146674d4571176b5a479',X'3da90ec0327bf2c3af1b41dabc891f6399c0f67fc65fb5a907278738c43f17a7',NULL,NULL,878936,1802636172584762605,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(205,NULL,28,262208,3292531188142076201,1736690388,X'c1d8131eb111b75804bb31b034584898761f23f8d943e066476fe3916c0431b202976434',NULL,X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,878936,2919046847167135573,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(206,NULL,21,128,-2381503322241515948,1739056989,X'd6c6157f3ec44f160bb72a75286eeafa294525d483b75d6ff9c18fa5d316a8069725aed2',X'b4a2940bc7550afc8fd2d7e75b6bb3f61c99fbb32926dd2b2bcb0036e2d6614a',X'1e4e82ecdf3bc66ad4f8a9858469cb5ee99dde9731aaa16a7f495cbe511e050782',NULL,882951,1652830886015361303,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(207,NULL,7,8192,650435257441666850,1739056993,X'eda0f38811dfb01f55e465599415644febb148d85b1eaffdf3e37e1ccc9ace8675eecb38',NULL,NULL,NULL,882951,615095005453626630,NULL,21,NULL);"),
SQL("INSERT INTO chain_moves VALUES(208,NULL,7,8192,650435257441666850,1739056993,X'cf4b02c6b1c06a9d3b6d25d27ae931c8b3e66a6beeed634d6906f58a73d37c35359320b0',NULL,NULL,NULL,882951,615095005453626630,NULL,21,NULL);"),
SQL("INSERT INTO chain_moves VALUES(209,NULL,7,16384,3151254197993528684,1739056994,X'160efa847fb455b09f89b3cb1598bc9c2bccb047d17c27793202429e30efaa8f59640bf1',NULL,NULL,NULL,882951,304852237435504327,NULL,21,NULL);"),
SQL("INSERT INTO chain_moves VALUES(210,NULL,1,1,735161712639676031,1739146524,X'b6592eedc0451446d53fc34165dd9b9edea0b9b9850ef6bced1b22522ab7e84c4b49593e',NULL,NULL,NULL,883100,2384152127861125038,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(211,NULL,21,256,2799002673075700980,1739146524,X'96691014620f7216c766901d62f5b4b2178dd92a235e54c7ec9891f34e700e662035994f',NULL,X'1e4e82ecdf3bc66ad4f8a9858469cb5ee99dde9731aaa16a7f495cbe511e050782',NULL,882951,1493844822055926047,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(212,NULL,21,4096,-2799002673075700980,1739146524,X'96691014620f7216c766901d62f5b4b2178dd92a235e54c7ec9891f34e700e662035994f',X'8f7338a147ddab306ab714e751d4ac90551a208c99761249f12942109cd7c78f',X'1e4e82ecdf3bc66ad4f8a9858469cb5ee99dde9731aaa16a7f495cbe511e050782',NULL,883100,1493844822055926047,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(213,NULL,7,512,3152142697280974397,1739341001,X'f73b2c1062325f819c039e01fdcad314dd972edbdf4ff58ab6aea244b0d5fa4ad32c9a44',NULL,NULL,NULL,882951,2997467716814205920,NULL,21,NULL);"),
SQL("INSERT INTO chain_moves VALUES(214,NULL,28,128,-3520605600567389739,1740301001,X'c1d8131eb111b75804bb31b034584898761f23f8d943e066476fe3916c0431b202976434',X'0fe383bc666cb4e996ebf068623a011d82886e9577f1fe2285fdacb8d0b9b9dc',X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,884961,2919046847167135573,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(215,NULL,7,8192,650435257441666850,1740301003,X'6c51d31e84136cbc88a792ca6729c772378e8ff18a38bb2f6669009593daca07beecb776',NULL,NULL,NULL,884961,615095005453626630,NULL,28,NULL);"),
SQL("INSERT INTO chain_moves VALUES(216,NULL,7,8192,650435257441666850,1740301003,X'fdb4bcf777a342aa6e969b0e6aee71e000383d75ac5ad54243c9097f50b3973936e31f0f',NULL,NULL,NULL,884961,615095005453626630,NULL,28,NULL);"),
SQL("INSERT INTO chain_moves VALUES(217,NULL,7,16384,1918787716563594003,1740301003,X'661763d111af3382b012db5af3b07486fdab0c15d3cebb7b65d8dffa89f30170fd42ac89',NULL,NULL,NULL,884961,2679148595655335977,NULL,28,NULL);"),
SQL("INSERT INTO chain_moves VALUES(218,NULL,1,2,-735161712639676031,1740301304,X'b6592eedc0451446d53fc34165dd9b9edea0b9b9850ef6bced1b22522ab7e84c4b49593e',X'1664d36f4669a54562f81061bc52ab23e69891dd9753adfc0cb1f52bce18902b',NULL,NULL,884962,2384152127861125038,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(219,NULL,1,1,2454976170924127727,1740301306,X'e6f8f683b94fe31e8e33488c379f2f27aa829251f091db4021e190eaabaa41e66e9e6e91',NULL,NULL,NULL,884962,2181453735160384085,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(220,NULL,28,1024,980426472357672846,1740301306,X'34465fa141f30ae7d14d52ed2f46ca314177e95928cf97cf04a14bcbc1ba14a54cd7ed3f',NULL,X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',X'546082b573d57489d00bd7b0119d5601d4ba288dff1fa2233b89a21e6b8e7a62',884961,1889170197141827065,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(221,NULL,28,1024,-980426472357672846,1740301306,X'34465fa141f30ae7d14d52ed2f46ca314177e95928cf97cf04a14bcbc1ba14a54cd7ed3f',X'1664d36f4669a54562f81061bc52ab23e69891dd9753adfc0cb1f52bce18902b',X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,884962,1889170197141827065,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(222,NULL,1,1,3725966854972883252,1740464977,X'9e62767528b5b0804eb7a0094867181b124e64f7de0fdaa08ab0d8982eb271a43c6d4371',NULL,NULL,NULL,885210,801005254508466330,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(223,NULL,1,1,4273964152421053855,1740464979,X'4b0dbb5fcadaae4efa38609b4a55c6a58fc86be2099696438e0f1e835a4efdfeeebe4988',NULL,NULL,NULL,885210,493641614483580513,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(224,NULL,28,256,2315040402712098176,1740464979,X'39b1584656c20a595fcecbc772510d8cbb10e5c26eb09b5449cc70f67d969059edf001d6',NULL,X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,884961,1039502680276611781,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(225,NULL,28,4096,-2315040402712098176,1740464979,X'39b1584656c20a595fcecbc772510d8cbb10e5c26eb09b5449cc70f67d969059edf001d6',X'70cef20698266d369a5436ff9dfffb99b13b9820e7c403da36970319d62932cd',X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,885210,1039502680276611781,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(226,NULL,28,2048,980426472357672846,1740464979,X'10f45c4ed7a3cc4c6d71e97ffea3abd6ff6b5f94912e9212253c5a77a78d0dc2f767b636',NULL,X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,884962,1889170197141827065,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(227,NULL,28,4096,-980426472357672846,1740464979,X'10f45c4ed7a3cc4c6d71e97ffea3abd6ff6b5f94912e9212253c5a77a78d0dc2f767b636',X'5319abf73106bc5de789e8fc66e0db460aab5bf14fa010a2f75c08ec697cb70e',X'737bf7f3ff8f6e67e39ee54b976ec5753bf0dddd1f05568b4efd80735088274759',NULL,885210,1889170197141827065,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(228,NULL,16,128,-1449752245480045309,1740716659,X'74b1a671770835a51dc3f1371f072103eaf37d2b22b6bff0c68602f73721860f5297c7bc',X'924dce7318b015b17aa1bad234b82f441af70c42ed303b88aca0e938dfde5a50',X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885667,1015008858229484045,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(229,NULL,7,8192,650435257441666850,1740716660,X'844f366315c9863176a035ff36e8994e1a783c9278ef9dcd042a6c50fe70fd58e653a6a8',NULL,NULL,NULL,885667,615095005453626630,NULL,16,NULL);"),
SQL("INSERT INTO chain_moves VALUES(230,NULL,7,8192,650435257441666850,1740716660,X'f5bc04f9dd8a765178aae8a2e5ba8588d94f8bd129d55824c18ef9a0ffdb9c3653d3be2d',NULL,NULL,NULL,885667,615095005453626630,NULL,16,NULL);"),
SQL("INSERT INTO chain_moves VALUES(231,NULL,7,16384,1187235074521220944,1740716661,X'398fd147f716b70126ad314b44e9ebc2a11246f04b3010dd62d6e58c206706eb707b581a',NULL,NULL,NULL,885667,1920218094666093177,NULL,16,NULL);"),
SQL("INSERT INTO chain_moves VALUES(232,NULL,1,2,-4273964152421053855,1740717354,X'4b0dbb5fcadaae4efa38609b4a55c6a58fc86be2099696438e0f1e835a4efdfeeebe4988',X'1e25b9916af4f89f57c0270e6d1cce80ac5e436fc67f024e8ddd33f2afa88023',NULL,NULL,885668,493641614483580513,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(233,NULL,1,1,4318216781375866233,1740717356,X'79b26391db92b425c350e9f806d762a6dea880ea8942d7354ccc9009b87636da6915b902',NULL,NULL,NULL,885668,4274427828042113508,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(234,NULL,16,1024,2429360988083798639,1740717357,X'9c1dccc194b90ebd1c84385da64390aa850aad3b247c7337c54bd5973a616eb8ed7d2312',NULL,X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',X'9fa880159ad3aa9fdf220f145ce600cbe5b38608fdf2d57028a6cd157b08920e',885667,568457751488085300,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(235,NULL,16,1024,-2429360988083798639,1740717357,X'9c1dccc194b90ebd1c84385da64390aa850aad3b247c7337c54bd5973a616eb8ed7d2312',X'1e25b9916af4f89f57c0270e6d1cce80ac5e436fc67f024e8ddd33f2afa88023',X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885668,568457751488085300,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(236,NULL,1,1,2909137121477591256,1740845119,X'996ea81a20c2495814fa97781cb7747bfd528ed2fded8eb2457e8352cf70cc82e98766e6',NULL,NULL,NULL,885869,653594397993893680,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(237,NULL,1,1,1002613039941978619,1740845120,X'172b8fdaa26e0f7702f95c37c8d284e31834a9ec02254bfa8c71512bc07b4607a6dcc138',NULL,NULL,NULL,885869,1073496019083329579,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(238,NULL,16,256,81024178587012784,1740845120,X'fffb2c40ca56d2a01e47bcc8679ee41b72a22f59b882bc5a31694249beedc719e9dfd435',NULL,X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885667,2589691442945482672,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(239,NULL,16,4096,-81024178587012784,1740845120,X'fffb2c40ca56d2a01e47bcc8679ee41b72a22f59b882bc5a31694249beedc719e9dfd435',X'900880dd17fd4856083bccdc4b9d917cc1c048b0b55b932f263d7bb6f2deb794',X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885869,2589691442945482672,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(240,NULL,16,2048,2429360988083798639,1740845120,X'a4dc3917c1a12d1b0aa867551b1739715cf3e4533c1e4e0cca26015818d9c401ca151768',NULL,X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885668,568457751488085300,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(241,NULL,16,4096,-2429360988083798639,1740845120,X'a4dc3917c1a12d1b0aa867551b1739715cf3e4533c1e4e0cca26015818d9c401ca151768',X'4bdf53938509a99b62c4a38afc81476f4b6f1728d29ccea08127ff0c98457261',X'4760a2b51399c703997e67858abe0f1f327d144015aad4b18c006fcb76cad61185',NULL,885869,568457751488085300,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(242,NULL,1,1,2955111852437192176,1740905690,X'96ef784eeda43c3f2745b3bd69589845d2fe5b300915ddefd1b447655522ce82e56dbfe9',NULL,NULL,NULL,885987,1831749712560184285,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(243,NULL,1,2,-1002613039941978619,1740909597,X'172b8fdaa26e0f7702f95c37c8d284e31834a9ec02254bfa8c71512bc07b4607a6dcc138',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,1073496019083329579,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(244,NULL,1,2,-4318216781375866233,1740909597,X'79b26391db92b425c350e9f806d762a6dea880ea8942d7354ccc9009b87636da6915b902',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,4274427828042113508,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(245,NULL,1,2,-3725966854972883252,1740909597,X'9e62767528b5b0804eb7a0094867181b124e64f7de0fdaa08ab0d8982eb271a43c6d4371',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,801005254508466330,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(246,NULL,1,2,-2454976170924127727,1740909597,X'e6f8f683b94fe31e8e33488c379f2f27aa829251f091db4021e190eaabaa41e66e9e6e91',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,2181453735160384085,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(247,NULL,1,2,-2909137121477591256,1740909597,X'996ea81a20c2495814fa97781cb7747bfd528ed2fded8eb2457e8352cf70cc82e98766e6',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,653594397993893680,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(248,NULL,1,2,-2275089577505042541,1740909597,X'ba4279356e00be668d7e41e5636dbc07c4a0a266b2877fed2599513149fb048f3c5ae654',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(249,NULL,1,2,-2955111852437192176,1740909597,X'96ef784eeda43c3f2745b3bd69589845d2fe5b300915ddefd1b447655522ce82e56dbfe9',X'7b90c4ae6aa355e3ab1056fab24306a55c2ef01aa3a60aee9ab2b63910f8349d',NULL,NULL,885994,1831749712560184285,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(250,NULL,1,1,2275089577505042541,1740909601,X'3d5ef2f48a8b5c6ec1679f5784e3b8b8a126c202b3b53e6888a77ffdd1b1b5c40da54690',NULL,NULL,NULL,885994,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(251,NULL,29,262208,4281738450914066573,1740909601,X'5cb3699520da41b8306d4b607006205375cf8ded60d2ecf6ddd716797aad3858e0704c97',NULL,X'12738a735ea0b5352a46a8e9f429d31f67b54dc890af3bfe07778cca346823d209',NULL,885994,3882663815819794156,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(252,NULL,1,1,4012246388640192719,1741127195,X'3df2dd5a5d8a9232f7b166ae3c367cf1dfa3714870779ec793f0b377171243992f480dc8',NULL,NULL,NULL,886336,3235151814809930597,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(253,NULL,1,1,855631693283073127,1741131111,X'1cef3153d2b60983e8b44f44b352b79ce17eb26e2eb8d7666132a7a7ed72ce6dc830194d',NULL,NULL,NULL,886343,4180716458998216800,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(254,NULL,1,2,-2275089577505042541,1741132077,X'3d5ef2f48a8b5c6ec1679f5784e3b8b8a126c202b3b53e6888a77ffdd1b1b5c40da54690',X'9be04809001802fdffeba11c169fc61db064136d0d5ca3b521a373a55a4ef066',NULL,NULL,886346,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(255,NULL,1,2,-4012246388640192719,1741132077,X'3df2dd5a5d8a9232f7b166ae3c367cf1dfa3714870779ec793f0b377171243992f480dc8',X'9be04809001802fdffeba11c169fc61db064136d0d5ca3b521a373a55a4ef066',NULL,NULL,886346,3235151814809930597,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(256,NULL,1,2,-855631693283073127,1741132077,X'1cef3153d2b60983e8b44f44b352b79ce17eb26e2eb8d7666132a7a7ed72ce6dc830194d',X'9be04809001802fdffeba11c169fc61db064136d0d5ca3b521a373a55a4ef066',NULL,NULL,886346,4180716458998216800,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(257,NULL,1,1,2275089577505042541,1741132080,X'477af9c3af30144326f480a2a3384a0586975f2596de053cb43a1a7006220b22582891b7',NULL,NULL,NULL,886346,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(258,NULL,30,262208,1957356064188188623,1741132171,X'ee883205bb32d6eb1a4e6df83003fa9868696abb3c09d62050481ffbcc51198352781bce',NULL,X'409af8b4127df0c226eabefdcf9b2f4f7c883980fbc4364f75a1db8f05adbc36c2',NULL,886346,2960925976977223625,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(259,NULL,20,128,-714722720850472144,1743962326,X'890e362518242a2cdbcc4c47cd73691476382cbdc4b084d0d82e141bdbefda9457500096',X'0db4f6ddb68ddb1692c6f4721d05bc62af05991516068afb5a9abee66140f979',X'33c038f2a438a2d9eb5344db8432406908a30fabf16a8ee7620361adf747751105',NULL,891224,1870769406550727050,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(260,NULL,7,8192,650435257441666850,1743962326,X'1ee02016bd42a07b772cdb309e02b5af9515e759dd61c22d6d75d4ecf75bf29338a21328',NULL,NULL,NULL,891224,615095005453626630,NULL,20,NULL);"),
SQL("INSERT INTO chain_moves VALUES(261,NULL,7,8192,650435257441666850,1743962326,X'b2b066d9f60d1ecfcadb2066a293f71c8500a3be6df9bea96769a5a2ea11e869864224d3',NULL,NULL,NULL,891224,615095005453626630,NULL,20,NULL);"),
SQL("INSERT INTO chain_moves VALUES(262,NULL,7,16384,501154927257658808,1743962326,X'c87e11495d6d96d5a2f75a56e248512ce432e1df4b62542fc8b66d7e240724f23111724c',NULL,NULL,NULL,891224,212668198417358766,NULL,20,NULL);"),
SQL("INSERT INTO chain_moves VALUES(263,NULL,1,1,1507730329759268798,1744109040,X'b924815a8d77a0e6a1ca0f9c939b49d6fb63eb231ab7c9fcf5bfd1cf9b149e05a237735b',NULL,NULL,NULL,891488,169025471546178444,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(264,NULL,20,256,3964897270428216679,1744109040,X'c0315afd69be31174e74086ab8b1b39add1fd3fac924624a567d50c11b1695ddbf19ec68',NULL,X'33c038f2a438a2d9eb5344db8432406908a30fabf16a8ee7620361adf747751105',NULL,891224,2818119823025889470,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(265,NULL,20,4096,-3964897270428216679,1744109040,X'c0315afd69be31174e74086ab8b1b39add1fd3fac924624a567d50c11b1695ddbf19ec68',X'0fc5fdaf81219bda6a42a39d2ed370141049e8c89bfd55fdc21ce23e4ce1f4ad',X'33c038f2a438a2d9eb5344db8432406908a30fabf16a8ee7620361adf747751105',NULL,891488,2818119823025889470,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(266,NULL,1,2,-1507730329759268798,1744110730,X'b924815a8d77a0e6a1ca0f9c939b49d6fb63eb231ab7c9fcf5bfd1cf9b149e05a237735b',X'a0b56277cc921398d455d2a75ad826229f383b913ac4e7c203573b37b0f41e23',NULL,NULL,891492,169025471546178444,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(267,NULL,31,262208,884144103935347050,1744110972,X'06a62a631264cc94a11d756d5e7532c64be5baa0473d4345b4edf7da75b024ffcc29edbe',NULL,X'65a03742af950ec3eefd30596a155e8f1eeeacda22bfd66347b2e52f6b98bfe875',NULL,891492,3991713436984604820,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(268,NULL,32,64,0,1745272858,X'6199a747b70a98260d89211d83a18563f3720e5403ca017f713ffbdad1a47ab56e66e4b7',NULL,X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,893421,3410315561978493597,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(269,NULL,32,128,-3456842853957067894,1752651123,X'6199a747b70a98260d89211d83a18563f3720e5403ca017f713ffbdad1a47ab56e66e4b7',X'673c9f483b502d0dc6b1b6b57c75eb4c61dd725026ac2bda9d2936d3c9def19d',X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,905789,3410315561978493597,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(270,NULL,7,8192,650435257441666850,1752651123,X'811fee8d83732247e9d8bc507d736a193807a441178f3cda4f33c7130f239499b11017c5',NULL,NULL,NULL,905789,615095005453626630,NULL,32,NULL);"),
SQL("INSERT INTO chain_moves VALUES(271,NULL,7,8192,650435257441666850,1752651123,X'37bf2a670d6a20e40fd8508551483fb7a940be4260b6e5dee30fd396eda5e27ee4d8ae89',NULL,NULL,NULL,905789,615095005453626630,NULL,32,NULL);"),
SQL("INSERT INTO chain_moves VALUES(272,NULL,7,16384,1706281195253841094,1752651124,X'de49946d6ad66db198055ca23ec4b7bcd8d6fdfb22ca5e7b07a7e34af528ffb55309d71d',NULL,NULL,NULL,905789,1318715712099652509,NULL,32,NULL);"),
SQL("INSERT INTO chain_moves VALUES(273,NULL,1,1,1443086762814562785,1752800401,X'39be39698a671367ea82ef487bdcaae1e10c7cfbf17a2427e196e6d6e04087fb2965965a',NULL,NULL,NULL,906014,3063279830936014901,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(274,NULL,32,256,4255276365520353979,1752800401,X'd92e9a9710b584ffad1b162a15ef9ba31b614b632fc3e45aa8f2a1b7224601ee2dcdf81a',NULL,X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,905789,362923519836876829,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(275,NULL,32,4096,-4255276365520353979,1752800401,X'd92e9a9710b584ffad1b162a15ef9ba31b614b632fc3e45aa8f2a1b7224601ee2dcdf81a',X'3a2b0ca3edcbede2677231dd64a6e3e7efdb7be3334191bd2c340edd5b1c31fe',X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,906014,362923519836876829,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(276,NULL,1,2,-2275089577505042541,1753154659,X'477af9c3af30144326f480a2a3384a0586975f2596de053cb43a1a7006220b22582891b7',X'6d8e3a455d46b22f0740d82b8120920230820be24d48925e9895af077231e594',NULL,NULL,906615,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(277,NULL,1,1,3915466543355273348,1753154661,X'd93c8959f235355cedf2cd71ff670c69f8fde9b235fcf8c7007fe12ecee7588f7c8406ac',NULL,NULL,NULL,906615,2034413589447392909,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(278,NULL,32,512,3224021191441574718,1753154661,X'741e11b1fb1d67e44b0e9a466d901b4354d3d38913be010b16f18f7521d74fef7b072ca1',NULL,X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,905789,789869241084239566,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(279,NULL,32,512,-3224021191441574718,1753154661,X'741e11b1fb1d67e44b0e9a466d901b4354d3d38913be010b16f18f7521d74fef7b072ca1',X'6d8e3a455d46b22f0740d82b8120920230820be24d48925e9895af077231e594',X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,906615,789869241084239566,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(280,NULL,1,1,3320805010534674105,1753285608,X'117432fdf33db6902ac8b9c3da89e57e448533d4571206d93320cb9578bd0249146d8c54',NULL,NULL,NULL,906843,3790057075079746024,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(281,NULL,32,2048,3224021191441574718,1753285608,X'e21cf9a695424d9a62d297976d9fc7745354ca572c496534a11caae5c449dfa43f7a0b1b',NULL,X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,906615,789869241084239566,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(282,NULL,32,4096,-3224021191441574718,1753285608,X'e21cf9a695424d9a62d297976d9fc7745354ca572c496534a11caae5c449dfa43f7a0b1b',X'311323dac065c939584d936df5955cdc9679250ca0537b60721f2e7a4606f279',X'ca2833db7d3d697e0531dcbaede251d094f3056cccbb755a46cdd22790b7de83ec',NULL,906843,789869241084239566,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(283,NULL,24,128,-3087394263377834914,1755329387,X'1025a76ef766dbed3aeb497d856c41504eb204d495fb453ef62aeb496958264c9c820875',X'f84725c5448491aabecb1c75b476c63d58d06ffcebd6df85b1e8a20483566151',X'ec9de3cc1786c0dd25f4ec0e82c956ccaaef44c70175c3f4e519235050f3a35e93',NULL,910258,11523472626215693,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(284,NULL,7,8192,650435257441666850,1755329388,X'585e7047dc28ec4c5b3ee8b0502d4cc12a87cbc433a6487e4f29e94ab5d98ad74d046e8f',NULL,NULL,NULL,910258,615095005453626630,NULL,24,NULL);"),
SQL("INSERT INTO chain_moves VALUES(285,NULL,7,8192,650435257441666850,1755329388,X'8644e0ccea28afd59977eb5a257d855b94008b930b385dab464c16040348b5113e4f39b1',NULL,NULL,NULL,910258,615095005453626630,NULL,24,NULL);"),
SQL("INSERT INTO chain_moves VALUES(286,NULL,7,16384,2650623558328397731,1755329388,X'145b5c5919e5d43d3d2e7a886047d1e9178a4d52d1d3610a2a8cb2d06211c02e59f253a1',NULL,NULL,NULL,910258,2291745754718658151,NULL,24,NULL);"),
SQL("INSERT INTO chain_moves VALUES(287,NULL,1,1,947325759567503810,1755405670,X'6bb63d705ae82c7536b5cafc22b4b70605857d6a871e8c393ebbafb4c519a93a78ac97e8',NULL,NULL,NULL,910402,4305084436916902079,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(288,NULL,24,256,546935291012212775,1755405670,X'9b8fafad65198809c384bf2ef647f1abb91651c6c14ee7933e013ae6d680f855e2553b6f',NULL,X'ec9de3cc1786c0dd25f4ec0e82c956ccaaef44c70175c3f4e519235050f3a35e93',NULL,910258,2334381887374888180,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(289,NULL,24,4096,-546935291012212775,1755405670,X'9b8fafad65198809c384bf2ef647f1abb91651c6c14ee7933e013ae6d680f855e2553b6f',X'28c978d4ea1f8fba41f9d537ad1e27f3ed2c00a4878c35423c4f97dbe2718c23',X'ec9de3cc1786c0dd25f4ec0e82c956ccaaef44c70175c3f4e519235050f3a35e93',NULL,910402,2334381887374888180,NULL,NULL,4);"),
SQL("INSERT INTO chain_moves VALUES(290,NULL,1,1,3614131726912497679,1755408261,X'92ad799afb0b032c11b68530f188692181c5394cc752ca4921d8439d952a1c0533ee8f76',NULL,NULL,NULL,910406,4173933028702225595,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(291,NULL,1,2,-947325759567503810,1755409827,X'6bb63d705ae82c7536b5cafc22b4b70605857d6a871e8c393ebbafb4c519a93a78ac97e8',X'd8143b6cbc1fb25e86751e81bf1aa539ae36bd223659fb7d271b0cb9e20c9092',NULL,NULL,910410,4305084436916902079,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(292,NULL,1,2,-1443086762814562785,1755409827,X'39be39698a671367ea82ef487bdcaae1e10c7cfbf17a2427e196e6d6e04087fb2965965a',X'd8143b6cbc1fb25e86751e81bf1aa539ae36bd223659fb7d271b0cb9e20c9092',NULL,NULL,910410,3063279830936014901,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(293,NULL,1,2,-3320805010534674105,1755409827,X'117432fdf33db6902ac8b9c3da89e57e448533d4571206d93320cb9578bd0249146d8c54',X'd8143b6cbc1fb25e86751e81bf1aa539ae36bd223659fb7d271b0cb9e20c9092',NULL,NULL,910410,3790057075079746024,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(294,NULL,1,2,-3915466543355273348,1755409827,X'd93c8959f235355cedf2cd71ff670c69f8fde9b235fcf8c7007fe12ecee7588f7c8406ac',X'd8143b6cbc1fb25e86751e81bf1aa539ae36bd223659fb7d271b0cb9e20c9092',NULL,NULL,910410,2034413589447392909,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(295,NULL,1,2,-3614131726912497679,1755409827,X'92ad799afb0b032c11b68530f188692181c5394cc752ca4921d8439d952a1c0533ee8f76',X'd8143b6cbc1fb25e86751e81bf1aa539ae36bd223659fb7d271b0cb9e20c9092',NULL,NULL,910410,4173933028702225595,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(296,NULL,1,1,2275089577505042541,1755409827,X'd255ceab01e25abb16c5153c5c9756adf054124b8db27e31c4a9ed14e82224e2db463eb5',NULL,NULL,NULL,910410,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(297,NULL,33,262208,2353713586996164753,1755411212,X'dea6d4ea6b8ff653c0d42144131a0dd7f400fc70cf0aa7c6a046298f3761a84490a4a86d',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,910410,1614508739631711911,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(298,NULL,33,128,-3024550435248334957,1756481227,X'dea6d4ea6b8ff653c0d42144131a0dd7f400fc70cf0aa7c6a046298f3761a84490a4a86d',X'7fd8593bd0149d9696888d47c33e7e3858041a503f1ce3e164888f5963ec5d45',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,912265,1614508739631711911,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(299,NULL,7,8192,650435257441666850,1756481232,X'b48adb50be0f8e0771affb1c65f7dcd9bc15285547143484025153f99d13d0fbd9f36612',NULL,NULL,NULL,912265,615095005453626630,NULL,33,NULL);"),
SQL("INSERT INTO chain_moves VALUES(300,NULL,7,8192,650435257441666850,1756481232,X'b37e67b88af24dc835e18d033936f3b5672d7dc267a5cb00b09daa4757f7311dfaf696ba',NULL,NULL,NULL,912265,615095005453626630,NULL,33,NULL);"),
SQL("INSERT INTO chain_moves VALUES(301,NULL,7,16384,4203282809844223696,1756481232,X'04c393c29d6f30379f4f1a8fbd8336e7b3b3c34f073b9431ed45a7e841ec2df32f82d578',NULL,NULL,NULL,912265,2023566623804158574,NULL,33,NULL);"),
SQL("INSERT INTO chain_moves VALUES(302,NULL,1,2,-2275089577505042541,1756481409,X'd255ceab01e25abb16c5153c5c9756adf054124b8db27e31c4a9ed14e82224e2db463eb5',X'e9e7385d039f8288a13bd7ce3dea12a9a8041b26e606b19399cb410db6fe5ac3',NULL,NULL,912267,1924507832987227984,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(303,NULL,1,1,789097665145916961,1756481409,X'17fc541a23b50b9fb5a240ea143a7a30a6abc3952cfca6db04da584b0c125ca1705fe490',NULL,NULL,NULL,912267,2298998769924717103,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(304,NULL,33,1024,2224878275988784926,1756481411,X'4c51a3b77fc8c4a705871114714667342865be150096845586ea88f3e472c259be04f331',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',X'cbefab70904c2d88380b26e2936a9541f2e05197cd0daeaf3f95f5a5465eef59',912265,453373835948254923,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(305,NULL,33,1024,-2224878275988784926,1756481411,X'4c51a3b77fc8c4a705871114714667342865be150096845586ea88f3e472c259be04f331',X'e9e7385d039f8288a13bd7ce3dea12a9a8041b26e606b19399cb410db6fe5ac3',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,912267,453373835948254923,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(306,NULL,1,1,2881416085839631101,1756622181,X'7e48bd3c702c8a25f62f5c3f4283d447f148d924cf5f30802ba9b198294bd6f30e815a7f',NULL,NULL,NULL,912517,916079778291872859,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(307,NULL,33,256,2375144312751936367,1756622181,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',NULL,X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,912265,517036067392878598,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(308,NULL,33,4096,-2375144312751936367,1756622181,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',X'0440b1f294d831118f5ccda52998d133c401787ec0cab28c40e6b093714a594838',NULL,912517,517036067392878598,NULL,NULL,5);"),
/* channels table, not quite duplicates! */
/* Different channel */
SQL("INSERT INTO chain_moves VALUES(309,2,NULL,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* Differrent utxo */
SQL("INSERT INTO chain_moves VALUES(310,1,NULL,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a390',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* Different primary tag */
SQL("INSERT INTO chain_moves VALUES(311,1,NULL,1024,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* Different spending txid */
SQL("INSERT INTO chain_moves VALUES(312,1,NULL,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a689',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* null spending txid */
SQL("INSERT INTO chain_moves VALUES(313,1,NULL,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',NULL,NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* Duplicates */
#define DUPLICATE_ID_START 314
SQL("INSERT INTO chain_moves VALUES(314,NULL,33,128,-3024550435248334957,1757157354,X'dea6d4ea6b8ff653c0d42144131a0dd7f400fc70cf0aa7c6a046298f3761a84490a4a86d',X'7fd8593bd0149d9696888d47c33e7e3858041a503f1ce3e164888f5963ec5d45',NULL,NULL,912265,1614508739631711911,NULL,NULL,5);"),
SQL("INSERT INTO chain_moves VALUES(315,NULL,33,1024,2224878275988784926,1757157363,X'4c51a3b77fc8c4a705871114714667342865be150096845586ea88f3e472c259be04f331',NULL,NULL,X'cbefab70904c2d88380b26e2936a9541f2e05197cd0daeaf3f95f5a5465eef59',912265,453373835948254923,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(316,NULL,33,1024,-2224878275988784926,1757157363,X'4c51a3b77fc8c4a705871114714667342865be150096845586ea88f3e472c259be04f331',X'e9e7385d039f8288a13bd7ce3dea12a9a8041b26e606b19399cb410db6fe5ac3',NULL,NULL,912267,453373835948254923,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(317,NULL,33,256,2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',NULL,NULL,NULL,912265,517036067392878598,NULL,NULL,NULL);"),
SQL("INSERT INTO chain_moves VALUES(318,NULL,33,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
/* This one refers to a (duplicate) event using the channels table, not the move_accounts table */
SQL("INSERT INTO chain_moves VALUES(319,1,NULL,4096,-2375144312751936367,1757157441,X'e981adef5273e2dea6882d5a38ab194c22cd59fbce2b1b2a56c86f8336623a8c9711a391',X'ef39a9778fe812705dca272f0f6098065007c3180a989329829ef7989a16a688',NULL,NULL,912517,517036067392878598,NULL,NULL,NULL);"),
};
static void populate_db(struct db *db)
{
struct db_stmt *stmt;
for (size_t i = 0; i < ARRAY_SIZE(setup_stmts); i++){
stmt = db_prepare_v2(db, setup_stmts[i]);
db_exec_prepared_v2(take(stmt));
}
}
static void test_error(void *arg, bool fatal, const char *fmt, va_list ap)
{
vfprintf(stderr, fmt, ap);
abort();
}
static size_t count_moves(struct db *db, size_t min_id)
{
struct db_stmt *stmt;
size_t ret;
stmt = db_prepare_v2(db,
SQL("SELECT COUNT(*)"
" FROM chain_moves"
" WHERE id >= ?"));
db_bind_u64(stmt, min_id);
db_query_prepared(stmt);
db_step(stmt);
ret = db_col_int(stmt, "COUNT(*)");
tal_free(stmt);
return ret;
}
int main(int argc, const char *argv[])
{
char *dsn, *filename;
struct wallet *w;
struct lightningd *ld;
size_t num_moves, num_duplicates;
common_setup(argv[0]);
close(tmpdir_mkstemp(tmpctx, "ldb-XXXXXX", &filename));
ld = tal(tmpctx, struct lightningd);
w = tal(ld, struct wallet);
chainparams = chainparams_for_network("bitcoin");
dsn = tal_fmt(tmpctx, "sqlite3://%s", filename);
w->db = db_open(w, dsn, true, true, test_error, ld);
w->db->report_changes_fn = NULL;
db_begin_transaction(w->db);
populate_db(w->db);
num_moves = count_moves(w->db, 0);
num_duplicates = count_moves(w->db, DUPLICATE_ID_START);
w->db->data_version = 0;
db_set_intvar(w->db, "data_version", w->db->data_version);
migrate_remove_chain_moves_duplicates(ld, w->db);
/* We should ONLY delete the final ones */
assert(count_moves(w->db, DUPLICATE_ID_START) == 0);
assert(count_moves(w->db, 0) == num_moves - num_duplicates);
db_commit_transaction(w->db);
unlink(filename);
common_shutdown();
trace_cleanup();
}