VeChain
Explorer
Testnet
Search
Networks
Main
Test
Contract
0x89d6b2…B4fd
Summary
Transactions
Transfers
Address
0x89d6b26E5a5084117E6686b4670fC6fa5c9BB4fd
VET
0.00
VET
VTHO
0.00
VTHO
Master
0x85757901F5Fd736441db75d051416D291fa04d13
Deployer
0x85757901F5Fd736441db75d051416D291fa04d13
Code
0x60806040526004361061014b5760003560e01c8063859b97fe116100b6578063da09c72c1161006f578063da09c72c146104ab578063e8a2f093146104d6578063e9dc637514610501578063f2fde38b1461053e578063f4947f0f14610567578063f7888aec146105a45761014b565b8063859b97fe1461038b57806388169576146103b45780638da5cb5b146103f1578063961c9ae41461041c578063c375c2ef14610445578063d16a83421461046e5761014b565b80635c975abb116101085780635c975abb146102655780635f539d69146102905780636b42bf2f146102b95780636c54df52146102f6578063715018a614610333578063762a66a21461034a5761014b565b806305b867fe146101505780631ae6b6ee1461018d5780633263b545146101b657806340d970b3146101f35780634a5ff7491461021e57806359d667a514610249575b600080fd5b34801561015c57600080fd5b5061017760048036038101906101729190612b45565b6105e1565b6040516101849190613291565b60405180910390f35b34801561019957600080fd5b506101b460048036038101906101af9190612b45565b610612565b005b3480156101c257600080fd5b506101dd60048036038101906101d89190612c49565b61074a565b6040516101ea9190612f64565b60405180910390f35b3480156101ff57600080fd5b50610208610789565b6040516102159190612f64565b60405180910390f35b34801561022a57600080fd5b506102336107af565b6040516102409190612f64565b60405180910390f35b610263600480360381019061025e9190612b45565b6107d5565b005b34801561027157600080fd5b5061027a610a01565b6040516102879190613099565b60405180910390f35b34801561029c57600080fd5b506102b760048036038101906102b29190612a58565b610a17565b005b3480156102c557600080fd5b506102e060048036038101906102db9190612af2565b610b5a565b6040516102ed9190613291565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612b45565b610c98565b60405161032a9190613291565b60405180910390f35b34801561033f57600080fd5b50610348610d5a565b005b34801561035657600080fd5b50610371600480360381019061036c9190612b45565b610de2565b604051610382959493929190613024565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad9190612b45565b610f8a565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612a58565b611115565b6040516103e89190613291565b60405180910390f35b3480156103fd57600080fd5b506104066111a9565b6040516104139190612f64565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e9190612b85565b6111d3565b005b34801561045157600080fd5b5061046c60048036038101906104679190612a58565b61138b565b005b34801561047a57600080fd5b5061049560048036038101906104909190612a58565b6116c5565b6040516104a291906130b4565b60405180910390f35b3480156104b757600080fd5b506104c06116f8565b6040516104cd9190612f64565b60405180910390f35b3480156104e257600080fd5b506104eb61171e565b6040516104f89190613291565b60405180910390f35b34801561050d57600080fd5b5061052860048036038101906105239190612b45565b611724565b60405161053591906130cf565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190612a58565b611864565b005b34801561057357600080fd5b5061058e60048036038101906105899190612a58565b61195c565b60405161059b9190613077565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612ab2565b611a3b565b6040516105d89190613291565b60405180910390f35b600360205281600052604060002081815481106105fd57600080fd5b90600052602060002001600091509150505481565b61061a610a01565b610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906130f1565b60405180910390fd5b610661611b76565b73ffffffffffffffffffffffffffffffffffffffff1661067f6111a9565b73ffffffffffffffffffffffffffffffffffffffff16146106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc90613251565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020905061073281611b7e565b61073b57600080fd5b6107458383611bac565b505050565b6004818154811061075a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107dd610a01565b1561081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906131f1565b60405180910390fd5b61082682611bf3565b610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90613191565b60405180910390fd5b610870823383611c9d565b156108b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a7906131b1565b60405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b81526004016109bf93929190612f7f565b600060405180830381600087803b1580156109d957600080fd5b505af11580156109ed573d6000803e3d6000fd5b505050506109fc828234611dbe565b505050565b60008060009054906101000a900460ff16905090565b610a2081611bf3565b15610a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5790613271565b60405180910390fd5b80600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560008154610b50906137d5565b9190508190555050565b6000610b6584611bf3565b15610ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9c90613191565b60405180910390fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5984846040518363ffffffff1660e01b8152600401610c3f929190612fb6565b60206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8f9190612c76565b90509392505050565b6000610ca383611bf3565b610ce2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd990613191565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000209050610d3f81611b7e565b610d4857600080fd5b610d5181612181565b91505092915050565b610d62611b76565b73ffffffffffffffffffffffffffffffffffffffff16610d806111a9565b73ffffffffffffffffffffffffffffffffffffffff1614610dd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcd90613251565b60405180910390fd5b610de0600061227d565b565b6000806000806000610df387611bf3565b610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990613191565b60405180910390fd5b6000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008881526020019081526020016000209050610e8f81611b7e565b610e9857600080fd5b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a90046fffffffffffffffffffffffffffffffff168260010160109054906101000a90046fffffffffffffffffffffffffffffffff168360020160009054906101000a900467ffffffffffffffff168460020160089054906101000a900467ffffffffffffffff16836fffffffffffffffffffffffffffffffff169350826fffffffffffffffffffffffffffffffff1692508167ffffffffffffffff1691508067ffffffffffffffff16905095509550955095509550509295509295909350565b610f9382611bf3565b610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc990613191565b60405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020905061102f81611b7e565b61106e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106590613211565b60405180910390fd5b60008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc906131d1565b60405180910390fd5b61110f8484611bac565b50505050565b600061112082611bf3565b61115f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115690613191565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6111db610a01565b1561121b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611212906131f1565b60405180910390fd5b61122485611bf3565b611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a90613191565b60405180910390fd5b826fffffffffffffffffffffffffffffffff16831461128157600080fd5b816fffffffffffffffffffffffffffffffff16821461129f57600080fd5b8067ffffffffffffffff1681146112b557600080fd5b6112c0853386611c9d565b6112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690613151565b60405180910390fd5b60006040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001856fffffffffffffffffffffffffffffffff168152602001846fffffffffffffffffffffffffffffffff1681526020018367ffffffffffffffff1681526020014267ffffffffffffffff168152509050611383868683612343565b505050505050565b61139481611bf3565b6113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613191565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060005b8181101561149b5761148a83600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061147a576114796138ab565b5b90600052602060002001546125f0565b80611494906137d5565b905061141d565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006115489190612956565b600090505b6005548110156115df578273ffffffffffffffffffffffffffffffffffffffff1660048281548110611582576115816138ab565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156115ce576115df565b806115d8906137d5565b905061154d565b6005548110156116aa5760016005546115f8919061368b565b8110156116a95760046001600554611610919061368b565b81548110611621576116206138ab565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600482815481106116605761165f6138ab565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6005600081546116b99061377a565b91905081905550505050565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b606061172f83611bf3565b1561176f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176690613191565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b81526004016118079190613291565b60006040518083038186803b15801561181f57600080fd5b505afa158015611833573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061185c9190612c00565b905092915050565b61186c611b76565b73ffffffffffffffffffffffffffffffffffffffff1661188a6111a9565b73ffffffffffffffffffffffffffffffffffffffff16146118e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d790613251565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613171565b60405180910390fd5b6119598161227d565b50565b606061196782611bf3565b6119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613191565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611a2f57602002820191906000526020600020905b815481526020019060010190808311611a1b575b50505050509050919050565b6000611a4683611bf3565b15611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d90613191565b60405180910390fd5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401611b1e9190612f64565b60206040518083038186803b158015611b3657600080fd5b505afa158015611b4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b6e9190612c76565b905092915050565b600033905090565b6000808260020160089054906101000a900467ffffffffffffffff1667ffffffffffffffff16119050919050565b611bb682826125f0565b7f018b64b6242d32aa550e95d78985b938d71af5b3f10827b0683f55da163930488282604051611be7929190612fb6565b60405180910390a15050565b600080600090505b600554811015611c92578273ffffffffffffffffffffffffffffffffffffffff1660048281548110611c3057611c2f6138ab565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c81576001915050611c98565b80611c8b906137d5565b9050611bfb565b60009150505b919050565b60008273ffffffffffffffffffffffffffffffffffffffff16600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff1660e01b8152600401611d4e9190613291565b60206040518083038186803b158015611d6657600080fd5b505afa158015611d7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9e9190612a85565b73ffffffffffffffffffffffffffffffffffffffff161490509392505050565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000209050611e1c81611b7e565b611e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5290613131565b60405180910390fd5b6000611e6682612181565b905080841015611eab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea290613231565b60405180910390fd5b60008260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611ede87876125f0565b60008211156120df5760006064605f84611ef8919061359d565b611f029190613455565b90506000606484611f139190613455565b905060006064600286611f26919061359d565b611f309190613455565b9050600081838588611f42919061368b565b611f4c919061368b565b611f56919061368b565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015611fc0573d6000803e3d6000fd5b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612029573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612092573d6000803e3d6000fd5b508473ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501580156120d9573d6000803e3d6000fd5b50505050505b600082866120ed919061368b565b90503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612135573d6000803e3d6000fd5b507f6c00bb44a64da29b6a73920d50ff280237d277bda3e1f3cdf4e24392e6839efe8888853360405161216b9493929190612fdf565b60405180910390a1829450505050509392505050565b600080600090508260020160089054906101000a900467ffffffffffffffff1667ffffffffffffffff164211156121e3578260020160089054906101000a900467ffffffffffffffff1667ffffffffffffffff16426121e0919061368b565b90505b6122758360010160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168460010160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168560020160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16846128fb565b915050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b603c816060015167ffffffffffffffff161015612395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238c90613111565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060408201518160010160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060608201518160020160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060808201518160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150557fb0c0552f858e630668cc4c58a1b7d1bd302efa77c15d8ec0f1fe725053c59801838383602001516fffffffffffffffffffffffffffffffff1684604001516fffffffffffffffffffffffffffffffff16856060015167ffffffffffffffff166040516125e3959493929190613024565b60405180910390a1505050565b600080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600091505b808210156126be5782600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110612697576126966138ab565b5b906000526020600020015414156126ad576126be565b816126b7906137d5565b915061263d565b6001816126cb919061368b565b82101561279a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018261271e919061368b565b8154811061272f5761272e6138ab565b5b9060005260206000200154600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811061278b5761278a6138ab565b5b90600052602060002001819055505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806127e9576127e861387c565b5b60019003818190600052602060002001600090559055600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160006101000a8154906fffffffffffffffffffffffffffffffff02191690556001820160106101000a8154906fffffffffffffffffffffffffffffffff02191690556002820160006101000a81549067ffffffffffffffff02191690556002820160086101000a81549067ffffffffffffffff0219169055505050505050565b600082821061290c5783905061294e565b6000858561291a91906135f7565b9050600084848361292b9190613486565b61293591906133eb565b9050600081886129459190613357565b90508093505050505b949350505050565b50805460008255906000526020600020908101906129749190612977565b50565b5b80821115612990576000816000905550600101612978565b5090565b60006129a76129a2846132d1565b6132ac565b9050828152602081018484840111156129c3576129c261390e565b5b6129ce848285613747565b509392505050565b6000813590506129e581613c01565b92915050565b6000815190506129fa81613c01565b92915050565b600082601f830112612a1557612a14613909565b5b8151612a25848260208601612994565b91505092915050565b600081359050612a3d81613c18565b92915050565b600081519050612a5281613c18565b92915050565b600060208284031215612a6e57612a6d613918565b5b6000612a7c848285016129d6565b91505092915050565b600060208284031215612a9b57612a9a613918565b5b6000612aa9848285016129eb565b91505092915050565b60008060408385031215612ac957612ac8613918565b5b6000612ad7858286016129d6565b9250506020612ae8858286016129d6565b9150509250929050565b600080600060608486031215612b0b57612b0a613918565b5b6000612b19868287016129d6565b9300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000