0 txs
1 call
constructor
constructor(address _admin, uint32 _secondsTimeLocked)
functions
BYPASS_TIMELOCK_ROLE
viewfunction BYPASS_TIMELOCK_ROLE() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
EXECUTOR_ROLE
viewfunction EXECUTOR_ROLE() view returns (bytes32)
getRoleAddresses
viewfunction getRoleAddresses(bytes32 _role) view returns (address[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleFunctionSelectors
viewfunction getRoleFunctionSelectors(bytes32 _role) view returns (bytes32[])
getRoles
viewfunction getRoles() view returns (bytes32[])
getRoleToAddressFunctionSelectors
viewfunction getRoleToAddressFunctionSelectors(bytes32 _role, address _destination) view returns (bytes32[])
getTransactionCount
viewfunction getTransactionCount(bool _pending, bool _executed) view returns (uint256)
getTransactionIds
viewfunction getTransactionIds(uint256 _from, uint256 _to, bool _pending, bool _executed) view returns (uint256[])
getUserToRoles
viewfunction getUserToRoles(address _user) view returns (bytes32[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isRole
viewfunction isRole(bytes32 _role) view returns (bool)
isTimelockComplete
viewfunction isTimelockComplete(uint256 _transactionId) view returns (bool)
isUserApprovedToSubmitTransaction
viewfunction isUserApprovedToSubmitTransaction(address _user, address _destination, bytes4 _selector) view returns (bool)
LISTING_COMMITTEE_ROLE
viewfunction LISTING_COMMITTEE_ROLE() view returns (bytes32)
secondsTimeLocked
viewfunction secondsTimeLocked() view returns (uint32)
SECURITY_COUNCIL_ROLE
viewfunction SECURITY_COUNCIL_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
transactionCount
viewfunction transactionCount() view returns (uint256)
transactions
viewfunction transactions(uint256) view returns (address destination, bytes data, uint256 creationTimestamp, bool executed, bool cancelled)
executeTransaction
nonpayablefunction executeTransaction(uint256 _transactionId) returns (bytes)
executeTransactions
nonpayablefunction executeTransactions(uint256[] transactionIds) returns (bytes[])
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
ownerAddRole
nonpayablefunction ownerAddRole(bytes32 _role)
ownerAddRoleAddresses
nonpayablefunction ownerAddRoleAddresses(bytes32 _role, address[] _addresses)
ownerAddRoleFunctionSelectors
nonpayablefunction ownerAddRoleFunctionSelectors(bytes32 _role, bytes4[] _selectors)
ownerAddRoleToAddressFunctionSelectors
nonpayablefunction ownerAddRoleToAddressFunctionSelectors(bytes32 _role, address _destination, bytes4[] _selectors)
ownerCancelTransaction
nonpayablefunction ownerCancelTransaction(uint256 transactionId)
ownerRemoveRole
nonpayablefunction ownerRemoveRole(bytes32 _role)
ownerRemoveRoleAddresses
nonpayablefunction ownerRemoveRoleAddresses(bytes32 _role, address[] _addresses)
ownerRemoveRoleFunctionSelectors
nonpayablefunction ownerRemoveRoleFunctionSelectors(bytes32 _role, bytes4[] _selectors)
ownerRemoveRoleToAddressFunctionSelectors
nonpayablefunction ownerRemoveRoleToAddressFunctionSelectors(bytes32 _role, address _destination, bytes4[] _selectors)
ownerSetSecondsTimeLocked
nonpayablefunction ownerSetSecondsTimeLocked(uint32 _secondsTimeLocked)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
submitTransaction
nonpayablefunction submitTransaction(address _destination, bytes _data) returns (uint256)
submitTransactionAndExecute
nonpayablefunction submitTransactionAndExecute(address _destination, bytes _data) returns (bytes)
events
AddressesAddedToRole
event AddressesAddedToRole(bytes32 indexed _role, address[] _address)
AddressesRemovedFromRole
event AddressesRemovedFromRole(bytes32 indexed _role, address[] _address)
FunctionSelectorsAddedToAddress
event FunctionSelectorsAddedToAddress(bytes32 indexed _role, address _address, bytes4[] _selectors)
FunctionSelectorsAddedToRole
event FunctionSelectorsAddedToRole(bytes32 indexed _role, bytes4[] _selectors)
FunctionSelectorsRemovedFromAddress
event FunctionSelectorsRemovedFromAddress(bytes32 indexed _role, address _address, bytes4[] _selectors)
FunctionSelectorsRemovedFromRole
event FunctionSelectorsRemovedFromRole(bytes32 indexed _role, bytes4[] _selectors)
RoleAdded
event RoleAdded(bytes32 indexed _role)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRemoved
event RoleRemoved(bytes32 indexed _role)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
SecondsTimeLockedChanged
event SecondsTimeLockedChanged(uint32 _secondsTimeLocked)
TransactionCancelled
event TransactionCancelled(uint256 indexed transactionId)
TransactionExecuted
event TransactionExecuted(uint256 indexed transactionId)
TransactionSubmitted
event TransactionSubmitted(uint256 indexed transactionId)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200378138038062003781833981016040819052620000349162000616565b6200006f7f21bee6ac0139693d77752bbffb07a6fab05816a10c9d8daed537913d19d5e9216001620000eb60201b620013f31790919060201c565b506200008e6000801b6001620000eb60201b620013f31790919060201c565b50620000ca7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636001620000eb60201b620013f31790919060201c565b50620000d860008362000102565b620000e38162000193565b505062000878565b6000620000f98383620001e5565b90505b92915050565b8162000145620001128262000237565b6c2237b637b6b4ba32a7bbb732b960991b6b496e76616c696420726f6c6560a01b846200025460201b620013ff1760201c565b6001600160a01b038216600090815260036020908152604090912062000176918590620013f3620000eb821b17901c565b506200018e8383620002da60201b620014711760201c565b505050565b6007805463ffffffff191663ffffffff83161790556040517fee7766611247b9d3ae2a5fd3734ffc2ad263561c6c2f5f714435780ea413c0bd90620001da90839062000667565b60405180910390a150565b60008181526001830160205260408120546200022e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620000fc565b506000620000fc565b6000620000fc8260016200037b60201b620014f51790919060201c565b83620002d457620002658362000394565b6101d160f51b620002768462000394565b61080f60f21b62000287856200043b565b604051620002a3959493929190601f60f91b90602001620006ed565b60408051601f198184030181529082905262461bcd60e51b8252620002cb916004016200078c565b60405180910390fd5b50505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000377576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003363390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60008181526001830160205260408120541515620000f9565b6060600082604051602001620003ab9190620007a6565b60408051601f19818403018152919052905060205b8015620004205780620003d381620007d3565b915050818181518110620003eb57620003eb620007ed565b01602001516001600160f81b031916156200041a5760006200040f82600162000803565b835250909392505050565b620003c0565b5060408051600080825260208201909252905b509392505050565b604080516042808252608082019092526060918391600091602082018180368337019050509050603060f81b816000815181106200047d576200047d620007ed565b60200101906001600160f81b031916908160001a905350607860f81b81600181518110620004af57620004af620007ed565b60200101906001600160f81b031916908160001a90535060005b602081101562000433576000620004e28260026200081e565b9050620004f2600f851662000594565b836200050083604162000840565b81518110620005135762000513620007ed565b60200101906001600160f81b031916908160001a90535060049390931c926200053f600f851662000594565b836200054d83604062000840565b81518110620005605762000560620007ed565b60200101906001600160f81b031916908160001a9053505060049290921c91806200058b816200085a565b915050620004c9565b6000600a821015620005b657620005ad60308362000803565b60f81b92915050565b620005ad60578362000803565b60006001600160a01b038216620000fc565b620005e081620005c3565b8114620005ec57600080fd5b50565b8051620000fc81620005d5565b63ffffffff8116620005e0565b8051620000fc81620005fc565b600080604083850312156200062e576200062e600080fd5b60006200063c8585620005ef565b92505060206200064f8582860162000609565b9150509250929050565b63ffffffff81165b82525050565b60208101620000fc828462000659565b60005b83811015620006945781810151838201526020016200067a565b83811115620002d45750506000910152565b6000620006b1825190565b620006c181856020860162000677565b9290920192915050565b6001600160f01b0319811662000661565b6001600160f81b0319811662000661565b6000620006fb8289620006a6565b9150620007098288620006cb565b6002820191506200071b8287620006a6565b9150620007298286620006cb565b6002820191506200073b8285620006a6565b9150620007498284620006dc565b506001019695505050505050565b600062000762825190565b8084526020840193506200077b81856020860162000677565b601f01601f19169290920192915050565b60208082528101620000f9818462000757565b8062000661565b6000620007b482846200079f565b50602001919050565b634e487b7160e01b600052601160045260246000fd5b600081620007e557620007e5620007bd565b506000190190565b634e487b7160e01b600052603260045260246000fd5b60008219821115620008195762000819620007bd565b500190565b60008160001904831182151516156200083b576200083b620007bd565b500290565b600082821015620008555762000855620007bd565b500390565b6000600019821415620008715762000871620007bd565b5060010190565b612ef980620008886000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c806373f94dad11610130578063b5f42a10116100b8578063dfcea4c61161007c578063dfcea4c614610559578063e1a3b3511461056c578063e9dd7ffc1461057f578063eb650f3a14610592578063ee22610b146105a557600080fd5b8063b5f42a10146104e3578063b77bf60014610503578063b9fe5cf71461050c578063bbf1b2f114610533578063d547741f1461054657600080fd5b8063944c22e5116100ff578063944c22e51461045d5780639ace38c214610484578063a217fddf146104a8578063a3ee1589146104b0578063a8abe69a146104c357600080fd5b806373f94dad146104045780637dc2bcd2146104175780638f1de9f81461043757806391d148541461044a57600080fd5b80632f2ff15d116101be578063386a940611610182578063386a9406146103a357806354228a79146103c357806354741525146103d657806360b8a509146103e957806371061398146103fc57600080fd5b80632f2ff15d146103265780632f848f4014610339578063314276c01461036057806336568abe1461037357806337bd78a01461038657600080fd5b80630bf1c29c116102055780630bf1c29c146102aa57806311f944e1146102ca57806315fb7161146102dd57806322c1802f146102f0578063248a9ca31461030357600080fd5b806301ffc9a7146102375780630247887e14610260578063070858b91461027557806307bd026514610288575b600080fd5b61024a610245366004612218565b6105b8565b6040516102579190612243565b60405180910390f35b61027361026e366004612268565b6105ef565b005b6102736102833660046122ec565b610607565b61029d600080516020612ea483398151915281565b604051610257919061234e565b6102bd6102b8366004612474565b6106ee565b604051610257919061252a565b61024a6102d836600461253b565b61070f565b6102736102eb36600461253b565b61071c565b6102736102fe36600461253b565b61079f565b61029d61031136600461253b565b60009081526020819052604090206001015490565b61027361033436600461255c565b6108ab565b61029d7f21bee6ac0139693d77752bbffb07a6fab05816a10c9d8daed537913d19d5e92181565b61027361036e3660046122ec565b6108d5565b61027361038136600461255c565b61097c565b6007546103969063ffffffff1681565b604051610257919061259b565b6103b66103b136600461255c565b6109b7565b6040516102579190612606565b6103b66103d1366004612617565b6109ec565b61029d6103e436600461264b565b610a10565b6102736103f736600461267e565b610ab0565b6103b6610b87565b61027361041236600461253b565b610b98565b61042a61042536600461253b565b610bde565b604051610257919061273f565b6103b661044536600461253b565b610bf8565b61024a61045836600461255c565b610c12565b61029d7f7d6809b42c3bbf5bb9cd565a8c81693c1b223e70a59821b21292ce477dafa78981565b61049761049236600461253b565b610c3b565b604051610257959493929190612750565b61029d600081565b61024a6104be366004612799565b610d03565b6104d66104d13660046127e9565b610dfa565b604051610257919061288b565b6104f66104f136600461293f565b610fb6565b60405161025791906129ec565b61029d60095481565b61029d7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a3211881565b61029d610541366004612474565b6110c9565b61027361055436600461255c565b61116f565b61024a61056736600461253b565b611194565b61027361057a3660046122ec565b6111c6565b61027361058d3660046122ec565b61126e565b6102736105a036600461267e565b611312565b6102bd6105b336600461253b565b6113cc565b60006001600160e01b03198216637965db0b60e01b14806105e957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60006105fa8161150d565b6106038261151a565b5050565b60006106128161150d565b8361064661061f8261070f565b6c2237b637b6b4ba32a7bbb732b960991b6b496e76616c696420726f6c6560a01b846113ff565b60005b838110156106ac57610699858583818110610666576106666129fd565b905060200201602081019061067b9190612218565b6000888152600560205260409020906001600160e01b0319166113f3565b50806106a481612a29565b915050610649565b50847fe8449836a8d9233b41b6bdf2371b4a9fdaf40c3e9f193294b0cb99267160e9f185856040516106df929190612aac565b60405180910390a25050505050565b606060006106fc84846110c9565b9050610707816113cc565b949350505050565b60006105e96001836114f5565b60006107278161150d565b6107648215156c2237b637b6b4ba32a7bbb732b960991b7f43616e6e6f742072656d6f76652061646d696e20726f6c65000000000000000061156a565b61076f600183611599565b5060405182907f4c9a714f78b79aa08074addab7cbdb196cccdf6d67efbf0b99914db8a6b08e7390600090a25050565b60008181526008602052604090205481906107f6906001600160a01b031615156c2237b637b6b4ba32a7bbb732b960991b7f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000061156a565b60006108018161150d565b600083815260086020526040902060038101546108699060ff1615801561083257506003820154610100900460ff16155b6c2237b637b6b4ba32a7bbb732b960991b7f5472616e73616374696f6e206e6f742063616e63656c6c61626c65000000000061156a565b60038101805461ff00191661010017905560405184907f956fb32199d8b882b2039a14e1be35ab14f7a80b9089fc223f14b43937173e6090600090a250505050565b6000828152602081905260409020600101546108c68161150d565b6108d083836115a5565b505050565b60006108e08161150d565b836108ed61061f8261070f565b60005b838110156109495761093685858381811061090d5761090d6129fd565b90506020020160208101906109229190612617565b6000888152600460205260409020906115df565b508061094181612a29565b9150506108f0565b50847f25d14f5db844510b2b623488adc40f4dbc6201efd8441d4188adb1ff94d877bc85856040516106df929190612b0a565b6001600160a01b03811633146109ad5760405162461bcd60e51b81526004016109a490612b6b565b60405180910390fd5b61060382826115f4565b60008281526006602090815260408083206001600160a01b038516845290915290206060906109e59061162e565b9392505050565b6001600160a01b03811660009081526003602052604090206060906105e99061162e565b600080805b600954811015610aa857848015610a3e575060008181526008602052604090206003015460ff16155b8015610a615750600081815260086020526040902060030154610100900460ff16155b80610a855750838015610a85575060008181526008602052604090206003015460ff165b15610a9857610a95600183612b7b565b91505b610aa181612a29565b9050610a15565b509392505050565b6000610abb8161150d565b84610ac861061f8261070f565b60005b83811015610b4257610b2f858583818110610ae857610ae86129fd565b9050602002016020810190610afd9190612218565b60008981526006602090815260408083206001600160a01b038c1684529091529020906001600160e01b0319166113f3565b5080610b3a81612a29565b915050610acb565b50857fdf7d1961858dcbb45486dae76c20847e16228bea0979db5ddf1584d2a20398bc868686604051610b7793929190612b93565b60405180910390a2505050505050565b6060610b93600161162e565b905090565b6000610ba38161150d565b610bae6001836113f3565b5060405182907fea0f1c470fa813c725756c036120b6688028969f5afbc607918fcd1ff922943590600090a25050565b60008181526004602052604090206060906105e99061162e565b60008181526005602052604090206060906105e99061162e565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600860205260009081526040902080546001820180546001600160a01b039092169291610c6790612bd3565b80601f0160208091040260200160405190810160405280929190818152602001828054610c9390612bd3565b8015610ce05780601f10610cb557610100808354040283529160200191610ce0565b820191906000526020600020905b815481529060010190602001808311610cc357829003601f168201915b50505050600283015460039093015491929160ff80821692506101009091041685565b6000610d0f8185610c12565b15610d1c575060016109e5565b6001600160a01b0384166000908152600360205260408120610d3d9061162e565b905060005b8151811015610dee576000828281518110610d5f57610d5f6129fd565b60200260200101519050610d728161070f565b1580610d8b5750600080516020612ea483398151915281145b80610db557507f21bee6ac0139693d77752bbffb07a6fab05816a10c9d8daed537913d19d5e92181145b15610dc05750610dde565b610dcb81878761163b565b15610ddc57600193505050506109e5565b505b610de781612a29565b9050610d42565b50600095945050505050565b6060600954841115610e0c5760095493505b6000610e188686612bfa565b67ffffffffffffffff811115610e3057610e30612381565b604051908082528060200260200182016040528015610e59578160200160208202803683370190505b5090506000865b86811015610f0f57858015610e87575060008181526008602052604090206003015460ff16155b8015610eaa5750600081815260086020526040902060030154610100900460ff16155b80610ece5750848015610ece575060008181526008602052604090206003015460ff165b15610eff5780838381518110610ee657610ee66129fd565b6020908102919091010152610efc600183612b7b565b91505b610f0881612a29565b9050610e60565b60008267ffffffffffffffff811115610f2a57610f2a612381565b604051908082528060200260200182016040528015610f53578160200160208202803683370190505b509050600091505b82821015610faa57838281518110610f7557610f756129fd565b6020026020010151818381518110610f8f57610f8f6129fd565b6020908102919091010152610fa382612a29565b9150610f5b565b98975050505050505050565b60603361100f610fd4600080516020612ea483398151915283610c12565b80610fe55750610fe5600083610c12565b6c2237b637b6b4ba32a7bbb732b960991b6f24b73b30b634b21032bc32b1baba37b960811b61156a565b6000835167ffffffffffffffff81111561102b5761102b612381565b60405190808252806020026020018201604052801561105e57816020015b60608152602001906001900390816110495790505b50905060005b84518110156110bf5761108f858281518110611082576110826129fd565b60200260200101516116e8565b8282815181106110a1576110a16129fd565b602002602001018190525080806110b790612a29565b915050611064565b5091505b50919050565b600061110b6004835110156c2237b637b6b4ba32a7bbb732b960991b7f496e76616c69642063616c6c64617461206c656e67746800000000000000000061156a565b602082015180600061111e338784610d03565b905061115b816c2237b637b6b4ba32a7bbb732b960991b7f5472616e73616374696f6e206e6f7420617070726f766564000000000000000061156a565b6111658686611906565b9695505050505050565b60008281526020819052604090206001015461118a8161150d565b6108d083836115f4565b60075460008281526008602052604081206002015490916111bd9163ffffffff90911690612b7b565b42101592915050565b60006111d18161150d565b60005b8281101561122d5761121a8484838181106111f1576111f16129fd565b90506020020160208101906112069190612617565b600087815260046020526040902090611a3b565b508061122581612a29565b9150506111d4565b50837f2f4fb19346116a6cb9ea4e22ac28776142022cdfb5f0aa060edec0005bc372398484604051611260929190612b0a565b60405180910390a250505050565b60006112798161150d565b60005b828110156112df576112cc848483818110611299576112996129fd565b90506020020160208101906112ae9190612218565b6000878152600560205260409020906001600160e01b031916611599565b50806112d781612a29565b91505061127c565b50837f7eff64fec17f2f5ed05ea85a51249429e4a8c7771ead216d8c627eec7fe721a48484604051611260929190612aac565b600061131d8161150d565b60005b828110156113975761138484848381811061133d5761133d6129fd565b90506020020160208101906113529190612218565b60008881526006602090815260408083206001600160a01b038b1684529091529020906001600160e01b031916611599565b508061138f81612a29565b915050611320565b50847f1fbdd6625465d2191ed3013e84bdafc9255a8c914dd3be55cc92fc7903a150f38585856040516106df93929190612b93565b6060336113ea610fd4600080516020612ea483398151915283610c12565b6109e5836116e8565b60006109e58383611a50565b8361146b5761140d83611a9f565b6101d160f51b61141c84611a9f565b61080f60f21b61142b85611b36565b604051611445959493929190601f60f91b90602001612c53565b60408051601f198184030181529082905262461bcd60e51b82526109a49160040161252a565b50505050565b61147b8282610c12565b610603576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556114b13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205415156109e5565b6115178133611c75565b50565b6007805463ffffffff191663ffffffff83161790556040517fee7766611247b9d3ae2a5fd3734ffc2ad263561c6c2f5f714435780ea413c0bd9061155f90839061259b565b60405180910390a150565b826108d05761157882611a9f565b6101d160f51b61158783611a9f565b60405160200161144593929190612cb1565b60006109e58383611ca8565b816115b261061f8261070f565b6001600160a01b03821660009081526003602052604090206115d490846113f3565b506108d08383611471565b60006109e5836001600160a01b038416611a50565b8161160161061f8261070f565b6001600160a01b03821660009081526003602052604090206116239084611599565b506108d08383611d9b565b606060006109e583611e00565b60008381526006602090815260408083206001600160a01b0386168452909152812061166690611e5c565b156116a85760008481526006602090815260408083206001600160a01b038716845290915290206116a1906001600160e01b031984166114f5565b90506109e5565b60008481526004602052604090206116c09084611e66565b806116a1575060008481526005602052604090206116a1906001600160e01b031984166114f5565b6000818152600860205260409020546060908290611742906001600160a01b031615156c2237b637b6b4ba32a7bbb732b960991b7f5472616e73616374696f6e20646f6573206e6f7420657869737400000000000061156a565b33836117ad61175082611194565b8061178057506117807f21bee6ac0139693d77752bbffb07a6fab05816a10c9d8daed537913d19d5e92184610c12565b6c2237b637b6b4ba32a7bbb732b960991b7254696d656c6f636b20696e636f6d706c65746560681b61156a565b600085815260086020526040902060038101546118159060ff161580156117de57506003820154610100900460ff16155b6c2237b637b6b4ba32a7bbb732b960991b7f5472616e73616374696f6e206e6f742065786563757461626c6500000000000061156a565b60038101805460ff19166001908117909155810180546000916118ce9161183b90612bd3565b80601f016020809104026020016040519081016040528092919081815260200182805461186790612bd3565b80156118b45780601f10611889576101008083540402835291602001916118b4565b820191906000526020600020905b81548152906001019060200180831161189757829003601f168201915b505086546001600160a01b03169392506000915050611e88565b60405190915087907f15ed165a284872ea7017f03df402a0cadfbfab588320ffaf83f160c2f82781c790600090a29695505050505050565b6000826119416001600160a01b03821615156c2237b637b6b4ba32a7bbb732b960991b6e1059191c995cdcc81a5cc81b9d5b1b608a1b61156a565b6009546040805160a0810182526001600160a01b03878116825260208083018881524284860152600060608501819052608085018190528681526008835294909420835181546001600160a01b031916931692909217825592518051929391926119b1926001850192019061215d565b506040820151600282015560608201516003909101805460809093015115156101000261ff00199215159290921661ffff19909316929092171790556009805460019190600090611a03908490612b7b565b909155505060405181907fd0b5d9eac097410294ec9f2cee7cd185cf31ab46babf3dfdbeac8b222b03f2d190600090a2949350505050565b60006109e5836001600160a01b038416611ca8565b6000818152600183016020526040812054611a97575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105e9565b5060006105e9565b6060600082604051602001611ab49190612cd9565b60408051601f19818403018152919052905060205b8015611b1f5780611ad981612cee565b915050818181518110611aee57611aee6129fd565b01602001516001600160f81b03191615611b1a576000611b0f826001612b7b565b835250909392505050565b611ac9565b506040805160008082526020820190925290610aa8565b604080516042808252608082019092526060918391600091602082018180368337019050509050603060f81b81600081518110611b7557611b756129fd565b60200101906001600160f81b031916908160001a905350607860f81b81600181518110611ba457611ba46129fd565b60200101906001600160f81b031916908160001a90535060005b60208110156110bf576000611bd4826002612d05565b9050611be2600f8516611eae565b83611bee836041612bfa565b81518110611bfe57611bfe6129fd565b60200101906001600160f81b031916908160001a905350600484901c9350611c28600f8516611eae565b83611c34836040612bfa565b81518110611c4457611c446129fd565b60200101906001600160f81b031916908160001a9053505060049290921c9180611c6d81612a29565b915050611bbe565b611c7f8282610c12565b61060357611c8c81611ed8565b611c97836020611eea565b604051602001611445929190612d24565b60008181526001830160205260408120548015611d91576000611ccc600183612bfa565b8554909150600090611ce090600190612bfa565b9050818114611d45576000866000018281548110611d0057611d006129fd565b9060005260206000200154905080876000018481548110611d2357611d236129fd565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611d5657611d56612d7c565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105e9565b60009150506105e9565b611da58282610c12565b15610603576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606081600001805480602002602001604051908101604052809291908181526020018280548015611e5057602002820191906000526020600020905b815481526020019060010190808311611e3c575b50505050509050919050565b60006105e9825490565b6001600160a01b038116600090815260018301602052604081205415156109e5565b6060610707848484604051806060016040528060298152602001612e7b60299139612056565b6000600a821015611ecd57611ec4603083612b7b565b60f81b92915050565b611ec4605783612b7b565b60606105e96001600160a01b03831660145b60606000611ef9836002612d05565b611f04906002612b7b565b67ffffffffffffffff811115611f1c57611f1c612381565b6040519080825280601f01601f191660200182016040528015611f46576020820181803683370190505b509050600360fc1b81600081518110611f6157611f616129fd565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611f9057611f906129fd565b60200101906001600160f81b031916908160001a9053506000611fb4846002612d05565b611fbf906001612b7b565b90505b6001811115612037576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611ff357611ff36129fd565b1a60f81b828281518110612009576120096129fd565b60200101906001600160f81b031916908160001a90535060049490941c9361203081612cee565b9050611fc2565b5083156109e55760405162461bcd60e51b81526004016109a490612dc7565b6060824710156120785760405162461bcd60e51b81526004016109a490612e1a565b600080866001600160a01b031685876040516120949190612e2a565b60006040518083038185875af1925050503d80600081146120d1576040519150601f19603f3d011682016040523d82523d6000602084013e6120d6565b606091505b50915091506120e7878383876120f2565b979650505050505050565b6060831561212e578251612127576001600160a01b0385163b6121275760405162461bcd60e51b81526004016109a490612e6a565b5081610707565b61070783838151156121435781518083602001fd5b8060405162461bcd60e51b81526004016109a4919061252a565b82805461216990612bd3565b90600052602060002090601f01602090048101928261218b57600085556121d1565b82601f106121a457805160ff19168380011785556121d1565b828001600101855582156121d1579182015b828111156121d15782518255916020019190600101906121b6565b506121dd9291506121e1565b5090565b5b808211156121dd57600081556001016121e2565b6001600160e01b031981165b811461151757600080fd5b80356105e9816121f6565b60006020828403121561222d5761222d600080fd5b6000610707848461220d565b8015155b82525050565b602081016105e98284612239565b63ffffffff8116612202565b80356105e981612251565b60006020828403121561227d5761227d600080fd5b6000610707848461225d565b80612202565b80356105e981612289565b60008083601f8401126122af576122af600080fd5b50813567ffffffffffffffff8111156122ca576122ca600080fd5b6020830191508360208202830111156122e5576122e5600080fd5b9250929050565b60008060006040848603121561230457612304600080fd5b6000612310868661228f565b935050602084013567ffffffffffffffff81111561233057612330600080fd5b61233c8682870161229a565b92509250509250925092565b8061223d565b602081016105e98284612348565b60006001600160a01b0382166105e9565b6122028161235c565b80356105e98161236d565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156123bd576123bd612381565b6040525050565b60006123cf60405190565b90506123db8282612397565b919050565b600067ffffffffffffffff8211156123fa576123fa612381565b601f19601f83011660200192915050565b82818337506000910152565b600061242a612425846123e0565b6123c4565b90508281526020810184848401111561244557612445600080fd5b610aa884828561240b565b600082601f83011261246457612464600080fd5b8135610707848260208601612417565b6000806040838503121561248a5761248a600080fd5b60006124968585612376565b925050602083013567ffffffffffffffff8111156124b6576124b6600080fd5b6124c285828601612450565b9150509250929050565b60005b838110156124e75781810151838201526020016124cf565b8381111561146b5750506000910152565b6000612502825190565b8084526020840193506125198185602086016124cc565b601f01601f19169290920192915050565b602080825281016109e581846124f8565b60006020828403121561255057612550600080fd5b6000610707848461228f565b6000806040838503121561257257612572600080fd5b600061257e858561228f565b92505060206124c285828601612376565b63ffffffff811661223d565b602081016105e9828461258f565b60006125b58383612348565b505060200190565b60006125c7825190565b80845260209384019383018060005b838110156125fb5781516125ea88826125a9565b9750602083019250506001016125d6565b509495945050505050565b602080825281016109e581846125bd565b60006020828403121561262c5761262c600080fd5b60006107078484612376565b801515612202565b80356105e981612638565b6000806040838503121561266157612661600080fd5b600061266d8585612640565b92505060206124c285828601612640565b6000806000806060858703121561269757612697600080fd5b60006126a3878761228f565b94505060206126b487828801612376565b935050604085013567ffffffffffffffff8111156126d4576126d4600080fd5b6126e08782880161229a565b95989497509550505050565b61223d8161235c565b60006125b583836126ec565b600061270b825190565b80845260209384019383018060005b838110156125fb57815161272e88826126f5565b97506020830192505060010161271a565b602080825281016109e58184612701565b60a0810161275e82886126ec565b818103602083015261277081876124f8565b905061277f6040830186612348565b61278c6060830185612239565b6111656080830184612239565b6000806000606084860312156127b1576127b1600080fd5b60006127bd8686612376565b93505060206127ce86828701612376565b92505060406127df8682870161220d565b9150509250925092565b6000806000806080858703121561280257612802600080fd5b600061280e878761228f565b945050602061281f8782880161228f565b935050604061283087828801612640565b925050606061284187828801612640565b91505092959194509250565b6000612857825190565b80845260209384019383018060005b838110156125fb57815161287a88826125a9565b975060208301925050600101612866565b602080825281016109e5818461284d565b600067ffffffffffffffff8211156128b6576128b6612381565b5060209081020190565b60006128ce6124258461289c565b838152905060208082019084028301858111156128ed576128ed600080fd5b835b818110156129115780612902888261228f565b845250602092830192016128ef565b5050509392505050565b600082601f83011261292f5761292f600080fd5b81356107078482602086016128c0565b60006020828403121561295457612954600080fd5b813567ffffffffffffffff81111561296e5761296e600080fd5b6107078482850161291b565b60006109e583836124f8565b6000612990825190565b808452602084019350836020820285016129aa8560200190565b8060005b858110156129df57848403895281516129c7858261297a565b94506020830160209a909a01999250506001016129ae565b5091979650505050505050565b602080825281016109e58184612986565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415612a3d57612a3d612a13565b5060010190565b6001600160e01b0319811661223d565b60006125b58383612a44565b60006109e5602084018461220d565b8183526000602084019350818060005b858110156125fb57612a918284612a60565b612a9b8882612a54565b975060208301925050600101612a7f565b60208082528101610707818486612a6f565b60006109e56020840184612376565b8183526000602084019350818060005b858110156125fb57612aef8284612abe565b612af988826126f5565b975060208301925050600101612add565b60208082528101610707818486612acd565b602f81526000602082017f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636581526e103937b632b9903337b91039b2b63360891b602082015291505b5060400190565b602080825281016105e981612b1c565b60008219821115612b8e57612b8e612a13565b500190565b60408101612ba182866126ec565b8181036020830152612bb4818486612a6f565b95945050505050565b634e487b7160e01b600052602260045260246000fd5b600281046001821680612be757607f821691505b602082108114156110c3576110c3612bbd565b600082821015612c0c57612c0c612a13565b500390565b6000612c1b825190565b612c298185602086016124cc565b9290920192915050565b6001600160f01b0319811661223d565b6001600160f81b0319811661223d565b6000612c5f8289612c11565b9150612c6b8288612c33565b600282019150612c7b8287612c11565b9150612c878286612c33565b600282019150612c978285612c11565b9150612ca38284612c43565b506001019695505050505050565b6000612cbd8286612c11565b9150612cc98285612c33565b600282019150612bb48284612c11565b6000612ce58284612348565b50602001919050565b600081612cfd57612cfd612a13565b506000190190565b6000816000190483118215151615612d1f57612d1f612a13565b500290565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526017016000612d568285612c11565b7001034b99036b4b9b9b4b733903937b6329607d1b815260110191506107078284612c11565b634e487b7160e01b600052603160045260246000fd5b60208082527f537472696e67733a20686578206c656e67746820696e73756666696369656e74910190815260005b5060200190565b602080825281016105e981612d92565b602681526000602082017f416464726573733a20696e73756666696369656e742062616c616e636520666f8152651c8818d85b1b60d21b60208201529150612b64565b602080825281016105e981612dd7565b60006109e58284612c11565b601d81526000602082017f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081529150612dc0565b602080825281016105e981612e3656fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63a26469706673582212201688f215a1c7706477cde27327f7336cee9f3b2a1fcc350da604aa1c14e133f364736f6c63430008090033000000000000000000000000a75c21c5be284122a87a37a76cc6c4dd3e55a1d40000000000000000000000000000000000000000000000000000000000000708