1 tx
14 calls
constructor
constructor(address _callback_proxy, uint8 _confirmations, bool _allow_cancellations, uint256 _cancellation_threshold, address _wreact, bool _is_mintable, bool _is_standard_burn, uint256 _fixed_fee, uint256 _perc_fee, uint256 _gas_fee) payable
functions
gas_fee
viewfunction gas_fee() view returns (uint256)
bridge
payablefunction bridge(uint256 uniqueish, address recipient, uint256 amount) payable
cancel
nonpayablefunction cancel(uint256 uniqueish, uint256 index, address recipient, uint256 amount)
confirm
nonpayablefunction confirm(address rvm_id, uint256 submsg_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
confirmDelivery
nonpayablefunction confirmDelivery(address rvm_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
coverDebt
nonpayablefunction coverDebt()
initialMessage
nonpayablefunction initialMessage(address rvm_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
pause
nonpayablefunction pause()
pay
nonpayablefunction pay(uint256 amount)
reject
nonpayablefunction reject(address rvm_id, uint256 submsg_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
rejectDelivery
nonpayablefunction rejectDelivery(address rvm_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
requestConfirmation
nonpayablefunction requestConfirmation(address rvm_id, uint256 submsg_id, uint256 txh, uint256 index, uint256 amount, address sender, address recipient)
retry
nonpayablefunction retry(uint256 uniqueish, uint256 index, address sender, address recipient, uint256 amount, uint256 uniqueish_2)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(address token, uint256 amount)
events
Confirmation
event Confirmation(uint256 indexed rq, uint256 indexed tx, uint256 indexed index, uint256 amount, address sender, address recipient)
ConfirmationRequest
event ConfirmationRequest(uint256 indexed rq, uint256 indexed tx, uint256 indexed index, uint256 amount, address sender, address recipient)
DeliveryConfirmation
event DeliveryConfirmation(uint256 indexed tx, uint256 indexed index, uint256 indexed amount, address sender, address recipient)
DeliveryRejection
event DeliveryRejection(uint256 indexed tx, uint256 indexed index, uint256 indexed amount, address sender, address recipient)
InitialMessage
event InitialMessage(uint256 indexed tx, uint256 indexed index, uint256 indexed amount, address sender, address recipient)
Rejection
event Rejection(uint256 indexed rq, uint256 indexed tx, uint256 indexed index, uint256 amount, address sender, address recipient)
errors
No errors.
creation bytecode
0x60806040526040516142f33803806142f38339818101604052810190610025919061040b565b88888885858e3360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100b98161027d60201b60201c565b503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff02191690831515021790555067016345785d8a0000821115610160576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101579061053e565b60405180910390fd5b6103e88111156101a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161019c906105a6565b60405180910390fd5b816004819055508060058190555050508260065f6101000a81548160ff021916908360ff16021790555081600660016101000a81548160ff0219169083151502179055508060078190555050505085600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60146101000a81548160ff02191690831515021790555083600a60156101000a81548160ff02191690831515021790555080600b81905550505050505050505050506105c4565b6001805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610301826102d8565b9050919050565b610311816102f7565b811461031b575f5ffd5b50565b5f8151905061032c81610308565b92915050565b5f60ff82169050919050565b61034781610332565b8114610351575f5ffd5b50565b5f815190506103628161033e565b92915050565b5f8115159050919050565b61037c81610368565b8114610386575f5ffd5b50565b5f8151905061039781610373565b92915050565b5f819050919050565b6103af8161039d565b81146103b9575f5ffd5b50565b5f815190506103ca816103a6565b92915050565b5f6103da826102f7565b9050919050565b6103ea816103d0565b81146103f4575f5ffd5b50565b5f81519050610405816103e1565b92915050565b5f5f5f5f5f5f5f5f5f5f6101408b8d03121561042a576104296102d4565b5b5f6104378d828e0161031e565b9a505060206104488d828e01610354565b99505060406104598d828e01610389565b985050606061046a8d828e016103bc565b975050608061047b8d828e016103f7565b96505060a061048c8d828e01610389565b95505060c061049d8d828e01610389565b94505060e06104ae8d828e016103bc565b9350506101006104c08d828e016103bc565b9250506101206104d28d828e016103bc565b9150509295989b9194979a5092959850565b5f82825260208201905092915050565b7f4669786564206665652073657420746f6f2068696768000000000000000000005f82015250565b5f6105286016836104e4565b9150610533826104f4565b602082019050919050565b5f6020820190508181035f8301526105558161051c565b9050919050565b7f46656520726174652073657420746f6f206869676800000000000000000000005f82015250565b5f6105906015836104e4565b915061059b8261055c565b602082019050919050565b5f6020820190508181035f8301526105bd81610584565b9050919050565b613d22806105d15f395ff3fe6080604052600436106100eb575f3560e01c806376369b6d11610089578063a45c265a11610058578063a45c265a1461026e578063c290d69114610296578063e52eb1e3146102be578063f3fef3a3146102e6576100f2565b806376369b6d146101f05780637a90b9901461021a5780637c960ff4146102305780638456cb5914610258576100f2565b80633f4ba83a116100c55780633f4ba83a14610162578063668cec3b146101785780636944af66146101a05780636f48595a146101c8576100f2565b8063035a2875146100f65780632f14b9e61461011e5780632f820a5f14610146576100f2565b366100f257005b5f5ffd5b348015610101575f5ffd5b5061011c60048036038101906101179190612d2b565b61030e565b005b348015610129575f5ffd5b50610144600480360381019061013f9190612d2b565b6104e9565b005b610160600480360381019061015b9190612dc8565b6106c4565b005b34801561016d575f5ffd5b50610176610b79565b005b348015610183575f5ffd5b5061019e60048036038101906101999190612e18565b610c75565b005b3480156101ab575f5ffd5b506101c660048036038101906101c19190612e18565b610e4e565b005b3480156101d3575f5ffd5b506101ee60048036038101906101e99190612d2b565b611027565b005b3480156101fb575f5ffd5b5061020461120b565b6040516102119190612eb0565b60405180910390f35b348015610225575f5ffd5b5061022e611211565b005b34801561023b575f5ffd5b5061025660048036038101906102519190612ec9565b6112d9565b005b348015610263575f5ffd5b5061026c61133f565b005b348015610279575f5ffd5b50610294600480360381019061028f9190612e18565b611439565b005b3480156102a1575f5ffd5b506102bc60048036038101906102b79190612f2d565b61161b565b005b3480156102c9575f5ffd5b506102e460048036038101906102df9190612f58565b6116b1565b005b3480156102f1575f5ffd5b5061030c60048036038101906103079190612fe1565b611722565b005b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038e90613079565b60405180910390fd5b865f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061043f57508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b61047e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610475906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090506104de8882611a5e565b505050505050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056990613079565b60405180910390fd5b865f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061061a57508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610650906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681525090506106b98882611aad565b505050505050505050565b600360149054906101000a900460ff16610713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070a90613149565b60405180910390fd5b5f600b54486107229190613194565b905080341015610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e9061326b565b60405180910390fd5b80341115610872575f3373ffffffffffffffffffffffffffffffffffffffff1682346107939190613289565b5f67ffffffffffffffff8111156107ad576107ac6132bc565b5b6040519080825280601f01601f1916602001820160405280156107df5781602001600182028036833780820191505090505b506040516107ed919061333b565b5f6040518083038185875af1925050503d805f8114610827576040519150601f19603f3d011682016040523d82523d5f602084013e61082c565b606091505b5050905080610870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108679061339b565b60405180910390fd5b505b81600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016108cd91906133c8565b602060405180830381865afa1580156108e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090c91906133f5565b101561094d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109449061346a565b60405180910390fd5b81600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b81526004016109aa929190613488565b602060405180830381865afa1580156109c5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e991906133f5565b1015610a2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a21906134f9565b60405180910390fd5b81610a3483611b07565b10610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b90613561565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401610ad29392919061357f565b6020604051808303815f875af1158015610aee573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1291906135e9565b505f6040518060a001604052808681526020015a81526020018481526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152509050610b7281611b37565b5050505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bff9061365e565b60405180910390fd5b600360149054906101000a900460ff1615610c58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4f906136c6565b60405180910390fd5b6001600360146101000a81548160ff021916908315150217905550565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610cfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf590613079565b60405180910390fd5b855f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610da657508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152509050610e4481611be3565b5050505050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610ed7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ece90613079565b60405180910390fd5b855f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610f7f57508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815250905061101d81611c95565b5050505050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790613079565b60405180910390fd5b865f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061115857508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152509050611200886111fa8a611d47565b83611d78565b505050505050505050565b600b5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639b6c56ec306040518263ffffffff1660e01b815260040161126b91906133c8565b602060405180830381865afa158015611286573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112aa91906133f5565b90506112d65f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611e12565b50565b5f6040518060a001604052808681526020018581526020018381526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815250905061133881611f59565b5050505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c59061365e565b60405180910390fd5b600360149054906101000a900460ff1661141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490613149565b60405180910390fd5b5f600360146101000a81548160ff021916908315150217905550565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166114c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b990613079565b60405180910390fd5b855f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061156a57508073ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a0906130e1565b60405180910390fd5b5f6040518060a001604052808881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815250905061161161160b88611d47565b82612076565b5050505050505050565b60015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90613079565b60405180910390fd5b6116ae3382611e12565b50565b5f6040518060a001604052808881526020018781526020018481526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815250905061171961171383611d47565b82612124565b50505050505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a89061365e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119235780471015611827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181e9061346a565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff16825f67ffffffffffffffff81111561185a576118596132bc565b5b6040519080825280601f01601f19166020018201604052801561188c5781602001600182028036833780820191505090505b5060405161189a919061333b565b5f6040518083038185875af1925050503d805f81146118d4576040519150601f19603f3d011682016040523d82523d5f602084013e6118d9565b606091505b505090508061191d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119149061372e565b60405180910390fd5b50611a5a565b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161195d91906133c8565b602060405180830381865afa158015611978573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199c91906133f5565b10156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d49061346a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611a1892919061374c565b6020604051808303815f875af1158015611a34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a5891906135e9565b505b5050565b5f60095f611a6b846121c5565b81526020019081526020015f209050611a868184600161220b565b15611aa857611a9e8163cafebabe600360025f61229a565b611aa782612394565b5b505050565b5f60085f611aba846121c5565b81526020019081526020015f209050611ad481845f61220b565b15611af757611ae88184600280600161229a565b611af28383612446565b611b02565b611b01838361249b565b5b505050565b5f61271060055483611b199190613194565b611b2391906137a0565b600454611b3091906137d0565b9050919050565b5f60085f611b44846121c5565b81526020019081526020015f2090505f6004811115611b6657611b65613803565b5b815f015f9054906101000a900460ff166004811115611b8857611b87613803565b5b14611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf9061387a565b60405180910390fd5b611bd6815f6002805f61229a565b611bdf826124f0565b5050565b5f60085f611bf0846121c5565b81526020019081526020015f20905060026004811115611c1357611c12613803565b5b815f015f9054906101000a900460ff166004811115611c3557611c34613803565b5b14611c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6c906138e2565b60405180910390fd5b611c888163deadbeef600160025f61229a565b611c9182612542565b5050565b5f60085f611ca2846121c5565b81526020019081526020015f20905060026004811115611cc557611cc4613803565b5b815f015f9054906101000a900460ff166004811115611ce757611ce6613803565b5b14611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e9061394a565b60405180910390fd5b611d3a8163beefcafe600460025f61229a565b611d43826126c9565b5050565b5f81604051602001611d599190612eb0565b604051602081830303815290604052805190602001205f1c9050919050565b5f60095f611d85846121c5565b81526020019081526020015f209050611da08185600161220b565b15611e0c57611db48185600280600161229a565b60065f9054906101000a900460ff1660ff16815f0160019054906101000a900460ff1660ff1610611e0057611df28163cafebabe600360025f61229a565b611dfb826128f4565b611e0b565b611e0a8383612aa4565b5b5b50505050565b80471015611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9061346a565b60405180910390fd5b5f811115611f55575f8273ffffffffffffffffffffffffffffffffffffffff16825f67ffffffffffffffff811115611e9057611e8f6132bc565b5b6040519080825280601f01601f191660200182016040528015611ec25781602001600182028036833780820191505090505b50604051611ed0919061333b565b5f6040518083038185875af1925050503d805f8114611f0a576040519150601f19603f3d011682016040523d82523d5f602084013e611f0f565b606091505b5050905080611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906139b2565b60405180910390fd5b505b5050565b600660019054906101000a900460ff16611fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9f90613a1a565b60405180910390fd5b5f60085f611fb5846121c5565b81526020019081526020015f20905060026004811115611fd857611fd7613803565b5b815f015f9054906101000a900460ff166004811115611ffa57611ff9613803565b5b14801561201757506007548160010154436120159190613289565b115b612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204d90613a82565b60405180910390fd5b6120698163deadbeef600160025f61229a565b61207282612542565b5050565b5f60095f612083846121c5565b81526020019081526020015f2090505f60048111156120a5576120a4613803565b5b815f015f9054906101000a900460ff1660048111156120c7576120c6613803565b5b14612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90613aea565b60405180910390fd5b612115815f6002805f61229a565b61211f8383612aa4565b505050565b5f60095f612131846121c5565b81526020019081526020015f2090506002600481111561215457612153613803565b5b815f015f9054906101000a900460ff16600481111561217657612175613803565b5b146121b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ad90613b52565b60405180910390fd5b6121c08383612aa4565b505050565b5f815f01518260400151836060015184608001516040516020016121ec9493929190613b70565b604051602081830303815290604052805190602001205f1c9050919050565b5f600260048111156122205761221f613803565b5b845f015f9054906101000a900460ff16600481111561224257612241613803565b5b148015612291575081600281111561225d5761225c613803565b5b846002015f8581526020019081526020015f205f9054906101000a900460ff16600281111561228f5761228e613803565b5b145b90509392505050565b6002808111156122ad576122ac613803565b5b856002015f8681526020019081526020015f205f9054906101000a900460ff1660028111156122df576122de613803565b5b1461238d5781856002015f8681526020019081526020015f205f6101000a81548160ff0219169083600281111561231957612318613803565b5b021790555082855f015f6101000a81548160ff0219169083600481111561234357612342613803565b5b0217905550438560010181905550801561238c57845f01600181819054906101000a900460ff1661237390613bbf565b91906101000a81548160ff021916908360ff1602179055505b5b5050505050565b5f60095f6123a1846121c5565b81526020019081526020015f209050600360048111156123c4576123c3613803565b5b815f015f9054906101000a900460ff1660048111156123e6576123e5613803565b5b14612426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241d90613c31565b60405180910390fd5b6124398163deadbeef600160025f61229a565b61244282612aef565b5050565b8060200151815f0151837f82a6f338b2afeb24efc15f5a68e65a31960ce16b4581a1894be8f4547a6a699284604001518560600151866080015160405161248f93929190613c4f565b60405180910390a45050565b8060200151815f0151837f12f9401f332d409c70cbc2009ee74b1b2473605e711adab4afa955982b26922e8460400151856060015186608001516040516124e493929190613c4f565b60405180910390a45050565b80604001518160200151825f01517f8c89ba8c334cb1a0c05b1099dbb401cb818564b8e10b81d0ae78c1c512fda8c084606001518560800151604051612537929190613488565b60405180910390a450565b8060400151600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016125a191906133c8565b602060405180830381865afa1580156125bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e091906133f5565b1015612621576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126189061346a565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb826060015183604001516040518363ffffffff1660e01b815260040161268592919061374c565b6020604051808303815f875af11580156126a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126c591906135e9565b5050565b8060400151600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161272891906133c8565b602060405180830381865afa158015612743573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061276791906133f5565b10156127a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279f9061346a565b60405180910390fd5b600a60149054906101000a900460ff16156128f157600a60159054906101000a900460ff161561286257600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c6882604001516040518263ffffffff1660e01b81526004016128309190612eb0565b5f604051808303815f87803b158015612847575f5ffd5b505af1158015612859573d5f5f3e3d5ffd5b505050506128f0565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac3083604001516040518363ffffffff1660e01b81526004016128c292919061374c565b5f604051808303815f87803b1580156128d9575f5ffd5b505af11580156128eb573d5f5f3e3d5ffd5b505050505b5b50565b600a60149054906101000a900460ff16156129cd57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1982608001516129588460400151611b07565b84604001516129679190613289565b6040518363ffffffff1660e01b815260040161298492919061374c565b5f604051808303815f87803b15801561299b575f5ffd5b505af19250505080156129ac575060015b6129be576129b981612394565b6129c8565b6129c781612b41565b5b612aa1565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260800151612a1c8460400151611b07565b8460400151612a2b9190613289565b6040518363ffffffff1660e01b8152600401612a4892919061374c565b6020604051808303815f875af1925050508015612a8357506040513d601f19601f82011682018060405250810190612a8091906135e9565b60015b612a9557612a9081612394565b612aa0565b50612a9f81612b41565b5b5b50565b5f60095f612ab1846121c5565b81526020019081526020015f209050612acb81845f61220b565b15612aea57612adf8184600260015f61229a565b612ae98383612bf3565b5b505050565b80604001518160200151825f01517f2345a5b1451246d78b6e58ce955817f26b2b57784f56aa04c95395f4d275d67584606001518560800151604051612b36929190613488565b60405180910390a450565b5f60095f612b4e846121c5565b81526020019081526020015f20905060036004811115612b7157612b70613803565b5b815f015f9054906101000a900460ff166004811115612b9357612b92613803565b5b14612bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bca90613cce565b60405180910390fd5b612be68163beefcafe600460025f61229a565b612bef82612c48565b5050565b8060200151815f0151837f0e668991dc806b96bad9c4cea098fe1f66697f2b765d9628556fa06a5e3ffeb5846040015185606001518660800151604051612c3c93929190613c4f565b60405180910390a45050565b80604001518160200151825f01517fe56d80fb0ff2f929966227056120d5fee57f98d0b057c1b4fb9286f03eeba05784606001518560800151604051612c8f929190613488565b60405180910390a450565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612cc782612c9e565b9050919050565b612cd781612cbd565b8114612ce1575f5ffd5b50565b5f81359050612cf281612cce565b92915050565b5f819050919050565b612d0a81612cf8565b8114612d14575f5ffd5b50565b5f81359050612d2581612d01565b92915050565b5f5f5f5f5f5f5f60e0888a031215612d4657612d45612c9a565b5b5f612d538a828b01612ce4565b9750506020612d648a828b01612d17565b9650506040612d758a828b01612d17565b9550506060612d868a828b01612d17565b9450506080612d978a828b01612d17565b93505060a0612da88a828b01612ce4565b92505060c0612db98a828b01612ce4565b91505092959891949750929550565b5f5f5f60608486031215612ddf57612dde612c9a565b5b5f612dec86828701612d17565b9350506020612dfd86828701612ce4565b9250506040612e0e86828701612d17565b9150509250925092565b5f5f5f5f5f5f60c08789031215612e3257612e31612c9a565b5b5f612e3f89828a01612ce4565b9650506020612e5089828a01612d17565b9550506040612e6189828a01612d17565b9450506060612e7289828a01612d17565b9350506080612e8389828a01612ce4565b92505060a0612e9489828a01612ce4565b9150509295509295509295565b612eaa81612cf8565b82525050565b5f602082019050612ec35f830184612ea1565b92915050565b5f5f5f5f60808587031215612ee157612ee0612c9a565b5b5f612eee87828801612d17565b9450506020612eff87828801612d17565b9350506040612f1087828801612ce4565b9250506060612f2187828801612d17565b91505092959194509250565b5f60208284031215612f4257612f41612c9a565b5b5f612f4f84828501612d17565b91505092915050565b5f5f5f5f5f5f60c08789031215612f7257612f71612c9a565b5b5f612f7f89828a01612d17565b9650506020612f9089828a01612d17565b9550506040612fa189828a01612ce4565b9450506060612fb289828a01612ce4565b9350506080612fc389828a01612d17565b92505060a0612fd489828a01612d17565b9150509295509295509295565b5f5f60408385031215612ff757612ff6612c9a565b5b5f61300485828601612ce4565b925050602061301585828601612d17565b9150509250929050565b5f82825260208201905092915050565b7f417574686f72697a65642073656e646572206f6e6c79000000000000000000005f82015250565b5f61306360168361301f565b915061306e8261302f565b602082019050919050565b5f6020820190508181035f83015261309081613057565b9050919050565b7f417574686f72697a65642052564d204944206f6e6c79000000000000000000005f82015250565b5f6130cb60168361301f565b91506130d682613097565b602082019050919050565b5f6020820190508181035f8301526130f8816130bf565b9050919050565b7f4e6f7420616374697665207269676874206e6f770000000000000000000000005f82015250565b5f61313360148361301f565b915061313e826130ff565b602082019050919050565b5f6020820190508181035f83015261316081613127565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61319e82612cf8565b91506131a983612cf8565b92508282026131b781612cf8565b915082820484148315176131ce576131cd613167565b5b5092915050565b7f496e73756666696369656e7420666565207061696420666f72206272696467695f8201527f6e67202d20706179206174206c656173742074782e6761732074696d6573206760208201527f61735f6665652829000000000000000000000000000000000000000000000000604082015250565b5f61325560488361301f565b9150613260826131d5565b606082019050919050565b5f6020820190508181035f83015261328281613249565b9050919050565b5f61329382612cf8565b915061329e83612cf8565b92508282039050818111156132b6576132b5613167565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f613315826132e9565b61331f81856132f3565b935061332f8185602086016132fd565b80840191505092915050565b5f613346828461330b565b915081905092915050565b7f556e61626c6520746f2072657475726e207468652065786365737320666565005f82015250565b5f613385601f8361301f565b915061339082613351565b602082019050919050565b5f6020820190508181035f8301526133b281613379565b9050919050565b6133c281612cbd565b82525050565b5f6020820190506133db5f8301846133b9565b92915050565b5f815190506133ef81612d01565b92915050565b5f6020828403121561340a57613409612c9a565b5b5f613417848285016133e1565b91505092915050565b7f496e73756666696369656e742066756e647300000000000000000000000000005f82015250565b5f61345460128361301f565b915061345f82613420565b602082019050919050565b5f6020820190508181035f83015261348181613448565b9050919050565b5f60408201905061349b5f8301856133b9565b6134a860208301846133b9565b9392505050565b7f496e73756666696369656e7420617070726f7665642066756e647300000000005f82015250565b5f6134e3601b8361301f565b91506134ee826134af565b602082019050919050565b5f6020820190508181035f830152613510816134d7565b9050919050565b7f4e6f7420656e6f75676820746f20636f766572207468652066656500000000005f82015250565b5f61354b601b8361301f565b915061355682613517565b602082019050919050565b5f6020820190508181035f8301526135788161353f565b9050919050565b5f6060820190506135925f8301866133b9565b61359f60208301856133b9565b6135ac6040830184612ea1565b949350505050565b5f8115159050919050565b6135c8816135b4565b81146135d2575f5ffd5b50565b5f815190506135e3816135bf565b92915050565b5f602082840312156135fe576135fd612c9a565b5b5f61360b848285016135d5565b91505092915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f613648600e8361301f565b915061365382613614565b602082019050919050565b5f6020820190508181035f8301526136758161363c565b9050919050565b7f416c7265616479206163746976650000000000000000000000000000000000005f82015250565b5f6136b0600e8361301f565b91506136bb8261367c565b602082019050919050565b5f6020820190508181035f8301526136dd816136a4565b9050919050565b7f4661696c757265000000000000000000000000000000000000000000000000005f82015250565b5f61371860078361301f565b9150613723826136e4565b602082019050919050565b5f6020820190508181035f8301526137458161370c565b9050919050565b5f60408201905061375f5f8301856133b9565b61376c6020830184612ea1565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137aa82612cf8565b91506137b583612cf8565b9250826137c5576137c4613773565b5b828204905092915050565b5f6137da82612cf8565b91506137e583612cf8565b92508282019050808211156137fd576137fc613167565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f5b534d5d204475706c6963617465206d657373616765204944000000000000005f82015250565b5f61386460198361301f565b915061386f82613830565b602082019050919050565b5f6020820190508181035f83015261389181613858565b9050919050565b7f5b5044525d20496e76616c6964206d65737361676520494400000000000000005f82015250565b5f6138cc60188361301f565b91506138d782613898565b602082019050919050565b5f6020820190508181035f8301526138f9816138c0565b9050919050565b7f5b5044435d20496e76616c6964206d65737361676520494400000000000000005f82015250565b5f61393460188361301f565b915061393f82613900565b602082019050919050565b5f6020820190508181035f83015261396181613928565b9050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61399c600f8361301f565b91506139a782613968565b602082019050919050565b5f6020820190508181035f8301526139c981613990565b9050919050565b7f43616e63656c6c6174696f6e73206e6f7420616c6c6f776564000000000000005f82015250565b5f613a0460198361301f565b9150613a0f826139d0565b602082019050919050565b5f6020820190508181035f830152613a31816139f8565b9050919050565b7f5b434d5d20496e76616c6964206d6573736167652049440000000000000000005f82015250565b5f613a6c60178361301f565b9150613a7782613a38565b602082019050919050565b5f6020820190508181035f830152613a9981613a60565b9050919050565b7f5b50494d5d204475706c6963617465206d6573736167652049440000000000005f82015250565b5f613ad4601a8361301f565b9150613adf82613aa0565b602082019050919050565b5f6020820190508181035f830152613b0181613ac8565b9050919050565b7f5b525d20496e76616c6964206d657373616765204944000000000000000000005f82015250565b5f613b3c60168361301f565b9150613b4782613b08565b602082019050919050565b5f6020820190508181035f830152613b6981613b30565b9050919050565b5f608082019050613b835f830187612ea1565b613b906020830186612ea1565b613b9d60408301856133b9565b613baa60608301846133b9565b95945050505050565b5f60ff82169050919050565b5f613bc982613bb3565b915060ff8203613bdc57613bdb613167565b5b600182019050919050565b7f5b52445d20496e76616c6964206d6573736167652049440000000000000000005f82015250565b5f613c1b60178361301f565b9150613c2682613be7565b602082019050919050565b5f6020820190508181035f830152613c4881613c0f565b9050919050565b5f606082019050613c625f830186612ea1565b613c6f60208301856133b9565b613c7c60408301846133b9565b949350505050565b7f5b43445d20496e76616c6964206d6573736167652049440000000000000000005f82015250565b5f613cb860178361301f565b9150613cc382613c84565b602082019050919050565b5f6020820190508181035f830152613ce581613cac565b905091905056fea2646970667358221220aad8888355d01ac64365907610ee482e7713dfcb96f92b97b276c8084ee2674764736f6c634300081c00330000000000000000000000001d5267c1bb7d8ba68964ddf3990601bdb7902d7600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000817162975186d4d53dbf5a7377dd45376e2d2fc5000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000afc80