chore(savedaddresses)!: favourite property removed and primary key updated
- favourite column removed from the saved_addresses table - favourite property removed from the SavedAddress struct - ens name removed from the primary key, the primary key now is composed of address and is_test columns - ens parameter removed from wakuext_deleteSavedAddress - wallet_getSavedAddresses moved to wakuext_getSavedAddresses (to keep them all in a single place) - saved addresses related endpoints removed from the wallet service, even they logically belong there, a reason for that is avoiding emitting sync message if one uses calls from the wallet service, while that's not the case in ext service. Once we refactor this and introduce devices syncing mechanism in the wallet service, we should not only these but other wallet related endpoints move there (removed: wallet_getSavedAddresses, wallet_addSavedAddress and wallet_deleteSavedAddress). Affected area: Saved addresses
This commit is contained in:
parent
2a5dc6dec0
commit
280f48877d
|
@ -22,13 +22,17 @@ func (m *Messenger) UpsertSavedAddress(ctx context.Context, sa wallet.SavedAddre
|
||||||
return m.syncNewSavedAddress(ctx, &sa, updatedClock, m.dispatchMessage)
|
return m.syncNewSavedAddress(ctx, &sa, updatedClock, m.dispatchMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) DeleteSavedAddress(ctx context.Context, address gethcommon.Address, ens string, isTest bool) error {
|
func (m *Messenger) DeleteSavedAddress(ctx context.Context, address gethcommon.Address, isTest bool) error {
|
||||||
updateClock := uint64(time.Now().Unix())
|
updateClock := uint64(time.Now().Unix())
|
||||||
_, err := m.savedAddressesManager.DeleteSavedAddress(address, ens, isTest, updateClock)
|
_, err := m.savedAddressesManager.DeleteSavedAddress(address, isTest, updateClock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return m.syncDeletedSavedAddress(ctx, address, ens, isTest, updateClock, m.dispatchMessage)
|
return m.syncDeletedSavedAddress(ctx, address, isTest, updateClock, m.dispatchMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Messenger) GetSavedAddresses(ctx context.Context) ([]wallet.SavedAddress, error) {
|
||||||
|
return m.savedAddressesManager.GetSavedAddresses()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) garbageCollectRemovedSavedAddresses() error {
|
func (m *Messenger) garbageCollectRemovedSavedAddresses() error {
|
||||||
|
@ -67,7 +71,6 @@ func (m *Messenger) syncNewSavedAddress(ctx context.Context, savedAddress *walle
|
||||||
return m.dispatchSyncSavedAddress(ctx, &protobuf.SyncSavedAddress{
|
return m.dispatchSyncSavedAddress(ctx, &protobuf.SyncSavedAddress{
|
||||||
Address: savedAddress.Address.Bytes(),
|
Address: savedAddress.Address.Bytes(),
|
||||||
Name: savedAddress.Name,
|
Name: savedAddress.Name,
|
||||||
Favourite: savedAddress.Favourite,
|
|
||||||
Removed: savedAddress.Removed,
|
Removed: savedAddress.Removed,
|
||||||
UpdateClock: savedAddress.UpdateClock,
|
UpdateClock: savedAddress.UpdateClock,
|
||||||
ChainShortNames: savedAddress.ChainShortNames,
|
ChainShortNames: savedAddress.ChainShortNames,
|
||||||
|
@ -77,19 +80,18 @@ func (m *Messenger) syncNewSavedAddress(ctx context.Context, savedAddress *walle
|
||||||
}, rawMessageHandler)
|
}, rawMessageHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) syncDeletedSavedAddress(ctx context.Context, address gethcommon.Address, ens string, isTest bool, updateClock uint64, rawMessageHandler RawMessageHandler) error {
|
func (m *Messenger) syncDeletedSavedAddress(ctx context.Context, address gethcommon.Address, isTest bool, updateClock uint64, rawMessageHandler RawMessageHandler) error {
|
||||||
return m.dispatchSyncSavedAddress(ctx, &protobuf.SyncSavedAddress{
|
return m.dispatchSyncSavedAddress(ctx, &protobuf.SyncSavedAddress{
|
||||||
Address: address.Bytes(),
|
Address: address.Bytes(),
|
||||||
UpdateClock: updateClock,
|
UpdateClock: updateClock,
|
||||||
Removed: true,
|
Removed: true,
|
||||||
IsTest: isTest,
|
IsTest: isTest,
|
||||||
Ens: ens,
|
|
||||||
}, rawMessageHandler)
|
}, rawMessageHandler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Messenger) syncSavedAddress(ctx context.Context, savedAddress wallet.SavedAddress, rawMessageHandler RawMessageHandler) (err error) {
|
func (m *Messenger) syncSavedAddress(ctx context.Context, savedAddress wallet.SavedAddress, rawMessageHandler RawMessageHandler) (err error) {
|
||||||
if savedAddress.Removed {
|
if savedAddress.Removed {
|
||||||
if err = m.syncDeletedSavedAddress(ctx, savedAddress.Address, savedAddress.ENSName, savedAddress.IsTest, savedAddress.UpdateClock, rawMessageHandler); err != nil {
|
if err = m.syncDeletedSavedAddress(ctx, savedAddress.Address, savedAddress.IsTest, savedAddress.UpdateClock, rawMessageHandler); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -104,7 +106,7 @@ func (m *Messenger) HandleSyncSavedAddress(state *ReceivedMessageState, syncMess
|
||||||
address := gethcommon.BytesToAddress(syncMessage.Address)
|
address := gethcommon.BytesToAddress(syncMessage.Address)
|
||||||
if syncMessage.Removed {
|
if syncMessage.Removed {
|
||||||
_, err = m.savedAddressesManager.DeleteSavedAddress(
|
_, err = m.savedAddressesManager.DeleteSavedAddress(
|
||||||
address, syncMessage.Ens, syncMessage.IsTest, syncMessage.UpdateClock)
|
address, syncMessage.IsTest, syncMessage.UpdateClock)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -113,7 +115,6 @@ func (m *Messenger) HandleSyncSavedAddress(state *ReceivedMessageState, syncMess
|
||||||
sa := wallet.SavedAddress{
|
sa := wallet.SavedAddress{
|
||||||
Address: address,
|
Address: address,
|
||||||
Name: syncMessage.Name,
|
Name: syncMessage.Name,
|
||||||
Favourite: syncMessage.Favourite,
|
|
||||||
ChainShortNames: syncMessage.ChainShortNames,
|
ChainShortNames: syncMessage.ChainShortNames,
|
||||||
ENSName: syncMessage.Ens,
|
ENSName: syncMessage.Ens,
|
||||||
IsTest: syncMessage.IsTest,
|
IsTest: syncMessage.IsTest,
|
||||||
|
|
|
@ -114,7 +114,7 @@ func haveSameElements[T comparable](a []T, b []T, isEqual func(T, T) bool) bool
|
||||||
|
|
||||||
func savedAddressDataIsEqual(a, b wallet.SavedAddress) bool {
|
func savedAddressDataIsEqual(a, b wallet.SavedAddress) bool {
|
||||||
return a.Address == b.Address && a.IsTest == b.IsTest && a.Name == b.Name &&
|
return a.Address == b.Address && a.IsTest == b.IsTest && a.Name == b.Name &&
|
||||||
a.Favourite == b.Favourite && a.ENSName == b.ENSName && a.ChainShortNames == b.ChainShortNames && a.ColorID == b.ColorID
|
a.ENSName == b.ENSName && a.ChainShortNames == b.ChainShortNames && a.ColorID == b.ColorID
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MessengerSyncSavedAddressesSuite) TestSyncExistingSavedAddresses() {
|
func (s *MessengerSyncSavedAddressesSuite) TestSyncExistingSavedAddresses() {
|
||||||
|
@ -124,16 +124,14 @@ func (s *MessengerSyncSavedAddressesSuite) TestSyncExistingSavedAddresses() {
|
||||||
|
|
||||||
// Add saved addresses to main device
|
// Add saved addresses to main device
|
||||||
sa1 := wallet.SavedAddress{
|
sa1 := wallet.SavedAddress{
|
||||||
Address: testAddress1,
|
Address: testAddress1,
|
||||||
Name: "TestC1A1",
|
Name: "TestC1A1",
|
||||||
Favourite: false,
|
IsTest: isTestChain1,
|
||||||
IsTest: isTestChain1,
|
|
||||||
}
|
}
|
||||||
sa2 := wallet.SavedAddress{
|
sa2 := wallet.SavedAddress{
|
||||||
ENSName: "test.ens.eth",
|
ENSName: "test.ens.eth",
|
||||||
Name: "TestC2A1",
|
Name: "TestC2A1",
|
||||||
Favourite: true,
|
IsTest: isTestChain2,
|
||||||
IsTest: isTestChain2,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
savedAddressesManager := s.main.savedAddressesManager
|
savedAddressesManager := s.main.savedAddressesManager
|
||||||
|
@ -174,16 +172,14 @@ func (s *MessengerSyncSavedAddressesSuite) TestSyncSavedAddresses() {
|
||||||
|
|
||||||
// Add saved addresses to main device
|
// Add saved addresses to main device
|
||||||
sa1 := wallet.SavedAddress{
|
sa1 := wallet.SavedAddress{
|
||||||
Address: testAddress1,
|
Address: testAddress1,
|
||||||
Name: "TestC1A1",
|
Name: "TestC1A1",
|
||||||
Favourite: false,
|
IsTest: isTestChain1,
|
||||||
IsTest: isTestChain1,
|
|
||||||
}
|
}
|
||||||
sa2 := wallet.SavedAddress{
|
sa2 := wallet.SavedAddress{
|
||||||
ENSName: "test.ens.eth",
|
ENSName: "test.ens.eth",
|
||||||
Name: "TestC1A2",
|
Name: "TestC1A2",
|
||||||
Favourite: true,
|
IsTest: isTestChain1,
|
||||||
IsTest: isTestChain1,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err := s.main.UpsertSavedAddress(context.Background(), sa1)
|
err := s.main.UpsertSavedAddress(context.Background(), sa1)
|
||||||
|
@ -216,19 +212,18 @@ func (s *MessengerSyncSavedAddressesSuite) testSyncDeletesOfSavedAddressesWithTe
|
||||||
var isTestChain1 bool = true
|
var isTestChain1 bool = true
|
||||||
var isTestChain2 bool = false
|
var isTestChain2 bool = false
|
||||||
var testAddress1 = common.Address{1}
|
var testAddress1 = common.Address{1}
|
||||||
|
var testAddress2 = common.Address{2}
|
||||||
|
|
||||||
// Add saved addresses to main device
|
// Add saved addresses to main device
|
||||||
sa1 := wallet.SavedAddress{
|
sa1 := wallet.SavedAddress{
|
||||||
Address: testAddress1,
|
Address: testAddress1,
|
||||||
Name: "TestC1A1",
|
Name: "TestC1A1",
|
||||||
Favourite: false,
|
IsTest: isTestChain1,
|
||||||
IsTest: isTestChain1,
|
|
||||||
}
|
}
|
||||||
sa2 := wallet.SavedAddress{
|
sa2 := wallet.SavedAddress{
|
||||||
ENSName: "test.ens.eth",
|
Address: testAddress2,
|
||||||
Name: "TestC1A2",
|
Name: "TestC1A2",
|
||||||
Favourite: true,
|
IsTest: isTestChain2,
|
||||||
IsTest: isTestChain2,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err := s.main.settings.SaveSettingField(settings.TestNetworksEnabled, testModeMain)
|
err := s.main.settings.SaveSettingField(settings.TestNetworksEnabled, testModeMain)
|
||||||
|
@ -262,7 +257,7 @@ func (s *MessengerSyncSavedAddressesSuite) testSyncDeletesOfSavedAddressesWithTe
|
||||||
s.Require().Equal(2, len(savedAddresses))
|
s.Require().Equal(2, len(savedAddresses))
|
||||||
|
|
||||||
// Delete saved addresses with test mode = true and sync with the other device
|
// Delete saved addresses with test mode = true and sync with the other device
|
||||||
err = s.main.DeleteSavedAddress(context.Background(), sa1.Address, sa1.ENSName, sa1.IsTest)
|
err = s.main.DeleteSavedAddress(context.Background(), sa1.Address, sa1.IsTest)
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
// Wait and check that saved addresses are synced
|
// Wait and check that saved addresses are synced
|
||||||
|
@ -273,10 +268,8 @@ func (s *MessengerSyncSavedAddressesSuite) testSyncDeletesOfSavedAddressesWithTe
|
||||||
sa := r.SavedAddresses()[0]
|
sa := r.SavedAddresses()[0]
|
||||||
// We expect the deleted event to report address, ens, isTest
|
// We expect the deleted event to report address, ens, isTest
|
||||||
s.Require().Equal(sa1.Address, sa.Address)
|
s.Require().Equal(sa1.Address, sa.Address)
|
||||||
s.Require().Equal(sa1.ENSName, sa.ENSName)
|
|
||||||
s.Require().Equal(sa1.IsTest, sa.IsTest)
|
s.Require().Equal(sa1.IsTest, sa.IsTest)
|
||||||
s.Require().Equal("", sa.Name)
|
s.Require().Equal("", sa.Name)
|
||||||
s.Require().Equal(false, sa.Favourite)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
@ -291,7 +284,7 @@ func (s *MessengerSyncSavedAddressesSuite) testSyncDeletesOfSavedAddressesWithTe
|
||||||
s.Require().True(haveSameElements([]wallet.SavedAddress{sa2}, savedAddresses, savedAddressDataIsEqual))
|
s.Require().True(haveSameElements([]wallet.SavedAddress{sa2}, savedAddresses, savedAddressDataIsEqual))
|
||||||
|
|
||||||
// Delete saved addresses with test mode = false and sync with the other device
|
// Delete saved addresses with test mode = false and sync with the other device
|
||||||
err = s.main.DeleteSavedAddress(context.Background(), sa2.Address, sa2.ENSName, sa2.IsTest)
|
err = s.main.DeleteSavedAddress(context.Background(), sa2.Address, sa2.IsTest)
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
// Wait and check that saved addresses are synced
|
// Wait and check that saved addresses are synced
|
||||||
|
@ -302,10 +295,8 @@ func (s *MessengerSyncSavedAddressesSuite) testSyncDeletesOfSavedAddressesWithTe
|
||||||
sa := r.SavedAddresses()[0]
|
sa := r.SavedAddresses()[0]
|
||||||
// We expect the deleted event to report address, ens, isTest
|
// We expect the deleted event to report address, ens, isTest
|
||||||
s.Require().Equal(sa2.Address, sa.Address)
|
s.Require().Equal(sa2.Address, sa.Address)
|
||||||
s.Require().Equal(sa2.ENSName, sa.ENSName)
|
|
||||||
s.Require().Equal(sa2.IsTest, sa.IsTest)
|
s.Require().Equal(sa2.IsTest, sa.IsTest)
|
||||||
s.Require().Equal("", sa.Name)
|
s.Require().Equal("", sa.Name)
|
||||||
s.Require().Equal(false, sa.Favourite)
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -2622,7 +2622,6 @@ func (m *SyncAccountsPositions) GetAccounts() []*SyncAccount {
|
||||||
type SyncSavedAddress struct {
|
type SyncSavedAddress struct {
|
||||||
Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
|
Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
|
||||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
Favourite bool `protobuf:"varint,3,opt,name=favourite,proto3" json:"favourite,omitempty"`
|
|
||||||
Removed bool `protobuf:"varint,5,opt,name=removed,proto3" json:"removed,omitempty"`
|
Removed bool `protobuf:"varint,5,opt,name=removed,proto3" json:"removed,omitempty"`
|
||||||
UpdateClock uint64 `protobuf:"varint,7,opt,name=update_clock,json=updateClock,proto3" json:"update_clock,omitempty"`
|
UpdateClock uint64 `protobuf:"varint,7,opt,name=update_clock,json=updateClock,proto3" json:"update_clock,omitempty"`
|
||||||
ChainShortNames string `protobuf:"bytes,8,opt,name=chain_short_names,json=chainShortNames,proto3" json:"chain_short_names,omitempty"`
|
ChainShortNames string `protobuf:"bytes,8,opt,name=chain_short_names,json=chainShortNames,proto3" json:"chain_short_names,omitempty"`
|
||||||
|
@ -2673,13 +2672,6 @@ func (m *SyncSavedAddress) GetName() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *SyncSavedAddress) GetFavourite() bool {
|
|
||||||
if m != nil {
|
|
||||||
return m.Favourite
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *SyncSavedAddress) GetRemoved() bool {
|
func (m *SyncSavedAddress) GetRemoved() bool {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Removed
|
return m.Removed
|
||||||
|
@ -3537,216 +3529,216 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileDescriptor_d61ab7221f0b5518 = []byte{
|
var fileDescriptor_d61ab7221f0b5518 = []byte{
|
||||||
// 3368 bytes of a gzipped FileDescriptorProto
|
// 3362 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0x4f, 0x6f, 0x1c, 0xc7,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0x4f, 0x6f, 0x1c, 0x47,
|
||||||
0x72, 0xf7, 0xfe, 0xe1, 0x72, 0xb7, 0x76, 0x49, 0xae, 0x5a, 0x94, 0xb4, 0xa2, 0x24, 0x98, 0x1a,
|
0x76, 0xf7, 0xfc, 0xe1, 0x70, 0xe6, 0xcd, 0x90, 0x1c, 0x95, 0x28, 0x69, 0x44, 0x49, 0x30, 0xd5,
|
||||||
0xdb, 0xb0, 0xec, 0x38, 0x74, 0x42, 0x3b, 0xb1, 0x61, 0xcb, 0x70, 0x28, 0x92, 0x8e, 0xa8, 0x3f,
|
0xb6, 0x61, 0xd9, 0x71, 0xe8, 0x84, 0x76, 0x62, 0xc3, 0x96, 0xe1, 0x50, 0x24, 0x1d, 0x51, 0x7f,
|
||||||
0x14, 0xd3, 0x24, 0x65, 0x3b, 0x08, 0x30, 0x6e, 0xce, 0xb4, 0xb8, 0x63, 0xce, 0xce, 0x4c, 0xa6,
|
0x28, 0xa6, 0x48, 0xca, 0x76, 0x10, 0xa0, 0xdd, 0xec, 0x2e, 0x71, 0xda, 0xec, 0xe9, 0xee, 0x74,
|
||||||
0x7b, 0xc9, 0xac, 0x0f, 0x01, 0x02, 0xe4, 0xe0, 0x53, 0x90, 0x9b, 0x6f, 0x81, 0x11, 0x04, 0x41,
|
0xd5, 0x90, 0x19, 0x1f, 0x02, 0x04, 0xc8, 0xc1, 0xc7, 0xdc, 0x7c, 0x0b, 0x8c, 0x20, 0x58, 0xec,
|
||||||
0x92, 0x63, 0x6e, 0xf9, 0x02, 0xc1, 0x3b, 0xbe, 0xfb, 0x7b, 0x5f, 0xe0, 0x7d, 0x88, 0x07, 0x3c,
|
0xee, 0x71, 0x6f, 0xfb, 0x05, 0x16, 0x7b, 0xdc, 0xfb, 0xee, 0x17, 0xd8, 0x2f, 0xb0, 0xb7, 0x05,
|
||||||
0x74, 0x75, 0xcf, 0x4c, 0xcf, 0xee, 0x0e, 0x2d, 0xe2, 0x9d, 0x76, 0xaa, 0xba, 0xba, 0xa7, 0xba,
|
0x16, 0xf5, 0xaa, 0xaa, 0xbb, 0x7a, 0x66, 0x5a, 0x16, 0xb1, 0xa7, 0xe9, 0xf7, 0xea, 0x55, 0xf5,
|
||||||
0xbb, 0xfe, 0xfc, 0xaa, 0x66, 0x61, 0x29, 0x61, 0x41, 0x1a, 0x44, 0xa7, 0x1b, 0x49, 0x1a, 0xcb,
|
0xab, 0xaa, 0xf7, 0xe7, 0xf7, 0x5e, 0x0f, 0x2c, 0xa5, 0x5e, 0x98, 0x85, 0xf1, 0xe9, 0x46, 0x9a,
|
||||||
0x98, 0xb4, 0xf1, 0xe7, 0x64, 0xfc, 0x6a, 0xed, 0xba, 0x37, 0x64, 0xd2, 0x0d, 0x7c, 0x1e, 0xc9,
|
0x25, 0x22, 0x21, 0x6d, 0xfc, 0x39, 0x19, 0xbf, 0x58, 0xbb, 0xea, 0x0f, 0x3d, 0xe1, 0x86, 0x01,
|
||||||
0x40, 0x4e, 0xf4, 0xf0, 0xda, 0x75, 0x31, 0x89, 0x3c, 0x57, 0x70, 0x29, 0x83, 0xe8, 0x54, 0x18,
|
0x8b, 0x45, 0x28, 0x26, 0x6a, 0x78, 0xed, 0x2a, 0x9f, 0xc4, 0xbe, 0xcb, 0x99, 0x10, 0x61, 0x7c,
|
||||||
0xa6, 0xc3, 0x92, 0x24, 0x0c, 0x3c, 0x26, 0x83, 0x38, 0x72, 0x47, 0x5c, 0x32, 0x9f, 0x49, 0xe6,
|
0xca, 0x35, 0xd3, 0xf1, 0xd2, 0x34, 0x0a, 0x7d, 0x4f, 0x84, 0x49, 0xec, 0x8e, 0x98, 0xf0, 0x02,
|
||||||
0x8e, 0xb8, 0x10, 0xec, 0x94, 0x1b, 0x99, 0x6b, 0x5e, 0x3c, 0x1a, 0x8d, 0xa3, 0x40, 0x06, 0xdc,
|
0x4f, 0x78, 0xee, 0x88, 0x71, 0xee, 0x9d, 0x32, 0x2d, 0x73, 0xc5, 0x4f, 0x46, 0xa3, 0x71, 0x1c,
|
||||||
0x4c, 0x73, 0x18, 0xdc, 0xf9, 0x8a, 0x4b, 0x6f, 0x18, 0x44, 0xa7, 0x8f, 0x98, 0x77, 0xc6, 0xfd,
|
0x8a, 0x90, 0xe9, 0x69, 0x8e, 0x07, 0xb7, 0xbe, 0x60, 0xc2, 0x1f, 0x86, 0xf1, 0xe9, 0x03, 0xcf,
|
||||||
0xe3, 0x64, 0x87, 0x49, 0xb6, 0xc3, 0x25, 0x0b, 0x42, 0x41, 0xde, 0x84, 0x2e, 0xae, 0x13, 0x8d,
|
0x3f, 0x63, 0xc1, 0x71, 0xba, 0xe3, 0x09, 0x6f, 0x87, 0x09, 0x2f, 0x8c, 0x38, 0x79, 0x1d, 0xba,
|
||||||
0x47, 0x27, 0x3c, 0x1d, 0xd4, 0xd6, 0x6b, 0x0f, 0x96, 0x28, 0x28, 0xd6, 0x3e, 0x72, 0xc8, 0x7d,
|
0xb8, 0x4e, 0x3c, 0x1e, 0x9d, 0xb0, 0x6c, 0x50, 0x5b, 0xaf, 0xdd, 0x5b, 0xa2, 0x20, 0x59, 0xfb,
|
||||||
0xe8, 0xc9, 0x58, 0xb2, 0x30, 0x93, 0xa8, 0xa3, 0x44, 0x17, 0x79, 0x5a, 0xc4, 0xf9, 0xfd, 0x22,
|
0xc8, 0x21, 0x77, 0xa1, 0x27, 0x12, 0xe1, 0x45, 0x46, 0xa2, 0x8e, 0x12, 0x5d, 0xe4, 0x29, 0x11,
|
||||||
0xb4, 0xd4, 0xda, 0xe3, 0x84, 0xac, 0xc2, 0x82, 0x17, 0xc6, 0xde, 0x19, 0x2e, 0xd4, 0xa4, 0x9a,
|
0xe7, 0xcf, 0x8b, 0xd0, 0x92, 0x6b, 0x8f, 0x53, 0xb2, 0x0a, 0x0b, 0x7e, 0x94, 0xf8, 0x67, 0xb8,
|
||||||
0x20, 0xcb, 0x50, 0x0f, 0x7c, 0x9c, 0xd9, 0xa1, 0xf5, 0xc0, 0x27, 0x5f, 0x42, 0xdb, 0x8b, 0x23,
|
0x50, 0x93, 0x2a, 0x82, 0x2c, 0x43, 0x3d, 0x0c, 0x70, 0x66, 0x87, 0xd6, 0xc3, 0x80, 0x7c, 0x0e,
|
||||||
0xc9, 0x3c, 0x29, 0x06, 0x8d, 0xf5, 0xc6, 0x83, 0xee, 0xe6, 0x5b, 0x1b, 0xd9, 0x89, 0x6c, 0x1c,
|
0x6d, 0x3f, 0x89, 0x85, 0xe7, 0x0b, 0x3e, 0x68, 0xac, 0x37, 0xee, 0x75, 0x37, 0xdf, 0xd8, 0x30,
|
||||||
0x4e, 0x22, 0x6f, 0x2f, 0x12, 0x92, 0x85, 0x21, 0xee, 0x75, 0x5b, 0x4b, 0xbe, 0xdc, 0xa4, 0xf9,
|
0x27, 0xb2, 0x71, 0x38, 0x89, 0xfd, 0xbd, 0x98, 0x0b, 0x2f, 0x8a, 0x70, 0xaf, 0xdb, 0x4a, 0xf2,
|
||||||
0x24, 0xb2, 0x0b, 0x5d, 0x6b, 0xa7, 0x83, 0xe6, 0x2f, 0xaf, 0xa1, 0x85, 0x27, 0xd4, 0x9e, 0x47,
|
0xf9, 0x26, 0xcd, 0x27, 0x91, 0x5d, 0xe8, 0x5a, 0x3b, 0x1d, 0x34, 0x7f, 0x7a, 0x0d, 0x25, 0x3c,
|
||||||
0x5e, 0xc0, 0x4a, 0xb6, 0xa4, 0x39, 0x8f, 0xc1, 0xc2, 0x7a, 0xed, 0x41, 0x77, 0xf3, 0x9d, 0x62,
|
0xa1, 0xf6, 0x3c, 0xf2, 0x0c, 0x56, 0xcc, 0x92, 0xfa, 0x3c, 0x06, 0x0b, 0xeb, 0xb5, 0x7b, 0xdd,
|
||||||
0xa9, 0x4b, 0x0e, 0x8f, 0x4e, 0xcf, 0x26, 0xc7, 0x40, 0xac, 0xf5, 0xb3, 0x35, 0x5b, 0x57, 0x59,
|
0xcd, 0xb7, 0x8a, 0xa5, 0x5e, 0x72, 0x78, 0x74, 0x7a, 0x36, 0x39, 0x06, 0x62, 0xad, 0x6f, 0xd6,
|
||||||
0x73, 0xce, 0x02, 0xe4, 0x23, 0x58, 0x4c, 0xd2, 0xf8, 0x55, 0x10, 0xf2, 0xc1, 0x22, 0xae, 0x75,
|
0x6c, 0x5d, 0x66, 0xcd, 0x39, 0x0b, 0x90, 0x0f, 0x60, 0x31, 0xcd, 0x92, 0x17, 0x61, 0xc4, 0x06,
|
||||||
0xbb, 0x58, 0x2b, 0x5b, 0xe3, 0x40, 0x0b, 0xd0, 0x4c, 0x92, 0x3c, 0x87, 0x65, 0xf3, 0x98, 0xe9,
|
0x8b, 0xb8, 0xd6, 0xcd, 0x62, 0x2d, 0xb3, 0xc6, 0x81, 0x12, 0xa0, 0x46, 0x92, 0x3c, 0x85, 0x65,
|
||||||
0xd1, 0xbe, 0x8a, 0x1e, 0x53, 0x93, 0xc9, 0x87, 0xb0, 0x68, 0x0c, 0x72, 0xd0, 0xc1, 0x75, 0x6e,
|
0xfd, 0x68, 0xf4, 0x68, 0x5f, 0x46, 0x8f, 0xa9, 0xc9, 0xe4, 0x7d, 0x58, 0xd4, 0x06, 0x39, 0xe8,
|
||||||
0x94, 0x8f, 0xfb, 0x50, 0x0f, 0xd2, 0x4c, 0x4a, 0x1d, 0x6e, 0x66, 0xc1, 0x99, 0x02, 0x70, 0xa5,
|
0xe0, 0x3a, 0xd7, 0xca, 0xc7, 0x7d, 0xa8, 0x06, 0xa9, 0x91, 0x92, 0x87, 0x6b, 0x2c, 0xd8, 0x28,
|
||||||
0xc3, 0x9d, 0x9a, 0xad, 0x34, 0x38, 0xe3, 0x13, 0xe5, 0x48, 0x83, 0xee, 0x3c, 0x0d, 0x9e, 0xea,
|
0x00, 0x97, 0x3a, 0xdc, 0xa9, 0xd9, 0x52, 0x83, 0x33, 0x36, 0x91, 0x8e, 0x34, 0xe8, 0xce, 0xd3,
|
||||||
0x41, 0x9a, 0x49, 0xa9, 0x13, 0x30, 0x8f, 0x99, 0x02, 0xbd, 0x2b, 0x9d, 0x40, 0x79, 0x32, 0xd9,
|
0xe0, 0xb1, 0x1a, 0xa4, 0x46, 0x4a, 0x9e, 0x80, 0x7e, 0x34, 0x0a, 0xf4, 0x2e, 0x75, 0x02, 0xe5,
|
||||||
0x82, 0xfe, 0x05, 0x93, 0xde, 0xf0, 0x45, 0x14, 0x4e, 0xb6, 0x3c, 0x2f, 0x1e, 0x47, 0x72, 0xb0,
|
0xc9, 0x64, 0x0b, 0xfa, 0x17, 0x9e, 0xf0, 0x87, 0xcf, 0xe2, 0x68, 0xb2, 0xe5, 0xfb, 0xc9, 0x38,
|
||||||
0x34, 0x4f, 0x11, 0x33, 0x48, 0x67, 0xc4, 0x89, 0x0b, 0xb7, 0xa6, 0x79, 0x99, 0x6a, 0xcb, 0x57,
|
0x16, 0x83, 0xa5, 0x79, 0x8a, 0xe8, 0x41, 0x3a, 0x23, 0x4e, 0x5c, 0xb8, 0x31, 0xcd, 0x33, 0xaa,
|
||||||
0x51, 0xad, 0x6a, 0x15, 0xf2, 0x00, 0x16, 0x54, 0x40, 0x11, 0x83, 0x15, 0x74, 0x09, 0x52, 0x56,
|
0x2d, 0x5f, 0x46, 0xb5, 0xaa, 0x55, 0xc8, 0x3d, 0x58, 0x90, 0x01, 0x85, 0x0f, 0x56, 0xd0, 0x25,
|
||||||
0x6c, 0x7b, 0xc8, 0x24, 0xd5, 0x02, 0x64, 0x0f, 0x7a, 0xf8, 0x90, 0xbd, 0xbf, 0x7f, 0x95, 0xf7,
|
0x48, 0x59, 0xb1, 0xed, 0xa1, 0x27, 0xa8, 0x12, 0x20, 0x7b, 0xd0, 0xc3, 0x07, 0xf3, 0xfe, 0xfe,
|
||||||
0x97, 0xa6, 0x3a, 0xff, 0xb5, 0x00, 0xbd, 0xe7, 0xe3, 0x50, 0x06, 0xd9, 0x36, 0x09, 0x34, 0x23,
|
0x65, 0xde, 0x5f, 0x9a, 0xea, 0xfc, 0x7c, 0x01, 0x7a, 0x4f, 0xc7, 0x91, 0x08, 0xcd, 0x36, 0x09,
|
||||||
0x36, 0xe2, 0x18, 0x04, 0x3a, 0x14, 0x9f, 0xc9, 0x5d, 0xe8, 0xc8, 0x60, 0xc4, 0x85, 0x64, 0xa3,
|
0x34, 0x63, 0x6f, 0xc4, 0x30, 0x08, 0x74, 0x28, 0x3e, 0x93, 0xdb, 0xd0, 0x11, 0xe1, 0x88, 0x71,
|
||||||
0x04, 0x43, 0x41, 0x83, 0x16, 0x0c, 0x35, 0xaa, 0x63, 0xa0, 0x17, 0x47, 0x83, 0x06, 0x4e, 0x2b,
|
0xe1, 0x8d, 0x52, 0x0c, 0x05, 0x0d, 0x5a, 0x30, 0xe4, 0xa8, 0x8a, 0x81, 0x7e, 0x12, 0x0f, 0x1a,
|
||||||
0x18, 0xe4, 0x4b, 0x00, 0x2f, 0x0e, 0xe3, 0xd4, 0x1d, 0x32, 0x31, 0x34, 0xde, 0xbe, 0x5e, 0x68,
|
0x38, 0xad, 0x60, 0x90, 0xcf, 0x01, 0xfc, 0x24, 0x4a, 0x32, 0x77, 0xe8, 0xf1, 0xa1, 0xf6, 0xf6,
|
||||||
0x6a, 0xbf, 0x7b, 0x63, 0x5b, 0x09, 0x3e, 0x66, 0x62, 0x48, 0x3b, 0x5e, 0xf6, 0x48, 0x6e, 0xab,
|
0xf5, 0x42, 0x53, 0xfb, 0xdd, 0x1b, 0xdb, 0x52, 0xf0, 0xa1, 0xc7, 0x87, 0xb4, 0xe3, 0x9b, 0x47,
|
||||||
0x80, 0xa3, 0x16, 0x08, 0x7c, 0xf4, 0xf0, 0x06, 0x5d, 0x44, 0x7a, 0xcf, 0x27, 0xef, 0xc2, 0xca,
|
0x72, 0x53, 0x06, 0x1c, 0xb9, 0x40, 0x18, 0xa0, 0x87, 0x37, 0xe8, 0x22, 0xd2, 0x7b, 0x01, 0x79,
|
||||||
0x19, 0x9f, 0x78, 0x2c, 0xf5, 0x5d, 0x13, 0xa3, 0xd1, 0x5f, 0x3b, 0x78, 0xfd, 0x8a, 0x7d, 0xa0,
|
0x1b, 0x56, 0xce, 0xd8, 0xc4, 0xf7, 0xb2, 0xc0, 0xd5, 0x31, 0x1a, 0xfd, 0xb5, 0x83, 0xd7, 0x2f,
|
||||||
0xb9, 0xe4, 0x16, 0x9a, 0x9f, 0x3b, 0x0e, 0x7c, 0x74, 0xc2, 0x0e, 0x6d, 0x9d, 0xf1, 0xc9, 0x71,
|
0xd9, 0x07, 0x8a, 0x4b, 0x6e, 0xa0, 0xf9, 0xb9, 0xe3, 0x30, 0x40, 0x27, 0xec, 0xd0, 0xd6, 0x19,
|
||||||
0xe0, 0x93, 0x87, 0xd0, 0x0a, 0x46, 0xec, 0x94, 0x2b, 0x07, 0x53, 0x9a, 0xbd, 0x5d, 0xa1, 0xd9,
|
0x9b, 0x1c, 0x87, 0x01, 0xb9, 0x0f, 0xad, 0x70, 0xe4, 0x9d, 0x32, 0xe9, 0x60, 0x52, 0xb3, 0x37,
|
||||||
0x9e, 0x09, 0xf2, 0x7b, 0x4a, 0x98, 0x9a, 0x39, 0xe4, 0x43, 0xb8, 0xee, 0x8d, 0x85, 0x8c, 0x47,
|
0x2b, 0x34, 0xdb, 0xd3, 0x41, 0x7e, 0x4f, 0x0a, 0x53, 0x3d, 0x87, 0xbc, 0x0f, 0x57, 0xfd, 0x31,
|
||||||
0xc1, 0x0f, 0x3a, 0xb4, 0xa3, 0x62, 0xe8, 0x63, 0x1d, 0x4a, 0x4a, 0x43, 0xb8, 0x35, 0xf2, 0x19,
|
0x17, 0xc9, 0x28, 0xfc, 0x4e, 0x85, 0x76, 0x54, 0x0c, 0x7d, 0xac, 0x43, 0x49, 0x69, 0x08, 0xb7,
|
||||||
0xdc, 0x9e, 0x33, 0xc1, 0xd5, 0x61, 0x17, 0x30, 0xec, 0xde, 0x9a, 0x9d, 0xb6, 0xad, 0x86, 0xd7,
|
0x46, 0x3e, 0x81, 0x9b, 0x73, 0x26, 0xb8, 0x2a, 0xec, 0x02, 0x86, 0xdd, 0x1b, 0xb3, 0xd3, 0xb6,
|
||||||
0xee, 0x43, 0x27, 0x3f, 0x1f, 0x15, 0xab, 0x83, 0xc8, 0xe7, 0xff, 0x30, 0xa8, 0xad, 0x37, 0x1e,
|
0xe5, 0xf0, 0xda, 0x5d, 0xe8, 0xe4, 0xe7, 0x23, 0x63, 0x75, 0x18, 0x07, 0xec, 0x3f, 0x06, 0xb5,
|
||||||
0x34, 0xa8, 0x26, 0xd6, 0x7e, 0x53, 0x83, 0xa5, 0x92, 0xa6, 0xf6, 0xc6, 0x6b, 0xa5, 0x8d, 0x67,
|
0xf5, 0xc6, 0xbd, 0x06, 0x55, 0xc4, 0xda, 0xef, 0x6b, 0xb0, 0x54, 0xd2, 0xd4, 0xde, 0x78, 0xad,
|
||||||
0xd7, 0x5c, 0xb7, 0xae, 0x79, 0x00, 0x8b, 0x09, 0x9b, 0x84, 0x31, 0xf3, 0xf1, 0x1a, 0x7b, 0x34,
|
0xb4, 0x71, 0x73, 0xcd, 0x75, 0xeb, 0x9a, 0x07, 0xb0, 0x98, 0x7a, 0x93, 0x28, 0xf1, 0x02, 0xbc,
|
||||||
0x23, 0xd5, 0xeb, 0x2e, 0x02, 0x5f, 0xaa, 0xfb, 0x53, 0x17, 0xa0, 0x09, 0x72, 0x13, 0x5a, 0x43,
|
0xc6, 0x1e, 0x35, 0xa4, 0x7c, 0xdd, 0x45, 0x18, 0x08, 0x79, 0x7f, 0xf2, 0x02, 0x14, 0x41, 0xae,
|
||||||
0x1e, 0x9c, 0x0e, 0xa5, 0xb9, 0x17, 0x43, 0x91, 0x35, 0x68, 0xab, 0xe8, 0x23, 0x82, 0x1f, 0x38,
|
0x43, 0x6b, 0xc8, 0xc2, 0xd3, 0xa1, 0xd0, 0xf7, 0xa2, 0x29, 0xb2, 0x06, 0x6d, 0x19, 0x7d, 0x78,
|
||||||
0xde, 0x47, 0x83, 0xe6, 0x34, 0x79, 0x0b, 0x96, 0x52, 0x7c, 0x72, 0x25, 0x4b, 0x4f, 0xb9, 0xc4,
|
0xf8, 0x1d, 0xc3, 0xfb, 0x68, 0xd0, 0x9c, 0x26, 0x6f, 0xc0, 0x52, 0x86, 0x4f, 0xae, 0xf0, 0xb2,
|
||||||
0xfb, 0x68, 0xd0, 0x9e, 0x66, 0x1e, 0x21, 0xaf, 0xc8, 0x44, 0x6d, 0x2b, 0x13, 0x39, 0x3f, 0xd5,
|
0x53, 0x26, 0xf0, 0x3e, 0x1a, 0xb4, 0xa7, 0x98, 0x47, 0xc8, 0x2b, 0x32, 0x51, 0xdb, 0xca, 0x44,
|
||||||
0xe1, 0xfa, 0xb3, 0xd8, 0x63, 0xa1, 0xb9, 0xd5, 0x03, 0xa3, 0xdc, 0x5f, 0x40, 0xf3, 0x8c, 0x4f,
|
0xce, 0x0f, 0x75, 0xb8, 0xfa, 0x24, 0xf1, 0xbd, 0x48, 0xdf, 0xea, 0x81, 0x56, 0xee, 0x1f, 0xa0,
|
||||||
0x04, 0x1e, 0x45, 0x77, 0xf3, 0x7e, 0x71, 0x83, 0x73, 0x84, 0x37, 0x9e, 0xf2, 0x09, 0x45, 0x71,
|
0x79, 0xc6, 0x26, 0x1c, 0x8f, 0xa2, 0xbb, 0x79, 0xb7, 0xb8, 0xc1, 0x39, 0xc2, 0x1b, 0x8f, 0xd9,
|
||||||
0xf2, 0x19, 0xf4, 0x46, 0xea, 0x8a, 0x99, 0x09, 0x07, 0x75, 0x74, 0xa2, 0x9b, 0xf3, 0x0d, 0x80,
|
0x84, 0xa2, 0x38, 0xf9, 0x04, 0x7a, 0x23, 0x79, 0xc5, 0x9e, 0x0e, 0x07, 0x75, 0x74, 0xa2, 0xeb,
|
||||||
0x96, 0x64, 0xd5, 0x0e, 0x13, 0x26, 0xc4, 0x45, 0x9c, 0xfa, 0xc6, 0xe2, 0x73, 0x5a, 0x9d, 0xa2,
|
0xf3, 0x0d, 0x80, 0x96, 0x64, 0xe5, 0x0e, 0x53, 0x8f, 0xf3, 0x8b, 0x24, 0x0b, 0xb4, 0xc5, 0xe7,
|
||||||
0xf2, 0xb0, 0xa7, 0x7c, 0x82, 0xa7, 0xd5, 0xa1, 0x19, 0x49, 0x1e, 0xe4, 0xe6, 0x6a, 0x94, 0xd2,
|
0xb4, 0x3c, 0x45, 0xe9, 0x61, 0x8f, 0xd9, 0x04, 0x4f, 0xab, 0x43, 0x0d, 0x49, 0xee, 0xe5, 0xe6,
|
||||||
0x29, 0xab, 0x43, 0xa7, 0xd9, 0x6b, 0x7f, 0x0a, 0x0d, 0x35, 0x61, 0x9e, 0x2f, 0x12, 0x68, 0xaa,
|
0xaa, 0x95, 0x52, 0x29, 0xab, 0x43, 0xa7, 0xd9, 0x6b, 0x7f, 0x0b, 0x0d, 0x39, 0x61, 0x9e, 0x2f,
|
||||||
0x0c, 0x8f, 0xea, 0xf6, 0x28, 0x3e, 0x3b, 0xff, 0x57, 0x83, 0x1b, 0xa5, 0xcd, 0x72, 0x9e, 0x3e,
|
0x12, 0x68, 0xca, 0x0c, 0x8f, 0xea, 0xf6, 0x28, 0x3e, 0x3b, 0xbf, 0xae, 0xc1, 0xb5, 0xd2, 0x66,
|
||||||
0xe6, 0x61, 0x18, 0x2b, 0x0f, 0x31, 0x9e, 0xe1, 0x9e, 0xf3, 0x54, 0x04, 0x71, 0x84, 0x8b, 0x2d,
|
0x19, 0xcb, 0x1e, 0xb2, 0x28, 0x4a, 0xa4, 0x87, 0x68, 0xcf, 0x70, 0xcf, 0x59, 0xc6, 0xc3, 0x24,
|
||||||
0xd0, 0x65, 0xc3, 0x7e, 0xa9, 0xb9, 0xca, 0x50, 0x12, 0xce, 0xd1, 0xc9, 0xf4, 0xca, 0x2d, 0x45,
|
0xc6, 0xc5, 0x16, 0xe8, 0xb2, 0x66, 0x3f, 0x57, 0x5c, 0x69, 0x28, 0x29, 0x63, 0xe8, 0x64, 0x6a,
|
||||||
0xee, 0xf9, 0x08, 0x32, 0xf8, 0x79, 0xe0, 0x71, 0x17, 0x55, 0xd1, 0xbb, 0x05, 0xcd, 0xda, 0x57,
|
0xe5, 0x96, 0x24, 0xf7, 0x02, 0x04, 0x19, 0xec, 0x3c, 0xf4, 0x99, 0x8b, 0xaa, 0xa8, 0xdd, 0x82,
|
||||||
0x0a, 0x15, 0x02, 0x72, 0x92, 0x70, 0xb3, 0x67, 0x23, 0x70, 0x34, 0x49, 0x30, 0x7a, 0x88, 0xe0,
|
0x62, 0xed, 0x4b, 0x85, 0x0a, 0x01, 0x31, 0x49, 0x99, 0xde, 0xb3, 0x16, 0x38, 0x9a, 0xa4, 0x18,
|
||||||
0x34, 0x62, 0x72, 0x9c, 0x72, 0xdc, 0x70, 0x8f, 0x16, 0x0c, 0xe7, 0x3f, 0x6a, 0xb0, 0xaa, 0xe2,
|
0x3d, 0x78, 0x78, 0x1a, 0x7b, 0x62, 0x9c, 0x31, 0xdc, 0x70, 0x8f, 0x16, 0x0c, 0xe7, 0xff, 0x6b,
|
||||||
0x9b, 0x52, 0xdd, 0x4e, 0xfb, 0x15, 0x70, 0xe4, 0x5d, 0x58, 0x09, 0x2c, 0x29, 0x37, 0xc7, 0x26,
|
0xb0, 0x2a, 0xe3, 0x9b, 0x54, 0xdd, 0x4e, 0xfb, 0x15, 0x70, 0xe4, 0x6d, 0x58, 0x09, 0x2d, 0x29,
|
||||||
0xcb, 0x36, 0xbb, 0xa4, 0x37, 0xaa, 0xd5, 0x98, 0x51, 0x2b, 0x3b, 0xdc, 0x66, 0xd9, 0x03, 0xb2,
|
0x37, 0xc7, 0x26, 0xcb, 0x36, 0xbb, 0xa4, 0x37, 0xaa, 0xd5, 0x98, 0x51, 0xcb, 0x1c, 0x6e, 0xb3,
|
||||||
0x63, 0x5a, 0x40, 0xac, 0x94, 0x91, 0xce, 0x3f, 0xb5, 0xe0, 0x76, 0x25, 0xba, 0x21, 0x7f, 0x06,
|
0xec, 0x01, 0xe6, 0x98, 0x16, 0x10, 0x2b, 0x19, 0xd2, 0xf9, 0xaf, 0x16, 0xdc, 0xac, 0x44, 0x37,
|
||||||
0xab, 0x21, 0x13, 0xd2, 0x1d, 0x27, 0x3e, 0x93, 0xdc, 0x77, 0x43, 0x75, 0x19, 0xe1, 0xc4, 0xa8,
|
0xe4, 0xef, 0x60, 0x35, 0xf2, 0xb8, 0x70, 0xc7, 0x69, 0xe0, 0x09, 0x16, 0xb8, 0x91, 0xbc, 0x8c,
|
||||||
0x4e, 0xd4, 0xd8, 0xb1, 0x1e, 0x7a, 0xa6, 0x47, 0x66, 0x60, 0xd5, 0x5b, 0xb0, 0x64, 0x92, 0xb6,
|
0x68, 0xa2, 0x55, 0x27, 0x72, 0xec, 0x58, 0x0d, 0x3d, 0x51, 0x23, 0x33, 0xb0, 0xea, 0x0d, 0x58,
|
||||||
0x8b, 0xc1, 0xc5, 0x28, 0xdc, 0x33, 0x4c, 0xed, 0xcd, 0xb7, 0xa1, 0xcd, 0x23, 0xe1, 0x5a, 0x6a,
|
0xd2, 0x49, 0xdb, 0xc5, 0xe0, 0xa2, 0x15, 0xee, 0x69, 0xa6, 0xf2, 0xe6, 0x9b, 0xd0, 0x66, 0x31,
|
||||||
0x2f, 0xf2, 0x48, 0xe0, 0x2d, 0xdc, 0x87, 0x9e, 0xad, 0x01, 0xaa, 0xdf, 0xa4, 0x5d, 0xeb, 0xcd,
|
0x77, 0x2d, 0xb5, 0x17, 0x59, 0xcc, 0xf1, 0x16, 0xee, 0x42, 0xcf, 0xd6, 0x00, 0xd5, 0x6f, 0xd2,
|
||||||
0xea, 0x44, 0xc4, 0x44, 0x48, 0x3e, 0x72, 0x25, 0x3b, 0x55, 0xc8, 0xa6, 0xa1, 0x4e, 0x44, 0xb3,
|
0xae, 0xf5, 0x66, 0x79, 0x22, 0x7c, 0xc2, 0x05, 0x1b, 0xb9, 0xc2, 0x3b, 0x95, 0xc8, 0xa6, 0x21,
|
||||||
0x8e, 0xd8, 0xa9, 0x20, 0xef, 0xc0, 0x32, 0x2a, 0xee, 0x46, 0x81, 0x77, 0x86, 0x2f, 0xd1, 0xc1,
|
0x4f, 0x44, 0xb1, 0x8e, 0xbc, 0x53, 0x4e, 0xde, 0x82, 0x65, 0x54, 0xdc, 0x8d, 0x43, 0xff, 0x0c,
|
||||||
0x72, 0x09, 0xb9, 0xfb, 0x86, 0xa9, 0x2e, 0x86, 0xf9, 0x3e, 0xf7, 0x31, 0xce, 0xb5, 0xa9, 0x26,
|
0x5f, 0xa2, 0x82, 0xe5, 0x12, 0x72, 0xf7, 0x35, 0x53, 0x5e, 0x8c, 0x17, 0x04, 0x2c, 0xc0, 0x38,
|
||||||
0xd4, 0xd1, 0x9d, 0xa8, 0x1b, 0xe2, 0x3e, 0x06, 0xb2, 0x36, 0xcd, 0x48, 0x25, 0x3f, 0x1a, 0x2b,
|
0xd7, 0xa6, 0x8a, 0x90, 0x47, 0x77, 0x22, 0x6f, 0x88, 0x05, 0x18, 0xc8, 0xda, 0xd4, 0x90, 0x52,
|
||||||
0x9d, 0xba, 0x5a, 0x1e, 0x09, 0x25, 0x9f, 0xf2, 0x51, 0x7c, 0xce, 0x7d, 0xcc, 0xec, 0x6d, 0x9a,
|
0x7e, 0x34, 0x96, 0x3a, 0x75, 0x95, 0x3c, 0x12, 0x52, 0x3e, 0x63, 0xa3, 0xe4, 0x9c, 0x05, 0x98,
|
||||||
0x91, 0x64, 0x1d, 0x7a, 0x43, 0x26, 0x5c, 0x5c, 0xd6, 0x1d, 0x0b, 0xcc, 0xd3, 0x6d, 0x0a, 0x43,
|
0xd9, 0xdb, 0xd4, 0x90, 0x64, 0x1d, 0x7a, 0x43, 0x8f, 0xbb, 0xb8, 0xac, 0x3b, 0xe6, 0x98, 0xa7,
|
||||||
0x26, 0xb6, 0x14, 0xeb, 0x18, 0xe3, 0xee, 0x39, 0x4f, 0x83, 0x57, 0x19, 0xa2, 0x16, 0x92, 0xc9,
|
0xdb, 0x14, 0x86, 0x1e, 0xdf, 0x92, 0xac, 0x63, 0x8c, 0xbb, 0xe7, 0x2c, 0x0b, 0x5f, 0x18, 0x44,
|
||||||
0xb1, 0x4e, 0xc3, 0x0d, 0x4a, 0xec, 0xa1, 0x43, 0x1c, 0x41, 0x20, 0x9c, 0x8e, 0x85, 0xcc, 0x24,
|
0xcd, 0x85, 0x27, 0xc6, 0x2a, 0x0d, 0x37, 0x28, 0xb1, 0x87, 0x0e, 0x71, 0x04, 0x81, 0x70, 0x36,
|
||||||
0x57, 0x50, 0xb2, 0x8b, 0x3c, 0x23, 0xf2, 0x05, 0xdc, 0x31, 0x88, 0xd0, 0x4d, 0xf9, 0xdf, 0x8f,
|
0xe6, 0xc2, 0x48, 0xae, 0xa0, 0x64, 0x17, 0x79, 0x5a, 0xe4, 0x33, 0xb8, 0xa5, 0x11, 0xa1, 0x9b,
|
||||||
0xb9, 0x90, 0xfa, 0x16, 0x71, 0x0a, 0xc7, 0x14, 0xdb, 0xa0, 0x03, 0x23, 0x42, 0xb5, 0x04, 0x5e,
|
0xb1, 0x7f, 0x1f, 0x33, 0x2e, 0xd4, 0x2d, 0xe2, 0x14, 0x86, 0x29, 0xb6, 0x41, 0x07, 0x5a, 0x84,
|
||||||
0xa6, 0x9a, 0xcf, 0xab, 0xa7, 0x6b, 0x1b, 0xbe, 0x56, 0x39, 0x1d, 0x83, 0x3b, 0xf9, 0x12, 0xee,
|
0x2a, 0x09, 0xbc, 0x4c, 0x39, 0x9f, 0x55, 0x4f, 0x57, 0x36, 0x7c, 0xa5, 0x72, 0x3a, 0x06, 0x77,
|
||||||
0x4e, 0x4f, 0x57, 0xc7, 0x21, 0xb9, 0x79, 0x3d, 0xc1, 0xf9, 0xb7, 0xcb, 0xf3, 0x29, 0x4a, 0xe8,
|
0xf2, 0x39, 0xdc, 0x9e, 0x9e, 0x2e, 0x8f, 0x43, 0x30, 0xfd, 0x7a, 0x82, 0xf3, 0x6f, 0x96, 0xe7,
|
||||||
0xf7, 0x57, 0x2f, 0xa0, 0x15, 0xb8, 0x5e, 0xbd, 0x80, 0xd6, 0xe0, 0x3e, 0xf4, 0xfc, 0x40, 0x24,
|
0x53, 0x94, 0x50, 0xef, 0xaf, 0x5e, 0x40, 0x29, 0x70, 0xb5, 0x7a, 0x01, 0xa5, 0xc1, 0x5d, 0xe8,
|
||||||
0x21, 0x9b, 0x68, 0xfb, 0x5a, 0xc5, 0xab, 0xef, 0x1a, 0x9e, 0xb2, 0x31, 0xe7, 0x02, 0x6e, 0x4d,
|
0x05, 0x21, 0x4f, 0x23, 0x6f, 0xa2, 0xec, 0x6b, 0x15, 0xaf, 0xbe, 0xab, 0x79, 0xd2, 0xc6, 0x9c,
|
||||||
0xbb, 0x40, 0x86, 0x1a, 0xe6, 0x3b, 0xeb, 0x8c, 0x51, 0xd7, 0xe7, 0x18, 0xf5, 0xb4, 0xe5, 0x36,
|
0x0b, 0xb8, 0x31, 0xed, 0x02, 0x06, 0x35, 0xcc, 0x77, 0xd6, 0x19, 0xa3, 0xae, 0xcf, 0x31, 0xea,
|
||||||
0x66, 0x2c, 0xd7, 0xf9, 0xef, 0xe6, 0x3c, 0xe7, 0x33, 0x65, 0xc1, 0x2f, 0xd6, 0x2d, 0x3d, 0xe3,
|
0x69, 0xcb, 0x6d, 0xcc, 0x58, 0xae, 0xf3, 0x8b, 0xe6, 0x3c, 0xe7, 0xd3, 0x65, 0xc1, 0x4f, 0xd6,
|
||||||
0x60, 0xdd, 0x24, 0x0d, 0xce, 0x99, 0xe4, 0xee, 0x19, 0x9f, 0xe8, 0x04, 0xf7, 0xa8, 0x3e, 0xa8,
|
0x2d, 0x3d, 0xed, 0x60, 0xdd, 0x34, 0x0b, 0xcf, 0x3d, 0xc1, 0xdc, 0x33, 0x36, 0x51, 0x09, 0xee,
|
||||||
0x51, 0x30, 0x6c, 0x15, 0x70, 0xd7, 0x55, 0xd0, 0x10, 0x5e, 0x1a, 0x24, 0xea, 0x15, 0xe8, 0x63,
|
0x41, 0x7d, 0x50, 0xa3, 0xa0, 0xd9, 0x32, 0xe0, 0xae, 0xcb, 0xa0, 0xc1, 0xfd, 0x2c, 0x4c, 0xe5,
|
||||||
0x3d, 0x6a, 0xb3, 0x54, 0xce, 0xfb, 0x3e, 0x0e, 0x22, 0xe3, 0x61, 0x6d, 0x6a, 0x28, 0x95, 0x11,
|
0x2b, 0xd0, 0xc7, 0x7a, 0xd4, 0x66, 0xc9, 0x9c, 0xf7, 0x6d, 0x12, 0xc6, 0xda, 0xc3, 0xda, 0x54,
|
||||||
0xb4, 0xdd, 0x71, 0x1f, 0x73, 0x5e, 0x9b, 0xe6, 0x74, 0xe1, 0x00, 0x8b, 0xb6, 0x03, 0xbc, 0x80,
|
0x53, 0x32, 0x23, 0x28, 0xbb, 0x63, 0x01, 0xe6, 0xbc, 0x36, 0xcd, 0xe9, 0xc2, 0x01, 0x16, 0x6d,
|
||||||
0xbe, 0xb9, 0x29, 0xe1, 0xca, 0xd8, 0x55, 0xeb, 0x18, 0x10, 0xf2, 0xce, 0x14, 0xf2, 0xcb, 0x0b,
|
0x07, 0x78, 0x06, 0x7d, 0x7d, 0x53, 0xdc, 0x15, 0x89, 0x2b, 0xd7, 0xd1, 0x20, 0xe4, 0xad, 0x29,
|
||||||
0x20, 0x23, 0x7e, 0x14, 0x3f, 0x89, 0x83, 0x88, 0x2e, 0xa7, 0x25, 0x9a, 0x7c, 0x0e, 0xed, 0x0c,
|
0xe4, 0x97, 0x17, 0x40, 0x5a, 0xfc, 0x28, 0x79, 0x94, 0x84, 0x31, 0x5d, 0xce, 0x4a, 0x34, 0xf9,
|
||||||
0x76, 0x1b, 0x98, 0xff, 0x66, 0xc5, 0x42, 0x06, 0xef, 0x0b, 0x9a, 0x4f, 0x50, 0x41, 0x9a, 0x47,
|
0x14, 0xda, 0x06, 0x76, 0x6b, 0x98, 0xff, 0x7a, 0xc5, 0x42, 0x1a, 0xef, 0x73, 0x9a, 0x4f, 0x90,
|
||||||
0x5e, 0x3a, 0x49, 0x64, 0xee, 0xc0, 0x05, 0x03, 0x43, 0x78, 0xc2, 0x3d, 0xc9, 0x0a, 0x37, 0x2e,
|
0x41, 0x9a, 0xc5, 0x7e, 0x36, 0x49, 0x45, 0xee, 0xc0, 0x05, 0x03, 0x43, 0x78, 0xca, 0x7c, 0xe1,
|
||||||
0x18, 0x2a, 0x26, 0x1b, 0x51, 0xe5, 0x8c, 0x98, 0x8b, 0x7b, 0x78, 0x72, 0xcb, 0x05, 0xfb, 0xa9,
|
0x15, 0x6e, 0x5c, 0x30, 0x64, 0x4c, 0xd6, 0xa2, 0xd2, 0x19, 0x31, 0x17, 0xf7, 0xf0, 0xe4, 0x96,
|
||||||
0x4a, 0xb9, 0xbb, 0xd0, 0x53, 0x06, 0x98, 0xc6, 0xa1, 0x1b, 0xc5, 0x3e, 0x37, 0x08, 0xdc, 0xa9,
|
0x0b, 0xf6, 0x63, 0x99, 0x72, 0x77, 0xa1, 0x27, 0x0d, 0x30, 0x4b, 0x22, 0x37, 0x4e, 0x02, 0xa6,
|
||||||
0xd0, 0x72, 0x5b, 0x8b, 0xee, 0xc7, 0x3e, 0x57, 0xa5, 0x5f, 0x4e, 0x90, 0x3b, 0xd0, 0xd1, 0xa7,
|
0x11, 0xb8, 0x53, 0xa1, 0xe5, 0xb6, 0x12, 0xdd, 0x4f, 0x02, 0x26, 0x4b, 0xbf, 0x9c, 0x20, 0xb7,
|
||||||
0xee, 0x32, 0x69, 0x9c, 0xbe, 0xad, 0x19, 0x5b, 0x52, 0xa1, 0x84, 0x3b, 0x97, 0x9c, 0x9a, 0xb1,
|
0xa0, 0xa3, 0x4e, 0xdd, 0xf5, 0x84, 0x76, 0xfa, 0xb6, 0x62, 0x6c, 0x09, 0x89, 0x12, 0x6e, 0xbd,
|
||||||
0x8b, 0x5a, 0x6e, 0x17, 0xf7, 0x00, 0x92, 0xf1, 0x49, 0x18, 0x78, 0x68, 0x16, 0xda, 0x40, 0x3b,
|
0xe4, 0xd4, 0xb4, 0x5d, 0xd4, 0x72, 0xbb, 0xb8, 0x03, 0x90, 0x8e, 0x4f, 0xa2, 0xd0, 0x47, 0xb3,
|
||||||
0x9a, 0xa3, 0x2c, 0x22, 0x37, 0xae, 0x86, 0x6d, 0x5c, 0x97, 0x04, 0xe2, 0x5b, 0x3a, 0xfd, 0x67,
|
0x50, 0x06, 0xda, 0x51, 0x1c, 0x69, 0x11, 0xb9, 0x71, 0x35, 0x6c, 0xe3, 0x7a, 0x49, 0x20, 0xbe,
|
||||||
0x68, 0xb5, 0x43, 0x5b, 0x8a, 0xdc, 0xf3, 0x95, 0x9d, 0x67, 0xe5, 0xe1, 0x44, 0x8d, 0xb6, 0xb4,
|
0xa1, 0xd2, 0xbf, 0x41, 0xab, 0x1d, 0xda, 0x92, 0xe4, 0x5e, 0x20, 0xed, 0xdc, 0x94, 0x87, 0x13,
|
||||||
0x71, 0xe5, 0xbc, 0x3d, 0x34, 0x14, 0xed, 0xee, 0x8b, 0xfa, 0x65, 0x48, 0x90, 0xaf, 0xe0, 0x5a,
|
0x39, 0xda, 0x52, 0xc6, 0x95, 0xf3, 0xf6, 0xd0, 0x50, 0x94, 0xbb, 0x2f, 0xaa, 0x97, 0x21, 0x41,
|
||||||
0xca, 0xcf, 0x39, 0x0b, 0xd5, 0x86, 0xb5, 0xbf, 0x65, 0x70, 0xd5, 0xaa, 0x25, 0xa9, 0x11, 0xc9,
|
0xbe, 0x80, 0x2b, 0x19, 0x3b, 0x67, 0x5e, 0x24, 0x37, 0xac, 0xfc, 0xcd, 0xc0, 0x55, 0xab, 0x96,
|
||||||
0x0b, 0x98, 0xb4, 0xcc, 0x10, 0xce, 0xb7, 0x30, 0xa8, 0x3a, 0xdf, 0x3f, 0x32, 0xd9, 0x3a, 0xbf,
|
0xa4, 0x5a, 0x24, 0x2f, 0x60, 0xb2, 0x32, 0x83, 0x3b, 0x5f, 0xc3, 0xa0, 0xea, 0x7c, 0xff, 0xca,
|
||||||
0xab, 0x41, 0x3b, 0x2b, 0x52, 0xac, 0x13, 0xd6, 0xa9, 0xed, 0x0e, 0x74, 0xf0, 0x44, 0x30, 0x0f,
|
0x64, 0xeb, 0xfc, 0xb1, 0x06, 0x6d, 0x53, 0xa4, 0x58, 0x27, 0xac, 0x52, 0xdb, 0x2d, 0xe8, 0xe0,
|
||||||
0xeb, 0x16, 0x44, 0x5b, 0x31, 0x4a, 0x59, 0xb8, 0x61, 0x65, 0xe1, 0x6f, 0xe0, 0xe6, 0x88, 0x8f,
|
0x89, 0x60, 0x1e, 0x56, 0x2d, 0x88, 0xb6, 0x64, 0x94, 0xb2, 0x70, 0xc3, 0xca, 0xc2, 0x5f, 0xc1,
|
||||||
0x4e, 0x78, 0x2a, 0x86, 0x41, 0xa2, 0x63, 0xc0, 0xee, 0x39, 0x57, 0xbb, 0x9e, 0x2d, 0x1f, 0xe6,
|
0xf5, 0x11, 0x1b, 0x9d, 0xb0, 0x8c, 0x0f, 0xc3, 0x54, 0xc5, 0x80, 0xdd, 0x73, 0x26, 0x77, 0x3d,
|
||||||
0xca, 0xd1, 0x8a, 0xf9, 0xca, 0x7b, 0x99, 0x27, 0x83, 0x73, 0x9e, 0x79, 0xaf, 0xa6, 0x8a, 0xed,
|
0x5b, 0x3e, 0xcc, 0x95, 0xa3, 0x15, 0xf3, 0xa5, 0xf7, 0x7a, 0xbe, 0x08, 0xcf, 0x99, 0xf1, 0x5e,
|
||||||
0xb7, 0xec, 0xed, 0xcf, 0xf5, 0x5b, 0xe7, 0xc7, 0x3a, 0xdc, 0x9c, 0xff, 0xda, 0x8a, 0x53, 0x24,
|
0x45, 0x15, 0xdb, 0x6f, 0xd9, 0xdb, 0x9f, 0xeb, 0xb7, 0xce, 0xf7, 0x75, 0xb8, 0x3e, 0xff, 0xb5,
|
||||||
0xd0, 0xb4, 0xb6, 0x8e, 0xcf, 0x2a, 0xfb, 0x19, 0x15, 0xb1, 0x89, 0xd2, 0xa1, 0x19, 0x39, 0x17,
|
0x15, 0xa7, 0x48, 0xa0, 0x69, 0x6d, 0x1d, 0x9f, 0x65, 0xf6, 0xd3, 0x2a, 0x62, 0x13, 0xa5, 0x43,
|
||||||
0x96, 0x5c, 0x8a, 0xa0, 0x6c, 0x8b, 0x6b, 0x95, 0x2c, 0x8e, 0x40, 0xf3, 0x55, 0x1a, 0x8f, 0x4c,
|
0x0d, 0x39, 0x17, 0x96, 0xbc, 0x14, 0x41, 0xd9, 0x16, 0xd7, 0x2a, 0x59, 0x1c, 0x81, 0xe6, 0x8b,
|
||||||
0x16, 0xc7, 0x67, 0x05, 0x02, 0x52, 0x76, 0xe1, 0x66, 0x38, 0xbf, 0x8d, 0x8b, 0x41, 0xca, 0x2e,
|
0x2c, 0x19, 0xe9, 0x2c, 0x8e, 0xcf, 0x12, 0x04, 0x64, 0xde, 0x85, 0x6b, 0x70, 0x7e, 0x1b, 0x17,
|
||||||
0x0e, 0x0a, 0xa8, 0x6f, 0x57, 0x31, 0x9a, 0xc0, 0x7a, 0x03, 0x23, 0x38, 0xe0, 0x04, 0x4d, 0x38,
|
0x83, 0xcc, 0xbb, 0x38, 0x28, 0xa0, 0xbe, 0x5d, 0xc5, 0x28, 0x02, 0xeb, 0x0d, 0x8c, 0xe0, 0x80,
|
||||||
0x9f, 0xc0, 0x4a, 0x5e, 0x9a, 0x9a, 0xe4, 0xfd, 0x5a, 0x4d, 0x24, 0xe7, 0xa1, 0xc6, 0x7c, 0x6a,
|
0x13, 0x14, 0xe1, 0x7c, 0x04, 0x2b, 0x79, 0x69, 0xaa, 0x93, 0xf7, 0x2b, 0x35, 0x91, 0x9c, 0xfb,
|
||||||
0xe2, 0x73, 0xdd, 0x04, 0x13, 0x94, 0xb3, 0xd7, 0x9d, 0xfd, 0x57, 0x70, 0x53, 0x97, 0xea, 0x32,
|
0x0a, 0xf3, 0xc9, 0x89, 0x4f, 0x55, 0x13, 0x8c, 0x53, 0xe6, 0xbd, 0xea, 0xec, 0x7f, 0x82, 0xeb,
|
||||||
0x38, 0x57, 0x76, 0xcc, 0x23, 0xc9, 0xd3, 0x4b, 0xe6, 0xf7, 0xa1, 0x11, 0xf8, 0x62, 0x50, 0x5f,
|
0xaa, 0x54, 0x17, 0xe1, 0xb9, 0xb4, 0x63, 0x16, 0x0b, 0x96, 0xbd, 0x64, 0x7e, 0x1f, 0x1a, 0x61,
|
||||||
0x6f, 0x3c, 0xe8, 0x51, 0xf5, 0xe8, 0xec, 0xc0, 0xda, 0xec, 0x0a, 0x5b, 0x9e, 0xc7, 0x31, 0xda,
|
0xc0, 0x07, 0xf5, 0xf5, 0xc6, 0xbd, 0x1e, 0x95, 0x8f, 0xce, 0x0e, 0xac, 0xcd, 0xae, 0xb0, 0xe5,
|
||||||
0xbd, 0xee, 0x2a, 0xbb, 0x3a, 0xd2, 0x94, 0x57, 0xd9, 0x09, 0xc4, 0x28, 0x10, 0xe2, 0x0a, 0xcb,
|
0xfb, 0x0c, 0xa3, 0xdd, 0xab, 0xae, 0xb2, 0xab, 0x22, 0x4d, 0x79, 0x95, 0x9d, 0x90, 0x8f, 0x42,
|
||||||
0x6c, 0xeb, 0xe4, 0x36, 0xb5, 0x0c, 0x0f, 0xf9, 0x55, 0x74, 0x79, 0xa4, 0x9d, 0xbb, 0xbc, 0xc8,
|
0xce, 0x2f, 0xb1, 0xcc, 0xb6, 0x4a, 0x6e, 0x53, 0xcb, 0xb0, 0x88, 0x5d, 0x46, 0x97, 0x07, 0xca,
|
||||||
0x71, 0x94, 0x5e, 0xe5, 0x54, 0xfe, 0xb3, 0x0e, 0xef, 0xcf, 0x2e, 0x32, 0x1d, 0x48, 0x77, 0xb8,
|
0xb9, 0xcb, 0x8b, 0x1c, 0xc7, 0xd9, 0x65, 0x4e, 0xe5, 0x67, 0x75, 0x78, 0x77, 0x76, 0x91, 0xe9,
|
||||||
0x17, 0x88, 0x6a, 0x80, 0x3e, 0x9d, 0x77, 0xff, 0x04, 0xae, 0x15, 0xce, 0x98, 0xe1, 0xaf, 0x06,
|
0x40, 0xba, 0xc3, 0xfc, 0x90, 0x57, 0x03, 0xf4, 0xe9, 0xbc, 0xfb, 0x37, 0x70, 0xa5, 0x70, 0x46,
|
||||||
0xba, 0x42, 0xbf, 0x18, 0x30, 0x20, 0xec, 0x0c, 0xda, 0xbe, 0x59, 0x1e, 0x1d, 0x60, 0x79, 0xf3,
|
0x83, 0xbf, 0x1a, 0xe8, 0x0a, 0xfd, 0x62, 0x40, 0x83, 0xb0, 0x33, 0x68, 0x07, 0x7a, 0x79, 0x74,
|
||||||
0xc5, 0x74, 0x7b, 0xe6, 0x75, 0x54, 0xdb, 0x28, 0x02, 0x6d, 0x06, 0x86, 0xb2, 0x65, 0x69, 0xfe,
|
0x80, 0xe5, 0xcd, 0x67, 0xd3, 0xed, 0x99, 0x57, 0x51, 0x6d, 0xa3, 0x08, 0xb4, 0x06, 0x0c, 0x99,
|
||||||
0x02, 0xe7, 0x53, 0x58, 0xab, 0x96, 0x23, 0x3d, 0x68, 0x6f, 0x6d, 0x6f, 0xef, 0x1e, 0x1c, 0xed,
|
0x65, 0x69, 0xfe, 0x02, 0xe7, 0x63, 0x58, 0xab, 0x96, 0x23, 0x3d, 0x68, 0x6f, 0x6d, 0x6f, 0xef,
|
||||||
0xee, 0xf4, 0xdf, 0x50, 0xd4, 0xce, 0xee, 0xf6, 0xb3, 0xbd, 0xfd, 0xdd, 0x9d, 0x7e, 0xcd, 0xf9,
|
0x1e, 0x1c, 0xed, 0xee, 0xf4, 0x5f, 0x93, 0xd4, 0xce, 0xee, 0xf6, 0x93, 0xbd, 0xfd, 0xdd, 0x9d,
|
||||||
0xb9, 0x06, 0x3d, 0xa5, 0xcd, 0xa3, 0x38, 0x3e, 0x1b, 0xb1, 0xf4, 0xac, 0xfa, 0x84, 0xc7, 0x69,
|
0x7e, 0xcd, 0xf9, 0xb1, 0x06, 0x3d, 0xa9, 0xcd, 0x83, 0x24, 0x39, 0x1b, 0x79, 0xd9, 0x59, 0xf5,
|
||||||
0x68, 0x0c, 0x57, 0x3d, 0xce, 0x8d, 0x76, 0x77, 0xa0, 0x83, 0xde, 0xe4, 0x2a, 0x59, 0xed, 0xf5,
|
0x09, 0x8f, 0xb3, 0x48, 0x1b, 0xae, 0x7c, 0x9c, 0x1b, 0xed, 0x6e, 0x41, 0x07, 0xbd, 0xc9, 0x95,
|
||||||
0x6d, 0x64, 0x1c, 0xa7, 0xa1, 0x8d, 0x92, 0x17, 0xca, 0x28, 0xf9, 0x1e, 0x80, 0xaf, 0x6d, 0x44,
|
0xb2, 0xca, 0xeb, 0xdb, 0xc8, 0x38, 0xce, 0x22, 0x1b, 0x25, 0x2f, 0x94, 0x51, 0xf2, 0x1d, 0x80,
|
||||||
0x65, 0x41, 0x1d, 0xb7, 0x3a, 0x86, 0xb3, 0x25, 0x9d, 0x7f, 0x84, 0x1b, 0x4a, 0xc3, 0xdd, 0x48,
|
0x40, 0xd9, 0x88, 0xcc, 0x82, 0x2a, 0x6e, 0x75, 0x34, 0x67, 0x4b, 0x38, 0xff, 0x09, 0xd7, 0xa4,
|
||||||
0x1c, 0x0b, 0x9e, 0xaa, 0x17, 0xe9, 0x8e, 0x4f, 0x85, 0xaa, 0x6b, 0xd0, 0x1e, 0x1b, 0x39, 0xa3,
|
0x86, 0xbb, 0x31, 0x3f, 0xe6, 0x2c, 0x93, 0x2f, 0x52, 0x1d, 0x9f, 0x0a, 0x55, 0xd7, 0xa0, 0x3d,
|
||||||
0x6f, 0x4e, 0x63, 0x03, 0x66, 0xc8, 0x02, 0x0c, 0xff, 0x3a, 0x0b, 0x2e, 0x22, 0xbd, 0x57, 0x02,
|
0xd6, 0x72, 0x5a, 0xdf, 0x9c, 0xc6, 0x06, 0xcc, 0xd0, 0x0b, 0x31, 0xfc, 0xab, 0x2c, 0xb8, 0x88,
|
||||||
0xf1, 0xcd, 0x92, 0x7a, 0xce, 0x13, 0xe8, 0xa3, 0x87, 0x87, 0x9c, 0xa5, 0x8f, 0x03, 0x21, 0xe3,
|
0xf4, 0x5e, 0x09, 0xc4, 0x37, 0x4b, 0xea, 0x39, 0x8f, 0xa0, 0x8f, 0x1e, 0x1e, 0x31, 0x2f, 0x7b,
|
||||||
0x74, 0x62, 0x07, 0xaa, 0x5a, 0x29, 0x50, 0xdd, 0x03, 0xf0, 0x94, 0xa0, 0xde, 0x4b, 0x5d, 0xef,
|
0x18, 0x72, 0x91, 0x64, 0x13, 0x3b, 0x50, 0xd5, 0x4a, 0x81, 0xea, 0x0e, 0x80, 0x2f, 0x05, 0xd5,
|
||||||
0xc5, 0x70, 0xb6, 0xa4, 0xf3, 0xab, 0x1a, 0x10, 0x2c, 0x11, 0x35, 0x6c, 0x3c, 0x08, 0x3c, 0x8c,
|
0x5e, 0xea, 0x6a, 0x2f, 0x9a, 0xb3, 0x25, 0x9c, 0xdf, 0xd6, 0x80, 0x60, 0x89, 0xa8, 0x60, 0xe3,
|
||||||
0x7b, 0xf3, 0xaa, 0x63, 0xab, 0x85, 0x51, 0xaf, 0x68, 0x61, 0x68, 0xdb, 0x9b, 0x69, 0x61, 0x34,
|
0x41, 0xe8, 0x63, 0xdc, 0x9b, 0x57, 0x1d, 0x5b, 0x2d, 0x8c, 0x7a, 0x45, 0x0b, 0x43, 0xd9, 0xde,
|
||||||
0x91, 0x9d, 0xb5, 0x30, 0xee, 0x40, 0x07, 0x61, 0x2b, 0xf6, 0x30, 0x74, 0x29, 0x88, 0x3d, 0x8c,
|
0x4c, 0x0b, 0xa3, 0x89, 0x6c, 0xd3, 0xc2, 0xb8, 0x05, 0x1d, 0x84, 0xad, 0xd8, 0xc3, 0x50, 0xa5,
|
||||||
0xc3, 0xb9, 0x3d, 0x8c, 0x16, 0x0a, 0x54, 0xf4, 0x30, 0x16, 0xed, 0x1e, 0xc6, 0x10, 0xae, 0xcf,
|
0x20, 0xf6, 0x30, 0x0e, 0xe7, 0xf6, 0x30, 0x5a, 0x28, 0x50, 0xd1, 0xc3, 0x58, 0xb4, 0x7b, 0x18,
|
||||||
0xee, 0x44, 0x54, 0xb7, 0x69, 0x3e, 0x85, 0x76, 0x62, 0x84, 0xd0, 0x53, 0xbb, 0x9b, 0x77, 0xcb,
|
0x43, 0xb8, 0x3a, 0xbb, 0x13, 0x5e, 0xdd, 0xa6, 0xf9, 0x18, 0xda, 0xa9, 0x16, 0x42, 0x4f, 0xed,
|
||||||
0x0e, 0x51, 0x5e, 0x89, 0xe6, 0xd2, 0xce, 0xaf, 0x1b, 0xd0, 0xb5, 0x1a, 0x9a, 0x15, 0xf7, 0x3e,
|
0x6e, 0xde, 0x2e, 0x3b, 0x44, 0x79, 0x25, 0x9a, 0x4b, 0x3b, 0xbf, 0x6b, 0x40, 0xd7, 0x6a, 0x68,
|
||||||
0x80, 0x45, 0xe6, 0xfb, 0x29, 0x17, 0x22, 0x3b, 0x2f, 0x43, 0xda, 0x2a, 0x35, 0x4a, 0x2a, 0x95,
|
0x56, 0xdc, 0xfb, 0x00, 0x16, 0xbd, 0x20, 0xc8, 0x18, 0xe7, 0xe6, 0xbc, 0x34, 0x69, 0xab, 0xd4,
|
||||||
0x01, 0x93, 0x86, 0xc8, 0x16, 0x60, 0x22, 0xd0, 0x4c, 0x98, 0x1c, 0x1a, 0xf0, 0x83, 0xcf, 0xf9,
|
0x28, 0xa9, 0x54, 0x06, 0x4c, 0x0a, 0x22, 0x5b, 0x80, 0x89, 0x40, 0x33, 0xf5, 0xc4, 0x50, 0x83,
|
||||||
0x4d, 0xb5, 0xac, 0x9b, 0xb2, 0xdb, 0x7a, 0x8b, 0xa6, 0x4f, 0x62, 0xda, 0x7a, 0xab, 0xb0, 0xc0,
|
0x1f, 0x7c, 0xce, 0x6f, 0xaa, 0x65, 0xdd, 0x94, 0xdd, 0xd6, 0x5b, 0xd4, 0x7d, 0x12, 0xdd, 0xd6,
|
||||||
0x47, 0xf1, 0xf7, 0x01, 0x66, 0xa7, 0x0e, 0xd5, 0x84, 0xba, 0xaa, 0x0b, 0x16, 0x86, 0x5c, 0x9a,
|
0x5b, 0x85, 0x05, 0x36, 0x4a, 0xbe, 0x0d, 0x31, 0x3b, 0x75, 0xa8, 0x22, 0xe4, 0x55, 0x5d, 0x78,
|
||||||
0xba, 0xd3, 0x50, 0x6a, 0x71, 0x65, 0x46, 0x06, 0xb4, 0xe2, 0x33, 0x5e, 0x6b, 0xe0, 0xfb, 0x3c,
|
0x51, 0xc4, 0x84, 0xae, 0x3b, 0x35, 0x25, 0x17, 0x97, 0x66, 0xa4, 0x41, 0x2b, 0x3e, 0xe3, 0xb5,
|
||||||
0x32, 0x60, 0xd5, 0x50, 0x97, 0x14, 0x9d, 0x6b, 0xd0, 0x4e, 0x62, 0x11, 0x20, 0xec, 0x5f, 0xd2,
|
0x86, 0x41, 0xc0, 0x62, 0x0d, 0x56, 0x35, 0xf5, 0x92, 0xa2, 0x73, 0x0d, 0xda, 0x69, 0xc2, 0x43,
|
||||||
0x90, 0x32, 0xa3, 0xc9, 0xc7, 0x70, 0x23, 0x49, 0x63, 0xff, 0x20, 0xe5, 0xaf, 0x78, 0x9a, 0x72,
|
0x84, 0xfd, 0x4b, 0x0a, 0x52, 0x1a, 0x9a, 0x7c, 0x08, 0xd7, 0xd2, 0x2c, 0x09, 0x0e, 0x32, 0xf6,
|
||||||
0x7f, 0x1b, 0xad, 0x7f, 0x47, 0x17, 0x9c, 0x1d, 0x3a, 0x7f, 0x50, 0xcd, 0x92, 0x5c, 0xc8, 0xd9,
|
0x82, 0x65, 0x19, 0x0b, 0xb6, 0xd1, 0xfa, 0x77, 0x54, 0xc1, 0xd9, 0xa1, 0xf3, 0x07, 0xe5, 0x2c,
|
||||||
0x59, 0x2b, 0x7a, 0xd6, 0xdc, 0x41, 0xa5, 0x47, 0x9c, 0xf0, 0x94, 0x9d, 0x84, 0xba, 0xe6, 0xec,
|
0xc1, 0xb8, 0x98, 0x9d, 0xb5, 0xa2, 0x66, 0xcd, 0x1d, 0x94, 0x7a, 0x24, 0x29, 0xcb, 0xbc, 0x93,
|
||||||
0xd0, 0x9c, 0x76, 0xfe, 0xd5, 0x5c, 0xa9, 0x69, 0x96, 0x57, 0x5c, 0xa9, 0x75, 0x71, 0xf5, 0xb9,
|
0x48, 0xd5, 0x9c, 0x1d, 0x9a, 0xd3, 0xce, 0xff, 0xe8, 0x2b, 0xd5, 0xcd, 0xf2, 0x8a, 0x2b, 0xb5,
|
||||||
0x2d, 0xbf, 0x46, 0xb9, 0x9b, 0x64, 0x75, 0x6d, 0x34, 0x36, 0x51, 0x95, 0x20, 0x4f, 0x83, 0x73,
|
0x2e, 0xae, 0x3e, 0xb7, 0xe5, 0xd7, 0x28, 0x77, 0x93, 0xac, 0xae, 0x8d, 0xc2, 0x26, 0xb2, 0x12,
|
||||||
0xee, 0xbb, 0x08, 0x1f, 0x16, 0x4c, 0x25, 0xa8, 0x79, 0x5f, 0x29, 0x14, 0xf1, 0x39, 0xac, 0xe9,
|
0x64, 0x59, 0x78, 0xce, 0x02, 0x17, 0xe1, 0xc3, 0x82, 0xae, 0x04, 0x15, 0xef, 0x0b, 0x89, 0x22,
|
||||||
0x9a, 0x4d, 0x70, 0xdf, 0xc5, 0x01, 0x03, 0x10, 0xb1, 0x27, 0xa9, 0x83, 0xd1, 0x2d, 0xac, 0xe0,
|
0x3e, 0x85, 0x35, 0x55, 0xb3, 0x71, 0x16, 0xb8, 0x38, 0xa0, 0x01, 0x22, 0xf6, 0x24, 0x55, 0x30,
|
||||||
0x04, 0xf7, 0x77, 0xf2, 0xf1, 0x3d, 0x35, 0xac, 0xfb, 0x10, 0x91, 0x97, 0x2d, 0xaf, 0x2f, 0x1f,
|
0xba, 0x81, 0x15, 0x1c, 0x67, 0xc1, 0x4e, 0x3e, 0xbe, 0x27, 0x87, 0x55, 0x1f, 0x22, 0xf6, 0xcd,
|
||||||
0x34, 0x0b, 0x57, 0xff, 0x73, 0x68, 0x4f, 0xe1, 0xdc, 0x8a, 0x26, 0x7d, 0x2e, 0xa6, 0xa6, 0x98,
|
0xf2, 0xea, 0xf2, 0x41, 0xb1, 0x70, 0xf5, 0xbf, 0x87, 0xf6, 0x14, 0xce, 0xad, 0x68, 0xd2, 0xe7,
|
||||||
0x1e, 0x9a, 0xaa, 0x7d, 0x1a, 0x73, 0x3f, 0x30, 0xa8, 0x51, 0x9a, 0x8b, 0xd9, 0xb6, 0x00, 0x65,
|
0x62, 0x72, 0x8a, 0xee, 0xa1, 0xc9, 0xda, 0xa7, 0x31, 0xf7, 0x03, 0x83, 0x1c, 0xa5, 0xb9, 0x98,
|
||||||
0x5b, 0x78, 0x0f, 0xfa, 0x53, 0x6d, 0x65, 0x81, 0x76, 0xd4, 0x9b, 0x69, 0xd4, 0x39, 0xdf, 0xe9,
|
0x6d, 0x0b, 0x50, 0xb6, 0x85, 0x77, 0xa0, 0x3f, 0xd5, 0x56, 0xe6, 0x68, 0x47, 0xbd, 0x99, 0x46,
|
||||||
0x30, 0x9b, 0x61, 0xec, 0x03, 0x63, 0x32, 0x55, 0x50, 0xd0, 0xde, 0x59, 0xfd, 0xb5, 0x76, 0xe6,
|
0x9d, 0xf3, 0x8d, 0x0a, 0xb3, 0x06, 0x63, 0x1f, 0x68, 0x93, 0xa9, 0x82, 0x82, 0xf6, 0xce, 0xea,
|
||||||
0xfc, 0x4b, 0x5d, 0x47, 0xd2, 0x43, 0x76, 0xce, 0xfd, 0x2d, 0xe3, 0x9c, 0x96, 0xdb, 0xd6, 0xca,
|
0xaf, 0xb4, 0x33, 0xe7, 0x4f, 0x35, 0x15, 0x49, 0x0f, 0xbd, 0x73, 0x16, 0x6c, 0x69, 0xe7, 0xb4,
|
||||||
0x6e, 0x3b, 0xaf, 0xaf, 0x7b, 0x17, 0x3a, 0xaf, 0xd8, 0x79, 0x3c, 0x4e, 0x03, 0xa9, 0x6f, 0xbf,
|
0xdc, 0xb6, 0x56, 0x76, 0xdb, 0x8a, 0xbe, 0x6e, 0x45, 0x12, 0xb9, 0x0b, 0x3d, 0x55, 0x76, 0xbb,
|
||||||
0x4d, 0x0b, 0xc6, 0x25, 0x29, 0xe6, 0x3e, 0xf4, 0x74, 0x51, 0xee, 0xda, 0x91, 0xac, 0xab, 0x79,
|
0x76, 0xac, 0xea, 0x2a, 0x9e, 0xea, 0x0b, 0xbc, 0x0b, 0x57, 0x54, 0xf4, 0xe7, 0xc3, 0x24, 0x13,
|
||||||
0xba, 0x6b, 0xf0, 0x3e, 0x5c, 0xd3, 0xb9, 0x41, 0x0c, 0xe3, 0x54, 0x62, 0x41, 0x24, 0x8c, 0xdb,
|
0x58, 0xf2, 0x70, 0xed, 0x98, 0x2b, 0x38, 0x70, 0x28, 0xf9, 0xb2, 0xf4, 0xe1, 0x32, 0xe1, 0xb1,
|
||||||
0xae, 0xe0, 0xc0, 0xa1, 0xe2, 0xab, 0xc2, 0x48, 0xa8, 0x74, 0xc8, 0x23, 0x61, 0x70, 0xa5, 0x7a,
|
0x98, 0x6b, 0xe4, 0x28, 0x1f, 0xa5, 0x31, 0x86, 0xdc, 0x95, 0xa6, 0xae, 0x0f, 0xb9, 0x15, 0xf2,
|
||||||
0x54, 0xa6, 0x1a, 0x08, 0x57, 0x39, 0x82, 0xb9, 0x82, 0x56, 0x20, 0x8e, 0xb8, 0x90, 0x05, 0x08,
|
0x23, 0xc6, 0x45, 0x01, 0x33, 0xbb, 0x16, 0xcc, 0x7c, 0xd4, 0x6c, 0x37, 0xfa, 0xcd, 0x47, 0xcd,
|
||||||
0xed, 0x5a, 0x20, 0xf4, 0x49, 0xb3, 0xdd, 0xec, 0x2f, 0x38, 0x3f, 0xd5, 0xf4, 0x99, 0xcf, 0x54,
|
0x76, 0xb3, 0xbf, 0xe0, 0xfc, 0x50, 0x53, 0x67, 0x3b, 0x53, 0xb5, 0x56, 0x9c, 0xed, 0x74, 0x7d,
|
||||||
0xb3, 0x15, 0x67, 0x3e, 0x5d, 0x77, 0xe9, 0x93, 0x29, 0xd5, 0x5d, 0xbb, 0xf0, 0xe6, 0x50, 0xe7,
|
0xa5, 0x4e, 0xa0, 0x54, 0x5f, 0xed, 0xc2, 0xeb, 0x43, 0x95, 0x8b, 0x5c, 0x2f, 0xf3, 0x87, 0xe1,
|
||||||
0x28, 0x97, 0xa5, 0xde, 0x30, 0x38, 0xe7, 0xae, 0x18, 0x27, 0x89, 0xda, 0x11, 0x8f, 0x94, 0xeb,
|
0x39, 0x73, 0xf9, 0x38, 0x4d, 0xe5, 0xbe, 0x58, 0x2c, 0x5d, 0x4c, 0xc5, 0xba, 0x36, 0xbd, 0xad,
|
||||||
0xf9, 0xe6, 0xd8, 0xee, 0x1a, 0xb1, 0x2d, 0x2d, 0x75, 0xa8, 0x85, 0x76, 0xb5, 0x8c, 0xf3, 0xbf,
|
0xc5, 0xb6, 0x94, 0xd4, 0xa1, 0x12, 0xda, 0x55, 0x32, 0xce, 0xaf, 0x6a, 0x0a, 0xf7, 0x1e, 0x65,
|
||||||
0x35, 0x8d, 0x87, 0x8f, 0xd2, 0xb1, 0x90, 0xdc, 0x57, 0x89, 0xf7, 0x35, 0x3f, 0xaa, 0x7e, 0x01,
|
0x63, 0x2e, 0x58, 0x20, 0x13, 0xec, 0x2b, 0x7e, 0x3c, 0xfd, 0x0c, 0x5a, 0x16, 0x02, 0x5a, 0x9e,
|
||||||
0x2d, 0x0b, 0x19, 0x2d, 0x4f, 0x77, 0x00, 0xac, 0x05, 0x37, 0x8e, 0x8a, 0x9e, 0x15, 0x35, 0x93,
|
0xae, 0xf4, 0xad, 0x05, 0x37, 0x8e, 0x8a, 0xde, 0x14, 0xd5, 0x93, 0x9c, 0x4f, 0xa0, 0x6b, 0xb1,
|
||||||
0x9c, 0xcf, 0xa0, 0x6b, 0xb1, 0x49, 0x17, 0x16, 0x8f, 0xf7, 0x9f, 0xee, 0xbf, 0xf8, 0x7a, 0xbf,
|
0x49, 0x17, 0x16, 0x8f, 0xf7, 0x1f, 0xef, 0x3f, 0xfb, 0x72, 0xbf, 0xff, 0x9a, 0x24, 0x8e, 0xe8,
|
||||||
0xff, 0x86, 0x22, 0x8e, 0xe8, 0xf1, 0xa1, 0x82, 0x31, 0x35, 0x72, 0x0d, 0x96, 0x8e, 0xf7, 0x91,
|
0xf1, 0xa1, 0x84, 0x2b, 0x35, 0x72, 0x05, 0x96, 0x8e, 0xf7, 0x91, 0xfc, 0xf2, 0x19, 0x3d, 0x7a,
|
||||||
0xfc, 0xfa, 0x05, 0x3d, 0x7a, 0xfc, 0x6d, 0xbf, 0xee, 0xfc, 0xdc, 0xd0, 0x5d, 0x9d, 0x97, 0x56,
|
0xf8, 0x75, 0xbf, 0xee, 0xfc, 0xd8, 0x50, 0xdd, 0x9b, 0xe7, 0x56, 0x77, 0x4c, 0xc3, 0xa6, 0xea,
|
||||||
0xd7, 0xcc, 0xc0, 0xa9, 0xea, 0x7a, 0x06, 0x1d, 0xb7, 0x6e, 0x95, 0x15, 0xcb, 0x50, 0x97, 0xb1,
|
0xba, 0x05, 0x1d, 0xb4, 0x6e, 0x95, 0x0f, 0xcb, 0x50, 0x17, 0x89, 0x8e, 0x20, 0x75, 0x91, 0xc8,
|
||||||
0x89, 0x2c, 0x75, 0x19, 0x2b, 0x93, 0xf3, 0x86, 0x2a, 0x3e, 0x47, 0xa7, 0x59, 0x70, 0x29, 0x18,
|
0xca, 0xc4, 0x1f, 0xca, 0x38, 0x1c, 0x9f, 0x9a, 0x20, 0x52, 0x30, 0xe4, 0x95, 0x68, 0x5c, 0xa5,
|
||||||
0xea, 0x4a, 0x0c, 0xde, 0xd2, 0x19, 0xdf, 0x34, 0x2b, 0x73, 0xde, 0x16, 0x76, 0xd8, 0x53, 0x2e,
|
0x32, 0xbb, 0x6e, 0x4a, 0xe6, 0xbc, 0x2d, 0xec, 0xa4, 0x67, 0x8c, 0xa7, 0x49, 0xcc, 0x4d, 0x7a,
|
||||||
0x92, 0x38, 0x12, 0x59, 0xda, 0xc8, 0x69, 0x95, 0x81, 0x52, 0x9e, 0x84, 0x81, 0x9e, 0xac, 0xad,
|
0xc8, 0x69, 0x99, 0x69, 0x32, 0x96, 0x46, 0xa1, 0x9a, 0xac, 0x6c, 0xb3, 0xa3, 0x39, 0x5b, 0x82,
|
||||||
0xb2, 0x63, 0x38, 0x5b, 0x92, 0xf0, 0xf9, 0xdd, 0xc1, 0x36, 0x9e, 0xec, 0xc7, 0xe5, 0x93, 0x9d,
|
0xb0, 0xf9, 0x5d, 0xc0, 0x36, 0x9e, 0xec, 0x87, 0xe5, 0x93, 0x9d, 0xb3, 0xeb, 0x8d, 0xe7, 0x33,
|
||||||
0xb3, 0xeb, 0x8d, 0x97, 0x33, 0xfd, 0xc3, 0xb9, 0x3d, 0x45, 0x7d, 0x87, 0x9d, 0xbc, 0x2a, 0xf9,
|
0x7d, 0xc2, 0xb9, 0xbd, 0x43, 0x75, 0x87, 0x9d, 0xbc, 0xfa, 0xf8, 0x0a, 0xc8, 0xec, 0xcc, 0x99,
|
||||||
0x06, 0xc8, 0xec, 0xcc, 0x99, 0xbb, 0x38, 0xd8, 0xdd, 0xdf, 0xd9, 0xdb, 0xff, 0xeb, 0x7e, 0xad,
|
0xbb, 0x38, 0xd8, 0xdd, 0xdf, 0xd9, 0xdb, 0xff, 0xe7, 0x7e, 0xad, 0x04, 0x24, 0xeb, 0x25, 0x20,
|
||||||
0x04, 0x30, 0xeb, 0x25, 0x80, 0xd9, 0x50, 0xd4, 0xf6, 0xd6, 0xfe, 0xf6, 0xee, 0xb3, 0xdd, 0x9d,
|
0xd9, 0x90, 0xd4, 0xf6, 0xd6, 0xfe, 0xf6, 0xee, 0x93, 0xdd, 0x9d, 0x7e, 0xd3, 0xf9, 0x43, 0x4d,
|
||||||
0x7e, 0xd3, 0xf9, 0x6d, 0x4d, 0x97, 0x2b, 0xdb, 0xa5, 0xe6, 0xdd, 0x2f, 0xe0, 0xf0, 0xbb, 0xd0,
|
0x95, 0x25, 0xdb, 0xa5, 0x26, 0xdd, 0x4f, 0xe0, 0xed, 0xdb, 0xd0, 0xd1, 0xe7, 0xb9, 0x67, 0x2c,
|
||||||
0x31, 0xe7, 0xb9, 0x97, 0x59, 0x5a, 0xc1, 0x20, 0x7f, 0x07, 0x2b, 0x19, 0xd2, 0x75, 0x4b, 0x96,
|
0xad, 0x60, 0x90, 0x7f, 0x83, 0x15, 0x83, 0x68, 0xdd, 0x92, 0xe5, 0x7d, 0x30, 0xdd, 0x74, 0x99,
|
||||||
0xf7, 0xd1, 0x74, 0x33, 0x66, 0xde, 0x2b, 0x37, 0xb2, 0x07, 0x73, 0x3c, 0xcb, 0x7e, 0x89, 0x76,
|
0xf7, 0xca, 0x0d, 0xf3, 0xa0, 0x8f, 0x67, 0x39, 0x28, 0xd1, 0xce, 0x7b, 0xb0, 0x5c, 0x96, 0x78,
|
||||||
0x3e, 0x80, 0xe5, 0xb2, 0xc4, 0xa5, 0x68, 0xfa, 0xff, 0xeb, 0xb0, 0x32, 0xf5, 0x25, 0xbc, 0x1a,
|
0x29, 0x6a, 0xfe, 0x4d, 0x1d, 0x56, 0xa6, 0xbe, 0x78, 0x57, 0x03, 0x9f, 0xe9, 0x76, 0x64, 0x7d,
|
||||||
0x10, 0x4d, 0xb7, 0x29, 0xeb, 0x33, 0x6d, 0x4a, 0xf2, 0x01, 0x10, 0x5b, 0xc4, 0xb5, 0xfb, 0x37,
|
0xa6, 0x1d, 0x49, 0xde, 0x03, 0x62, 0x8b, 0xb8, 0x76, 0x9f, 0xa6, 0x6f, 0x09, 0xaa, 0x38, 0x66,
|
||||||
0x7d, 0x4b, 0x50, 0x47, 0x30, 0x1b, 0x61, 0x35, 0xaf, 0x82, 0xb0, 0xc8, 0x43, 0xe8, 0x89, 0xd8,
|
0x23, 0xa9, 0xe6, 0x65, 0x90, 0x14, 0xb9, 0x0f, 0x3d, 0x9e, 0xf8, 0xa1, 0x17, 0xb9, 0x51, 0x18,
|
||||||
0x0b, 0x58, 0xe8, 0x86, 0x41, 0x74, 0x96, 0xfd, 0xfd, 0xe0, 0xf6, 0xd4, 0xa7, 0x75, 0x94, 0x78,
|
0x9f, 0x99, 0xbf, 0x19, 0xdc, 0x9c, 0xfa, 0x84, 0x8e, 0x12, 0x4f, 0xa4, 0x00, 0xed, 0xf2, 0x82,
|
||||||
0xa6, 0x04, 0x68, 0x57, 0x14, 0x04, 0xf9, 0x1b, 0x58, 0xe5, 0x91, 0x70, 0x33, 0x94, 0xed, 0xfa,
|
0x20, 0xff, 0x02, 0xab, 0x2c, 0xe6, 0xae, 0x41, 0xd3, 0x6e, 0x90, 0xff, 0xb1, 0xa0, 0x31, 0xdb,
|
||||||
0xf9, 0x1f, 0x0e, 0x1a, 0xb3, 0x9d, 0xbb, 0x19, 0x18, 0x4f, 0x09, 0x9f, 0x66, 0x09, 0x47, 0x00,
|
0xa1, 0x9b, 0x81, 0xeb, 0x94, 0xb0, 0x69, 0x16, 0x77, 0x38, 0x00, 0xf5, 0x2e, 0x74, 0xe1, 0x6c,
|
||||||
0x50, 0x76, 0x61, 0x0a, 0x6a, 0x1b, 0x0a, 0xd7, 0xca, 0x50, 0xf8, 0x29, 0x74, 0xcd, 0x5f, 0x4f,
|
0x43, 0xde, 0x5a, 0x19, 0xf2, 0x3e, 0x86, 0xae, 0xfe, 0x8b, 0xc9, 0x91, 0xe9, 0x3f, 0x2c, 0x6f,
|
||||||
0x8e, 0xb2, 0xbe, 0xc4, 0xf2, 0xe6, 0x7b, 0xc5, 0x1b, 0xb7, 0x8a, 0x3f, 0xab, 0x3c, 0x37, 0xff,
|
0xbe, 0x53, 0xbc, 0x71, 0xab, 0xf8, 0x53, 0xca, 0x53, 0xfd, 0x9f, 0x14, 0xbd, 0xe8, 0x86, 0x9c,
|
||||||
0x55, 0x31, 0x8b, 0x6e, 0xa8, 0x09, 0xd4, 0x9e, 0xed, 0xfc, 0x4f, 0x0d, 0x96, 0x95, 0x8a, 0xd6,
|
0x40, 0xed, 0xd9, 0xce, 0x2f, 0x6b, 0xb0, 0x2c, 0x55, 0xb4, 0xde, 0xfc, 0x8f, 0xd8, 0x4b, 0x30,
|
||||||
0x9b, 0xff, 0x12, 0x7b, 0x0c, 0x59, 0x61, 0x6f, 0xbe, 0xcb, 0xad, 0x5a, 0xad, 0xaa, 0x7c, 0x90,
|
0x05, 0xbc, 0xfe, 0xfe, 0xb6, 0x6a, 0xb5, 0xa4, 0xf2, 0x41, 0x6a, 0x0b, 0x92, 0x4d, 0x58, 0xe5,
|
||||||
0xda, 0x82, 0x64, 0x13, 0x56, 0xc5, 0xf8, 0x24, 0xcb, 0xa5, 0x4f, 0x44, 0x1c, 0x3d, 0x9a, 0x48,
|
0xe3, 0x13, 0x93, 0x33, 0x1f, 0xf1, 0x24, 0x7e, 0x30, 0x11, 0xcc, 0x20, 0xd0, 0xb9, 0x63, 0xe4,
|
||||||
0x9e, 0x21, 0xd3, 0xb9, 0x63, 0xe4, 0x03, 0xb8, 0x96, 0xf5, 0x30, 0x8b, 0x09, 0xfa, 0xeb, 0xe5,
|
0x3d, 0xb8, 0x62, 0x7a, 0x95, 0xc5, 0x04, 0xf5, 0x95, 0x72, 0x76, 0xc0, 0xf9, 0xdf, 0x5a, 0x8e,
|
||||||
0xec, 0x80, 0xf3, 0x6f, 0xb5, 0x1c, 0x41, 0xa9, 0x34, 0x8e, 0x15, 0x5a, 0x6e, 0x62, 0xea, 0x71,
|
0x94, 0x64, 0xba, 0xc6, 0x4a, 0x2c, 0x37, 0x31, 0xf9, 0x38, 0x37, 0x4f, 0x5e, 0x87, 0x96, 0xfe,
|
||||||
0x6e, 0xfe, 0xbc, 0x09, 0x2d, 0xf3, 0x65, 0x43, 0x67, 0x01, 0x43, 0xd9, 0x46, 0xda, 0x2c, 0x19,
|
0x82, 0xa1, 0xb2, 0x80, 0xa6, 0x6c, 0x23, 0x6d, 0x96, 0x8c, 0xf4, 0x36, 0x74, 0x74, 0xde, 0x65,
|
||||||
0xe9, 0x5d, 0xe8, 0x98, 0x7c, 0xcc, 0x95, 0x59, 0xa8, 0x02, 0xbb, 0x60, 0x94, 0xa0, 0xa6, 0x86,
|
0xd2, 0x2c, 0x64, 0x21, 0x5d, 0x30, 0x4a, 0x90, 0x52, 0x41, 0xa2, 0x9c, 0x76, 0xbe, 0x51, 0x19,
|
||||||
0x4a, 0x39, 0xed, 0x7c, 0xa7, 0x33, 0x88, 0x65, 0x35, 0xe4, 0x93, 0x29, 0x33, 0x9b, 0x39, 0xce,
|
0xc4, 0xb2, 0x1a, 0xf2, 0xd1, 0x94, 0x99, 0xcd, 0x1c, 0x67, 0x21, 0x5c, 0xb6, 0xb0, 0x3c, 0x2e,
|
||||||
0x42, 0xb8, 0x6c, 0x61, 0x79, 0x5c, 0xa8, 0xdb, 0x15, 0xc8, 0x8f, 0x35, 0xb8, 0x67, 0x21, 0x8d,
|
0xd4, 0xed, 0x4a, 0xe3, 0xfb, 0x1a, 0xdc, 0xb1, 0x10, 0xc5, 0xf6, 0xec, 0xc7, 0xe8, 0x3b, 0x00,
|
||||||
0xed, 0xd9, 0x8f, 0xd4, 0xf7, 0x00, 0xb2, 0xef, 0x58, 0x4c, 0x9a, 0xa0, 0xd2, 0x31, 0x9c, 0x2d,
|
0xe6, 0x7b, 0x95, 0x27, 0x74, 0x50, 0xe9, 0x68, 0xce, 0x96, 0xa8, 0xfa, 0xb8, 0x5d, 0xaf, 0xfc,
|
||||||
0x59, 0xf5, 0xd1, 0xbb, 0x5e, 0xf9, 0xd1, 0xbb, 0xaa, 0x92, 0x70, 0xfe, 0xbd, 0x06, 0xfd, 0xa3,
|
0xb8, 0x5d, 0x55, 0x31, 0x38, 0xff, 0x57, 0x83, 0xfe, 0x51, 0x72, 0xc6, 0x62, 0x05, 0x77, 0x59,
|
||||||
0xf8, 0x8c, 0x47, 0x1a, 0x06, 0xf3, 0xc8, 0xd3, 0x28, 0x41, 0xd5, 0x15, 0xe6, 0x4a, 0xce, 0xf8,
|
0xec, 0x2b, 0xac, 0x20, 0xeb, 0x07, 0x7d, 0x25, 0x67, 0x6c, 0x52, 0x3a, 0xaf, 0xfa, 0x14, 0x04,
|
||||||
0xa4, 0x74, 0x5e, 0xf5, 0x29, 0x68, 0xfe, 0x36, 0x2c, 0x9d, 0xa6, 0xf1, 0x38, 0xc9, 0x80, 0x17,
|
0x7f, 0x13, 0x96, 0x4e, 0xb3, 0x64, 0x9c, 0x1a, 0x80, 0x85, 0x6f, 0x68, 0xd0, 0x32, 0x13, 0x3f,
|
||||||
0xbe, 0xa1, 0x41, 0xcb, 0x4c, 0xfc, 0xac, 0x17, 0x88, 0x40, 0x61, 0x6a, 0x53, 0xa6, 0x1a, 0x92,
|
0xdf, 0x85, 0x3c, 0x94, 0xd8, 0x59, 0x97, 0xa3, 0x9a, 0x24, 0xeb, 0x60, 0x03, 0x01, 0x03, 0x69,
|
||||||
0xac, 0x83, 0x0d, 0x04, 0x32, 0xa8, 0x6b, 0xb1, 0x9c, 0x7f, 0x36, 0xdf, 0x27, 0x67, 0x14, 0xad,
|
0x2d, 0x96, 0xf3, 0xdf, 0xfa, 0x3b, 0xe4, 0x8c, 0xa2, 0x95, 0x85, 0x93, 0x44, 0x35, 0x31, 0x53,
|
||||||
0x2c, 0xa8, 0x14, 0x9e, 0x89, 0xb8, 0xae, 0x63, 0xdb, 0x34, 0x23, 0xc9, 0x43, 0xe8, 0x26, 0xc5,
|
0xf5, 0x6a, 0x9b, 0x1a, 0x92, 0xdc, 0x87, 0x6e, 0x5a, 0x4c, 0xd7, 0xff, 0x91, 0x5a, 0x2b, 0xae,
|
||||||
0x74, 0xf3, 0xdf, 0xa9, 0xb5, 0xe2, 0x1a, 0xa7, 0x5f, 0x40, 0x6d, 0xf1, 0x47, 0x4b, 0x7f, 0xdb,
|
0x71, 0xfa, 0x05, 0xd4, 0x16, 0x7f, 0xb0, 0xf4, 0xaf, 0xdd, 0x8d, 0xf7, 0x3f, 0x35, 0xc2, 0x27,
|
||||||
0xdd, 0xf8, 0xf0, 0xf3, 0x4c, 0xf8, 0xa4, 0x85, 0x4f, 0x1f, 0xfd, 0x21, 0x00, 0x00, 0xff, 0xff,
|
0x2d, 0x7c, 0xfa, 0xe0, 0x2f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x43, 0xce, 0x49, 0xcc, 0x84, 0x26,
|
||||||
0x0e, 0x8f, 0x84, 0xbe, 0x9c, 0x26, 0x00, 0x00,
|
0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
|
@ -306,10 +306,10 @@ message SyncAccountsPositions {
|
||||||
}
|
}
|
||||||
|
|
||||||
message SyncSavedAddress {
|
message SyncSavedAddress {
|
||||||
|
reserved 3;
|
||||||
reserved 4;
|
reserved 4;
|
||||||
bytes address = 1;
|
bytes address = 1;
|
||||||
string name = 2;
|
string name = 2;
|
||||||
bool favourite = 3;
|
|
||||||
bool removed = 5;
|
bool removed = 5;
|
||||||
uint64 update_clock = 7;
|
uint64 update_clock = 7;
|
||||||
string chain_short_names = 8;
|
string chain_short_names = 8;
|
||||||
|
|
|
@ -1066,8 +1066,12 @@ func (api *PublicAPI) UpsertSavedAddress(ctx context.Context, sa wallet.SavedAdd
|
||||||
return api.service.messenger.UpsertSavedAddress(ctx, sa)
|
return api.service.messenger.UpsertSavedAddress(ctx, sa)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *PublicAPI) DeleteSavedAddress(ctx context.Context, address ethcommon.Address, ens string, isTest bool) error {
|
func (api *PublicAPI) DeleteSavedAddress(ctx context.Context, address ethcommon.Address, isTest bool) error {
|
||||||
return api.service.messenger.DeleteSavedAddress(ctx, address, ens, isTest)
|
return api.service.messenger.DeleteSavedAddress(ctx, address, isTest)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PublicAPI) GetSavedAddresses(ctx context.Context) ([]wallet.SavedAddress, error) {
|
||||||
|
return api.service.messenger.GetSavedAddresses(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
// PushNotifications server endpoints
|
// PushNotifications server endpoints
|
||||||
|
|
|
@ -233,27 +233,6 @@ func (api *API) DeleteCustomTokenByChainID(ctx context.Context, chainID uint64,
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *API) GetSavedAddresses(ctx context.Context) ([]SavedAddress, error) {
|
|
||||||
log.Debug("call to get saved addresses")
|
|
||||||
rst, err := api.s.savedAddressesManager.GetSavedAddresses()
|
|
||||||
log.Debug("result from database for saved addresses", "len", len(rst))
|
|
||||||
return rst, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (api *API) AddSavedAddress(ctx context.Context, sa SavedAddress) error {
|
|
||||||
log.Debug("call to create or edit saved address")
|
|
||||||
_, err := api.s.savedAddressesManager.UpdateMetadataAndUpsertSavedAddress(sa)
|
|
||||||
log.Debug("result from database for create or edit saved address", "err", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (api *API) DeleteSavedAddress(ctx context.Context, address common.Address, ens string, isTest bool) error {
|
|
||||||
log.Debug("call to remove saved address")
|
|
||||||
_, err := api.s.savedAddressesManager.DeleteSavedAddress(address, ens, isTest, uint64(time.Now().Unix()))
|
|
||||||
log.Debug("result from database for remove saved address", "err", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// @deprecated
|
// @deprecated
|
||||||
func (api *API) GetPendingTransactions(ctx context.Context) ([]*transactions.PendingTransaction, error) {
|
func (api *API) GetPendingTransactions(ctx context.Context) ([]*transactions.PendingTransaction, error) {
|
||||||
log.Debug("wallet.api.GetPendingTransactions")
|
log.Debug("wallet.api.GetPendingTransactions")
|
||||||
|
|
|
@ -19,7 +19,6 @@ type SavedAddress struct {
|
||||||
// TODO: Add Emoji
|
// TODO: Add Emoji
|
||||||
// Emoji string `json:"emoji"`
|
// Emoji string `json:"emoji"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Favourite bool `json:"favourite"`
|
|
||||||
ChainShortNames string `json:"chainShortNames"` // used with address only, not with ENSName
|
ChainShortNames string `json:"chainShortNames"` // used with address only, not with ENSName
|
||||||
ENSName string `json:"ens"`
|
ENSName string `json:"ens"`
|
||||||
ColorID multiAccCommon.CustomizationColor `json:"colorId"`
|
ColorID multiAccCommon.CustomizationColor `json:"colorId"`
|
||||||
|
@ -29,7 +28,7 @@ type SavedAddress struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SavedAddress) ID() string {
|
func (s *SavedAddress) ID() string {
|
||||||
return fmt.Sprintf("%s-%s-%t", s.Address.Hex(), s.ENSName, s.IsTest)
|
return fmt.Sprintf("%s-%t", s.Address.Hex(), s.IsTest)
|
||||||
}
|
}
|
||||||
|
|
||||||
type SavedAddressesManager struct {
|
type SavedAddressesManager struct {
|
||||||
|
@ -40,7 +39,7 @@ func NewSavedAddressesManager(db *sql.DB) *SavedAddressesManager {
|
||||||
return &SavedAddressesManager{db: db}
|
return &SavedAddressesManager{db: db}
|
||||||
}
|
}
|
||||||
|
|
||||||
const rawQueryColumnsOrder = "address, name, favourite, removed, update_clock, chain_short_names, ens_name, is_test, created_at, color"
|
const rawQueryColumnsOrder = "address, name, removed, update_clock, chain_short_names, ens_name, is_test, created_at, color"
|
||||||
|
|
||||||
// getSavedAddressesFromDBRows retrieves all data based on SELECT Query using rawQueryColumnsOrder
|
// getSavedAddressesFromDBRows retrieves all data based on SELECT Query using rawQueryColumnsOrder
|
||||||
func getSavedAddressesFromDBRows(rows *sql.Rows) ([]SavedAddress, error) {
|
func getSavedAddressesFromDBRows(rows *sql.Rows) ([]SavedAddress, error) {
|
||||||
|
@ -51,7 +50,6 @@ func getSavedAddressesFromDBRows(rows *sql.Rows) ([]SavedAddress, error) {
|
||||||
err := rows.Scan(
|
err := rows.Scan(
|
||||||
&sa.Address,
|
&sa.Address,
|
||||||
&sa.Name,
|
&sa.Name,
|
||||||
&sa.Favourite,
|
|
||||||
&sa.Removed,
|
&sa.Removed,
|
||||||
&sa.UpdateClock,
|
&sa.UpdateClock,
|
||||||
&sa.ChainShortNames,
|
&sa.ChainShortNames,
|
||||||
|
@ -110,8 +108,8 @@ func (sam *SavedAddressesManager) upsertSavedAddress(sa SavedAddress, tx *sql.Tx
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
rows, err := tx.Query(
|
rows, err := tx.Query(
|
||||||
fmt.Sprintf("SELECT %s FROM saved_addresses WHERE address = ? AND is_test = ? AND ens_name = ?", rawQueryColumnsOrder),
|
fmt.Sprintf("SELECT %s FROM saved_addresses WHERE address = ? AND is_test = ?", rawQueryColumnsOrder),
|
||||||
sa.Address, sa.IsTest, sa.ENSName,
|
sa.Address, sa.IsTest,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -123,7 +121,7 @@ func (sam *SavedAddressesManager) upsertSavedAddress(sa SavedAddress, tx *sql.Tx
|
||||||
}
|
}
|
||||||
sa.CreatedAt = time.Now().Unix()
|
sa.CreatedAt = time.Now().Unix()
|
||||||
for _, savedAddress := range savedAddresses {
|
for _, savedAddress := range savedAddresses {
|
||||||
if savedAddress.Address == sa.Address && savedAddress.IsTest == sa.IsTest && savedAddress.ENSName == sa.ENSName {
|
if savedAddress.Address == sa.Address && savedAddress.IsTest == sa.IsTest {
|
||||||
sa.CreatedAt = savedAddress.CreatedAt
|
sa.CreatedAt = savedAddress.CreatedAt
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -134,23 +132,23 @@ func (sam *SavedAddressesManager) upsertSavedAddress(sa SavedAddress, tx *sql.Tx
|
||||||
saved_addresses (
|
saved_addresses (
|
||||||
address,
|
address,
|
||||||
name,
|
name,
|
||||||
favourite,
|
|
||||||
removed,
|
removed,
|
||||||
update_clock,
|
update_clock,
|
||||||
chain_short_names,
|
chain_short_names,
|
||||||
ens_name, is_test,
|
ens_name,
|
||||||
|
is_test,
|
||||||
created_at,
|
created_at,
|
||||||
color
|
color
|
||||||
)
|
)
|
||||||
VALUES
|
VALUES
|
||||||
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
(?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||||
`
|
`
|
||||||
insert, err := tx.Prepare(sqlStatement)
|
insert, err := tx.Prepare(sqlStatement)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer insert.Close()
|
defer insert.Close()
|
||||||
_, err = insert.Exec(sa.Address, sa.Name, sa.Favourite, sa.Removed, sa.UpdateClock, sa.ChainShortNames, sa.ENSName,
|
_, err = insert.Exec(sa.Address, sa.Name, sa.Removed, sa.UpdateClock, sa.ChainShortNames, sa.ENSName,
|
||||||
sa.IsTest, sa.CreatedAt, sa.ColorID)
|
sa.IsTest, sa.CreatedAt, sa.ColorID)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -164,12 +162,12 @@ func (sam *SavedAddressesManager) UpdateMetadataAndUpsertSavedAddress(sa SavedAd
|
||||||
return sa.UpdateClock, nil
|
return sa.UpdateClock, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sam *SavedAddressesManager) startTransactionAndCheckIfNewerChange(address common.Address, ens string, isTest bool, updateClock uint64) (newer bool, tx *sql.Tx, err error) {
|
func (sam *SavedAddressesManager) startTransactionAndCheckIfNewerChange(address common.Address, isTest bool, updateClock uint64) (newer bool, tx *sql.Tx, err error) {
|
||||||
tx, err = sam.db.Begin()
|
tx, err = sam.db.Begin()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, nil, err
|
return false, nil, err
|
||||||
}
|
}
|
||||||
row := tx.QueryRow("SELECT update_clock FROM saved_addresses WHERE address = ? AND is_test = ? AND ens_name = ?", address, isTest, ens)
|
row := tx.QueryRow("SELECT update_clock FROM saved_addresses WHERE address = ? AND is_test = ?", address, isTest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, tx, err
|
return false, tx, err
|
||||||
}
|
}
|
||||||
|
@ -183,7 +181,7 @@ func (sam *SavedAddressesManager) startTransactionAndCheckIfNewerChange(address
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress, updateClock uint64) (insertedOrUpdated bool, err error) {
|
func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress, updateClock uint64) (insertedOrUpdated bool, err error) {
|
||||||
newer, tx, err := sam.startTransactionAndCheckIfNewerChange(sa.Address, sa.ENSName, sa.IsTest, updateClock)
|
newer, tx, err := sam.startTransactionAndCheckIfNewerChange(sa.Address, sa.IsTest, updateClock)
|
||||||
defer func() {
|
defer func() {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = tx.Commit()
|
err = tx.Commit()
|
||||||
|
@ -204,11 +202,11 @@ func (sam *SavedAddressesManager) AddSavedAddressIfNewerUpdate(sa SavedAddress,
|
||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sam *SavedAddressesManager) DeleteSavedAddress(address common.Address, ens string, isTest bool, updateClock uint64) (deleted bool, err error) {
|
func (sam *SavedAddressesManager) DeleteSavedAddress(address common.Address, isTest bool, updateClock uint64) (deleted bool, err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
newer, tx, err := sam.startTransactionAndCheckIfNewerChange(address, ens, isTest, updateClock)
|
newer, tx, err := sam.startTransactionAndCheckIfNewerChange(address, isTest, updateClock)
|
||||||
defer func() {
|
defer func() {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = tx.Commit()
|
err = tx.Commit()
|
||||||
|
@ -220,12 +218,12 @@ func (sam *SavedAddressesManager) DeleteSavedAddress(address common.Address, ens
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
||||||
update, err := tx.Prepare(`UPDATE saved_addresses SET removed = 1, update_clock = ? WHERE address = ? AND is_test = ? AND ens_name = ?`)
|
update, err := tx.Prepare(`UPDATE saved_addresses SET removed = 1, update_clock = ? WHERE address = ? AND is_test = ?`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
defer update.Close()
|
defer update.Close()
|
||||||
res, err := update.Exec(updateClock, address, isTest, ens)
|
res, err := update.Exec(updateClock, address, isTest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,6 @@ func TestSavedAddressesAdd(t *testing.T) {
|
||||||
sa := SavedAddress{
|
sa := SavedAddress{
|
||||||
Address: common.Address{1},
|
Address: common.Address{1},
|
||||||
Name: "Zilliqa",
|
Name: "Zilliqa",
|
||||||
Favourite: true,
|
|
||||||
ChainShortNames: "eth:arb:",
|
ChainShortNames: "eth:arb:",
|
||||||
ENSName: "test.stateofus.eth",
|
ENSName: "test.stateofus.eth",
|
||||||
ColorID: multiAccCommon.CustomizationColorGreen,
|
ColorID: multiAccCommon.CustomizationColorGreen,
|
||||||
|
@ -54,7 +53,6 @@ func TestSavedAddressesAdd(t *testing.T) {
|
||||||
require.Equal(t, 1, len(rst))
|
require.Equal(t, 1, len(rst))
|
||||||
require.Equal(t, sa.Address, rst[0].Address)
|
require.Equal(t, sa.Address, rst[0].Address)
|
||||||
require.Equal(t, sa.Name, rst[0].Name)
|
require.Equal(t, sa.Name, rst[0].Name)
|
||||||
require.Equal(t, sa.Favourite, rst[0].Favourite)
|
|
||||||
require.Equal(t, sa.ChainShortNames, rst[0].ChainShortNames)
|
require.Equal(t, sa.ChainShortNames, rst[0].ChainShortNames)
|
||||||
require.Equal(t, sa.ENSName, rst[0].ENSName)
|
require.Equal(t, sa.ENSName, rst[0].ENSName)
|
||||||
require.Equal(t, sa.ColorID, rst[0].ColorID)
|
require.Equal(t, sa.ColorID, rst[0].ColorID)
|
||||||
|
@ -80,8 +78,8 @@ func haveSameElements[T comparable](a []T, b []T, isEqual func(T, T) bool) bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func savedAddressDataIsEqual(a, b SavedAddress) bool {
|
func savedAddressDataIsEqual(a, b SavedAddress) bool {
|
||||||
return a.Address == b.Address && a.Name == b.Name && a.Favourite == b.Favourite &&
|
return a.Address == b.Address && a.Name == b.Name && a.ChainShortNames == b.ChainShortNames &&
|
||||||
a.ChainShortNames == b.ChainShortNames && a.ENSName == b.ENSName && a.IsTest == b.IsTest && a.ColorID == b.ColorID
|
a.ENSName == b.ENSName && a.IsTest == b.IsTest && a.ColorID == b.ColorID
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSavedAddressesMetadata(t *testing.T) {
|
func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
|
@ -94,9 +92,8 @@ func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
|
|
||||||
// Add raw saved addresses
|
// Add raw saved addresses
|
||||||
sa1 := SavedAddress{
|
sa1 := SavedAddress{
|
||||||
Address: common.Address{1},
|
Address: common.Address{1},
|
||||||
Name: "Raw",
|
Name: "Raw",
|
||||||
Favourite: true,
|
|
||||||
savedAddressMeta: savedAddressMeta{
|
savedAddressMeta: savedAddressMeta{
|
||||||
Removed: false,
|
Removed: false,
|
||||||
UpdateClock: 234,
|
UpdateClock: 234,
|
||||||
|
@ -117,11 +114,10 @@ func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
|
|
||||||
// Add simple saved address without sync metadata
|
// Add simple saved address without sync metadata
|
||||||
sa2 := SavedAddress{
|
sa2 := SavedAddress{
|
||||||
Address: common.Address{2},
|
Address: common.Address{2},
|
||||||
Name: "Simple",
|
Name: "Simple",
|
||||||
ColorID: multiAccCommon.CustomizationColorBlue,
|
ColorID: multiAccCommon.CustomizationColorBlue,
|
||||||
Favourite: false,
|
IsTest: false,
|
||||||
IsTest: false,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var sa2UpdatedClock uint64
|
var sa2UpdatedClock uint64
|
||||||
|
@ -142,7 +138,6 @@ func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
require.Equal(t, sa2.Address, dbSavedAddresses[rawIndex].Address)
|
require.Equal(t, sa2.Address, dbSavedAddresses[rawIndex].Address)
|
||||||
require.Equal(t, sa2.Name, dbSavedAddresses[rawIndex].Name)
|
require.Equal(t, sa2.Name, dbSavedAddresses[rawIndex].Name)
|
||||||
require.Equal(t, sa2.ColorID, dbSavedAddresses[rawIndex].ColorID)
|
require.Equal(t, sa2.ColorID, dbSavedAddresses[rawIndex].ColorID)
|
||||||
require.Equal(t, sa2.Favourite, dbSavedAddresses[rawIndex].Favourite)
|
|
||||||
require.Equal(t, sa2.IsTest, dbSavedAddresses[rawIndex].IsTest)
|
require.Equal(t, sa2.IsTest, dbSavedAddresses[rawIndex].IsTest)
|
||||||
|
|
||||||
// Check the default values
|
// Check the default values
|
||||||
|
@ -151,11 +146,9 @@ func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
require.Greater(t, dbSavedAddresses[rawIndex].UpdateClock, uint64(0))
|
require.Greater(t, dbSavedAddresses[rawIndex].UpdateClock, uint64(0))
|
||||||
|
|
||||||
sa2Older := sa2
|
sa2Older := sa2
|
||||||
sa2Older.Favourite = true
|
|
||||||
sa2Older.IsTest = false
|
sa2Older.IsTest = false
|
||||||
|
|
||||||
sa2Newer := sa2
|
sa2Newer := sa2
|
||||||
sa2Newer.Favourite = false
|
|
||||||
sa2Newer.IsTest = false
|
sa2Newer.IsTest = false
|
||||||
|
|
||||||
// Try to add an older entry
|
// Try to add an older entry
|
||||||
|
@ -193,7 +186,7 @@ func TestSavedAddressesMetadata(t *testing.T) {
|
||||||
|
|
||||||
// Try to delete the sa2 newer entry
|
// Try to delete the sa2 newer entry
|
||||||
updatedDeleteClock := updatedClock + 1
|
updatedDeleteClock := updatedClock + 1
|
||||||
updated, err = manager.DeleteSavedAddress(sa2Newer.Address, sa2Newer.ENSName, sa2Newer.IsTest, updatedDeleteClock)
|
updated, err = manager.DeleteSavedAddress(sa2Newer.Address, sa2Newer.IsTest, updatedDeleteClock)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.True(t, updated)
|
require.True(t, updated)
|
||||||
|
|
||||||
|
@ -216,10 +209,9 @@ func TestSavedAddressesCleanSoftDeletes(t *testing.T) {
|
||||||
firstTimestamp := 10
|
firstTimestamp := 10
|
||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < 5; i++ {
|
||||||
sa := SavedAddress{
|
sa := SavedAddress{
|
||||||
Address: common.Address{byte(i)},
|
Address: common.Address{byte(i)},
|
||||||
Name: "Test" + strconv.Itoa(i),
|
Name: "Test" + strconv.Itoa(i),
|
||||||
ColorID: multiAccCommon.CustomizationColorGreen,
|
ColorID: multiAccCommon.CustomizationColorGreen,
|
||||||
Favourite: false,
|
|
||||||
savedAddressMeta: savedAddressMeta{
|
savedAddressMeta: savedAddressMeta{
|
||||||
Removed: true,
|
Removed: true,
|
||||||
UpdateClock: uint64(firstTimestamp + i),
|
UpdateClock: uint64(firstTimestamp + i),
|
||||||
|
@ -299,7 +291,7 @@ func TestSavedAddressesDelete(t *testing.T) {
|
||||||
|
|
||||||
// Delete s0, test that only s1 is left
|
// Delete s0, test that only s1 is left
|
||||||
updateClock := uint64(time.Now().Unix())
|
updateClock := uint64(time.Now().Unix())
|
||||||
_, err = manager.DeleteSavedAddress(sa0.Address, sa0.ENSName, sa0.IsTest, updateClock)
|
_, err = manager.DeleteSavedAddress(sa0.Address, sa0.IsTest, updateClock)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
rst, err = manager.GetSavedAddresses()
|
rst, err = manager.GetSavedAddresses()
|
||||||
|
@ -313,7 +305,7 @@ func TestSavedAddressesDelete(t *testing.T) {
|
||||||
require.Equal(t, 2, len(rst))
|
require.Equal(t, 2, len(rst))
|
||||||
|
|
||||||
// Delete s0 one more time with the same timestamp
|
// Delete s0 one more time with the same timestamp
|
||||||
deleted, err := manager.DeleteSavedAddress(sa0.Address, sa0.ENSName, sa0.IsTest, updateClock)
|
deleted, err := manager.DeleteSavedAddress(sa0.Address, sa0.IsTest, updateClock)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.False(t, deleted)
|
require.False(t, deleted)
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
// 1702577524_add_community_collections_and_collectibles_images_cache.up.sql (210B)
|
// 1702577524_add_community_collections_and_collectibles_images_cache.up.sql (210B)
|
||||||
// 1702867707_add_balance_to_collectibles_ownership_cache.up.sql (289B)
|
// 1702867707_add_balance_to_collectibles_ownership_cache.up.sql (289B)
|
||||||
// 1703686612_add_color_to_saved_addresses.up.sql (114B)
|
// 1703686612_add_color_to_saved_addresses.up.sql (114B)
|
||||||
|
// 1704701942_remove_favourite_and_change_primary_key_for_saved_addresses.up.sql (894B)
|
||||||
// doc.go (74B)
|
// doc.go (74B)
|
||||||
|
|
||||||
package migrations
|
package migrations
|
||||||
|
@ -101,7 +102,7 @@ func _1691753758_initialUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1691753758_initial.up.sql", size: 5738, mode: os.FileMode(0644), modTime: time.Unix(1692726720, 0)}
|
info := bindataFileInfo{name: "1691753758_initial.up.sql", size: 5738, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6b, 0x25, 0x31, 0xc8, 0x27, 0x3, 0x6b, 0x9f, 0x15, 0x42, 0x2f, 0x85, 0xfb, 0xe3, 0x6, 0xea, 0xf7, 0x97, 0x12, 0x56, 0x3c, 0x9a, 0x5b, 0x1a, 0xca, 0xb1, 0x23, 0xfa, 0xcd, 0x57, 0x25, 0x5c}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6b, 0x25, 0x31, 0xc8, 0x27, 0x3, 0x6b, 0x9f, 0x15, 0x42, 0x2f, 0x85, 0xfb, 0xe3, 0x6, 0xea, 0xf7, 0x97, 0x12, 0x56, 0x3c, 0x9a, 0x5b, 0x1a, 0xca, 0xb1, 0x23, 0xfa, 0xcd, 0x57, 0x25, 0x5c}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -121,7 +122,7 @@ func _1692701329_add_collectibles_and_collections_data_cacheUpSql() (*asset, err
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1692701329_add_collectibles_and_collections_data_cache.up.sql", size: 1808, mode: os.FileMode(0644), modTime: time.Unix(1692726720, 0)}
|
info := bindataFileInfo{name: "1692701329_add_collectibles_and_collections_data_cache.up.sql", size: 1808, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1, 0x51, 0xf4, 0x2b, 0x92, 0xde, 0x59, 0x65, 0xd8, 0x9b, 0x57, 0xe0, 0xfd, 0x7b, 0x12, 0xb, 0x29, 0x6e, 0x9d, 0xb5, 0x90, 0xe, 0xfa, 0x12, 0x97, 0xd, 0x61, 0x60, 0x7f, 0x32, 0x1d, 0xc3}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1, 0x51, 0xf4, 0x2b, 0x92, 0xde, 0x59, 0x65, 0xd8, 0x9b, 0x57, 0xe0, 0xfd, 0x7b, 0x12, 0xb, 0x29, 0x6e, 0x9d, 0xb5, 0x90, 0xe, 0xfa, 0x12, 0x97, 0xd, 0x61, 0x60, 0x7f, 0x32, 0x1d, 0xc3}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -141,7 +142,7 @@ func _1692701339_add_scope_to_pendingUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1692701339_add_scope_to_pending.up.sql", size: 576, mode: os.FileMode(0644), modTime: time.Unix(1695127783, 0)}
|
info := bindataFileInfo{name: "1692701339_add_scope_to_pending.up.sql", size: 576, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x8a, 0x5e, 0xe2, 0x63, 0x15, 0x37, 0xba, 0x55, 0x18, 0xf3, 0xcc, 0xe0, 0x5, 0x84, 0xe1, 0x5b, 0xe8, 0x1, 0x32, 0x6b, 0x9f, 0x7d, 0x9f, 0xd9, 0x23, 0x6c, 0xa9, 0xb5, 0xdc, 0xf4, 0x93}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x8a, 0x5e, 0xe2, 0x63, 0x15, 0x37, 0xba, 0x55, 0x18, 0xf3, 0xcc, 0xe0, 0x5, 0x84, 0xe1, 0x5b, 0xe8, 0x1, 0x32, 0x6b, 0x9f, 0x7d, 0x9f, 0xd9, 0x23, 0x6c, 0xa9, 0xb5, 0xdc, 0xf4, 0x93}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -161,7 +162,7 @@ func _1694540071_add_collectibles_ownership_update_timestampUpSql() (*asset, err
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1694540071_add_collectibles_ownership_update_timestamp.up.sql", size: 349, mode: os.FileMode(0644), modTime: time.Unix(1695127783, 0)}
|
info := bindataFileInfo{name: "1694540071_add_collectibles_ownership_update_timestamp.up.sql", size: 349, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x45, 0xc7, 0xce, 0x79, 0x63, 0xbc, 0x6f, 0x83, 0x5f, 0xe2, 0x3, 0x56, 0xcc, 0x5, 0x2f, 0x85, 0xda, 0x7e, 0xea, 0xf5, 0xd2, 0xac, 0x19, 0xd4, 0xd8, 0x5e, 0xdd, 0xed, 0xe2, 0xa9, 0x97}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x45, 0xc7, 0xce, 0x79, 0x63, 0xbc, 0x6f, 0x83, 0x5f, 0xe2, 0x3, 0x56, 0xcc, 0x5, 0x2f, 0x85, 0xda, 0x7e, 0xea, 0xf5, 0xd2, 0xac, 0x19, 0xd4, 0xd8, 0x5e, 0xdd, 0xed, 0xe2, 0xa9, 0x97}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -181,7 +182,7 @@ func _1694692748_add_raw_balance_to_token_balancesUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1694692748_add_raw_balance_to_token_balances.up.sql", size: 165, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1694692748_add_raw_balance_to_token_balances.up.sql", size: 165, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd4, 0xe0, 0x5b, 0x42, 0xf0, 0x96, 0xa5, 0xf5, 0xed, 0xc0, 0x97, 0x88, 0xb0, 0x6d, 0xfe, 0x7d, 0x97, 0x2e, 0x17, 0xd2, 0x16, 0xbc, 0x2a, 0xf2, 0xcc, 0x67, 0x9e, 0xc5, 0x47, 0xf6, 0x69, 0x1}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd4, 0xe0, 0x5b, 0x42, 0xf0, 0x96, 0xa5, 0xf5, 0xed, 0xc0, 0x97, 0x88, 0xb0, 0x6d, 0xfe, 0x7d, 0x97, 0x2e, 0x17, 0xd2, 0x16, 0xbc, 0x2a, 0xf2, 0xcc, 0x67, 0x9e, 0xc5, 0x47, 0xf6, 0x69, 0x1}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -201,7 +202,7 @@ func _1695133989_add_community_id_to_collectibles_and_collections_data_cacheUpSq
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1695133989_add_community_id_to_collectibles_and_collections_data_cache.up.sql", size: 275, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1695133989_add_community_id_to_collectibles_and_collections_data_cache.up.sql", size: 275, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfa, 0x2, 0xa, 0x7f, 0x4b, 0xd1, 0x3, 0xd0, 0x3, 0x29, 0x84, 0x31, 0xed, 0x49, 0x4f, 0xb1, 0x2d, 0xd7, 0x80, 0x41, 0x5b, 0xfa, 0x6, 0xae, 0xb4, 0xf6, 0x6b, 0x49, 0xee, 0x57, 0x33, 0x76}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfa, 0x2, 0xa, 0x7f, 0x4b, 0xd1, 0x3, 0xd0, 0x3, 0x29, 0x84, 0x31, 0xed, 0x49, 0x4f, 0xb1, 0x2d, 0xd7, 0x80, 0x41, 0x5b, 0xfa, 0x6, 0xae, 0xb4, 0xf6, 0x6b, 0x49, 0xee, 0x57, 0x33, 0x76}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -221,7 +222,7 @@ func _1695932536_balance_history_v2UpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1695932536_balance_history_v2.up.sql", size: 653, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1695932536_balance_history_v2.up.sql", size: 653, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x37, 0xf4, 0x14, 0x91, 0xf6, 0x5f, 0xc4, 0x9b, 0xb7, 0x83, 0x32, 0x72, 0xbe, 0x82, 0x42, 0x39, 0xa4, 0x3b, 0xc9, 0x78, 0x3d, 0xca, 0xd4, 0xbf, 0xfc, 0x7a, 0x33, 0x1e, 0xcd, 0x9e, 0xe4, 0x85}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x37, 0xf4, 0x14, 0x91, 0xf6, 0x5f, 0xc4, 0x9b, 0xb7, 0x83, 0x32, 0x72, 0xbe, 0x82, 0x42, 0x39, 0xa4, 0x3b, 0xc9, 0x78, 0x3d, 0xca, 0xd4, 0xbf, 0xfc, 0x7a, 0x33, 0x1e, 0xcd, 0x9e, 0xe4, 0x85}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -241,7 +242,7 @@ func _1696853635_input_dataUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1696853635_input_data.up.sql", size: 23140, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1696853635_input_data.up.sql", size: 23140, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x89, 0x30, 0x33, 0x33, 0x55, 0xc5, 0x57, 0x2b, 0xaf, 0xef, 0x3d, 0x8d, 0x2a, 0xaa, 0x5c, 0x32, 0xd1, 0xf4, 0xd, 0x4a, 0xd0, 0x33, 0x4a, 0xe8, 0xf6, 0x8, 0x6b, 0x65, 0xcc, 0xba, 0xed, 0x42}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x89, 0x30, 0x33, 0x33, 0x55, 0xc5, 0x57, 0x2b, 0xaf, 0xef, 0x3d, 0x8d, 0x2a, 0xaa, 0x5c, 0x32, 0xd1, 0xf4, 0xd, 0x4a, 0xd0, 0x33, 0x4a, 0xe8, 0xf6, 0x8, 0x6b, 0x65, 0xcc, 0xba, 0xed, 0x42}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -261,7 +262,7 @@ func _1698117918_add_community_id_to_tokensUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1698117918_add_community_id_to_tokens.up.sql", size: 61, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1698117918_add_community_id_to_tokens.up.sql", size: 61, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x82, 0xdb, 0xde, 0x3, 0x3, 0xc, 0x67, 0xf3, 0x54, 0xc4, 0xad, 0xd6, 0xce, 0x56, 0xfb, 0xc1, 0x87, 0xd7, 0xda, 0xab, 0xec, 0x1, 0xe1, 0x7d, 0xb3, 0x63, 0xd6, 0xe5, 0x5d, 0x1c, 0x15}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x82, 0xdb, 0xde, 0x3, 0x3, 0xc, 0x67, 0xf3, 0x54, 0xc4, 0xad, 0xd6, 0xce, 0x56, 0xfb, 0xc1, 0x87, 0xd7, 0xda, 0xab, 0xec, 0x1, 0xe1, 0x7d, 0xb3, 0x63, 0xd6, 0xe5, 0x5d, 0x1c, 0x15}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -281,7 +282,7 @@ func _1698257443_add_community_metadata_to_wallet_dbUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1698257443_add_community_metadata_to_wallet_db.up.sql", size: 323, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1698257443_add_community_metadata_to_wallet_db.up.sql", size: 323, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x22, 0xd3, 0x4, 0x25, 0xfa, 0x23, 0x1, 0x48, 0x83, 0x26, 0x20, 0xf2, 0x3d, 0xbc, 0xc1, 0xa7, 0x7c, 0x27, 0x7c, 0x1d, 0x63, 0x3, 0xa, 0xd0, 0xce, 0x47, 0x86, 0xdc, 0xa1, 0x3c, 0x2, 0x1c}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x22, 0xd3, 0x4, 0x25, 0xfa, 0x23, 0x1, 0x48, 0x83, 0x26, 0x20, 0xf2, 0x3d, 0xbc, 0xc1, 0xa7, 0x7c, 0x27, 0x7c, 0x1d, 0x63, 0x3, 0xa, 0xd0, 0xce, 0x47, 0x86, 0xdc, 0xa1, 0x3c, 0x2, 0x1c}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -301,7 +302,7 @@ func _1699987075_add_timestamp_and_state_to_community_data_cacheUpSql() (*asset,
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1699987075_add_timestamp_and_state_to_community_data_cache.up.sql", size: 865, mode: os.FileMode(0644), modTime: time.Unix(1701091264, 0)}
|
info := bindataFileInfo{name: "1699987075_add_timestamp_and_state_to_community_data_cache.up.sql", size: 865, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc3, 0xee, 0x37, 0xf9, 0x7f, 0x9e, 0xfe, 0x93, 0x66, 0x2b, 0xd, 0x57, 0xf4, 0x89, 0x6c, 0x51, 0xfd, 0x14, 0xe9, 0xcd, 0xab, 0x65, 0xe7, 0xa7, 0x83, 0x7e, 0xe0, 0x5c, 0x14, 0x49, 0xf3, 0xe5}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc3, 0xee, 0x37, 0xf9, 0x7f, 0x9e, 0xfe, 0x93, 0x66, 0x2b, 0xd, 0x57, 0xf4, 0x89, 0x6c, 0x51, 0xfd, 0x14, 0xe9, 0xcd, 0xab, 0x65, 0xe7, 0xa7, 0x83, 0x7e, 0xe0, 0x5c, 0x14, 0x49, 0xf3, 0xe5}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -321,7 +322,7 @@ func _1700414564_add_wallet_connect_pairings_tableUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1700414564_add_wallet_connect_pairings_table.up.sql", size: 439, mode: os.FileMode(0644), modTime: time.Unix(1701146184, 0)}
|
info := bindataFileInfo{name: "1700414564_add_wallet_connect_pairings_table.up.sql", size: 439, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x77, 0x5e, 0x19, 0x62, 0x3c, 0x3a, 0x81, 0x16, 0xa0, 0x95, 0x35, 0x62, 0xab, 0x5e, 0x2b, 0xea, 0x11, 0x71, 0x11, 0xd0, 0x9, 0xab, 0x9c, 0xab, 0xf2, 0xdd, 0x5f, 0x88, 0x83, 0x9a, 0x93}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x77, 0x5e, 0x19, 0x62, 0x3c, 0x3a, 0x81, 0x16, 0xa0, 0x95, 0x35, 0x62, 0xab, 0x5e, 0x2b, 0xea, 0x11, 0x71, 0x11, 0xd0, 0x9, 0xab, 0x9c, 0xab, 0xf2, 0xdd, 0x5f, 0x88, 0x83, 0x9a, 0x93}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -341,7 +342,7 @@ func _1701101493_add_token_blocks_rangeUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1701101493_add_token_blocks_range.up.sql", size: 469, mode: os.FileMode(0644), modTime: time.Unix(1702036318, 0)}
|
info := bindataFileInfo{name: "1701101493_add_token_blocks_range.up.sql", size: 469, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe0, 0x37, 0xfb, 0x1a, 0x6c, 0x8c, 0xa8, 0x1e, 0xa2, 0xa5, 0x1f, 0x90, 0x73, 0x3e, 0x31, 0x5f, 0x48, 0x1e, 0x9a, 0x37, 0x27, 0x1c, 0xc, 0x67, 0x1, 0xcd, 0xec, 0x85, 0x4c, 0x1c, 0x26, 0x52}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe0, 0x37, 0xfb, 0x1a, 0x6c, 0x8c, 0xa8, 0x1e, 0xa2, 0xa5, 0x1f, 0x90, 0x73, 0x3e, 0x31, 0x5f, 0x48, 0x1e, 0x9a, 0x37, 0x27, 0x1c, 0xc, 0x67, 0x1, 0xcd, 0xec, 0x85, 0x4c, 0x1c, 0x26, 0x52}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -361,7 +362,7 @@ func _1702467441_wallet_connect_sessions_instead_of_pairingsUpSql() (*asset, err
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1702467441_wallet_connect_sessions_instead_of_pairings.up.sql", size: 356, mode: os.FileMode(0644), modTime: time.Unix(1702635502, 0)}
|
info := bindataFileInfo{name: "1702467441_wallet_connect_sessions_instead_of_pairings.up.sql", size: 356, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0x5f, 0x0, 0x60, 0x6, 0x28, 0x76, 0x61, 0x39, 0xdc, 0xa1, 0x84, 0x80, 0x46, 0x8a, 0xe4, 0x42, 0xb5, 0x1f, 0x18, 0x14, 0x23, 0x46, 0xb9, 0x51, 0xf, 0x62, 0xac, 0xc, 0x7, 0x98, 0xe}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0x5f, 0x0, 0x60, 0x6, 0x28, 0x76, 0x61, 0x39, 0xdc, 0xa1, 0x84, 0x80, 0x46, 0x8a, 0xe4, 0x42, 0xb5, 0x1f, 0x18, 0x14, 0x23, 0x46, 0xb9, 0x51, 0xf, 0x62, 0xac, 0xc, 0x7, 0x98, 0xe}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -381,7 +382,7 @@ func _1702577524_add_community_collections_and_collectibles_images_cacheUpSql()
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1702577524_add_community_collections_and_collectibles_images_cache.up.sql", size: 210, mode: os.FileMode(0644), modTime: time.Unix(1702810113, 0)}
|
info := bindataFileInfo{name: "1702577524_add_community_collections_and_collectibles_images_cache.up.sql", size: 210, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8e, 0x1b, 0x32, 0x2c, 0xfa, 0x11, 0x5e, 0x5e, 0x5d, 0xef, 0x92, 0xa0, 0x29, 0x52, 0xbf, 0x6e, 0xe3, 0x30, 0xe4, 0xdf, 0xdc, 0x5, 0xbe, 0xd1, 0xf8, 0x3e, 0xd9, 0x9b, 0xd6, 0x9b, 0x95, 0x96}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8e, 0x1b, 0x32, 0x2c, 0xfa, 0x11, 0x5e, 0x5e, 0x5d, 0xef, 0x92, 0xa0, 0x29, 0x52, 0xbf, 0x6e, 0xe3, 0x30, 0xe4, 0xdf, 0xdc, 0x5, 0xbe, 0xd1, 0xf8, 0x3e, 0xd9, 0x9b, 0xd6, 0x9b, 0x95, 0x96}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -401,7 +402,7 @@ func _1702867707_add_balance_to_collectibles_ownership_cacheUpSql() (*asset, err
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1702867707_add_balance_to_collectibles_ownership_cache.up.sql", size: 289, mode: os.FileMode(0644), modTime: time.Unix(1702936307, 0)}
|
info := bindataFileInfo{name: "1702867707_add_balance_to_collectibles_ownership_cache.up.sql", size: 289, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6f, 0x63, 0x30, 0x11, 0x22, 0xb9, 0xee, 0xae, 0xb8, 0xc4, 0xe6, 0xd3, 0x7, 0xc, 0xe6, 0xa3, 0x72, 0x8c, 0x6, 0x9d, 0x6c, 0x97, 0x8f, 0xb2, 0xd0, 0x37, 0x69, 0x69, 0x6, 0x7f, 0x67, 0x94}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6f, 0x63, 0x30, 0x11, 0x22, 0xb9, 0xee, 0xae, 0xb8, 0xc4, 0xe6, 0xd3, 0x7, 0xc, 0xe6, 0xa3, 0x72, 0x8c, 0x6, 0x9d, 0x6c, 0x97, 0x8f, 0xb2, 0xd0, 0x37, 0x69, 0x69, 0x6, 0x7f, 0x67, 0x94}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -421,11 +422,31 @@ func _1703686612_add_color_to_saved_addressesUpSql() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "1703686612_add_color_to_saved_addresses.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1703919916, 0)}
|
info := bindataFileInfo{name: "1703686612_add_color_to_saved_addresses.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1704402566, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb7, 0x6e, 0x8d, 0xc0, 0x49, 0xc, 0xb, 0x66, 0xa0, 0x77, 0x32, 0x76, 0xa8, 0xd0, 0x40, 0xce, 0x67, 0xa, 0x9e, 0x23, 0x36, 0xe, 0xc3, 0xd3, 0x9d, 0xe2, 0xde, 0x60, 0x19, 0xba, 0x44, 0xf1}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb7, 0x6e, 0x8d, 0xc0, 0x49, 0xc, 0xb, 0x66, 0xa0, 0x77, 0x32, 0x76, 0xa8, 0xd0, 0x40, 0xce, 0x67, 0xa, 0x9e, 0x23, 0x36, 0xe, 0xc3, 0xd3, 0x9d, 0xe2, 0xde, 0x60, 0x19, 0xba, 0x44, 0xf1}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var __1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x93\x31\x6f\xc2\x30\x10\x85\x77\xff\x8a\x13\x13\x48\x0c\xdd\x99\x0c\x5c\x8a\x55\x63\x53\xc7\x29\x65\x8a\xa2\xc4\x12\xa8\x90\xa0\x38\xa5\xea\xbf\xaf\x9c\x18\x1a\x30\x42\x6c\xb9\xbb\x67\xdf\x97\xf7\xe4\x99\x42\xaa\x11\x34\x9d\x72\x04\x16\x81\x90\x1a\xf0\x93\xc5\x3a\x06\x9b\x9d\x4c\x91\x66\x45\x51\x1b\x6b\x8d\x4d\x4b\xf3\x03\x43\x02\xe0\x3b\xf0\x41\xd5\x6c\x41\x55\x7b\x44\x24\x9c\x8f\x09\x40\x99\x1d\x4c\x30\x80\x39\x46\x34\xe1\x1a\x06\x03\xa7\xa9\xcd\xa1\x3a\x99\x02\xa6\x52\x72\xa4\x22\x94\x45\x94\xc7\xe8\x94\xdf\xc7\x22\x6b\x4c\x9a\xef\xab\xfc\x0b\x98\xd0\xa1\xf4\xc5\xc9\xf2\x6d\xb6\x2b\x53\xbb\xad\xea\x26\x75\x00\x21\xda\x0d\x81\x29\x6d\xfa\x0c\xe9\xce\xa6\x8d\xb1\xcd\x13\xa4\x79\x6d\xb2\xc6\xb9\xd5\x3c\xe2\xac\xf6\x55\xfd\x60\xe7\xb1\xde\x1d\xb2\xfa\xb7\x5d\xbd\x52\x6c\x49\xd5\x06\xde\x70\x03\x43\xef\xf8\xf8\x0c\x34\x72\x8a\x44\xb0\xf7\x04\x61\xe8\x7e\xe4\x7f\x42\x46\xb0\x66\x7a\x21\x13\x0d\x4a\xae\xd9\x7c\x42\x08\x13\x31\x2a\x0d\x52\x01\x7b\x15\x52\xa1\x23\x94\xf7\xd2\x25\xd0\xe6\x7b\x49\x78\xdc\x16\xed\xfd\xed\x97\x0f\xae\x2b\xfa\xd9\x74\x9d\x20\x86\xae\x7d\x36\xbb\xab\x3c\xa7\x3f\x71\x71\xcd\xd7\xce\x20\x02\x30\x22\x31\x72\x9c\x69\x72\x85\x72\xbe\xa4\x87\x71\x0b\x71\x17\xa1\x0f\xd0\x5b\x7f\xbd\xbc\x5b\x1d\x29\xb9\x24\x70\xeb\xcd\x84\x90\xb9\x92\x2b\xff\x48\xc2\x21\xe5\x1a\xd5\xfd\x69\xfb\x68\x14\x0a\xba\x44\x08\x4d\x9f\xfc\x05\x00\x00\xff\xff\xf2\xa5\xf4\x92\x7e\x03\x00\x00")
|
||||||
|
|
||||||
|
func _1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSqlBytes() ([]byte, error) {
|
||||||
|
return bindataRead(
|
||||||
|
__1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSql,
|
||||||
|
"1704701942_remove_favourite_and_change_primary_key_for_saved_addresses.up.sql",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func _1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSql() (*asset, error) {
|
||||||
|
bytes, err := _1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSqlBytes()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
info := bindataFileInfo{name: "1704701942_remove_favourite_and_change_primary_key_for_saved_addresses.up.sql", size: 894, mode: os.FileMode(0644), modTime: time.Unix(1704871375, 0)}
|
||||||
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x70, 0xd3, 0xcf, 0x90, 0xb2, 0xa, 0x23, 0x41, 0x8a, 0xa5, 0x90, 0x7b, 0x34, 0xec, 0x3b, 0x3f, 0xa9, 0xb1, 0x95, 0xf3, 0x2a, 0xdf, 0xbb, 0x53, 0x57, 0x27, 0x2b, 0x12, 0x84, 0xf4, 0x83, 0xda}}
|
||||||
|
return a, nil
|
||||||
|
}
|
||||||
|
|
||||||
var _docGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xc9\xb1\x0d\xc4\x20\x0c\x05\xd0\x9e\x29\xfe\x02\xd8\xfd\x6d\xe3\x4b\xac\x2f\x44\x82\x09\x78\x7f\xa5\x49\xfd\xa6\x1d\xdd\xe8\xd8\xcf\x55\x8a\x2a\xe3\x47\x1f\xbe\x2c\x1d\x8c\xfa\x6f\xe3\xb4\x34\xd4\xd9\x89\xbb\x71\x59\xb6\x18\x1b\x35\x20\xa2\x9f\x0a\x03\xa2\xe5\x0d\x00\x00\xff\xff\x60\xcd\x06\xbe\x4a\x00\x00\x00")
|
var _docGo = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xc9\xb1\x0d\xc4\x20\x0c\x05\xd0\x9e\x29\xfe\x02\xd8\xfd\x6d\xe3\x4b\xac\x2f\x44\x82\x09\x78\x7f\xa5\x49\xfd\xa6\x1d\xdd\xe8\xd8\xcf\x55\x8a\x2a\xe3\x47\x1f\xbe\x2c\x1d\x8c\xfa\x6f\xe3\xb4\x34\xd4\xd9\x89\xbb\x71\x59\xb6\x18\x1b\x35\x20\xa2\x9f\x0a\x03\xa2\xe5\x0d\x00\x00\xff\xff\x60\xcd\x06\xbe\x4a\x00\x00\x00")
|
||||||
|
|
||||||
func docGoBytes() ([]byte, error) {
|
func docGoBytes() ([]byte, error) {
|
||||||
|
@ -441,7 +462,7 @@ func docGo() (*asset, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1692726720, 0)}
|
info := bindataFileInfo{name: "doc.go", size: 74, mode: os.FileMode(0644), modTime: time.Unix(1703598405, 0)}
|
||||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x7c, 0x28, 0xcd, 0x47, 0xf2, 0xfa, 0x7c, 0x51, 0x2d, 0xd8, 0x38, 0xb, 0xb0, 0x34, 0x9d, 0x4c, 0x62, 0xa, 0x9e, 0x28, 0xc3, 0x31, 0x23, 0xd9, 0xbb, 0x89, 0x9f, 0xa0, 0x89, 0x1f, 0xe8}}
|
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x7c, 0x28, 0xcd, 0x47, 0xf2, 0xfa, 0x7c, 0x51, 0x2d, 0xd8, 0x38, 0xb, 0xb0, 0x34, 0x9d, 0x4c, 0x62, 0xa, 0x9e, 0x28, 0xc3, 0x31, 0x23, 0xd9, 0xbb, 0x89, 0x9f, 0xa0, 0x89, 0x1f, 0xe8}}
|
||||||
return a, nil
|
return a, nil
|
||||||
}
|
}
|
||||||
|
@ -571,6 +592,8 @@ var _bindata = map[string]func() (*asset, error){
|
||||||
|
|
||||||
"1703686612_add_color_to_saved_addresses.up.sql": _1703686612_add_color_to_saved_addressesUpSql,
|
"1703686612_add_color_to_saved_addresses.up.sql": _1703686612_add_color_to_saved_addressesUpSql,
|
||||||
|
|
||||||
|
"1704701942_remove_favourite_and_change_primary_key_for_saved_addresses.up.sql": _1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSql,
|
||||||
|
|
||||||
"doc.go": docGo,
|
"doc.go": docGo,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -632,6 +655,7 @@ var _bintree = &bintree{nil, map[string]*bintree{
|
||||||
"1702577524_add_community_collections_and_collectibles_images_cache.up.sql": &bintree{_1702577524_add_community_collections_and_collectibles_images_cacheUpSql, map[string]*bintree{}},
|
"1702577524_add_community_collections_and_collectibles_images_cache.up.sql": &bintree{_1702577524_add_community_collections_and_collectibles_images_cacheUpSql, map[string]*bintree{}},
|
||||||
"1702867707_add_balance_to_collectibles_ownership_cache.up.sql": &bintree{_1702867707_add_balance_to_collectibles_ownership_cacheUpSql, map[string]*bintree{}},
|
"1702867707_add_balance_to_collectibles_ownership_cache.up.sql": &bintree{_1702867707_add_balance_to_collectibles_ownership_cacheUpSql, map[string]*bintree{}},
|
||||||
"1703686612_add_color_to_saved_addresses.up.sql": &bintree{_1703686612_add_color_to_saved_addressesUpSql, map[string]*bintree{}},
|
"1703686612_add_color_to_saved_addresses.up.sql": &bintree{_1703686612_add_color_to_saved_addressesUpSql, map[string]*bintree{}},
|
||||||
|
"1704701942_remove_favourite_and_change_primary_key_for_saved_addresses.up.sql": &bintree{_1704701942_remove_favourite_and_change_primary_key_for_saved_addressesUpSql, map[string]*bintree{}},
|
||||||
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
"doc.go": &bintree{docGo, map[string]*bintree{}},
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS saved_addresses_new (
|
||||||
|
address VARCHAR NOT NULL,
|
||||||
|
name VARCHAR NOT NULL DEFAULT "",
|
||||||
|
removed BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
update_clock INT NOT NULL DEFAULT 0,
|
||||||
|
chain_short_names VARCHAR NOT NULL DEFAULT "",
|
||||||
|
ens_name VARCHAR NOT NULL DEFAULT "",
|
||||||
|
is_test BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
created_at INT NOT NULL DEFAULT 0,
|
||||||
|
color VARCHAR NOT NULL DEFAULT "primary",
|
||||||
|
PRIMARY KEY (address, is_test),
|
||||||
|
UNIQUE (name, is_test)
|
||||||
|
) WITHOUT ROWID;
|
||||||
|
|
||||||
|
INSERT OR IGNORE INTO saved_addresses_new
|
||||||
|
(
|
||||||
|
address,
|
||||||
|
name,
|
||||||
|
removed,
|
||||||
|
update_clock,
|
||||||
|
chain_short_names,
|
||||||
|
ens_name,
|
||||||
|
is_test,
|
||||||
|
created_at,
|
||||||
|
color
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
address,
|
||||||
|
name,
|
||||||
|
removed,
|
||||||
|
update_clock,
|
||||||
|
chain_short_names,
|
||||||
|
ens_name,
|
||||||
|
is_test,
|
||||||
|
created_at,
|
||||||
|
color
|
||||||
|
FROM
|
||||||
|
saved_addresses;
|
||||||
|
|
||||||
|
DROP TABLE saved_addresses;
|
||||||
|
|
||||||
|
ALTER TABLE saved_addresses_new RENAME TO saved_addresses;
|
Loading…
Reference in New Issue