mirror of
https://github.com/parsnetwork/pars-vote.git
synced 2026-10-30 19:43:22 +00:00
1 line
135 KiB
JSON
1 line
135 KiB
JSON
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"CLOCK_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"checkpoints","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"pos","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Checkpoints.Checkpoint208","components":[{"name":"_key","type":"uint48","internalType":"uint48"},{"name":"_value","type":"uint208","internalType":"uint208"}]}],"stateMutability":"view"},{"type":"function","name":"clock","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"numCheckpoints","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousVotes","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newVotes","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CheckpointUnorderedInsertion","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC20ExceededSafeSupply","inputs":[{"name":"increasedSupply","type":"uint256","internalType":"uint256"},{"name":"cap","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC5805FutureLookup","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"},{"name":"clock","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"ERC6372InconsistentClock","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidShortString","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"StringTooLong","inputs":[{"name":"str","type":"string","internalType":"string"}]},{"type":"error","name":"VotesExpiredSignature","inputs":[{"name":"expiry","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610160604052348015610010575f5ffd5b50604051806040016040528060048152602001634153484160e01b81525080604051806040016040528060018152602001603160f81b815250604051806040016040528060048152602001634153484160e01b815250604051806040016040528060048152602001634153484160e01b815250816003908161009291906108a9565b50600461009f82826108a9565b506100af9150839050600561016f565b610120526100be81600661016f565b61014052815160208084019190912060e052815190820120610100524660a05261014a60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525061016a336b033b2e3c9fd0803ce80000006101a1565b610a33565b5f60208351101561018a57610183836101de565b905061019b565b8161019584826108a9565b5060ff90505b92915050565b6001600160a01b0382166101cf5760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6101da5f838361021b565b5050565b5f5f829050601f81511115610208578260405163305a27a960e01b81526004016101c69190610963565b805161021382610998565b179392505050565b61022683838361022b565b505050565b610236838383610291565b6001600160a01b038316610286575f61024e60025490565b90506001600160d01b038082111561028357604051630e58ae9360e11b815260048101839052602481018290526044016101c6565b50505b6102268383836103b7565b6001600160a01b0383166102bb578060025f8282546102b091906109cf565b9091555061032b9050565b6001600160a01b0383165f908152602081905260409020548181101561030d5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016101c6565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661034757600280548290039055610365565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103aa91815260200190565b60405180910390a3505050565b6001600160a01b0383166103e5576103e2600a61082c61043f60201b176103dd84610451565b610488565b50505b6001600160a01b03821661040e5761040b600a6108376104bd60201b176103dd84610451565b50505b6001600160a01b038381165f90815260086020526040808220548584168352912054610226929182169116836104c8565b5f61044a82846109e2565b9392505050565b5f6001600160d01b03821115610484576040516306dfcc6560e41b815260d06004820152602481018390526044016101c6565b5090565b5f806104b0610495610618565b6104a86104a188610626565b868860201c565b87919061066d565b915091505b935093915050565b5f61044a8284610a01565b816001600160a01b0316836001600160a01b0316141580156104e957505f81115b15610226576001600160a01b03831615610581576001600160a01b0383165f9081526009602090815260408220829161052f91906104bd901b610837176103dd86610451565b6001600160d01b031691506001600160d01b03169150846001600160a01b03165f5160206127595f395f51905f528383604051610576929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610226576001600160a01b0382165f908152600960209081526040822082916105c2919061043f901b61082c176103dd86610451565b6001600160d01b031691506001600160d01b03169150836001600160a01b03165f5160206127595f395f51905f528383604051610609929190918252602082015260400190565b60405180910390a25050505050565b5f61062161067a565b905090565b80545f9080156106655761064c8361063f600184610a20565b5f91825260209091200190565b54660100000000000090046001600160d01b031661044a565b5f9392505050565b5f806104b0858585610684565b5f610621436107e0565b82545f9081908015610783575f6106a08761063f600185610a20565b805490915065ffffffffffff80821691660100000000000090046001600160d01b03169088168211156106e657604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff160361072257825465ffffffffffff1666010000000000006001600160d01b03891602178355610775565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f555f8f815291909120945191519092166601000000000000029216919091179101555b94508593506104b592505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a81529182209551925190931666010000000000000291909316179201919091559050816104b5565b5f65ffffffffffff821115610484576040516306dfcc6560e41b815260306004820152602481018390526044016101c6565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061083a57607f821691505b60208210810361085857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561022657805f5260205f20601f840160051c810160208510156108835750805b601f840160051c820191505b818110156108a2575f815560010161088f565b5050505050565b81516001600160401b038111156108c2576108c2610812565b6108d6816108d08454610826565b8461085e565b6020601f821160018114610908575f83156108f15750848201515b5f19600385901b1c1916600184901b1784556108a2565b5f84815260208120601f198516915b828110156109375787850151825560209485019460019092019101610917565b508482101561095457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80516020808301519190811015610858575f1960209190910360031b1b16919050565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561019b5761019b6109bb565b6001600160d01b03818116838216019081111561019b5761019b6109bb565b6001600160d01b03828116828216039081111561019b5761019b6109bb565b8181038181111561019b5761019b6109bb565b60805160a05160c05160e051610100516101205161014051611cd5610a845f395f610c4101525f610c1401525f610a0601525f6109de01525f61093901525f61096301525f61098d0152611cd55ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c806370a08231116100bf5780639ab24eb0116100795780639ab24eb0146102f4578063a9059cbb14610307578063c3cda5201461031a578063d505accf1461032d578063dd62ed3e14610340578063f1127ed814610378575f5ffd5b806370a08231146102645780637ecebe001461028c57806384b0196e1461029f5780638e539e8c146102ba57806391ddadf4146102cd57806395d89b41146102ec575f5ffd5b80633644e515116101105780633644e515146101c15780633a46b1a8146101c95780634bf5d7e9146101dc578063587cde1e146101e45780635c19a95c146102275780636fcfff451461023c575f5ffd5b806306fdde031461014c578063095ea7b31461016a57806318160ddd1461018d57806323b872dd1461019f578063313ce567146101b2575b5f5ffd5b6101546103b7565b6040516101619190611907565b60405180910390f35b61017d610178366004611934565b610447565b6040519015158152602001610161565b6002545b604051908152602001610161565b61017d6101ad36600461195c565b610460565b60405160128152602001610161565b610191610483565b6101916101d7366004611934565b610491565b6101546104cb565b61020f6101f2366004611996565b6001600160a01b039081165f908152600860205260409020541690565b6040516001600160a01b039091168152602001610161565b61023a610235366004611996565b610543565b005b61024f61024a366004611996565b610552565b60405163ffffffff9091168152602001610161565b610191610272366004611996565b6001600160a01b03165f9081526020819052604090205490565b61019161029a366004611996565b61055c565b6102a7610566565b60405161016197969594939291906119af565b6101916102c8366004611a45565b6105a8565b6102d56105cc565b60405165ffffffffffff9091168152602001610161565b6101546105d5565b610191610302366004611996565b6105e4565b61017d610315366004611934565b610604565b61023a610328366004611a6c565b610611565b61023a61033b366004611ac0565b6106d2565b61019161034e366004611b26565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61038b610386366004611b57565b610808565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610161565b6060600380546103c690611b94565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290611b94565b801561043d5780601f106104145761010080835404028352916020019161043d565b820191905f5260205f20905b81548152906001019060200180831161042057829003601f168201915b5050505050905090565b5f33610454818585610842565b60019150505b92915050565b5f3361046d858285610854565b6104788585856108d0565b506001949350505050565b5f61048c61092d565b905090565b5f6104bb61049e83610a56565b6001600160a01b0385165f90815260096020526040902090610aa4565b6001600160d01b03169392505050565b60606104d5610b54565b65ffffffffffff166104e56105cc565b65ffffffffffff161461050b576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b3361054e8183610b5e565b5050565b5f61045a82610bcf565b5f61045a82610bf0565b5f6060805f5f5f6060610577610c0d565b61057f610c3a565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6105bd6105b583610a56565b600a90610aa4565b6001600160d01b031692915050565b5f61048c610b54565b6060600480546103c690611b94565b6001600160a01b0381165f9081526009602052604081206105bd90610c67565b5f336104548185856108d0565b8342111561063a57604051632341d78760e11b8152600481018590526024015b60405180910390fd5b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906106b3906106ab9060a00160405160208183030381529060405280519060200120610c9e565b858585610cca565b90506106bf8187610cf6565b6106c98188610b5e565b50505050505050565b834211156106f65760405163313c898160e11b815260048101859052602401610631565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107418c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61079b82610c9e565b90505f6107aa82878787610cca565b9050896001600160a01b0316816001600160a01b0316146107f1576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610631565b6107fc8a8a8a610842565b50505050505050505050565b604080518082019091525f80825260208201526108258383610d48565b9392505050565b5f6108258284611be0565b5f6108258284611bff565b61084f8383836001610d7c565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156108ca57818110156108bc57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610631565b6108ca84848484035f610d7c565b50505050565b6001600160a01b0383166108f957604051634b637e8f60e11b81525f6004820152602401610631565b6001600160a01b0382166109225760405163ec442f0560e01b81525f6004820152602401610631565b61084f838383610e4e565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561098557507f000000000000000000000000000000000000000000000000000000000000000046145b156109af57507f000000000000000000000000000000000000000000000000000000000000000090565b61048c604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f5f610a606105cc565b90508065ffffffffffff168310610a9b57604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610631565b61082583610e59565b81545f9081816005811115610b00575f610abd84610e8f565b610ac79085611c1e565b5f8881526020902090915081015465ffffffffffff9081169087161015610af057809150610afe565b610afb816001611c31565b92505b505b5f610b0d87878585610fe7565b90508015610b4757610b3187610b24600184611c1e565b5f91825260209091200190565b54600160301b90046001600160d01b0316610b49565b5f5b979650505050505050565b5f61048c43610e59565b6001600160a01b038281165f8181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461084f8183610bca86611046565b611063565b6001600160a01b0381165f9081526009602052604081205461045a906111cc565b6001600160a01b0381165f9081526007602052604081205461045a565b606061048c7f000000000000000000000000000000000000000000000000000000000000000060056111fc565b606061048c7f000000000000000000000000000000000000000000000000000000000000000060066111fc565b80545f908015610c9657610c8083610b24600184611c1e565b54600160301b90046001600160d01b0316610825565b5f9392505050565b5f61045a610caa61092d565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f610cda888888886112a5565b925092509250610cea828261136d565b50909695505050505050565b6001600160a01b0382165f90815260076020526040902080546001810190915581811461084f576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610631565b604080518082019091525f80825260208201526001600160a01b0383165f9081526009602052604090206108259083611425565b6001600160a01b038416610da55760405163e602df0560e01b81525f6004820152602401610631565b6001600160a01b038316610dce57604051634a1406b160e11b81525f6004820152602401610631565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156108ca57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4091815260200190565b60405180910390a350505050565b61084f838383611492565b5f65ffffffffffff821115610e8b576040516306dfcc6560e41b81526030600482015260248101839052604401610631565b5090565b5f60018211610e9c575090565b816001600160801b8210610eb55760809190911c9060401b5b680100000000000000008210610ed05760409190911c9060201b5b6401000000008210610ee75760209190911c9060101b5b620100008210610efc5760109190911c9060081b5b6101008210610f105760089190911c9060041b5b60108210610f235760049190911c9060021b5b60048210610f2f5760011b5b600302600190811c90818581610f4757610f47611c44565b048201901c90506001818581610f5f57610f5f611c44565b048201901c90506001818581610f7757610f77611c44565b048201901c90506001818581610f8f57610f8f611c44565b048201901c90506001818581610fa757610fa7611c44565b048201901c90506001818581610fbf57610fbf611c44565b048201901c9050610fde818581610fd857610fd8611c44565b04821190565b90039392505050565b5f5b8183101561103e575f610ffc84846114f8565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561102a57809250611038565b611035816001611c31565b93505b50610fe9565b509392505050565b6001600160a01b0381165f9081526020819052604081205461045a565b816001600160a01b0316836001600160a01b03161415801561108457505f81115b1561084f576001600160a01b0383161561112b576001600160a01b0383165f90815260096020526040812081906110c6906108376110c186611512565b611545565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611120929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561084f576001600160a01b0382165f90815260096020526040812081906111639061082c6110c186611512565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516111bd929190918252602082015260400190565b60405180910390a25050505050565b5f63ffffffff821115610e8b576040516306dfcc6560e41b81526020600482015260248101839052604401610631565b606060ff83146112165761120f8361157d565b905061045a565b81805461122290611b94565b80601f016020809104026020016040519081016040528092919081815260200182805461124e90611b94565b80156112995780601f1061127057610100808354040283529160200191611299565b820191905f5260205f20905b81548152906001019060200180831161127c57829003601f168201915b5050505050905061045a565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156112de57505f91506003905082611363565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561132f573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661135a57505f925060019150829050611363565b92505f91508190505b9450945094915050565b5f82600381111561138057611380611c58565b03611389575050565b600182600381111561139d5761139d611c58565b036113bb5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156113cf576113cf611c58565b036113f05760405163fce698f760e01b815260048101829052602401610631565b600382600381111561140457611404611c58565b0361054e576040516335e2f38360e21b815260048101829052602401610631565b604080518082019091525f8082526020820152825f018263ffffffff168154811061145257611452611c6c565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b61149d8383836115ba565b6001600160a01b0383166114ed575f6114b560025490565b90506001600160d01b03808211156114ea57604051630e58ae9360e11b81526004810183905260248101829052604401610631565b50505b61084f8383836116e0565b5f6115066002848418611c80565b61082590848416611c31565b5f6001600160d01b03821115610e8b576040516306dfcc6560e41b815260d0600482015260248101839052604401610631565b5f5f6115706115526105cc565b61156861155e88610c67565b868863ffffffff16565b879190611755565b915091505b935093915050565b60605f61158983611762565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0383166115e4578060025f8282546115d99190611c31565b909155506116549050565b6001600160a01b0383165f90815260208190526040902054818110156116365760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610631565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166116705760028054829003905561168e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d391815260200190565b60405180910390a3505050565b6001600160a01b038316611702576116ff600a61082c6110c184611512565b50505b6001600160a01b03821661172457611721600a6108376110c184611512565b50505b6001600160a01b038381165f9081526008602052604080822054858416835291205461084f92918216911683611063565b5f80611570858585611789565b5f60ff8216601f81111561045a57604051632cd44ac360e21b815260040160405180910390fd5b82545f908190801561187f575f6117a587610b24600185611c1e565b805490915065ffffffffffff80821691600160301b90046001600160d01b03169088168211156117e857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff160361182157825465ffffffffffff16600160301b6001600160d01b03891602178355611871565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160301b029216919091179101555b945085935061157592505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b029190931617920191909155905081611575565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61082560208301846118d9565b80356001600160a01b038116811461192f575f5ffd5b919050565b5f5f60408385031215611945575f5ffd5b61194e83611919565b946020939093013593505050565b5f5f5f6060848603121561196e575f5ffd5b61197784611919565b925061198560208501611919565b929592945050506040919091013590565b5f602082840312156119a6575f5ffd5b61082582611919565b60ff60f81b8816815260e060208201525f6119cd60e08301896118d9565b82810360408401526119df81896118d9565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611a34578351835260209384019390920191600101611a16565b50909b9a5050505050505050505050565b5f60208284031215611a55575f5ffd5b5035919050565b803560ff8116811461192f575f5ffd5b5f5f5f5f5f5f60c08789031215611a81575f5ffd5b611a8a87611919565b95506020870135945060408701359350611aa660608801611a5c565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a031215611ad6575f5ffd5b611adf88611919565b9650611aed60208901611919565b95506040880135945060608801359350611b0960808901611a5c565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611b37575f5ffd5b611b4083611919565b9150611b4e60208401611919565b90509250929050565b5f5f60408385031215611b68575f5ffd5b611b7183611919565b9150602083013563ffffffff81168114611b89575f5ffd5b809150509250929050565b600181811c90821680611ba857607f821691505b602082108103611bc657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160d01b03818116838216019081111561045a5761045a611bcc565b6001600160d01b03828116828216039081111561045a5761045a611bcc565b8181038181111561045a5761045a611bcc565b8082018082111561045a5761045a611bcc565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f82611c9a57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220cf23c9f6dba533905325a6ac4da4bde4119bfd68a0be5ecf22eddac4ae70c31764736f6c634300081c0033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724","sourceMap":"375:465:42:-:0;;;429:121;;;;;;;;;;1577:52:23;;;;;;;;;;;;;-1:-1:-1;;;1577:52:23;;;1616:4;3428:431:35;;;;;;;;;;;;;-1:-1:-1;;;3428:431:35;;;1582:113:21;;;;;;;;;;;;;-1:-1:-1;;;1582:113:21;;;;;;;;;;;;;;;;-1:-1:-1;;;1582:113:21;;;1656:5;1648;:13;;;;;;:::i;:::-;-1:-1:-1;1671:7:21;:17;1681:7;1671;:17;:::i;:::-;-1:-1:-1;3501:45:35;;-1:-1:-1;3501:4:35;;-1:-1:-1;3532:13:35;3501:30;:45::i;:::-;3493:53;;3567:51;:7;3601:16;3567:33;:51::i;:::-;3556:62;;3642:22;;;;;;;;;;3628:36;;3691:25;;;;;;3674:42;;3744:13;3727:30;;3792:23;4326:11;;4339:14;;4304:80;;;2079:95;4304:80;;;2914:25:43;2955:18;;;2948:34;;;;2998:18;;;2991:34;4355:13:35;3041:18:43;;;3034:34;4378:4:35;3084:19:43;;;3077:61;4268:7:35;;2886:19:43;;4304:80:35;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;;3792:23;3767:48;;-1:-1:-1;;3847:4:35;3825:27;;-1:-1:-1;495:35:42::2;501:10;513:16;495:5;:35::i;:::-;375:465:::0;;2893:342:31;2989:11;3038:4;3022:5;3016:19;:26;3012:217;;;3065:20;3079:5;3065:13;:20::i;:::-;3058:27;;;;3012:217;3142:5;3116:46;3157:5;3142;3116:46;:::i;:::-;-1:-1:-1;1390:66:31;;-1:-1:-1;3012:217:31;2893:342;;;;:::o;7362:208:21:-;-1:-1:-1;;;;;7432:21:21;;7428:91;;7476:32;;-1:-1:-1;;;7476:32:21;;7505:1;7476:32;;;3295:51:43;3268:18;;7476:32:21;;;;;;;;7428:91;7528:35;7544:1;7548:7;7557:5;7528:7;:35::i;:::-;7362:208;;:::o;1708:288:31:-;1773:11;1796:17;1822:3;1796:30;;1854:4;1840;:11;:18;1836:74;;;1895:3;1881:18;;-1:-1:-1;;;1881:18:31;;;;;;;;:::i;1836:74::-;1976:11;;1959:13;1976:4;1959:13;:::i;:::-;1951:36;;1708:288;-1:-1:-1;;;1708:288:31:o;556:142:42:-;661:30;675:4;681:2;685:5;661:13;:30::i;:::-;556:142;;;:::o;2356:413:24:-;2450:30;2464:4;2470:2;2474:5;2450:13;:30::i;:::-;-1:-1:-1;;;;;2494:18:24;;2490:226;;2528:14;2545:13;2881:12:21;;;2803:97;2545:13:24;2528:30;-1:-1:-1;;;;;;2616:12:24;;;2612:94;;;2655:36;;-1:-1:-1;;;2655:36:24;;;;;4256:25:43;;;4297:18;;;4290:34;;;4229:18;;2655:36:24;4082:248:43;2612:94:24;2514:202;;2490:226;2725:37;2746:4;2752:2;2756:5;2725:20;:37::i;5912:1107:21:-;-1:-1:-1;;;;;6001:18:21;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;5997:540:21;;-1:-1:-1;5997:540:21;;-1:-1:-1;;;;;6211:15:21;;6189:19;6211:15;;;;;;;;;;;6244:19;;;6240:115;;;6290:50;;-1:-1:-1;;;6290:50:21;;-1:-1:-1;;;;;4817:32:43;;6290:50:21;;;4799:51:43;4866:18;;;4859:34;;;4909:18;;;4902:34;;;4772:18;;6290:50:21;4597:345:43;6240:115:21;-1:-1:-1;;;;;6475:15:21;;:9;:15;;;;;;;;;;6493:19;;;;6475:37;;5997:540;-1:-1:-1;;;;;6551:16:21;;6547:425;;6714:12;:21;;;;;;;6547:425;;;-1:-1:-1;;;;;6925:13:21;;:9;:13;;;;;;;;;;:22;;;;;;6547:425;7002:2;-1:-1:-1;;;;;6987:25:21;6996:4;-1:-1:-1;;;;;6987:25:21;;7006:5;6987:25;;;;5093::43;;5081:2;5066:18;;4947:177;6987:25:21;;;;;;;;5912:1107;;;:::o;7276:399:16:-;-1:-1:-1;;;;;7379:18:16;;7375:107;;7413:58;7419:17;7438:4;;;;;7444:26;7463:6;7444:18;:26::i;:::-;7413:5;:58::i;:::-;;;7375:107;-1:-1:-1;;;;;7495:16:16;;7491:110;;7527:63;7533:17;7552:9;;;;;7563:26;7582:6;7563:18;:26::i;7527:63::-;;;7491:110;-1:-1:-1;;;;;5674:19:16;;;5648:7;5674:19;;;:10;:19;;;;;;;;;;;;;;;7610:58;;5674:19;;;;;7661:6;7610:18;:58::i;9348:96::-;9406:7;9432:5;9436:1;9432;:5;:::i;:::-;9425:12;9348:96;-1:-1:-1;;;9348:96:16:o;4174:218:38:-;4231:7;-1:-1:-1;;;;;4254:25:38;;4250:105;;;4302:42;;-1:-1:-1;;;4302:42:38;;4333:3;4302:42;;;5511:36:43;5563:18;;;5556:34;;;5484:18;;4302:42:38;5329:267:43;4250:105:38;-1:-1:-1;4379:5:38;4174:218::o;9069:273:16:-;9236:16;;9289:46;9300:7;:5;:7::i;:::-;9309:25;9312:14;:5;:12;:14::i;:::-;9328:5;9309:2;:25;;:::i;:::-;9289:5;;:46;:10;:46::i;:::-;9282:53;;;;9069:273;;;;;;;:::o;9450:101::-;9513:7;9539:5;9543:1;9539;:5;:::i;7761:789::-;7870:2;-1:-1:-1;;;;;7862:10:16;:4;-1:-1:-1;;;;;7862:10:16;;;:24;;;;;7885:1;7876:6;:10;7862:24;7858:686;;;-1:-1:-1;;;;;7906:18:16;;;7902:315;;-1:-1:-1;;;;;8010:26:16;;7945:16;8010:26;;;:20;:26;;;;;;;7945:16;;7983:150;;8010:26;8058:9;;;;;8089:26;8108:6;8089:18;:26::i;7983:150::-;-1:-1:-1;;;;;7944:189:16;;;-1:-1:-1;;;;;7944:189:16;;;8177:4;-1:-1:-1;;;;;8156:46:16;-1:-1:-1;;;;;;;;;;;8183:8:16;8193;8156:46;;;;;;4256:25:43;;;4312:2;4297:18;;4290:34;4244:2;4229:18;;4082:248;8156:46:16;;;;;;;;7926:291;;7902:315;-1:-1:-1;;;;;8234:16:16;;;8230:304;;-1:-1:-1;;;;;8336:24:16;;8271:16;8336:24;;;:20;:24;;;;;;;8271:16;;8309:143;;8336:24;8382:4;;;;;8408:26;8427:6;8408:18;:26::i;8309:143::-;-1:-1:-1;;;;;8270:182:16;;;-1:-1:-1;;;;;8270:182:16;;;8496:2;-1:-1:-1;;;;;8475:44:16;-1:-1:-1;;;;;;;;;;;8500:8:16;8510;8475:44;;;;;;4256:25:43;;;4312:2;4297:18;;4290:34;4244:2;4229:18;;4082:248;8475:44:16;;;;;;;;8252:282;;7761:789;;;:::o;2789:96::-;2835:6;2860:18;:16;:18::i;:::-;2853:25;;2789:96;:::o;17211:206:40:-;17306:24;;17273:7;;17347:8;;:63;;17362:41;17376:4;17395:7;17401:1;17395:3;:7;:::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;;21415:31;;21191:271;17362:41;:48;;;;-1:-1:-1;;;;;17362:48:40;17347:63;;;17358:1;17340:70;17211:206;-1:-1:-1;;;17211:206:40:o;15046:210::-;15158:16;;15211:38;15219:4;15238:3;15243:5;15211:7;:38::i;931:109:41:-;977:6;1002:31;1020:12;1002:17;:31::i;18559:922:40:-;18740:11;;18680:16;;;;18766:7;;18762:713;;18789:26;18818:28;18832:4;18838:7;18844:1;18838:3;:7;:::i;18818:28::-;18877:9;;;;-1:-1:-1;18877:9:40;;;;;18920:11;;;-1:-1:-1;;;;;18920:11:40;;19005:13;;;;19001:89;;;19045:30;;-1:-1:-1;;;19045:30:40;;;;;;;;;;;19001:89;19164:3;19153:14;;:7;:14;;;19149:163;;19187:19;;;;;-1:-1:-1;;;;;19187:19:40;;;;;;19149:163;;;19255:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;19255:41:40;;;;;;;;;;19245:52;;;;;;;-1:-1:-1;19245:52:40;;;;;;;;;;;;;;;;;;;;;;;;;19149:163;19333:9;-1:-1:-1;19344:5:40;;-1:-1:-1;19325:25:40;;-1:-1:-1;;;19325:25:40;18762:713;-1:-1:-1;;19391:41:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;19391:41:40;;;;;;;;;;19381:52;;;;;;;-1:-1:-1;19381:52:40;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19425:5:40;19447:17;;14296:213:38;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:38;;14452:2;14421:41;;;5511:36:43;5563:18;;;5556:34;;;5484:18;;14421:41:38;5329:267:43;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:43;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;657:518;;;:::o;1351:1299::-;1471:10;;-1:-1:-1;;;;;1493:30:43;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1701:4;1732:2;1721:14;;1749:1;1744:649;;;;2437:1;2454:6;2451:89;;;-1:-1:-1;2506:19:43;;;2500:26;2451:89;-1:-1:-1;;1308:1:43;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2553:81;;1714:930;;1744:649;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1780:20:43;;;1898:222;1912:7;1909:1;1906:14;1898:222;;;1994:19;;;1988:26;1973:42;;2101:4;2086:20;;;;2054:1;2042:14;;;;1928:12;1898:222;;;1902:3;2148:6;2139:7;2136:19;2133:201;;;2209:19;;;2203:26;-1:-1:-1;;2292:1:43;2288:14;;;2304:3;2284:24;2280:37;2276:42;2261:58;2246:74;;2133:201;-1:-1:-1;;;;2380:1:43;2364:14;;;2360:22;2347:36;;-1:-1:-1;1351:1299:43:o;3357:418::-;3506:2;3495:9;3488:21;3469:4;3538:6;3532:13;3581:6;3576:2;3565:9;3561:18;3554:34;3640:6;3635:2;3627:6;3623:15;3618:2;3607:9;3603:18;3597:50;3696:1;3691:2;3682:6;3671:9;3667:22;3663:31;3656:42;3766:2;3759;3755:7;3750:2;3742:6;3738:15;3734:29;3723:9;3719:45;3715:54;3707:62;;;3357:418;;;;:::o;3780:297::-;3898:12;;3945:4;3934:16;;;3928:23;;3898:12;3963:16;;3960:111;;;-1:-1:-1;;4037:4:43;4033:17;;;;4030:1;4026:25;4022:38;4011:50;;3780:297;-1:-1:-1;3780:297:43:o;4335:127::-;4396:10;4391:3;4387:20;4384:1;4377:31;4427:4;4424:1;4417:15;4451:4;4448:1;4441:15;4467:125;4532:9;;;4553:10;;;4550:36;;;4566:18;;:::i;5129:195::-;-1:-1:-1;;;;;5198:27:43;;;5227;;;5194:61;;5267:28;;5264:54;;;5298:18;;:::i;5601:198::-;-1:-1:-1;;;;;5701:27:43;;;5672;;;5668:61;;5741:29;;5738:55;;;5773:18;;:::i;5804:128::-;5871:9;;;5892:11;;;5889:37;;;5906:18;;:::i;5937:266::-;375:465:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610148575f3560e01c806370a08231116100bf5780639ab24eb0116100795780639ab24eb0146102f4578063a9059cbb14610307578063c3cda5201461031a578063d505accf1461032d578063dd62ed3e14610340578063f1127ed814610378575f5ffd5b806370a08231146102645780637ecebe001461028c57806384b0196e1461029f5780638e539e8c146102ba57806391ddadf4146102cd57806395d89b41146102ec575f5ffd5b80633644e515116101105780633644e515146101c15780633a46b1a8146101c95780634bf5d7e9146101dc578063587cde1e146101e45780635c19a95c146102275780636fcfff451461023c575f5ffd5b806306fdde031461014c578063095ea7b31461016a57806318160ddd1461018d57806323b872dd1461019f578063313ce567146101b2575b5f5ffd5b6101546103b7565b6040516101619190611907565b60405180910390f35b61017d610178366004611934565b610447565b6040519015158152602001610161565b6002545b604051908152602001610161565b61017d6101ad36600461195c565b610460565b60405160128152602001610161565b610191610483565b6101916101d7366004611934565b610491565b6101546104cb565b61020f6101f2366004611996565b6001600160a01b039081165f908152600860205260409020541690565b6040516001600160a01b039091168152602001610161565b61023a610235366004611996565b610543565b005b61024f61024a366004611996565b610552565b60405163ffffffff9091168152602001610161565b610191610272366004611996565b6001600160a01b03165f9081526020819052604090205490565b61019161029a366004611996565b61055c565b6102a7610566565b60405161016197969594939291906119af565b6101916102c8366004611a45565b6105a8565b6102d56105cc565b60405165ffffffffffff9091168152602001610161565b6101546105d5565b610191610302366004611996565b6105e4565b61017d610315366004611934565b610604565b61023a610328366004611a6c565b610611565b61023a61033b366004611ac0565b6106d2565b61019161034e366004611b26565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61038b610386366004611b57565b610808565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610161565b6060600380546103c690611b94565b80601f01602080910402602001604051908101604052809291908181526020018280546103f290611b94565b801561043d5780601f106104145761010080835404028352916020019161043d565b820191905f5260205f20905b81548152906001019060200180831161042057829003601f168201915b5050505050905090565b5f33610454818585610842565b60019150505b92915050565b5f3361046d858285610854565b6104788585856108d0565b506001949350505050565b5f61048c61092d565b905090565b5f6104bb61049e83610a56565b6001600160a01b0385165f90815260096020526040902090610aa4565b6001600160d01b03169392505050565b60606104d5610b54565b65ffffffffffff166104e56105cc565b65ffffffffffff161461050b576040516301bfc1c560e61b815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b3361054e8183610b5e565b5050565b5f61045a82610bcf565b5f61045a82610bf0565b5f6060805f5f5f6060610577610c0d565b61057f610c3a565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f6105bd6105b583610a56565b600a90610aa4565b6001600160d01b031692915050565b5f61048c610b54565b6060600480546103c690611b94565b6001600160a01b0381165f9081526009602052604081206105bd90610c67565b5f336104548185856108d0565b8342111561063a57604051632341d78760e11b8152600481018590526024015b60405180910390fd5b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590525f906106b3906106ab9060a00160405160208183030381529060405280519060200120610c9e565b858585610cca565b90506106bf8187610cf6565b6106c98188610b5e565b50505050505050565b834211156106f65760405163313c898160e11b815260048101859052602401610631565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886107418c6001600160a01b03165f90815260076020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61079b82610c9e565b90505f6107aa82878787610cca565b9050896001600160a01b0316816001600160a01b0316146107f1576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610631565b6107fc8a8a8a610842565b50505050505050505050565b604080518082019091525f80825260208201526108258383610d48565b9392505050565b5f6108258284611be0565b5f6108258284611bff565b61084f8383836001610d7c565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198110156108ca57818110156108bc57604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610631565b6108ca84848484035f610d7c565b50505050565b6001600160a01b0383166108f957604051634b637e8f60e11b81525f6004820152602401610631565b6001600160a01b0382166109225760405163ec442f0560e01b81525f6004820152602401610631565b61084f838383610e4e565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561098557507f000000000000000000000000000000000000000000000000000000000000000046145b156109af57507f000000000000000000000000000000000000000000000000000000000000000090565b61048c604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b5f5f610a606105cc565b90508065ffffffffffff168310610a9b57604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610631565b61082583610e59565b81545f9081816005811115610b00575f610abd84610e8f565b610ac79085611c1e565b5f8881526020902090915081015465ffffffffffff9081169087161015610af057809150610afe565b610afb816001611c31565b92505b505b5f610b0d87878585610fe7565b90508015610b4757610b3187610b24600184611c1e565b5f91825260209091200190565b54600160301b90046001600160d01b0316610b49565b5f5b979650505050505050565b5f61048c43610e59565b6001600160a01b038281165f8181526008602052604080822080548686166001600160a01b0319821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461084f8183610bca86611046565b611063565b6001600160a01b0381165f9081526009602052604081205461045a906111cc565b6001600160a01b0381165f9081526007602052604081205461045a565b606061048c7f000000000000000000000000000000000000000000000000000000000000000060056111fc565b606061048c7f000000000000000000000000000000000000000000000000000000000000000060066111fc565b80545f908015610c9657610c8083610b24600184611c1e565b54600160301b90046001600160d01b0316610825565b5f9392505050565b5f61045a610caa61092d565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f610cda888888886112a5565b925092509250610cea828261136d565b50909695505050505050565b6001600160a01b0382165f90815260076020526040902080546001810190915581811461084f576040516301d4b62360e61b81526001600160a01b038416600482015260248101829052604401610631565b604080518082019091525f80825260208201526001600160a01b0383165f9081526009602052604090206108259083611425565b6001600160a01b038416610da55760405163e602df0560e01b81525f6004820152602401610631565b6001600160a01b038316610dce57604051634a1406b160e11b81525f6004820152602401610631565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156108ca57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610e4091815260200190565b60405180910390a350505050565b61084f838383611492565b5f65ffffffffffff821115610e8b576040516306dfcc6560e41b81526030600482015260248101839052604401610631565b5090565b5f60018211610e9c575090565b816001600160801b8210610eb55760809190911c9060401b5b680100000000000000008210610ed05760409190911c9060201b5b6401000000008210610ee75760209190911c9060101b5b620100008210610efc5760109190911c9060081b5b6101008210610f105760089190911c9060041b5b60108210610f235760049190911c9060021b5b60048210610f2f5760011b5b600302600190811c90818581610f4757610f47611c44565b048201901c90506001818581610f5f57610f5f611c44565b048201901c90506001818581610f7757610f77611c44565b048201901c90506001818581610f8f57610f8f611c44565b048201901c90506001818581610fa757610fa7611c44565b048201901c90506001818581610fbf57610fbf611c44565b048201901c9050610fde818581610fd857610fd8611c44565b04821190565b90039392505050565b5f5b8183101561103e575f610ffc84846114f8565b5f8781526020902090915065ffffffffffff86169082015465ffffffffffff16111561102a57809250611038565b611035816001611c31565b93505b50610fe9565b509392505050565b6001600160a01b0381165f9081526020819052604081205461045a565b816001600160a01b0316836001600160a01b03161415801561108457505f81115b1561084f576001600160a01b0383161561112b576001600160a01b0383165f90815260096020526040812081906110c6906108376110c186611512565b611545565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611120929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561084f576001600160a01b0382165f90815260096020526040812081906111639061082c6110c186611512565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516111bd929190918252602082015260400190565b60405180910390a25050505050565b5f63ffffffff821115610e8b576040516306dfcc6560e41b81526020600482015260248101839052604401610631565b606060ff83146112165761120f8361157d565b905061045a565b81805461122290611b94565b80601f016020809104026020016040519081016040528092919081815260200182805461124e90611b94565b80156112995780601f1061127057610100808354040283529160200191611299565b820191905f5260205f20905b81548152906001019060200180831161127c57829003601f168201915b5050505050905061045a565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156112de57505f91506003905082611363565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561132f573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661135a57505f925060019150829050611363565b92505f91508190505b9450945094915050565b5f82600381111561138057611380611c58565b03611389575050565b600182600381111561139d5761139d611c58565b036113bb5760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156113cf576113cf611c58565b036113f05760405163fce698f760e01b815260048101829052602401610631565b600382600381111561140457611404611c58565b0361054e576040516335e2f38360e21b815260048101829052602401610631565b604080518082019091525f8082526020820152825f018263ffffffff168154811061145257611452611c6c565b5f9182526020918290206040805180820190915291015465ffffffffffff81168252600160301b90046001600160d01b0316918101919091529392505050565b61149d8383836115ba565b6001600160a01b0383166114ed575f6114b560025490565b90506001600160d01b03808211156114ea57604051630e58ae9360e11b81526004810183905260248101829052604401610631565b50505b61084f8383836116e0565b5f6115066002848418611c80565b61082590848416611c31565b5f6001600160d01b03821115610e8b576040516306dfcc6560e41b815260d0600482015260248101839052604401610631565b5f5f6115706115526105cc565b61156861155e88610c67565b868863ffffffff16565b879190611755565b915091505b935093915050565b60605f61158983611762565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b6001600160a01b0383166115e4578060025f8282546115d99190611c31565b909155506116549050565b6001600160a01b0383165f90815260208190526040902054818110156116365760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401610631565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b0382166116705760028054829003905561168e565b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d391815260200190565b60405180910390a3505050565b6001600160a01b038316611702576116ff600a61082c6110c184611512565b50505b6001600160a01b03821661172457611721600a6108376110c184611512565b50505b6001600160a01b038381165f9081526008602052604080822054858416835291205461084f92918216911683611063565b5f80611570858585611789565b5f60ff8216601f81111561045a57604051632cd44ac360e21b815260040160405180910390fd5b82545f908190801561187f575f6117a587610b24600185611c1e565b805490915065ffffffffffff80821691600160301b90046001600160d01b03169088168211156117e857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff160361182157825465ffffffffffff16600160301b6001600160d01b03891602178355611871565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160301b029216919091179101555b945085935061157592505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160301b029190931617920191909155905081611575565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61082560208301846118d9565b80356001600160a01b038116811461192f575f5ffd5b919050565b5f5f60408385031215611945575f5ffd5b61194e83611919565b946020939093013593505050565b5f5f5f6060848603121561196e575f5ffd5b61197784611919565b925061198560208501611919565b929592945050506040919091013590565b5f602082840312156119a6575f5ffd5b61082582611919565b60ff60f81b8816815260e060208201525f6119cd60e08301896118d9565b82810360408401526119df81896118d9565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015611a34578351835260209384019390920191600101611a16565b50909b9a5050505050505050505050565b5f60208284031215611a55575f5ffd5b5035919050565b803560ff8116811461192f575f5ffd5b5f5f5f5f5f5f60c08789031215611a81575f5ffd5b611a8a87611919565b95506020870135945060408701359350611aa660608801611a5c565b9598949750929560808101359460a0909101359350915050565b5f5f5f5f5f5f5f60e0888a031215611ad6575f5ffd5b611adf88611919565b9650611aed60208901611919565b95506040880135945060608801359350611b0960808901611a5c565b9699959850939692959460a0840135945060c09093013592915050565b5f5f60408385031215611b37575f5ffd5b611b4083611919565b9150611b4e60208401611919565b90509250929050565b5f5f60408385031215611b68575f5ffd5b611b7183611919565b9150602083013563ffffffff81168114611b89575f5ffd5b809150509250929050565b600181811c90821680611ba857607f821691505b602082108103611bc657634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160d01b03818116838216019081111561045a5761045a611bcc565b6001600160d01b03828116828216039081111561045a5761045a611bcc565b8181038181111561045a5761045a611bcc565b8082018082111561045a5761045a611bcc565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f82611c9a57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220cf23c9f6dba533905325a6ac4da4bde4119bfd68a0be5ecf22eddac4ae70c31764736f6c634300081c0033","sourceMap":"375:465:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:186;;;;;;:::i;:::-;;:::i;:::-;;;1181:14:43;;1174:22;1156:41;;1144:2;1129:18;3902:186:21;1016:187:43;2803:97:21;2881:12;;2803:97;;;1354:25:43;;;1342:2;1327:18;2803:97:21;1208:177:43;4680:244:21;;;;;;:::i;:::-;;:::i;2688:82::-;;;2761:2;1911:36:43;;1899:2;1884:18;2688:82:21;1769:184:43;2614:104:23;;;:::i;4298:198:16:-;;;;;;:::i;:::-;;:::i;3040:272::-;;;:::i;5583:117::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5674:19:16;;;5648:7;5674:19;;;:10;:19;;;;;;;;5583:117;;;;-1:-1:-1;;;;;2495:32:43;;;2477:51;;2465:2;2450:18;5583:117:16;2331:203:43;5782:138:16;;;;;;:::i;:::-;;:::i;:::-;;3237:126:24;;;;;;:::i;:::-;;:::i;:::-;;;2713:10:43;2701:23;;;2683:42;;2671:2;2656:18;3237:126:24;2539:192:43;2933:116:21;;;;;;:::i;:::-;-1:-1:-1;;;;;3024:18:21;2998:7;3024:18;;;;;;;;;;;;2933:116;704:134:42;;;;;;:::i;:::-;;:::i;5228:557:35:-;;;:::i;:::-;;;;;;;;;;;;;:::i;5132:175:16:-;;;;;;:::i;:::-;;:::i;2789:96::-;;;:::i;:::-;;;4384:14:43;4372:27;;;4354:46;;4342:2;4327:18;2789:96:16;4210:196:43;1962:93:21;;;:::i;3778:135:16:-;;;;;;:::i;:::-;;:::i;3244:178:21:-;;;;;;:::i;:::-;;:::i;5998:554:16:-;;;;;;:::i;:::-;;:::i;1668:672:23:-;;;;;;:::i;:::-;;:::i;3455:140:21:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3561:18:21;;;3535:7;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3455:140;3440:163:24;;;;;;:::i;:::-;;:::i;:::-;;;;6975:13:43;;6990:14;6971:34;6953:53;;7066:4;7054:17;;;7048:24;-1:-1:-1;;;;;7044:50:43;7022:20;;;7015:80;;;;6926:18;3440:163:24;6743:358:43;1760:89:21;1805:13;1837:5;1830:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1760:89;:::o;3902:186::-;3975:4;735:10:28;4029:31:21;735:10:28;4045:7:21;4054:5;4029:8;:31::i;:::-;4077:4;4070:11;;;3902:186;;;;;:::o;4680:244::-;4767:4;735:10:28;4823:37:21;4839:4;735:10:28;4854:5:21;4823:15;:37::i;:::-;4870:26;4880:4;4886:2;4890:5;4870:9;:26::i;:::-;-1:-1:-1;4913:4:21;;4680:244;-1:-1:-1;;;;4680:244:21:o;2614:104:23:-;2665:7;2691:20;:18;:20::i;:::-;2684:27;;2614:104;:::o;4298:198:16:-;4385:7;4411:78;4459:29;4478:9;4459:18;:29::i;:::-;-1:-1:-1;;;;;4411:29:16;;;;;;:20;:29;;;;;;:47;:78::i;:::-;-1:-1:-1;;;;;4404:85:16;;4298:198;-1:-1:-1;;;4298:198:16:o;3040:272::-;3091:13;3180:18;:16;:18::i;:::-;3169:29;;:7;:5;:7::i;:::-;:29;;;3165:93;;3221:26;;-1:-1:-1;;;3221:26:16;;;;;;;;;;;3165:93;-1:-1:-1;3267:38:16;;;;;;;;;;;;;;;;;;3040:272::o;5782:138::-;735:10:28;5884:29:16;735:10:28;5903:9:16;5884;:29::i;:::-;5834:86;5782:138;:::o;3237:126:24:-;3307:6;3332:24;3348:7;3332:15;:24::i;704:134:42:-;786:7;812:19;825:5;812:12;:19::i;5228:557:35:-;5326:13;5353:18;5385:21;5420:15;5449:25;5488:12;5514:27;5617:13;:11;:13::i;:::-;5644:16;:14;:16::i;:::-;5752;;;5736:1;5752:16;;;;;;;;;-1:-1:-1;;;5566:212:35;;;-1:-1:-1;5566:212:35;;-1:-1:-1;5674:13:35;;-1:-1:-1;5709:4:35;;-1:-1:-1;5736:1:35;-1:-1:-1;5752:16:35;-1:-1:-1;5566:212:35;-1:-1:-1;5228:557:35:o;5132:175:16:-;5208:7;5234:66;5270:29;5289:9;5270:18;:29::i;:::-;5234:17;;:35;:66::i;:::-;-1:-1:-1;;;;;5227:73:16;;5132:175;-1:-1:-1;;5132:175:16:o;2789:96::-;2835:6;2860:18;:16;:18::i;1962:93:21:-;2009:13;2041:7;2034:14;;;;;:::i;3778:135:16:-;-1:-1:-1;;;;;3868:29:16;;3842:7;3868:29;;;:20;:29;;;;;:38;;:36;:38::i;3244:178:21:-;3313:4;735:10:28;3367:27:21;735:10:28;3384:2:21;3388:5;3367:9;:27::i;5998:554:16:-;6203:6;6185:15;:24;6181:91;;;6232:29;;-1:-1:-1;;;6232:29:16;;;;;1354:25:43;;;1327:18;;6232:29:16;;;;;;;;6181:91;6352:57;;;2063:71;6352:57;;;7854:25:43;-1:-1:-1;;;;;7915:32:43;;7895:18;;;7888:60;;;;7964:18;;;7957:34;;;8007:18;;;8000:34;;;6281:14:16;;6298:168;;6325:86;;7826:19:43;;6352:57:16;;;;;;;;;;;;6342:68;;;;;;6325:16;:86::i;:::-;6425:1;6440;6455;6298:13;:168::i;:::-;6281:185;;6476:31;6493:6;6501:5;6476:16;:31::i;:::-;6517:28;6527:6;6535:9;6517;:28::i;:::-;6171:381;5998:554;;;;;;:::o;1668:672:23:-;1889:8;1871:15;:26;1867:97;;;1920:33;;-1:-1:-1;;;1920:33:23;;;;;1354:25:43;;;1327:18;;1920:33:23;1208:177:43;1867:97:23;1974:18;1024:95;2033:5;2040:7;2049:5;2056:16;2066:5;-1:-1:-1;;;;;1121:14:29;819:7;1121:14;;;:7;:14;;;;;:16;;;;;;;;;759:395;2056:16:23;2005:78;;;;;;8332:25:43;;;;-1:-1:-1;;;;;8393:32:43;;;8373:18;;;8366:60;8462:32;;;;8442:18;;;8435:60;8511:18;;;8504:34;8554:19;;;8547:35;8598:19;;;8591:35;;;8304:19;;2005:78:23;;;;;;;;;;;;1995:89;;;;;;1974:110;;2095:12;2110:28;2127:10;2110:16;:28::i;:::-;2095:43;;2149:14;2166:28;2180:4;2186:1;2189;2192;2166:13;:28::i;:::-;2149:45;;2218:5;-1:-1:-1;;;;;2208:15:23;:6;-1:-1:-1;;;;;2208:15:23;;2204:88;;2246:35;;-1:-1:-1;;;2246:35:23;;-1:-1:-1;;;;;8829:32:43;;;2246:35:23;;;8811:51:43;8898:32;;8878:18;;;8871:60;8784:18;;2246:35:23;8637:300:43;2204:88:23;2302:31;2311:5;2318:7;2327:5;2302:8;:31::i;:::-;1857:483;;;1668:672;;;;;;;:::o;3440:163:24:-;-1:-1:-1;;;;;;;;;;;;;;;;;3570:26:24;3583:7;3592:3;3570:12;:26::i;:::-;3563:33;3440:163;-1:-1:-1;;;3440:163:24:o;9348:96:16:-;9406:7;9432:5;9436:1;9432;:5;:::i;9450:101::-;9513:7;9539:5;9543:1;9539;:5;:::i;8630:128:21:-;8714:37;8723:5;8730:7;8739:5;8746:4;8714:8;:37::i;:::-;8630:128;;;:::o;10321:476::-;-1:-1:-1;;;;;3561:18:21;;;10420:24;3561:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10486:36:21;;10482:309;;;10561:5;10542:16;:24;10538:130;;;10593:60;;-1:-1:-1;;;10593:60:21;;-1:-1:-1;;;;;9697:32:43;;10593:60:21;;;9679:51:43;9746:18;;;9739:34;;;9789:18;;;9782:34;;;9652:18;;10593:60:21;9477:345:43;10538:130:21;10709:57;10718:5;10725:7;10753:5;10734:16;:24;10760:5;10709:8;:57::i;:::-;10410:387;10321:476;;;:::o;5297:300::-;-1:-1:-1;;;;;5380:18:21;;5376:86;;5421:30;;-1:-1:-1;;;5421:30:21;;5448:1;5421:30;;;2477:51:43;2450:18;;5421:30:21;2331:203:43;5376:86:21;-1:-1:-1;;;;;5475:16:21;;5471:86;;5514:32;;-1:-1:-1;;;5514:32:21;;5543:1;5514:32;;;2477:51:43;2450:18;;5514:32:21;2331:203:43;5471:86:21;5566:24;5574:4;5580:2;5584:5;5566:7;:24::i;3945:262:35:-;3998:7;4029:4;-1:-1:-1;;;;;4038:11:35;4021:28;;:63;;;;;4070:14;4053:13;:31;4021:63;4017:184;;;-1:-1:-1;4107:22:35;;3945:262::o;4017:184::-;4167:23;4304:80;;;2079:95;4304:80;;;10900:25:43;4326:11:35;10941:18:43;;;10934:34;;;;4339:14:35;10984:18:43;;;10977:34;4355:13:35;11027:18:43;;;11020:34;4378:4:35;11070:19:43;;;11063:61;4268:7:35;;10872:19:43;;4304:80:35;;;;;;;;;;;;4294:91;;;;;;4287:98;;4213:179;;3415:273:16;3485:6;3503:23;3529:7;:5;:7::i;:::-;3503:33;;3563:16;3550:29;;:9;:29;3546:90;;3588:48;;-1:-1:-1;;;3588:48:16;;;;;9999:25:43;;;10072:14;10060:27;;10040:18;;;10033:55;9972:18;;3588:48:16;9827:267:43;3546:90:16;3653:28;3671:9;3653:17;:28::i;16485:606:40:-;16603:24;;16570:7;;;16603:24;16702:1;16696:7;;16692:234;;;16719:11;16739:14;16749:3;16739:9;:14::i;:::-;16733:20;;:3;:20;:::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;16719:34;;-1:-1:-1;21415:31:40;;16777:42;;;;;16771:48;;;;16767:149;;;16846:3;16839:10;;16767:149;;;16894:7;:3;16900:1;16894:7;:::i;:::-;16888:13;;16767:149;16705:221;16692:234;16936:11;16950:53;16969:4;16988:3;16993;16998:4;16950:18;:53::i;:::-;16936:67;-1:-1:-1;17021:8:40;;:63;;17036:41;17050:4;17069:7;17075:1;17069:3;:7;:::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;;21415:31;;21191:271;17036:41;:48;-1:-1:-1;;;17036:48:40;;-1:-1:-1;;;;;17036:48:40;17021:63;;;17032:1;17021:63;17014:70;16485:606;-1:-1:-1;;;;;;;16485:606:40:o;931:109:41:-;977:6;1002:31;1020:12;1002:17;:31::i;6730:312:16:-;-1:-1:-1;;;;;5674:19:16;;;6812;5674;;;:10;:19;;;;;;;;6862:31;;;-1:-1:-1;;;;;;6862:31:16;;;;;;;6909:48;;5674:19;;;;;6862:31;5674:19;;;;6909:48;;6812:19;6909:48;6967:68;6986:11;6999:9;7010:24;7026:7;7010:15;:24::i;:::-;6967:18;:68::i;8625:162::-;-1:-1:-1;;;;;8741:29:16;;8698:6;8741:29;;;:20;:29;;;;;18142:24:40;8723:57:16;;:17;:57::i;2379:143:23:-;-1:-1:-1;;;;;624:14:29;;2470:7:23;624:14:29;;;:7;:14;;;;;;2496:19:23;538:107:29;6105:126:35;6151:13;6183:41;:5;6210:13;6183:26;:41::i;6557:135::-;6606:13;6638:47;:8;6668:16;6638:29;:47::i;17211:206:40:-;17306:24;;17273:7;;17347:8;;:63;;17362:41;17376:4;17395:7;17401:1;17395:3;:7;:::i;17362:41::-;:48;-1:-1:-1;;;17362:48:40;;-1:-1:-1;;;;;17362:48:40;17347:63;;;17358:1;17340:70;17211:206;-1:-1:-1;;;17211:206:40:o;5017:176:35:-;5094:7;5120:66;5153:20;:18;:20::i;:::-;5175:10;4049:4:36;4043:11;-1:-1:-1;;;4067:23:36;;4119:4;4110:14;;4103:39;;;;4171:4;4162:14;;4155:34;4227:4;4212:20;;;3874:374;8826:260:34;8911:7;8931:17;8950:18;8970:16;8990:25;9001:4;9007:1;9010;9013;8990:10;:25::i;:::-;8930:85;;;;;;9025:28;9037:5;9044:8;9025:11;:28::i;:::-;-1:-1:-1;9070:9:34;;8826:260;-1:-1:-1;;;;;;8826:260:34:o;1265:222:29:-;-1:-1:-1;;;;;1121:14:29;;1348:15;1121:14;;;:7;:14;;;;;:16;;;;;;;;1396;;;1392:89;;1435:35;;-1:-1:-1;;;1435:35:29;;-1:-1:-1;;;;;10554:32:43;;1435:35:29;;;10536:51:43;10603:18;;;10596:34;;;10509:18;;1435:35:29;10362:274:43;8864:199:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;9019:29:16;;;;;;:20;:29;;;;;:37;;9052:3;9019:32;:37::i;9607:432:21:-;-1:-1:-1;;;;;9719:19:21;;9715:89;;9761:32;;-1:-1:-1;;;9761:32:21;;9790:1;9761:32;;;2477:51:43;2450:18;;9761:32:21;2331:203:43;9715:89:21;-1:-1:-1;;;;;9817:21:21;;9813:90;;9861:31;;-1:-1:-1;;;9861:31:21;;9889:1;9861:31;;;2477:51:43;2450:18;;9861:31:21;2331:203:43;9813:90:21;-1:-1:-1;;;;;9912:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;9957:76;;;;10007:7;-1:-1:-1;;;;;9991:31:21;10000:5;-1:-1:-1;;;;;9991:31:21;;10016:5;9991:31;;;;1354:25:43;;1342:2;1327:18;;1208:177;9991:31:21;;;;;;;;9607:432;;;;:::o;556:142:42:-;661:30;675:4;681:2;685:5;661:13;:30::i;14296:213:38:-;14352:6;14382:16;14374:24;;14370:103;;;14421:41;;-1:-1:-1;;;14421:41:38;;14452:2;14421:41;;;11316:36:43;11368:18;;;11361:34;;;11289:18;;14421:41:38;11135:266:43;14370:103:38;-1:-1:-1;14496:5:38;14296:213::o;20583:5181:37:-;20631:7;20749:1;20744;:6;20740:53;;-1:-1:-1;20777:1:37;20583:5181::o;20740:53::-;21733:1;21761;-1:-1:-1;;;21781:16:37;;21777:92;;21824:3;21817:10;;;;;21852:2;21845:9;21777:92;21893:7;21886:2;:15;21882:90;;21928:2;21921:9;;;;;21955:2;21948:9;21882:90;21996:7;21989:2;:15;21985:90;;22031:2;22024:9;;;;;22058:2;22051:9;21985:90;22099:7;22092:2;:15;22088:89;;22134:2;22127:9;;;;;22161:1;22154:8;22088:89;22201:6;22194:2;:14;22190:87;;22235:1;22228:8;;;;;22261:1;22254:8;22190:87;22301:6;22294:2;:14;22290:87;;22335:1;22328:8;;;;;22361:1;22354:8;22290:87;22401:6;22394:2;:14;22390:61;;22435:1;22428:8;22390:61;22877:1;:6;22888:1;22876:13;;;;;24787:1;22876:13;24787:6;;;;:::i;:::-;;24782:2;:11;24781:18;;24776:23;;24907:1;24900:2;24896:1;:6;;;;;:::i;:::-;;24891:2;:11;24890:18;;24885:23;;25018:1;25011:2;25007:1;:6;;;;;:::i;:::-;;25002:2;:11;25001:18;;24996:23;;25127:1;25120:2;25116:1;:6;;;;;:::i;:::-;;25111:2;:11;25110:18;;25105:23;;25237:1;25230:2;25226:1;:6;;;;;:::i;:::-;;25221:2;:11;25220:18;;25215:23;;25347:1;25340:2;25336:1;:6;;;;;:::i;:::-;;25331:2;:11;25330:18;;25325:23;;25719:28;25744:2;25740:1;:6;;;;;:::i;:::-;;25735:11;;;34795:145:38;25719:28:37;25714:33;;;20583:5181;-1:-1:-1;;;20583:5181:37:o;19831:433:40:-;19988:7;20007:230;20020:4;20014:3;:10;20007:230;;;20040:11;20054:23;20067:3;20072:4;20054:12;:23::i;:::-;21301:28;21364:23;;;21435:4;21419:21;;20040:37;;-1:-1:-1;20095:35:40;;;;21415:31;;20095:29;;;:35;20091:136;;;20157:3;20150:10;;20091:136;;;20205:7;:3;20211:1;20205:7;:::i;:::-;20199:13;;20091:136;20026:211;20007:230;;;-1:-1:-1;20253:4:40;19831:433;-1:-1:-1;;;19831:433:40:o;3029:133:24:-;-1:-1:-1;;;;;3024:18:21;;3111:7:24;3024:18:21;;;;;;;;;;;3137::24;2933:116:21;7761:789:16;7870:2;-1:-1:-1;;;;;7862:10:16;:4;-1:-1:-1;;;;;7862:10:16;;;:24;;;;;7885:1;7876:6;:10;7862:24;7858:686;;;-1:-1:-1;;;;;7906:18:16;;;7902:315;;-1:-1:-1;;;;;8010:26:16;;7945:16;8010:26;;;:20;:26;;;;;7945:16;;7983:150;;8058:9;8089:26;8108:6;8089:18;:26::i;:::-;7983:5;:150::i;:::-;-1:-1:-1;;;;;7944:189:16;;;-1:-1:-1;;;;;7944:189:16;;;8177:4;-1:-1:-1;;;;;8156:46:16;;8183:8;8193;8156:46;;;;;;11712:25:43;;;11768:2;11753:18;;11746:34;11700:2;11685:18;;11538:248;8156:46:16;;;;;;;;7926:291;;7902:315;-1:-1:-1;;;;;8234:16:16;;;8230:304;;-1:-1:-1;;;;;8336:24:16;;8271:16;8336:24;;;:20;:24;;;;;8271:16;;8309:143;;8382:4;8408:26;8427:6;8408:18;:26::i;8309:143::-;-1:-1:-1;;;;;8270:182:16;;;-1:-1:-1;;;;;8270:182:16;;;8496:2;-1:-1:-1;;;;;8475:44:16;;8500:8;8510;8475:44;;;;;;11712:25:43;;;11768:2;11753:18;;11746:34;11700:2;11685:18;;11538:248;8475:44:16;;;;;;;;8252:282;;7761:789;;;:::o;15296:213:38:-;15352:6;15382:16;15374:24;;15370:103;;;15421:41;;-1:-1:-1;;;15421:41:38;;15452:2;15421:41;;;11316:36:43;11368:18;;;11361:34;;;11289:18;;15421:41:38;11135:266:43;3376:267:31;3470:13;1390:66;3499:46;;3495:142;;3568:15;3577:5;3568:8;:15::i;:::-;3561:22;;;;3495:142;3621:5;3614:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7142:1551:34;7268:17;;;8222:66;8209:79;;8205:164;;;-1:-1:-1;8320:1:34;;-1:-1:-1;8324:30:34;;-1:-1:-1;8356:1:34;8304:54;;8205:164;8480:24;;;8463:14;8480:24;;;;;;;;;12289:25:43;;;12362:4;12350:17;;12330:18;;;12323:45;;;;12384:18;;;12377:34;;;12427:18;;;12420:34;;;8480:24:34;;12261:19:43;;8480:24:34;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8480:24:34;;-1:-1:-1;;8480:24:34;;;-1:-1:-1;;;;;;;8518:20:34;;8514:113;;-1:-1:-1;8570:1:34;;-1:-1:-1;8574:29:34;;-1:-1:-1;8570:1:34;;-1:-1:-1;8554:62:34;;8514:113;8645:6;-1:-1:-1;8653:20:34;;-1:-1:-1;8653:20:34;;-1:-1:-1;7142:1551:34;;;;;;;;;:::o;11630:532::-;11725:20;11716:5;:29;;;;;;;;:::i;:::-;;11712:444;;11630:532;;:::o;11712:444::-;11821:29;11812:5;:38;;;;;;;;:::i;:::-;;11808:348;;11873:23;;-1:-1:-1;;;11873:23:34;;;;;;;;;;;11808:348;11926:35;11917:5;:44;;;;;;;;:::i;:::-;;11913:243;;11984:46;;-1:-1:-1;;;11984:46:34;;;;;1354:25:43;;;1327:18;;11984:46:34;1208:177:43;11913:243:34;12060:30;12051:5;:39;;;;;;;;:::i;:::-;;12047:109;;12113:32;;-1:-1:-1;;;12113:32:34;;;;;1354:25:43;;;1327:18;;12113:32:34;1208:177:43;18245:138:40;-1:-1:-1;;;;;;;;;;;;;;;;;18354:4:40;:17;;18372:3;18354:22;;;;;;;;;;:::i;:::-;;;;;;;;;;18347:29;;;;;;;;;18354:22;;18347:29;;;;;;-1:-1:-1;;;18347:29:40;;-1:-1:-1;;;;;18347:29:40;;;;;;;;;18245:138;-1:-1:-1;;;18245:138:40:o;2356:413:24:-;2450:30;2464:4;2470:2;2474:5;2450:13;:30::i;:::-;-1:-1:-1;;;;;2494:18:24;;2490:226;;2528:14;2545:13;2881:12:21;;;2803:97;2545:13:24;2528:30;-1:-1:-1;;;;;;2616:12:24;;;2612:94;;;2655:36;;-1:-1:-1;;;2655:36:24;;;;;11712:25:43;;;11753:18;;;11746:34;;;11685:18;;2655:36:24;11538:248:43;2612:94:24;2514:202;;2490:226;2725:37;2746:4;2752:2;2756:5;2725:20;:37::i;5857:153:37:-;5919:7;5992:11;6002:1;5993:5;;;5992:11;:::i;:::-;5982:21;;5983:5;;;5982:21;:::i;4174:218:38:-;4231:7;-1:-1:-1;;;;;4254:25:38;;4250:105;;;4302:42;;-1:-1:-1;;;4302:42:38;;4333:3;4302:42;;;11316:36:43;11368:18;;;11361:34;;;11289:18;;4302:42:38;11135:266:43;9069:273:16;9236:16;9254;9289:46;9300:7;:5;:7::i;:::-;9309:25;9312:14;:5;:12;:14::i;:::-;9328:5;9309:2;:25;;:::i;:::-;9289:5;;:46;:10;:46::i;:::-;9282:53;;;;9069:273;;;;;;;:::o;2080:380:31:-;2139:13;2164:11;2178:16;2189:4;2178:10;:16::i;:::-;2302;;;2313:4;2302:16;;;;;;;;;2164:30;;-1:-1:-1;2282:17:31;;2302:16;;;;;;;;;-1:-1:-1;;;2367:16:31;;;-1:-1:-1;2412:4:31;2403:14;;2396:28;;;;-1:-1:-1;2367:16:31;2080:380::o;5912:1107:21:-;-1:-1:-1;;;;;6001:18:21;;5997:540;;6153:5;6137:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;5997:540:21;;-1:-1:-1;5997:540:21;;-1:-1:-1;;;;;6211:15:21;;6189:19;6211:15;;;;;;;;;;;6244:19;;;6240:115;;;6290:50;;-1:-1:-1;;;6290:50:21;;-1:-1:-1;;;;;9697:32:43;;6290:50:21;;;9679:51:43;9746:18;;;9739:34;;;9789:18;;;9782:34;;;9652:18;;6290:50:21;9477:345:43;6240:115:21;-1:-1:-1;;;;;6475:15:21;;:9;:15;;;;;;;;;;6493:19;;;;6475:37;;5997:540;-1:-1:-1;;;;;6551:16:21;;6547:425;;6714:12;:21;;;;;;;6547:425;;;-1:-1:-1;;;;;6925:13:21;;:9;:13;;;;;;;;;;:22;;;;;;6547:425;7002:2;-1:-1:-1;;;;;6987:25:21;6996:4;-1:-1:-1;;;;;6987:25:21;;7006:5;6987:25;;;;1354::43;;1342:2;1327:18;;1208:177;6987:25:21;;;;;;;;5912:1107;;;:::o;7276:399:16:-;-1:-1:-1;;;;;7379:18:16;;7375:107;;7413:58;7419:17;7438:4;7444:26;7463:6;7444:18;:26::i;7413:58::-;;;7375:107;-1:-1:-1;;;;;7495:16:16;;7491:110;;7527:63;7533:17;7552:9;7563:26;7582:6;7563:18;:26::i;7527:63::-;;;7491:110;-1:-1:-1;;;;;5674:19:16;;;5648:7;5674:19;;;:10;:19;;;;;;;;;;;;;;;7610:58;;5674:19;;;;;7661:6;7610:18;:58::i;15046:210:40:-;15158:16;;15211:38;15219:4;15238:3;15243:5;15211:7;:38::i;2532:247:31:-;2593:7;2665:4;2629:40;;2692:4;2683:13;;2679:71;;;2719:20;;-1:-1:-1;;;2719:20:31;;;;;;;;;;;18559:922:40;18740:11;;18680:16;;;;18766:7;;18762:713;;18789:26;18818:28;18832:4;18838:7;18844:1;18838:3;:7;:::i;18818:28::-;18877:9;;;;-1:-1:-1;18877:9:40;;;;;-1:-1:-1;;;18920:11:40;;-1:-1:-1;;;;;18920:11:40;;19005:13;;;;19001:89;;;19045:30;;-1:-1:-1;;;19045:30:40;;;;;;;;;;;19001:89;19164:3;19153:14;;:7;:14;;;19149:163;;19187:19;;;;-1:-1:-1;;;;;;;;19187:19:40;;;;;;19149:163;;;19255:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;19255:41:40;;;;;;;;;;19245:52;;;;;;;-1:-1:-1;19245:52:40;;;;;;;;;;;;;;-1:-1:-1;;;19245:52:40;;;;;;;;;;19149:163;19333:9;-1:-1:-1;19344:5:40;;-1:-1:-1;19325:25:40;;-1:-1:-1;;;19325:25:40;18762:713;-1:-1:-1;;19391:41:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;19391:41:40;;;;;;;;;;19381:52;;;;;;;-1:-1:-1;19381:52:40;;;;;;;;;;;;;-1:-1:-1;;;19381:52:40;;;;;;;;;;;;-1:-1:-1;;19425:5:40;19447:17;;14:289:43;56:3;94:5;88:12;121:6;116:3;109:19;177:6;170:4;163:5;159:16;152:4;147:3;143:14;137:47;229:1;222:4;213:6;208:3;204:16;200:27;193:38;292:4;285:2;281:7;276:2;268:6;264:15;260:29;255:3;251:39;247:50;240:57;;;14:289;;;;:::o;308:220::-;457:2;446:9;439:21;420:4;477:45;518:2;507:9;503:18;495:6;477:45;:::i;533:173::-;601:20;;-1:-1:-1;;;;;650:31:43;;640:42;;630:70;;696:1;693;686:12;630:70;533:173;;;:::o;711:300::-;779:6;787;840:2;828:9;819:7;815:23;811:32;808:52;;;856:1;853;846:12;808:52;879:29;898:9;879:29;:::i;:::-;869:39;977:2;962:18;;;;949:32;;-1:-1:-1;;;711:300:43:o;1390:374::-;1467:6;1475;1483;1536:2;1524:9;1515:7;1511:23;1507:32;1504:52;;;1552:1;1549;1542:12;1504:52;1575:29;1594:9;1575:29;:::i;:::-;1565:39;;1623:38;1657:2;1646:9;1642:18;1623:38;:::i;:::-;1390:374;;1613:48;;-1:-1:-1;;;1730:2:43;1715:18;;;;1702:32;;1390:374::o;2140:186::-;2199:6;2252:2;2240:9;2231:7;2227:23;2223:32;2220:52;;;2268:1;2265;2258:12;2220:52;2291:29;2310:9;2291:29;:::i;2736:1238::-;3142:3;3137;3133:13;3125:6;3121:26;3110:9;3103:45;3184:3;3179:2;3168:9;3164:18;3157:31;3084:4;3211:46;3252:3;3241:9;3237:19;3229:6;3211:46;:::i;:::-;3305:9;3297:6;3293:22;3288:2;3277:9;3273:18;3266:50;3339:33;3365:6;3357;3339:33;:::i;:::-;3403:2;3388:18;;3381:34;;;-1:-1:-1;;;;;3452:32:43;;3446:3;3431:19;;3424:61;3472:3;3501:19;;3494:35;;;3566:22;;;3560:3;3545:19;;3538:51;3638:13;;3660:22;;;3710:2;3736:15;;;;-1:-1:-1;3698:15:43;;;;-1:-1:-1;3779:169:43;3793:6;3790:1;3787:13;3779:169;;;3854:13;;3842:26;;3897:2;3923:15;;;;3888:12;;;;3815:1;3808:9;3779:169;;;-1:-1:-1;3965:3:43;;2736:1238;-1:-1:-1;;;;;;;;;;;2736:1238:43:o;3979:226::-;4038:6;4091:2;4079:9;4070:7;4066:23;4062:32;4059:52;;;4107:1;4104;4097:12;4059:52;-1:-1:-1;4152:23:43;;3979:226;-1:-1:-1;3979:226:43:o;4411:156::-;4477:20;;4537:4;4526:16;;4516:27;;4506:55;;4557:1;4554;4547:12;4572:733;4674:6;4682;4690;4698;4706;4714;4767:3;4755:9;4746:7;4742:23;4738:33;4735:53;;;4784:1;4781;4774:12;4735:53;4807:29;4826:9;4807:29;:::i;:::-;4797:39;-1:-1:-1;4905:2:43;4890:18;;4877:32;;-1:-1:-1;5006:2:43;4991:18;;4978:32;;-1:-1:-1;5055:36:43;5087:2;5072:18;;5055:36;:::i;:::-;4572:733;;;;-1:-1:-1;4572:733:43;;5164:3;5149:19;;5136:33;;5268:3;5253:19;;;5240:33;;-1:-1:-1;4572:733:43;-1:-1:-1;;4572:733:43:o;5310:808::-;5421:6;5429;5437;5445;5453;5461;5469;5522:3;5510:9;5501:7;5497:23;5493:33;5490:53;;;5539:1;5536;5529:12;5490:53;5562:29;5581:9;5562:29;:::i;:::-;5552:39;;5610:38;5644:2;5633:9;5629:18;5610:38;:::i;:::-;5600:48;-1:-1:-1;5717:2:43;5702:18;;5689:32;;-1:-1:-1;5818:2:43;5803:18;;5790:32;;-1:-1:-1;5867:37:43;5899:3;5884:19;;5867:37;:::i;:::-;5310:808;;;;-1:-1:-1;5310:808:43;;;;5857:47;5977:3;5962:19;;5949:33;;-1:-1:-1;6081:3:43;6066:19;;;6053:33;;5310:808;-1:-1:-1;;5310:808:43:o;6123:260::-;6191:6;6199;6252:2;6240:9;6231:7;6227:23;6223:32;6220:52;;;6268:1;6265;6258:12;6220:52;6291:29;6310:9;6291:29;:::i;:::-;6281:39;;6339:38;6373:2;6362:9;6358:18;6339:38;:::i;:::-;6329:48;;6123:260;;;;;:::o;6388:350::-;6455:6;6463;6516:2;6504:9;6495:7;6491:23;6487:32;6484:52;;;6532:1;6529;6522:12;6484:52;6555:29;6574:9;6555:29;:::i;:::-;6545:39;;6634:2;6623:9;6619:18;6606:32;6678:10;6671:5;6667:22;6660:5;6657:33;6647:61;;6704:1;6701;6694:12;6647:61;6727:5;6717:15;;;6388:350;;;;;:::o;7106:380::-;7185:1;7181:12;;;;7228;;;7249:61;;7303:4;7295:6;7291:17;7281:27;;7249:61;7356:2;7348:6;7345:14;7325:18;7322:38;7319:161;;7402:10;7397:3;7393:20;7390:1;7383:31;7437:4;7434:1;7427:15;7465:4;7462:1;7455:15;7319:161;;7106:380;;;:::o;8942:127::-;9003:10;8998:3;8994:20;8991:1;8984:31;9034:4;9031:1;9024:15;9058:4;9055:1;9048:15;9074:195;-1:-1:-1;;;;;9143:27:43;;;9172;;;9139:61;;9212:28;;9209:54;;;9243:18;;:::i;9274:198::-;-1:-1:-1;;;;;9374:27:43;;;9345;;;9341:61;;9414:29;;9411:55;;;9446:18;;:::i;10099:128::-;10166:9;;;10187:11;;;10184:37;;;10201:18;;:::i;10232:125::-;10297:9;;;10318:10;;;10315:36;;;10331:18;;:::i;11406:127::-;11467:10;11462:3;11458:20;11455:1;11448:31;11498:4;11495:1;11488:15;11522:4;11519:1;11512:15;12465:127;12526:10;12521:3;12517:20;12514:1;12507:31;12557:4;12554:1;12547:15;12581:4;12578:1;12571:15;12597:127;12658:10;12653:3;12649:20;12646:1;12639:31;12689:4;12686:1;12679:15;12713:4;12710:1;12703:15;12729:217;12769:1;12795;12785:132;;12839:10;12834:3;12830:20;12827:1;12820:31;12874:4;12871:1;12864:15;12902:4;12899:1;12892:15;12785:132;-1:-1:-1;12931:9:43;;12729:217::o","linkReferences":{},"immutableReferences":{"40559":[{"start":2445,"length":32}],"40561":[{"start":2403,"length":32}],"40563":[{"start":2361,"length":32}],"40565":[{"start":2526,"length":32}],"40567":[{"start":2566,"length":32}],"40570":[{"start":3092,"length":32}],"40573":[{"start":3137,"length":32}]}},"methodIdentifiers":{"CLOCK_MODE()":"4bf5d7e9","DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","checkpoints(address,uint32)":"f1127ed8","clock()":"91ddadf4","decimals()":"313ce567","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","eip712Domain()":"84b0196e","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getVotes(address)":"9ab24eb0","name()":"06fdde03","nonces(address)":"7ecebe00","numCheckpoints(address)":"6fcfff45","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CheckpointUnorderedInsertion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"increasedSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"name\":\"ERC20ExceededSafeSupply\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"clock\",\"type\":\"uint48\"}],\"name\":\"ERC5805FutureLookup\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC6372InconsistentClock\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidShortString\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"str\",\"type\":\"string\"}],\"name\":\"StringTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"name\":\"VotesExpiredSignature\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousVotes\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newVotes\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"pos\",\"type\":\"uint32\"}],\"name\":\"checkpoints\",\"outputs\":[{\"components\":[{\"internalType\":\"uint48\",\"name\":\"_key\",\"type\":\"uint48\"},{\"internalType\":\"uint208\",\"name\":\"_value\",\"type\":\"uint208\"}],\"internalType\":\"struct Checkpoints.Checkpoint208\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"numCheckpoints\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"CheckpointUnorderedInsertion()\":[{\"details\":\"A value was attempted to be inserted on a past checkpoint.\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC20ExceededSafeSupply(uint256,uint256)\":[{\"details\":\"Total supply cap has been exceeded, introducing a risk of votes overflowing.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"ERC5805FutureLookup(uint256,uint48)\":[{\"details\":\"Lookup to future votes is not available.\"}],\"ERC6372InconsistentClock()\":[{\"details\":\"The clock was incorrectly modified.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"VotesExpiredSignature(uint256)\":[{\"details\":\"The signature used has expired.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of voting units.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"CLOCK_MODE()\":{\"details\":\"Machine-readable description of the clock as specified in ERC-6372.\"},\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"checkpoints(address,uint32)\":{\"details\":\"Get the `pos`-th checkpoint for `account`.\"},\"clock()\":{\"details\":\"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting), in which case {CLOCK_MODE} should be overridden as well to match.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined.\"},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"numCheckpoints(address)\":{\"details\":\"Get number of checkpoints for `account`.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"script/Deploy.s.sol\":\"ASHA\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710\",\"dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x7a4077e7ec41cfa429ac749c6a47c7966f7b14fca4f1e887444ea5bba5b34aa4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://90b5315ec93b390273e5987d1648c65c667a370385eebc7ae0f4c496b7b94da5\",\"dweb:/ipfs/QmQ6fSxvf9t1BF6m8v18mrhh1byrSPcpCovSC5Sn1XZUns\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0xf1d63081e75349b88dbedfa4a86c352ea1d836c47f16cb88bd2369a3d4856435\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://5453095168c381b55f3a4b476a7118e335af7a11ed4f3b84f70e1afec3f73847\",\"dweb:/ipfs/Qmdcf2np9BtqXJ9ogKSTwtAUivQDMu8JJGWd5RDZJ2Adm8\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x8fe4ebe49192e4dd929758bf7766eb3440271f527b1432c63a45c3b749f95480\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2257d39c8f07231c0a88c6b0c71c642fd1f4fcaf02f77cd3cacd0f6daed6dd99\",\"dweb:/ipfs/Qme7fc2RLoW6SkjfyDJeTQBN7WHMvWAwJtzsF3AdetQu6h\"]},\"lib/forge-std/src/StdConstants.sol\":{\"keccak256\":\"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b\",\"dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0\",\"dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af\",\"dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x29e6b935856e69c9130fcf8c6082168954600e57fe36d556fb4856ecc8b5f47a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://37bb6128cb15ab0cddc0b8d45075e4c813f85b808a265b1d5343f2096ae20931\",\"dweb:/ipfs/QmVZDxrMNPPVJpHkwcJW7y5fAY6cE3pYqNQt4rxgPaSfn8\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3\",\"dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x3e89e75f6fe9d8280d43ee990ffb6089cca508c779c1d0776aef49658d0775c4\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0efde29c751fcd42cde9ee9c90169e6688ded35c950859d92d374ace35a0c688\",\"dweb:/ipfs/QmaHifK2K7shC9sn7oJXC8hYFDQqX5ZfeW1qSieYRkRezh\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x84e4392db5923ba590b6669af53418a9aad8c96bbf50d4622a5f813d29eddaea\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0c439c7b953249edeabefa68ed87542e82101c91766fd98b3215599c6d0aec9f\",\"dweb:/ipfs/QmaVPk7riotTVTBjvd3YKGur1wDE1mEq7X1cVdieRm8JR5\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde\",\"dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210\",\"dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb\",\"dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3\",\"dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK\"]},\"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol\":{\"keccak256\":\"0xdf466d4c6aa9da903595262100def9c6d960045b2ada0357edc47953bc5e18d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://889512f1c9468f4d5e0f90f46b849709fd6fedab29b8377f64f6c3ee8373beee\",\"dweb:/ipfs/QmefA385JqnvagxdFDpM3kxnxUtpJvkxkbTr66naQbAko9\"]},\"lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol\":{\"keccak256\":\"0xf50e692fb9cbd847704a620953bc45c9771c139e3ecefb7e9ed3fae67b87768e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32ab1407257dcf3550d9ddd6812da745ae3666c58adc96f245dfbaed1a66659d\",\"dweb:/ipfs/QmTLG5Cz1Y8EkbomUVyfNRaDvJPh8g1DYtsddXS1fYVN1W\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol\":{\"keccak256\":\"0x8fbf3dddff71246ff9ffe21f9f0195a40583c4101c94c747691291f8b9e14ebd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d69db7468e95a56999df81f1c555215b3359483d610dbef17d898ef48801578\",\"dweb:/ipfs/QmSPaSUsHDGqffinNgwajKp8RUdwj3GyW3VqWWNPfwH4b4\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol\":{\"keccak256\":\"0xed0f7f14eb30c80a82855ddc3f7267bb6290546e5847a8ffc33f599ce4bc5eb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63fab00bbb42ce6f132a93d1c1e1cfed5175821521fb8746caa48129787d2435\",\"dweb:/ipfs/QmVMBNhmVW1h35LsaYNyDChfyTwF8M3EW9T1JDFpsXiaQF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol\":{\"keccak256\":\"0x73d9dc25e0edb50767d29665bea0092e29b68776feb39c3f48781e4bab7cdda5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://242e910e44f0569e2cd8f5282556c790f15b2b3e4112290346d72cfbb9fb5e78\",\"dweb:/ipfs/QmYejCe3DRxzXaxcZaW1JNbFDJyhHnYhPSLaVxjE3jBLSC\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol\":{\"keccak256\":\"0xa8eecb7822f96130e5c64b5ac25c9e0394948f05c517d4e3dc8a15033679ee6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c64c0017e3973b4cd34dc39ba225010952c67f0d7193bc4d784719f9f7ef583a\",\"dweb:/ipfs/QmYNenQ2avzBZDk1PMjQuZQMh9CVMuUrK7Rrj8JH1gqPUS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9\",\"dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147\",\"dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Nonces.sol\":{\"keccak256\":\"0x0082767004fca261c332e9ad100868327a863a88ef724e844857128845ab350f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://132dce9686a54e025eb5ba5d2e48208f847a1ec3e60a3e527766d7bf53fb7f9e\",\"dweb:/ipfs/QmXn1a2nUZMpu2z6S88UoTfMVtY2YNh86iGrzJDYmMkKeZ\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol\":{\"keccak256\":\"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99\",\"dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a\",\"dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x360cf86214a764694dae1522a38200b1737fe90e46dcf56a0f89de143071cc20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e393290a46ca6d1fa1addb40709d26e1d250638ab6acdd103b5af21768ebc7b\",\"dweb:/ipfs/QmPwT3tXwQ9NbGtZ99XRq7sr8LCQP8XaCrzw49JdXGn7us\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4\",\"dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x6abeed5940e1da7bb329e458db9a1c5c4ea6f86d651b952af99c6bddcd6bbb94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fe75e9a6b759c5d7fd82fb59bd4f58c672b36f0a69b84f4789b7c7895d3e61c\",\"dweb:/ipfs/QmX28wsir8w5sS3acfJMNHcBwoPsDpqCu7WDkPnUWLMNiZ\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c\",\"dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol\":{\"keccak256\":\"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6\",\"dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256\",\"dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc\"]},\"script/Deploy.s.sol\":{\"keccak256\":\"0xbe4ec210c02314015cede7b5b60c017e3d4e182df2c54be1486c8f073481b333\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f35d5128603149bc22565517467d9ab4e5a6379454bcd636dcfeb9dd32974215\",\"dweb:/ipfs/QmZ3UwQWf2eVQ7ht6znhWM7iQPR3BEbAK5DbRRJQiNppDm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CheckpointUnorderedInsertion"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"uint256","name":"increasedSupply","type":"uint256"},{"internalType":"uint256","name":"cap","type":"uint256"}],"type":"error","name":"ERC20ExceededSafeSupply"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"},{"internalType":"uint48","name":"clock","type":"uint48"}],"type":"error","name":"ERC5805FutureLookup"},{"inputs":[],"type":"error","name":"ERC6372InconsistentClock"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidShortString"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"type":"error","name":"StringTooLong"},{"inputs":[{"internalType":"uint256","name":"expiry","type":"uint256"}],"type":"error","name":"VotesExpiredSignature"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousVotes","type":"uint256","indexed":false},{"internalType":"uint256","name":"newVotes","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"stateMutability":"view","type":"function","name":"checkpoints","outputs":[{"internalType":"struct Checkpoints.Checkpoint208","name":"","type":"tuple","components":[{"internalType":"uint48","name":"_key","type":"uint48"},{"internalType":"uint208","name":"_value","type":"uint208"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"CLOCK_MODE()":{"details":"Machine-readable description of the clock as specified in ERC-6372."},"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"checkpoints(address,uint32)":{"details":"Get the `pos`-th checkpoint for `account`."},"clock()":{"details":"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting), in which case {CLOCK_MODE} should be overridden as well to match."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. Requirements: - `timepoint` must be in the past. If operating using block numbers, the block must be already mined."},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."},"name()":{"details":"Returns the name of the token."},"numCheckpoints(address)":{"details":"Get number of checkpoints for `account`."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also applies here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"script/Deploy.s.sol":"ASHA"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x926f1c9907b7dadb56dc920ae80dc473070989ab1f09b63e207ddc2d37110faa","urls":["bzz-raw://8a470cde3eb7aa7ff3ac0d71c6b8e06f394609b937a7edbc7b5fdfab18c2b710","dweb:/ipfs/QmUgmpmVzLXfmxhmnPjx9TUc2WdgNdBuucFZfh6fSciaFp"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Script.sol":{"keccak256":"0x7a4077e7ec41cfa429ac749c6a47c7966f7b14fca4f1e887444ea5bba5b34aa4","urls":["bzz-raw://90b5315ec93b390273e5987d1648c65c667a370385eebc7ae0f4c496b7b94da5","dweb:/ipfs/QmQ6fSxvf9t1BF6m8v18mrhh1byrSPcpCovSC5Sn1XZUns"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0xf1d63081e75349b88dbedfa4a86c352ea1d836c47f16cb88bd2369a3d4856435","urls":["bzz-raw://5453095168c381b55f3a4b476a7118e335af7a11ed4f3b84f70e1afec3f73847","dweb:/ipfs/Qmdcf2np9BtqXJ9ogKSTwtAUivQDMu8JJGWd5RDZJ2Adm8"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0x8fe4ebe49192e4dd929758bf7766eb3440271f527b1432c63a45c3b749f95480","urls":["bzz-raw://2257d39c8f07231c0a88c6b0c71c642fd1f4fcaf02f77cd3cacd0f6daed6dd99","dweb:/ipfs/Qme7fc2RLoW6SkjfyDJeTQBN7WHMvWAwJtzsF3AdetQu6h"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdConstants.sol":{"keccak256":"0xdee8966717b8a40d2b0c365441a89c89120c3e193c84c2ebc99d0e60c5593878","urls":["bzz-raw://f60cecc45ea29410454d09bc5b63e90fdd698dcba77fde49e342def1ff6c242b","dweb:/ipfs/QmYt3jSodT8sgQ2TUJ6RLDYj5shrDzcjxUr4pfR46w5Vum"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xce13663a643b3a1db69a03865bb0c97cd79d392074b2ee2f0bd8e2c808087a52","urls":["bzz-raw://e9df7a22fbf3444b5f9aa64c2fe785f752a90d1ea2ed8d025dd839eab0a245c0","dweb:/ipfs/QmT2oodWoGmPhjnRQCcRwmZmGXV1MoAfQZrheQT1WkAtvW"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0x5aaf49ec4cf5498a723390c0f3c62ce28afe8ba02b570c3e224d7c5efe08fde5","urls":["bzz-raw://3284776552ea449e01718dfed18f9f6347e3634b04d805568889d11326c415af","dweb:/ipfs/QmSuWDkcZJDA7FWuSXd7Zrfa7eX6xfkeYNh7RJdY12xP3L"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x29e6b935856e69c9130fcf8c6082168954600e57fe36d556fb4856ecc8b5f47a","urls":["bzz-raw://37bb6128cb15ab0cddc0b8d45075e4c813f85b808a265b1d5343f2096ae20931","dweb:/ipfs/QmVZDxrMNPPVJpHkwcJW7y5fAY6cE3pYqNQt4rxgPaSfn8"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x07d838e46fca86930c9a4060dcaeb5e6a4494de77af5bfbff485f0a8ea7decdc","urls":["bzz-raw://ad41d8f09e331a9540d6395de2d4bb507e9e0b1dc16e2613da5f46f1f673b1f3","dweb:/ipfs/QmUxDHt6tUNj5Fpm6Hwo6XRSnQbJjWJiHW3f3oaMALBcba"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x3e89e75f6fe9d8280d43ee990ffb6089cca508c779c1d0776aef49658d0775c4","urls":["bzz-raw://0efde29c751fcd42cde9ee9c90169e6688ded35c950859d92d374ace35a0c688","dweb:/ipfs/QmaHifK2K7shC9sn7oJXC8hYFDQqX5ZfeW1qSieYRkRezh"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x84e4392db5923ba590b6669af53418a9aad8c96bbf50d4622a5f813d29eddaea","urls":["bzz-raw://0c439c7b953249edeabefa68ed87542e82101c91766fd98b3215599c6d0aec9f","dweb:/ipfs/QmaVPk7riotTVTBjvd3YKGur1wDE1mEq7X1cVdieRm8JR5"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x34ab72d2cb477b3936063ba4b12dee8bb90f8e4546ea69d28786263e5474127d","urls":["bzz-raw://b8656011789e082e76fc0187ba65e7253eaaf9935f4c52f6d9c4c3e1acef6cde","dweb:/ipfs/QmRZufYS5bLPgdqUcXWn6Sk1UV4jT35rf3dZFPcimaAb9v"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console2.sol":{"keccak256":"0x27ce53a34b674228d19bd57c1a38f20818b5f88fccd0a69c88cdd086a0ded1d6","urls":["bzz-raw://9c6df63e9a81760f1aa357f4d24c66497d82e21d671ba95fc2fa0a394ed94210","dweb:/ipfs/QmTDkHF9rVY6z68fMX2wpahgW19zBRAbHR2Bagq4XPVeJb"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x946a8ca9f2e2c69d9d70280de4b599b6396c18770d290bc0506572e66a316e42","urls":["bzz-raw://6ba843a261e1c249858a0ebd81eb52e1519dc21ab630ca815697cf358375aceb","dweb:/ipfs/QmeJoNPhPD4oRwnirwDzzakapZrFQwsA7pQqQYwyDmGq42"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xfe5517cddd00783f6d2e1c1c17accb3f431c528ad54aef41369be603afbc784a","urls":["bzz-raw://fdfbd7c41003762dc4a9a46b9e9d2e705cb3cf2fb94549562630b9ac5431fba3","dweb:/ipfs/QmYpbmuY9JPEw4jWcyr2ht4ePbG1bg2yJEJa7rtVgLWEgK"],"license":"MIT OR Apache-2.0"},"lib/openzeppelin-contracts/contracts/governance/utils/IVotes.sol":{"keccak256":"0xdf466d4c6aa9da903595262100def9c6d960045b2ada0357edc47953bc5e18d6","urls":["bzz-raw://889512f1c9468f4d5e0f90f46b849709fd6fedab29b8377f64f6c3ee8373beee","dweb:/ipfs/QmefA385JqnvagxdFDpM3kxnxUtpJvkxkbTr66naQbAko9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/governance/utils/Votes.sol":{"keccak256":"0xf50e692fb9cbd847704a620953bc45c9771c139e3ecefb7e9ed3fae67b87768e","urls":["bzz-raw://32ab1407257dcf3550d9ddd6812da745ae3666c58adc96f245dfbaed1a66659d","dweb:/ipfs/QmTLG5Cz1Y8EkbomUVyfNRaDvJPh8g1DYtsddXS1fYVN1W"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol":{"keccak256":"0x8fbf3dddff71246ff9ffe21f9f0195a40583c4101c94c747691291f8b9e14ebd","urls":["bzz-raw://8d69db7468e95a56999df81f1c555215b3359483d610dbef17d898ef48801578","dweb:/ipfs/QmSPaSUsHDGqffinNgwajKp8RUdwj3GyW3VqWWNPfwH4b4"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC6372.sol":{"keccak256":"0xed0f7f14eb30c80a82855ddc3f7267bb6290546e5847a8ffc33f599ce4bc5eb6","urls":["bzz-raw://63fab00bbb42ce6f132a93d1c1e1cfed5175821521fb8746caa48129787d2435","dweb:/ipfs/QmVMBNhmVW1h35LsaYNyDChfyTwF8M3EW9T1JDFpsXiaQF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol":{"keccak256":"0x73d9dc25e0edb50767d29665bea0092e29b68776feb39c3f48781e4bab7cdda5","urls":["bzz-raw://242e910e44f0569e2cd8f5282556c790f15b2b3e4112290346d72cfbb9fb5e78","dweb:/ipfs/QmYejCe3DRxzXaxcZaW1JNbFDJyhHnYhPSLaVxjE3jBLSC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol":{"keccak256":"0xa8eecb7822f96130e5c64b5ac25c9e0394948f05c517d4e3dc8a15033679ee6a","urls":["bzz-raw://c64c0017e3973b4cd34dc39ba225010952c67f0d7193bc4d784719f9f7ef583a","dweb:/ipfs/QmYNenQ2avzBZDk1PMjQuZQMh9CVMuUrK7Rrj8JH1gqPUS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x53befc41288eaa87edcd3a7be7e8475a32e44c6a29f9bf52fae789781301d9ff","urls":["bzz-raw://a1d7fab53c4ceaf42391b83d9b36d7e9cc524a8da125cffdcd32c56560f9d1c9","dweb:/ipfs/QmaRZdVhQdqNXofeimibkBG65q9GVcXVZEGpycwwX3znC6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33","urls":["bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147","dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Nonces.sol":{"keccak256":"0x0082767004fca261c332e9ad100868327a863a88ef724e844857128845ab350f","urls":["bzz-raw://132dce9686a54e025eb5ba5d2e48208f847a1ec3e60a3e527766d7bf53fb7f9e","dweb:/ipfs/QmXn1a2nUZMpu2z6S88UoTfMVtY2YNh86iGrzJDYmMkKeZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ShortStrings.sol":{"keccak256":"0x0768b3bdb701fe4994b3be932ca8635551dfebe04c645f77500322741bebf57c","urls":["bzz-raw://a2059f9ca8d3c11c49ca49fc9c5fb070f18cc85d12a7688e45322ed0e2a1cb99","dweb:/ipfs/QmS2gwX51RAvSw4tYbjHccY2CKbh2uvDzqHLAFXdsddgia"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a","urls":["bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a","dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x360cf86214a764694dae1522a38200b1737fe90e46dcf56a0f89de143071cc20","urls":["bzz-raw://2e393290a46ca6d1fa1addb40709d26e1d250638ab6acdd103b5af21768ebc7b","dweb:/ipfs/QmPwT3tXwQ9NbGtZ99XRq7sr8LCQP8XaCrzw49JdXGn7us"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/EIP712.sol":{"keccak256":"0x8440117ea216b97a7bad690a67449fd372c840d073c8375822667e14702782b4","urls":["bzz-raw://ebb6645995b8290d0b9121825e2533e4e28977b2c6befee76e15e58f0feb61d4","dweb:/ipfs/QmVR72j6kL5R2txuihieDev1FeTi4KWJS1Z6ABbwL3Qtph"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x6abeed5940e1da7bb329e458db9a1c5c4ea6f86d651b952af99c6bddcd6bbb94","urls":["bzz-raw://5fe75e9a6b759c5d7fd82fb59bd4f58c672b36f0a69b84f4789b7c7895d3e61c","dweb:/ipfs/QmX28wsir8w5sS3acfJMNHcBwoPsDpqCu7WDkPnUWLMNiZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c","urls":["bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c","dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/Checkpoints.sol":{"keccak256":"0xffca8f1d67bf069a2237a4631c6af36b141f33fb8e894ef58e6a4f72fc098f77","urls":["bzz-raw://4ff8f533667f82b8c3ddd46e6bc26f7c7c1eb73890a2136393aab8a0043e09e6","dweb:/ipfs/QmSPHM9fj6VL2V5owMbARubCZKe6d6kho9CVGEcpzkELNL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x3765cc1833212456000f02d5de0478c2055b5f318e27032537c6d47c91e68b05","urls":["bzz-raw://3e77d9fd11b604fb3820ba6794f1e2516deb1093dada1c7225da6c46def95256","dweb:/ipfs/QmcqQo9mmD5kekxFtJcvZTyCPaEgxQsSVfp7wLiE91fdAc"],"license":"MIT"},"script/Deploy.s.sol":{"keccak256":"0xbe4ec210c02314015cede7b5b60c017e3d4e182df2c54be1486c8f073481b333","urls":["bzz-raw://f35d5128603149bc22565517467d9ab4e5a6379454bcd636dcfeb9dd32974215","dweb:/ipfs/QmZ3UwQWf2eVQ7ht6znhWM7iQPR3BEbAK5DbRRJQiNppDm"],"license":"MIT"}},"version":1},"id":42} |