0 txs
0 calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
checkpoints
viewfunction checkpoints(address account, uint32 pos) view returns (tuple)
decimals
viewfunction decimals() view returns (uint8)
delegates
viewfunction delegates(address account) view returns (address)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
getPastTotalSupply
viewfunction getPastTotalSupply(uint256 blockNumber) view returns (uint256)
getPastVotes
viewfunction getPastVotes(address account, uint256 blockNumber) view returns (uint256)
getVotes
viewfunction getVotes(address account) view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
numCheckpoints
viewfunction numCheckpoints(address account) view returns (uint32)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
delegate
nonpayablefunction delegate(address delegatee)
delegateBySig
nonpayablefunction delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DelegateChanged
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate)
DelegateVotesChanged
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
No errors.
creation bytecode
0x6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120908152503480156200003a57600080fd5b506040518060400160405280600581526020017f5041504552000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f50415045520000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f505052000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200012c92919062000b79565b5080600490805190602001906200014592919062000b79565b50505060008280519060200120905060008280519060200120905060007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90508260c081815250508160e081815250504660a08181525050620001b08184846200020c60201b60201c565b608081815250508061010081815250505050505050506200020633620001db6200024860201b60201c565b600a620001e9919062000ef0565b633b9aca00620001fa91906200102d565b6200025160201b60201c565b62001304565b600083838346306040516020016200022995949392919062000cf8565b6040516020818303038152906040528051906020012090509392505050565b60006012905090565b6200026882826200026c60201b620010231760201c565b5050565b6200028382826200032a60201b620010b01760201c565b62000293620004a360201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16620002c1620004c760201b60201c565b111562000305576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002fc9062000d55565b60405180910390fd5b620003246008620004d160201b620012101783620004e960201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200039d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003949062000dbb565b60405180910390fd5b620003b1600083836200079a60201b60201c565b8060026000828254620003c5919062000e38565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200041c919062000e38565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000483919062000ddd565b60405180910390a36200049f600083836200079f60201b60201c565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000600254905090565b60008183620004e1919062000e38565b905092915050565b600080600085805490509050600081146200055e57856001826200050e91906200108e565b81548110620005225762000521620011b2565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1662000561565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692506200058d83858760201c565b9150600081118015620005e657504386600183620005ac91906200108e565b81548110620005c057620005bf620011b2565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b1562000687576200060282620007bc60201b620012261760201c565b866001836200061291906200108e565b81548110620006265762000625620011b2565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555062000791565b856040518060400160405280620006a9436200082a60201b620012911760201c565b63ffffffff168152602001620006ca85620007bc60201b620012261760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b505050565b620007b78383836200088060201b620012e41760201c565b505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000822576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008199062000d77565b60405180910390fd5b819050919050565b600063ffffffff801682111562000878576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200086f9062000d99565b60405180910390fd5b819050919050565b62000898838383620008d060201b6200130f1760201c565b620008cb620008ad84620008d560201b60201c565b620008be84620008d560201b60201c565b836200093e60201b60201c565b505050565b505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156200097b5750600081115b1562000b5c57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000a6e5760008062000a15600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002062000b6160201b620013141785620004e960201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000a6392919062000dfa565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000b5b5760008062000b02600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620004d160201b620012101785620004e960201b60201c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000b5092919062000dfa565b60405180910390a250505b5b505050565b6000818362000b7191906200108e565b905092915050565b82805462000b87906200111e565b90600052602060002090601f01602090048101928262000bab576000855562000bf7565b82601f1062000bc657805160ff191683800117855562000bf7565b8280016001018555821562000bf7579182015b8281111562000bf657825182559160200191906001019062000bd9565b5b50905062000c06919062000c0a565b5090565b5b8082111562000c2557600081600090555060010162000c0b565b5090565b62000c3481620010c9565b82525050565b62000c4581620010dd565b82525050565b600062000c5a60308362000e27565b915062000c6782620011ee565b604082019050919050565b600062000c8160278362000e27565b915062000c8e826200123d565b604082019050919050565b600062000ca860268362000e27565b915062000cb5826200128c565b604082019050919050565b600062000ccf601f8362000e27565b915062000cdc82620012db565b602082019050919050565b62000cf28162001107565b82525050565b600060a08201905062000d0f600083018862000c3a565b62000d1e602083018762000c3a565b62000d2d604083018662000c3a565b62000d3c606083018562000ce7565b62000d4b608083018462000c29565b9695505050505050565b6000602082019050818103600083015262000d708162000c4b565b9050919050565b6000602082019050818103600083015262000d928162000c72565b9050919050565b6000602082019050818103600083015262000db48162000c99565b9050919050565b6000602082019050818103600083015262000dd68162000cc0565b9050919050565b600060208201905062000df4600083018462000ce7565b92915050565b600060408201905062000e11600083018562000ce7565b62000e20602083018462000ce7565b9392505050565b600082825260208201905092915050565b600062000e458262001107565b915062000e528362001107565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e8a5762000e8962001154565b5b828201905092915050565b6000808291508390505b600185111562000ee75780860481111562000ebf5762000ebe62001154565b5b600185161562000ecf5780820291505b808102905062000edf85620011e1565b945062000e9f565b94509492505050565b600062000efd8262001107565b915062000f0a8362001111565b925062000f397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f41565b905092915050565b60008262000f53576001905062001026565b8162000f63576000905062001026565b816001811462000f7c576002811462000f875762000fbd565b600191505062001026565b60ff84111562000f9c5762000f9b62001154565b5b8360020a91508482111562000fb65762000fb562001154565b5b5062001026565b5060208310610133831016604e8410600b841016171562000ff75782820a90508381111562000ff15762000ff062001154565b5b62001026565b62001006848484600162000e95565b9250905081840481111562001020576200101f62001154565b5b81810290505b9392505050565b60006200103a8262001107565b9150620010478362001107565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001083576200108262001154565b5b828202905092915050565b60006200109b8262001107565b9150620010a88362001107565b925082821015620010be57620010bd62001154565b5b828203905092915050565b6000620010d682620010e7565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200113757607f821691505b602082108114156200114e576200114d62001183565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008160011c9050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60805160a05160c05160e051610100516101205161381a620013546000396000610d91015260006117d501526000611817015260006117f601526000611782015260006117aa015261381a6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063a457c2d71161007c578063a457c2d7146103d9578063a9059cbb14610409578063c3cda52014610439578063d505accf14610455578063dd62ed3e14610471578063f1127ed8146104a157610142565b806370a08231146102fb5780637ecebe001461032b5780638e539e8c1461035b57806395d89b411461038b5780639ab24eb0146103a957610142565b80633644e5151161010a5780633644e51514610201578063395093511461021f5780633a46b1a81461024f578063587cde1e1461027f5780635c19a95c146102af5780636fcfff45146102cb57610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b3578063313ce567146101e3575b600080fd5b61014f6104d1565b60405161015c9190612c2c565b60405180910390f35b61017f600480360381019061017a9190612556565b610563565b60405161018c9190612ab8565b60405180910390f35b61019d610581565b6040516101aa9190612ee9565b60405180910390f35b6101cd60048036038101906101c89190612461565b61058b565b6040516101da9190612ab8565b60405180910390f35b6101eb610683565b6040516101f89190612f48565b60405180910390f35b61020961068c565b6040516102169190612ad3565b60405180910390f35b61023960048036038101906102349190612556565b61069b565b6040516102469190612ab8565b60405180910390f35b61026960048036038101906102649190612556565b610747565b6040516102769190612ee9565b60405180910390f35b610299600480360381019061029491906123f4565b6107db565b6040516102a69190612a9d565b60405180910390f35b6102c960048036038101906102c491906123f4565b610844565b005b6102e560048036038101906102e091906123f4565b610858565b6040516102f29190612f2d565b60405180910390f35b610315600480360381019061031091906123f4565b6108ac565b6040516103229190612ee9565b60405180910390f35b610345600480360381019061034091906123f4565b6108f4565b6040516103529190612ee9565b60405180910390f35b61037560048036038101906103709190612663565b610944565b6040516103829190612ee9565b60405180910390f35b61039361099a565b6040516103a09190612c2c565b60405180910390f35b6103c360048036038101906103be91906123f4565b610a2c565b6040516103d09190612ee9565b60405180910390f35b6103f360048036038101906103ee9190612556565b610b3d565b6040516104009190612ab8565b60405180910390f35b610423600480360381019061041e9190612556565b610c28565b6040516104309190612ab8565b60405180910390f35b610453600480360381019061044e9190612596565b610c46565b005b61046f600480360381019061046a91906124b4565b610d4a565b005b61048b60048036038101906104869190612421565b610e8c565b6040516104989190612ee9565b60405180910390f35b6104bb60048036038101906104b69190612623565b610f13565b6040516104c89190612ece565b60405180910390f35b6060600380546104e09061310f565b80601f016020809104026020016040519081016040528092919081815260200182805461050c9061310f565b80156105595780601f1061052e57610100808354040283529160200191610559565b820191906000526020600020905b81548152906001019060200180831161053c57829003601f168201915b5050505050905090565b600061057761057061132a565b8484611332565b6001905092915050565b6000600254905090565b60006105988484846114fd565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e361132a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065a90612dce565b60405180910390fd5b6106778561066f61132a565b858403611332565b60019150509392505050565b60006012905090565b600061069661177e565b905090565b600061073d6106a861132a565b8484600160006106b661132a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107389190612f8a565b611332565b6001905092915050565b600043821061078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612c8e565b60405180910390fd5b6107d3600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083611841565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61085561084f61132a565b8261194d565b50565b60006108a5600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611291565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061093d600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611a67565b9050919050565b6000438210610988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097f90612c8e565b60405180910390fd5b610993600883611841565b9050919050565b6060600480546109a99061310f565b80601f01602080910402602001604051908101604052809291908181526020018280546109d59061310f565b8015610a225780601f106109f757610100808354040283529160200191610a22565b820191906000526020600020905b815481529060010190602001808311610a0557829003601f168201915b5050505050905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008114610b1457600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182610ac89190613011565b81548110610ad957610ad8613207565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610b17565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b60008060016000610b4c61132a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0090612e8e565b60405180910390fd5b610c1d610c1461132a565b85858403611332565b600191505092915050565b6000610c3c610c3561132a565b84846114fd565b6001905092915050565b83421115610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8090612cae565b60405180910390fd5b6000610ceb610ce37fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf898989604051602001610cc89493929190612b4f565b60405160208183030381529060405280519060200120611a75565b858585611a8f565b9050610cf681611aba565b8614610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e90612cee565b60405180910390fd5b610d41818861194d565b50505050505050565b83421115610d8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8490612d2e565b60405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000888888610dbc8c611aba565b89604051602001610dd296959493929190612aee565b6040516020818303038152906040528051906020012090506000610df582611a75565b90506000610e0582878787611a8f565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6c90612dae565b60405180910390fd5b610e808a8a8a611332565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f1b61234d565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff1681548110610f7257610f71613207565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b61102d82826110b0565b611035611b18565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661105b610581565b111561109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612dee565b60405180910390fd5b6110aa600861121083611b3c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611120576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111790612eae565b60405180910390fd5b61112c60008383611db4565b806002600082825461113e9190612f8a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111939190612f8a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f89190612ee9565b60405180910390a361120c60008383611db9565b5050565b6000818361121e9190612f8a565b905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8016821115611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612e0e565b60405180910390fd5b819050919050565b600063ffffffff80168211156112dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d390612e4e565b60405180910390fd5b819050919050565b6112ef83838361130f565b61130a6112fb846107db565b611304846107db565b83611dc9565b505050565b505050565b600081836113229190613011565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139990612e6e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140990612d0e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114f09190612ee9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561156d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156490612e2e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d490612c6e565b60405180910390fd5b6115e8838383611db4565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561166e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166590612d4e565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117019190612f8a565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117659190612ee9565b60405180910390a3611778848484611db9565b50505050565b60007f00000000000000000000000000000000000000000000000000000000000000004614156117d0577f0000000000000000000000000000000000000000000000000000000000000000905061183e565b61183b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611fc2565b90505b90565b6000808380549050905060005b818110156118c05760006118628284611ffc565b90508486828154811061187857611877613207565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff1611156118aa578092506118ba565b6001816118b79190612f8a565b91505b5061184e565b6000821461192257846001836118d69190613011565b815481106118e7576118e6613207565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611925565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250505092915050565b6000611958836107db565b90506000611965846108ac565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611a61828483611dc9565b50505050565b600081600001549050919050565b6000611a88611a8261177e565b83612022565b9050919050565b6000806000611aa087878787612055565b91509150611aad81612162565b8192505050949350505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611b0781611a67565b9150611b1281612337565b50919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b60008060008580549050905060008114611baa5785600182611b5e9190613011565b81548110611b6f57611b6e613207565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611bad565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250611bdb83858763ffffffff16565b9150600081118015611c2e57504386600183611bf79190613011565b81548110611c0857611c07613207565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b15611cbb57611c3c82611226565b86600183611c4a9190613011565b81548110611c5b57611c5a613207565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550611dab565b856040518060400160405280611cd043611291565b63ffffffff168152602001611ce485611226565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b505050565b611dc48383836112e4565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e055750600081115b15611fbd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ee357600080611e8c600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061131485611b3c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ed8929190612f04565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611fbc57600080611f65600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061121085611b3c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611fb1929190612f04565b60405180910390a250505b5b505050565b60008383834630604051602001611fdd959493929190612b94565b6040516020818303038152906040528051906020012090509392505050565b6000600282841861200d9190612fe0565b82841661201a9190612f8a565b905092915050565b60008282604051602001612037929190612a66565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612090576000600391509150612159565b601b8560ff16141580156120a85750601c8560ff1614155b156120ba576000600491509150612159565b6000600187878787604051600081526020016040526040516120df9493929190612be7565b6020604051602081039080840390855afa158015612101573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561215057600060019250925050612159565b80600092509250505b94509492505050565b60006004811115612176576121756131a9565b5b816004811115612189576121886131a9565b5b141561219457612334565b600160048111156121a8576121a76131a9565b5b8160048111156121bb576121ba6131a9565b5b14156121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390612c4e565b60405180910390fd5b600260048111156122105761220f6131a9565b5b816004811115612223576122226131a9565b5b1415612264576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225b90612cce565b60405180910390fd5b60036004811115612278576122776131a9565b5b81600481111561228b5761228a6131a9565b5b14156122cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c390612d6e565b60405180910390fd5b6004808111156122df576122de6131a9565b5b8160048111156122f2576122f16131a9565b5b1415612333576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232a90612d8e565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b60008135905061239a81613771565b92915050565b6000813590506123af81613788565b92915050565b6000813590506123c48161379f565b92915050565b6000813590506123d9816137b6565b92915050565b6000813590506123ee816137cd565b92915050565b60006020828403121561240a57612409613236565b5b60006124188482850161238b565b91505092915050565b6000806040838503121561243857612437613236565b5b60006124468582860161238b565b92505060206124578582860161238b565b9150509250929050565b60008060006060848603121561247a57612479613236565b5b60006124888682870161238b565b93505060206124998682870161238b565b92505060406124aa868287016123b5565b9150509250925092565b600080600080600080600060e0888a0312156124d3576124d2613236565b5b60006124e18a828b0161238b565b97505060206124f28a828b0161238b565b96505060406125038a828b016123b5565b95505060606125148a828b016123b5565b94505060806125258a828b016123df565b93505060a06125368a828b016123a0565b92505060c06125478a828b016123a0565b91505092959891949750929550565b6000806040838503121561256d5761256c613236565b5b600061257b8582860161238b565b925050602061258c858286016123b5565b9150509250929050565b60008060008060008060c087890312156125b3576125b2613236565b5b60006125c189828a0161238b565b96505060206125d289828a016123b5565b95505060406125e389828a016123b5565b94505060606125f489828a016123df565b935050608061260589828a016123a0565b92505060a061261689828a016123a0565b9150509295509295509295565b6000806040838503121561263a57612639613236565b5b60006126488582860161238b565b9250506020612659858286016123ca565b9150509250929050565b60006020828403121561267957612678613236565b5b6000612687848285016123b5565b91505092915050565b61269981613045565b82525050565b6126a881613057565b82525050565b6126b781613063565b82525050565b6126ce6126c982613063565b613141565b82525050565b60006126df82612f63565b6126e98185612f6e565b93506126f98185602086016130dc565b6127028161323b565b840191505092915050565b600061271a601883612f6e565b91506127258261324c565b602082019050919050565b600061273d602383612f6e565b915061274882613275565b604082019050919050565b6000612760601f83612f6e565b915061276b826132c4565b602082019050919050565b6000612783601d83612f6e565b915061278e826132ed565b602082019050919050565b60006127a6601f83612f6e565b91506127b182613316565b602082019050919050565b60006127c9601983612f6e565b91506127d48261333f565b602082019050919050565b60006127ec602283612f6e565b91506127f782613368565b604082019050919050565b600061280f600283612f7f565b915061281a826133b7565b600282019050919050565b6000612832601d83612f6e565b915061283d826133e0565b602082019050919050565b6000612855602683612f6e565b915061286082613409565b604082019050919050565b6000612878602283612f6e565b915061288382613458565b604082019050919050565b600061289b602283612f6e565b91506128a6826134a7565b604082019050919050565b60006128be601e83612f6e565b91506128c9826134f6565b602082019050919050565b60006128e1602883612f6e565b91506128ec8261351f565b604082019050919050565b6000612904603083612f6e565b915061290f8261356e565b604082019050919050565b6000612927602783612f6e565b9150612932826135bd565b604082019050919050565b600061294a602583612f6e565b91506129558261360c565b604082019050919050565b600061296d602683612f6e565b91506129788261365b565b604082019050919050565b6000612990602483612f6e565b915061299b826136aa565b604082019050919050565b60006129b3602583612f6e565b91506129be826136f9565b604082019050919050565b60006129d6601f83612f6e565b91506129e182613748565b602082019050919050565b604082016000820151612a026000850182612a39565b506020820151612a156020850182612a1b565b50505050565b612a248161308d565b82525050565b612a33816130b5565b82525050565b612a42816130bf565b82525050565b612a51816130bf565b82525050565b612a60816130cf565b82525050565b6000612a7182612802565b9150612a7d82856126bd565b602082019150612a8d82846126bd565b6020820191508190509392505050565b6000602082019050612ab26000830184612690565b92915050565b6000602082019050612acd600083018461269f565b92915050565b6000602082019050612ae860008301846126ae565b92915050565b600060c082019050612b0360008301896126ae565b612b106020830188612690565b612b1d6040830187612690565b612b2a6060830186612a2a565b612b376080830185612a2a565b612b4460a0830184612a2a565b979650505050505050565b6000608082019050612b6460008301876126ae565b612b716020830186612690565b612b7e6040830185612a2a565b612b8b6060830184612a2a565b95945050505050565b600060a082019050612ba960008301886126ae565b612bb660208301876126ae565b612bc360408301866126ae565b612bd06060830185612a2a565b612bdd6080830184612690565b9695505050505050565b6000608082019050612bfc60008301876126ae565b612c096020830186612a57565b612c1660408301856126ae565b612c2360608301846126ae565b95945050505050565b60006020820190508181036000830152612c4681846126d4565b905092915050565b60006020820190508181036000830152612c678161270d565b9050919050565b60006020820190508181036000830152612c8781612730565b9050919050565b60006020820190508181036000830152612ca781612753565b9050919050565b60006020820190508181036000830152612cc781612776565b9050919050565b60006020820190508181036000830152612ce781612799565b9050919050565b60006020820190508181036000830152612d07816127bc565b9050919050565b60006020820190508181036000830152612d27816127df565b9050919050565b60006020820190508181036000830152612d4781612825565b9050919050565b60006020820190508181036000830152612d6781612848565b9050919050565b60006020820190508181036000830152612d878161286b565b9050919050565b60006020820190508181036000830152612da78161288e565b9050919050565b60006020820190508181036000830152612dc7816128b1565b9050919050565b60006020820190508181036000830152612de7816128d4565b9050919050565b60006020820190508181036000830152612e07816128f7565b9050919050565b60006020820190508181036000830152612e278161291a565b9050919050565b60006020820190508181036000830152612e478161293d565b9050919050565b60006020820190508181036000830152612e6781612960565b9050919050565b60006020820190508181036000830152612e8781612983565b9050919050565b60006020820190508181036000830152612ea7816129a6565b9050919050565b60006020820190508181036000830152612ec7816129c9565b9050919050565b6000604082019050612ee360008301846129ec565b92915050565b6000602082019050612efe6000830184612a2a565b92915050565b6000604082019050612f196000830185612a2a565b612f266020830184612a2a565b9392505050565b6000602082019050612f426000830184612a48565b92915050565b6000602082019050612f5d6000830184612a57565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000612f95826130b5565b9150612fa0836130b5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fd557612fd461314b565b5b828201905092915050565b6000612feb826130b5565b9150612ff6836130b5565b9250826130065761300561317a565b5b828204905092915050565b600061301c826130b5565b9150613027836130b5565b92508282101561303a5761303961314b565b5b828203905092915050565b60006130508261306d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b838110156130fa5780820151818401526020810190506130df565b83811115613109576000848401525b50505050565b6000600282049050600182168061312757607f821691505b6020821081141561313b5761313a6131d8565b5b50919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61377a81613045565b811461378557600080fd5b50565b61379181613063565b811461379c57600080fd5b50565b6137a8816130b5565b81146137b357600080fd5b50565b6137bf816130bf565b81146137ca57600080fd5b50565b6137d6816130cf565b81146137e157600080fd5b5056fea264697066735822122048ec1b1a1faf5311f0a60b45165c7ef62d053f08f380a39ab3cf3ed1c45f846d64736f6c63430008070033