0 txs
1.7k calls
constructor
constructor(address _A7A5)
functions
A7A5
viewfunction A7A5() view returns (address)
A7A5PerToken
viewfunction A7A5PerToken() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
getA7A5BywA7A5
viewfunction getA7A5BywA7A5(uint256 _wA7A5Amount) view returns (uint256)
getwA7A5ByA7A5
viewfunction getwA7A5ByA7A5(uint256 _A7A5Amount) view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tokensPerA7A5
viewfunction tokensPerA7A5() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
destroyBlackFunds
nonpayablefunction destroyBlackFunds(address _blackListedUser)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
transfer
nonpayablefunction transfer(address to, uint256 value) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 value) returns (bool)
unwrap
nonpayablefunction unwrap(uint256 _wA7A5Amount) returns (uint256)
wrap
nonpayablefunction wrap(uint256 _A7A5Amount) returns (uint256)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DestroyedBlackFunds
event DestroyedBlackFunds(address indexed blackListedUser, uint256 amount)
EIP712DomainChanged
event EIP712DomainChanged()
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
ERC2612ExpiredSignature
error ERC2612ExpiredSignature(uint256 deadline)
ERC2612InvalidSigner
error ERC2612InvalidSigner(address signer, address owner)
InvalidAccountNonce
error InvalidAccountNonce(address account, uint256 currentNonce)
InvalidShortString
error InvalidShortString()
StringTooLong
error StringTooLong(string str)
creation bytecode
0x61018060405234801562000011575f80fd5b5060405162003cda38038062003cda8339818101604052810190620000379190620003bf565b6040518060400160405280601081526020017f57726170706564204137413520312e3000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280601081526020017f57726170706564204137413520312e30000000000000000000000000000000008152506040518060400160405280600581526020017f7741374135000000000000000000000000000000000000000000000000000000815250816003908162000121919062000653565b50806004908162000133919062000653565b5050506200014c6005836200022360201b90919060201c565b61012081815250506200016a6006826200022360201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001a96200027860201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050508073ffffffffffffffffffffffffffffffffffffffff166101608173ffffffffffffffffffffffffffffffffffffffff16815250505062000918565b5f60208351101562000248576200024083620002d460201b60201c565b905062000272565b826200025a836200033e60201b60201c565b5f0190816200026a919062000653565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620002b995949392919062000773565b60405160208183030381529060405280519060200120905090565b5f80829050601f815111156200032357826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200031a919062000858565b60405180910390fd5b8051816200033190620008a9565b5f1c175f1b915050919050565b5f819050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000376826200034b565b9050919050565b5f62000389826200036a565b9050919050565b6200039b816200037d565b8114620003a6575f80fd5b50565b5f81519050620003b98162000390565b92915050565b5f60208284031215620003d757620003d662000347565b5b5f620003e684828501620003a9565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200046b57607f821691505b60208210810362000481576200048062000426565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004a8565b620004f18683620004a8565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200053b620005356200052f8462000509565b62000512565b62000509565b9050919050565b5f819050919050565b62000556836200051b565b6200056e620005658262000542565b848454620004b4565b825550505050565b5f90565b6200058462000576565b620005918184846200054b565b505050565b5b81811015620005b857620005ac5f826200057a565b60018101905062000597565b5050565b601f8211156200060757620005d18162000487565b620005dc8462000499565b81016020851015620005ec578190505b62000604620005fb8562000499565b83018262000596565b50505b505050565b5f82821c905092915050565b5f620006295f19846008026200060c565b1980831691505092915050565b5f62000643838362000618565b9150826002028217905092915050565b6200065e82620003ef565b67ffffffffffffffff8111156200067a5762000679620003f9565b5b62000686825462000453565b62000693828285620005bc565b5f60209050601f831160018114620006c9575f8415620006b4578287015190505b620006c0858262000636565b8655506200072f565b601f198416620006d98662000487565b5f5b828110156200070257848901518255600182019150602085019450602081019050620006db565b868310156200072257848901516200071e601f89168262000618565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b6200074b8162000737565b82525050565b6200075c8162000509565b82525050565b6200076d816200036a565b82525050565b5f60a082019050620007885f83018862000740565b62000797602083018762000740565b620007a6604083018662000740565b620007b5606083018562000751565b620007c4608083018462000762565b9695505050505050565b5f82825260208201905092915050565b5f5b83811015620007fd578082015181840152602081019050620007e0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200082482620003ef565b620008308185620007ce565b935062000842818560208601620007de565b6200084d8162000808565b840191505092915050565b5f6020820190508181035f83015262000872818462000818565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f620008a0825162000737565b80915050919050565b5f620008b5826200087a565b82620008c18462000884565b9050620008ce8162000893565b9250602082101562000911576200090c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802620004a8565b831692505b5050919050565b60805160a05160c05160e051610100516101205161014051610160516132e1620009f95f395f818161061e015281816106ed0152818161078d015281816108930152818161093301528181610ae301528181610b8401528181610c2401528181610cf301528181610d9301528181610e810152818161112b015281816111cf015281816112b80152818161135c01528181611403015281816114fd015281816115e1015281816116c7015261170301525f6119c701525f61198c01525f611f4a01525f611f2901525f61188a01525f6118e001525f61190901526132e15ff3fe60806040526004361061012d575f3560e01c806384b0196e116100aa578063c7db2b871161006e578063c7db2b8714610420578063d505accf1461045c578063dd62ed3e14610484578063de0e9a3e146104c0578063ea598cb0146104fc578063f3bdc2281461053857610134565b806384b0196e1461032457806395d89b41146103545780639b7bdfc51461037e5780639c726b79146103a8578063a9059cbb146103e457610134565b80633644e515116100f15780633644e5151461022e5780636b065471146102585780636bf04bf81461028257806370a08231146102ac5780637ecebe00146102e857610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806323b872dd146101c8578063313ce5671461020457610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c610560565b6040516101599190612633565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906126e4565b6105f0565b604051610195919061273c565b60405180910390f35b3480156101a9575f80fd5b506101b2610612565b6040516101bf9190612764565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e9919061277d565b61061b565b6040516101fb919061273c565b60405180910390f35b34801561020f575f80fd5b5061021861087a565b60405161022591906127e8565b60405180910390f35b348015610239575f80fd5b50610242610882565b60405161024f9190612819565b60405180910390f35b348015610263575f80fd5b5061026c610890565b6040516102799190612764565b60405180910390f35b34801561028d575f80fd5b50610296610931565b6040516102a3919061288d565b60405180910390f35b3480156102b7575f80fd5b506102d260048036038101906102cd91906128a6565b610955565b6040516102df9190612764565b60405180910390f35b3480156102f3575f80fd5b5061030e600480360381019061030991906128a6565b61099a565b60405161031b9190612764565b60405180910390f35b34801561032f575f80fd5b506103386109ab565b60405161034b97969594939291906129d1565b60405180910390f35b34801561035f575f80fd5b50610368610a50565b6040516103759190612633565b60405180910390f35b348015610389575f80fd5b50610392610ae0565b60405161039f9190612764565b60405180910390f35b3480156103b3575f80fd5b506103ce60048036038101906103c99190612a53565b610b81565b6040516103db9190612764565b60405180910390f35b3480156103ef575f80fd5b5061040a600480360381019061040591906126e4565b610c21565b604051610417919061273c565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612a53565b610e7e565b6040516104539190612764565b60405180910390f35b348015610467575f80fd5b50610482600480360381019061047d9190612ad2565b610f1e565b005b34801561048f575f80fd5b506104aa60048036038101906104a59190612b6f565b611063565b6040516104b79190612764565b60405180910390f35b3480156104cb575f80fd5b506104e660048036038101906104e19190612a53565b6110e5565b6040516104f39190612764565b60405180910390f35b348015610507575f80fd5b50610522600480360381019061051d9190612a53565b611272565b60405161052f9190612764565b60405180910390f35b348015610543575f80fd5b5061055e600480360381019061055991906128a6565b611401565b005b60606003805461056f90612bda565b80601f016020809104026020016040519081016040528092919081815260200182805461059b90612bda565b80156105e65780601f106105bd576101008083540402835291602001916105e6565b820191905f5260205f20905b8154815290600101906020018083116105c957829003601f168201915b5050505050905090565b5f806105fa611840565b9050610607818585611847565b600191505092915050565b5f600254905090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610685573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a99190612c34565b156106e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e090612ca9565b60405180910390fd5b83837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e47d6060836040518263ffffffff1660e01b81526004016107449190612cc7565b602060405180830381865afa15801561075f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107839190612c34565b15801561082557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e47d6060826040518263ffffffff1660e01b81526004016107e49190612cc7565b602060405180830381865afa1580156107ff573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108239190612c34565b155b610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90612d2a565b60405180910390fd5b61086f868686611859565b925050509392505050565b5f6006905090565b5f61088b611887565b905090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c613456620f42406040518263ffffffff1660e01b81526004016108ed9190612d81565b602060405180830381865afa158015610908573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061092c9190612dae565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f6109a48261193d565b9050919050565b5f6060805f805f60606109bc611983565b6109c46119be565b46305f801b5f67ffffffffffffffff8111156109e3576109e2612dd9565b5b604051908082528060200260200182016040528015610a115781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b606060048054610a5f90612bda565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b90612bda565b8015610ad65780601f10610aad57610100808354040283529160200191610ad6565b820191905f5260205f20905b815481529060010190602001808311610ab957829003601f168201915b5050505050905090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bd5b18c620f42406040518263ffffffff1660e01b8152600401610b3d9190612d81565b602060405180830381865afa158015610b58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7c9190612dae565b905090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c613456836040518263ffffffff1660e01b8152600401610bdb9190612764565b602060405180830381865afa158015610bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1a9190612dae565b9050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caf9190612c34565b15610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612ca9565b60405180910390fd5b33837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e47d6060836040518263ffffffff1660e01b8152600401610d4a9190612cc7565b602060405180830381865afa158015610d65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d899190612c34565b158015610e2b57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e47d6060826040518263ffffffff1660e01b8152600401610dea9190612cc7565b602060405180830381865afa158015610e05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e299190612c34565b155b610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190612d2a565b60405180910390fd5b610e7485856119f9565b9250505092915050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bd5b18c836040518263ffffffff1660e01b8152600401610ed89190612764565b602060405180830381865afa158015610ef3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f179190612dae565b9050919050565b83421115610f6357836040517f62791302000000000000000000000000000000000000000000000000000000008152600401610f5a9190612764565b60405180910390fd5b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610f918c611a1b565b89604051602001610fa796959493929190612e06565b6040516020818303038152906040528051906020012090505f610fc982611a6e565b90505f610fd882878787611a87565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461104c57808a6040517f4b800e46000000000000000000000000000000000000000000000000000000008152600401611043929190612e65565b60405180910390fd5b6110578a8a8a611847565b50505050505050505050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f808211611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90612efc565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bd5b18c846040518263ffffffff1660e01b81526004016111829190612764565b602060405180830381865afa15801561119d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c19190612dae565b90506111cd3384611ab5565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611228929190612f1a565b6020604051808303815f875af1158015611244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112689190612c34565b5080915050919050565b5f8082116112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ac90612f8b565b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633c613456846040518263ffffffff1660e01b815260040161130f9190612764565b602060405180830381865afa15801561132a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134e9190612dae565b905061135a3382611b34565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b81526004016113b793929190612fa9565b6020604051808303815f875af11580156113d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113f79190612c34565b5080915050919050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16636290865d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061148e9190612ff2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f290613067565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e47d6060826040518263ffffffff1660e01b81526004016115549190612cc7565b602060405180830381865afa15801561156f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115939190612c34565b6115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c9906130cf565b60405180910390fd5b5f6115dc82610955565b90505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634bd5b18c836040518263ffffffff1660e01b81526004016116389190612764565b602060405180830381865afa158015611653573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116779190612dae565b90506116838383611ab5565b5f81116116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc90613137565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561176a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178e9190612ff2565b836040518363ffffffff1660e01b81526004016117ac929190612f1a565b6020604051808303815f875af11580156117c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117ec9190612c34565b508273ffffffffffffffffffffffffffffffffffffffff167f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6836040516118339190612764565b60405180910390a2505050565b5f33905090565b6118548383836001611bb3565b505050565b5f80611863611840565b9050611870858285611d82565b61187b858585611e15565b60019150509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561190257507f000000000000000000000000000000000000000000000000000000000000000046145b1561192f577f0000000000000000000000000000000000000000000000000000000000000000905061193a565b611937611f05565b90505b90565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60606119b960057f0000000000000000000000000000000000000000000000000000000000000000611f9a90919063ffffffff16565b905090565b60606119f460067f0000000000000000000000000000000000000000000000000000000000000000611f9a90919063ffffffff16565b905090565b5f80611a03611840565b9050611a10818585611e15565b600191505092915050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815480929190600101919050559050919050565b5f611a80611a7a611887565b83612047565b9050919050565b5f805f80611a9788888888612087565b925092509250611aa7828261216e565b829350505050949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b25575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611b1c9190612cc7565b60405180910390fd5b611b30825f836122d0565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ba4575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611b9b9190612cc7565b60405180910390fd5b611baf5f83836122d0565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c23575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611c1a9190612cc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c93575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611c8a9190612cc7565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611d7c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d739190612764565b60405180910390a35b50505050565b5f611d8d8484611063565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015611e0f5781811015611e00578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401611df793929190613155565b60405180910390fd5b611e0e84848484035f611bb3565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e85575f6040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401611e7c9190612cc7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef5575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611eec9190612cc7565b60405180910390fd5b611f008383836122d0565b505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611f7f95949392919061318a565b60405160208183030381529060405280519060200120905090565b606060ff5f1b8314611fb657611faf836124e9565b9050612041565b818054611fc290612bda565b80601f0160208091040260200160405190810160405280929190818152602001828054611fee90612bda565b80156120395780601f1061201057610100808354040283529160200191612039565b820191905f5260205f20905b81548152906001019060200180831161201c57829003601f168201915b505050505090505b92915050565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b5f805f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c11156120c3575f600385925092509250612164565b5f6001888888886040515f81526020016040526040516120e694939291906131db565b6020604051602081039080840390855afa158015612106573d5f803e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612157575f60015f801b93509350935050612164565b805f805f1b935093509350505b9450945094915050565b5f60038111156121815761218061321e565b5b8260038111156121945761219361321e565b5b03156122cc57600160038111156121ae576121ad61321e565b5b8260038111156121c1576121c061321e565b5b036121f8576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600381111561220c5761220b61321e565b5b82600381111561221f5761221e61321e565b5b0361226357805f1c6040517ffce698f700000000000000000000000000000000000000000000000000000000815260040161225a9190612764565b60405180910390fd5b6003808111156122765761227561321e565b5b8260038111156122895761228861321e565b5b036122cb57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016122c29190612819565b60405180910390fd5b5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612320578060025f8282546123149190613278565b925050819055506123ee565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156123a9578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016123a093929190613155565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612435578060025f828254039250508190555061247f565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124dc9190612764565b60405180910390a3505050565b60605f6124f58361255b565b90505f602067ffffffffffffffff81111561251357612512612dd9565b5b6040519080825280601f01601f1916602001820160405280156125455781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f8060ff835f1c169050601f8111156125a0576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125e05780820151818401526020810190506125c5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612605826125a9565b61260f81856125b3565b935061261f8185602086016125c3565b612628816125eb565b840191505092915050565b5f6020820190508181035f83015261264b81846125fb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61268082612657565b9050919050565b61269081612676565b811461269a575f80fd5b50565b5f813590506126ab81612687565b92915050565b5f819050919050565b6126c3816126b1565b81146126cd575f80fd5b50565b5f813590506126de816126ba565b92915050565b5f80604083850312156126fa576126f9612653565b5b5f6127078582860161269d565b9250506020612718858286016126d0565b9150509250929050565b5f8115159050919050565b61273681612722565b82525050565b5f60208201905061274f5f83018461272d565b92915050565b61275e816126b1565b82525050565b5f6020820190506127775f830184612755565b92915050565b5f805f6060848603121561279457612793612653565b5b5f6127a18682870161269d565b93505060206127b28682870161269d565b92505060406127c3868287016126d0565b9150509250925092565b5f60ff82169050919050565b6127e2816127cd565b82525050565b5f6020820190506127fb5f8301846127d9565b92915050565b5f819050919050565b61281381612801565b82525050565b5f60208201905061282c5f83018461280a565b92915050565b5f819050919050565b5f61285561285061284b84612657565b612832565b612657565b9050919050565b5f6128668261283b565b9050919050565b5f6128778261285c565b9050919050565b6128878161286d565b82525050565b5f6020820190506128a05f83018461287e565b92915050565b5f602082840312156128bb576128ba612653565b5b5f6128c88482850161269d565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b612905816128d1565b82525050565b61291481612676565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61294c816126b1565b82525050565b5f61295d8383612943565b60208301905092915050565b5f602082019050919050565b5f61297f8261291a565b6129898185612924565b935061299483612934565b805f5b838110156129c45781516129ab8882612952565b97506129b683612969565b925050600181019050612997565b5085935050505092915050565b5f60e0820190506129e45f83018a6128fc565b81810360208301526129f681896125fb565b90508181036040830152612a0a81886125fb565b9050612a196060830187612755565b612a26608083018661290b565b612a3360a083018561280a565b81810360c0830152612a458184612975565b905098975050505050505050565b5f60208284031215612a6857612a67612653565b5b5f612a75848285016126d0565b91505092915050565b612a87816127cd565b8114612a91575f80fd5b50565b5f81359050612aa281612a7e565b92915050565b612ab181612801565b8114612abb575f80fd5b50565b5f81359050612acc81612aa8565b92915050565b5f805f805f805f60e0888a031215612aed57612aec612653565b5b5f612afa8a828b0161269d565b9750506020612b0b8a828b0161269d565b9650506040612b1c8a828b016126d0565b9550506060612b2d8a828b016126d0565b9450506080612b3e8a828b01612a94565b93505060a0612b4f8a828b01612abe565b92505060c0612b608a828b01612abe565b91505092959891949750929550565b5f8060408385031215612b8557612b84612653565b5b5f612b928582860161269d565b9250506020612ba38582860161269d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612bf157607f821691505b602082108103612c0457612c03612bad565b5b50919050565b612c1381612722565b8114612c1d575f80fd5b50565b5f81519050612c2e81612c0a565b92915050565b5f60208284031215612c4957612c48612653565b5b5f612c5684828501612c20565b91505092915050565b7f70726f746f636f6c2070617573656400000000000000000000000000000000005f82015250565b5f612c93600f836125b3565b9150612c9e82612c5f565b602082019050919050565b5f6020820190508181035f830152612cc081612c87565b9050919050565b5f602082019050612cda5f83018461290b565b92915050565b7f5573657220626c61636b6c6973746564000000000000000000000000000000005f82015250565b5f612d146010836125b3565b9150612d1f82612ce0565b602082019050919050565b5f6020820190508181035f830152612d4181612d08565b9050919050565b5f819050919050565b5f612d6b612d66612d6184612d48565b612832565b6126b1565b9050919050565b612d7b81612d51565b82525050565b5f602082019050612d945f830184612d72565b92915050565b5f81519050612da8816126ba565b92915050565b5f60208284031215612dc357612dc2612653565b5b5f612dd084828501612d9a565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60c082019050612e195f83018961280a565b612e26602083018861290b565b612e33604083018761290b565b612e406060830186612755565b612e4d6080830185612755565b612e5a60a0830184612755565b979650505050505050565b5f604082019050612e785f83018561290b565b612e85602083018461290b565b9392505050565b7f77413741353a207a65726f20616d6f756e7420756e77726170206e6f7420616c5f8201527f6c6f776564000000000000000000000000000000000000000000000000000000602082015250565b5f612ee66025836125b3565b9150612ef182612e8c565b604082019050919050565b5f6020820190508181035f830152612f1381612eda565b9050919050565b5f604082019050612f2d5f83018561290b565b612f3a6020830184612755565b9392505050565b7f77413741353a2063616e27742077726170207a65726f204137413500000000005f82015250565b5f612f75601b836125b3565b9150612f8082612f41565b602082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b5f606082019050612fbc5f83018661290b565b612fc9602083018561290b565b612fd66040830184612755565b949350505050565b5f81519050612fec81612687565b92915050565b5f6020828403121561300757613006612653565b5b5f61301484828501612fde565b91505092915050565b7f6e6f7420636f6d706c69616e63650000000000000000000000000000000000005f82015250565b5f613051600e836125b3565b915061305c8261301d565b602082019050919050565b5f6020820190508181035f83015261307e81613045565b9050919050565b7f757365722073686f756c6420626520626c61636b6c69737465640000000000005f82015250565b5f6130b9601a836125b3565b91506130c482613085565b602082019050919050565b5f6020820190508181035f8301526130e6816130ad565b9050919050565b7f63616e6e6f742064657374726f79203020626c61636b2066756e6473000000005f82015250565b5f613121601c836125b3565b915061312c826130ed565b602082019050919050565b5f6020820190508181035f83015261314e81613115565b9050919050565b5f6060820190506131685f83018661290b565b6131756020830185612755565b6131826040830184612755565b949350505050565b5f60a08201905061319d5f83018861280a565b6131aa602083018761280a565b6131b7604083018661280a565b6131c46060830185612755565b6131d1608083018461290b565b9695505050505050565b5f6080820190506131ee5f83018761280a565b6131fb60208301866127d9565b613208604083018561280a565b613215606083018461280a565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613282826126b1565b915061328d836126b1565b92508282019050808211156132a5576132a461324b565b5b9291505056fea2646970667358221220d4222ec09a9da863cdcbebef39208d21c2c5b84fc46d0f7416635d3123e0795264736f6c634300081600330000000000000000000000006fa0be17e4bea2fcfa22ef89bf8ac9aab0ab0fc9