0 txs
1 call
constructor
constructor(address _govToken, bytes32[] _names, uint256[] _minExeDelay, uint256[] _minVoteDuration, uint256[] _maxVoteDuration, uint256[] _minGovTokenToCreateVote, uint256[] _minQuorum, uint256 _minStakePeriod)
functions
admin
viewfunction admin() view returns (address)
allVotings
viewfunction allVotings() view returns (address[])
freezedStake
viewfunction freezedStake(address) view returns (uint256 amount, uint256 timestamp)
getVotingConfigProfiles
viewfunction getVotingConfigProfiles(uint256 start, uint256 length) view returns (bytes32[] profiles)
getVotingCount
viewfunction getVotingCount() view returns (uint256)
getVotingParams
viewfunction getVotingParams(bytes32 name) view returns (uint256 _minExeDelay, uint256 _minVoteDuration, uint256 _maxVoteDuration, uint256 _minGovTokenToCreateVote, uint256 _minQuorum)
getVotings
viewfunction getVotings(uint256 start, uint256 count) view returns (address[] _votings)
govToken
viewfunction govToken() view returns (address)
isVotingContract
viewfunction isVotingContract(address votingContract) view returns (bool)
isVotingExecutor
viewfunction isVotingExecutor(address) view returns (bool)
minStakePeriod
viewfunction minStakePeriod() view returns (uint256)
owner
viewfunction owner() view returns (address)
stakeOf
viewfunction stakeOf(address) view returns (uint256)
totalStake
viewfunction totalStake() view returns (uint256)
voteCount
viewfunction voteCount() view returns (uint256)
votingConfigProfiles
viewfunction votingConfigProfiles(uint256) view returns (bytes32)
votingConfigProfilesLength
viewfunction votingConfigProfilesLength() view returns (uint256)
votingConfigs
viewfunction votingConfigs(bytes32) view returns (uint256 minExeDelay, uint256 minVoteDuration, uint256 maxVoteDuration, uint256 minGovTokenToCreateVote, uint256 minQuorum)
votingExecutor
viewfunction votingExecutor(uint256) view returns (address)
votingExecutorInv
viewfunction votingExecutorInv(address) view returns (uint256)
votingExecutorLength
viewfunction votingExecutorLength() view returns (uint256)
votingIdx
viewfunction votingIdx(address) view returns (uint256)
votingRegister
viewfunction votingRegister() view returns (address)
votings
viewfunction votings(uint256) view returns (address)
addVotingConfig
nonpayablefunction addVotingConfig(bytes32 name, uint256 minExeDelay, uint256 minVoteDuration, uint256 maxVoteDuration, uint256 minGovTokenToCreateVote, uint256 minQuorum)
closeVote
nonpayablefunction closeVote(address vote)
executed
nonpayablefunction executed()
getNewVoteId
nonpayablefunction getNewVoteId() returns (uint256)
initAdmin
nonpayablefunction initAdmin(address _admin)
initVotingExecutor
nonpayablefunction initVotingExecutor(address[] _votingExecutor)
newVote
nonpayablefunction newVote(address vote, bool isExecutiveVote)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _admin)
setMinStakePeriod
nonpayablefunction setMinStakePeriod(uint256 _minStakePeriod)
setVotingConfig
nonpayablefunction setVotingConfig(bytes32 configName, bytes32 paramName, uint256 paramValue)
setVotingExecutor
nonpayablefunction setVotingExecutor(address _votingExecutor, bool _bool)
setVotingRegister
nonpayablefunction setVotingRegister(address _votingRegister)
stake
nonpayablefunction stake(uint256 value)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlockStake
nonpayablefunction unlockStake()
unstake
nonpayablefunction unstake(uint256 value)
veto
nonpayablefunction veto(address voting)
voted
nonpayablefunction voted(bool poll, address account, uint256 option)
events
AddVotingConfig
event AddVotingConfig(bytes32 name, uint256 minExeDelay, uint256 minVoteDuration, uint256 maxVoteDuration, uint256 minGovTokenToCreateVote, uint256 minQuorum)
Executed
event Executed(address indexed vote)
NewPoll
event NewPoll(address indexed poll)
NewVote
event NewVote(address indexed vote)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
ParamSet
event ParamSet(bytes32 indexed name, bytes32 value)
ParamSet2
event ParamSet2(bytes32 name, bytes32 value1, bytes32 value2)
Poll
event Poll(address indexed account, address indexed poll, uint256 option)
SetVotingConfig
event SetVotingConfig(bytes32 indexed configName, bytes32 indexed paramName, uint256 minExeDelay)
Stake
event Stake(address indexed who, uint256 value)
Unstake
event Unstake(address indexed who, uint256 value)
Veto
event Veto(address indexed vote)
Vote
event Vote(address indexed account, address indexed vote, uint256 option)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620045dd380380620045dd83398181016040526101008110156200003857600080fd5b8151602083018051604051929492938301929190846401000000008211156200006057600080fd5b9083019060208201858111156200007657600080fd5b82518660208202830111640100000000821117156200009457600080fd5b82525081516020918201928201910280838360005b83811015620000c3578181015183820152602001620000a9565b5050505090500160405260200180516040519392919084640100000000821115620000ed57600080fd5b9083019060208201858111156200010357600080fd5b82518660208202830111640100000000821117156200012157600080fd5b82525081516020918201928201910280838360005b838110156200015057818101518382015260200162000136565b50505050905001604052602001805160405193929190846401000000008211156200017a57600080fd5b9083019060208201858111156200019057600080fd5b8251866020820283011164010000000082111715620001ae57600080fd5b82525081516020918201928201910280838360005b83811015620001dd578181015183820152602001620001c3565b50505050905001604052602001805160405193929190846401000000008211156200020757600080fd5b9083019060208201858111156200021d57600080fd5b82518660208202830111640100000000821117156200023b57600080fd5b82525081516020918201928201910280838360005b838110156200026a57818101518382015260200162000250565b50505050905001604052602001805160405193929190846401000000008211156200029457600080fd5b908301906020820185811115620002aa57600080fd5b8251866020820283011164010000000082111715620002c857600080fd5b82525081516020918201928201910280838360005b83811015620002f7578181015183820152602001620002dd565b50505050905001604052602001805160405193929190846401000000008211156200032157600080fd5b9083019060208201858111156200033757600080fd5b82518660208202830111640100000000821117156200035557600080fd5b82525081516020918201928201910280838360005b83811015620003845781810151838201526020016200036a565b50505050919091016040525060200151915060009050620003ad6001600160e01b036200080b16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160601b0319606089901b16608052855187511480156200041c575084518651145b80156200042a575083518551145b801562000438575082518451145b801562000446575081518351145b62000498576040805162461bcd60e51b815260206004820152601c60248201527f417267756d656e74206c656e67746873206e6f74206d61746368656400000000604482015290519081900360640190fd5b60005b87518110156200074a576000878281518110620004b457fe5b6020026020010151118015620004e1575062093a80878281518110620004d657fe5b602002602001015111155b62000533576040805162461bcd60e51b815260206004820152601360248201527f496e76616c6964206d696e45786544656c617900000000000000000000000000604482015290519081900360640190fd5b8481815181106200054057fe5b60200260200101518682815181106200055557fe5b602002602001015110801562000582575062093a808682815181106200057757fe5b602002602001015111155b620005d4576040805162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d696e566f74654475726174696f6e000000000000000000604482015290519081900360640190fd5b6000600160008a8481518110620005e757fe5b6020026020010151815260200190815260200160002090508782815181106200060c57fe5b602002602001015181600001819055508682815181106200062957fe5b602002602001015181600101819055508582815181106200064657fe5b602002602001015181600201819055508482815181106200066357fe5b602002602001015181600301819055508382815181106200068057fe5b6020026020010151816004018190555060028983815181106200069f57fe5b6020908102919091018101518254600181018455600093845291909220015588517f4298cd6fa0bb1aeb8e309c8da40e32f5d5383c757a49341ef32bdcfe4bf09129908a9084908110620006ef57fe5b602090810291909101810151835460018501546002860154600387015460048801546040805196875296860194909452848601929092526060840152608083015260a082015290519081900360c00190a1506001016200049b565b506000811180156200075f575062278d008111155b620007b1576040805162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d696e5374616b65506572696f6400000000000000000000604482015290519081900360640190fd5b600b8190556040805182815290516d1b5a5b94dd185ad954195c9a5bd960921b917f22ea5a9dcc7fb5bc447fcb472061adc51caa147724a67a6695d49a9dff162509919081900360200190a250505050505050506200080f565b3390565b60805160601c613da16200083c6000398061096a5280610f55528061257a528061265f5250613da16000f3fe608060405234801561001057600080fd5b50600436106102e95760003560e01c80638210775111610191578063b15866e6116100e3578063f2486f4411610097578063f851a44011610071578063f851a44014610950578063ff2a59b014610958578063ffccd84314610960576102e9565b8063f2486f44146108cd578063f2fde38b146108ea578063f6f04d7f1461091d576102e9565b8063c6384071116100c8578063c638407114610894578063d84f2bc61461089c578063d9c37086146108a4576102e9565b8063b15866e614610859578063bb9fe6bf1461088c576102e9565b806395e5cfa211610145578063a598d03c1161011f578063a598d03c14610802578063a694fc3a1461081f578063a8fd327e1461083c576102e9565b806395e5cfa2146107905780639c2aab5e146107b3578063a3818b3b146107bb576102e9565b80638da5cb5b116101765780638da5cb5b1461073857806391927050146107405780639449f0131461075d576102e9565b806382107751146106f55780638b0e9f3f14610730576102e9565b8063499b86d81161024a5780636a333cee116101fe578063718fbb79116101d8578063718fbb791461066a578063788ddbcb146106b257806378a1a9fa146106ed576102e9565b80636a333cee146105fc578063704b6c021461062f578063715018a614610662576102e9565b806362072e761161022f57806362072e761461054d57806365611e431461058057806365eaf8bc146105bb576102e9565b8063499b86d8146104e45780635c13d4ac14610501576102e9565b806329711413116102a157806331a38c891161028657806331a38c89146104395780633b32cf421461044157806342623360146104b1576102e9565b806329711413146104145780632e17de781461041c576102e9565b806314598898116102d2578063145988981461035457806326ae21a91461036e57806329294e2b146103a1576102e9565b806305268cff146102ee57806308c4934d1461031f575b600080fd5b6102f6610968565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103526004803603602081101561033557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661098c565b005b61035c610aae565b60408051918252519081900360200190f35b6103526004803603602081101561038457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610b30565b6103c4600480360360408110156103b757600080fd5b5080359060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104005781810151838201526020016103e8565b505050509050019250505060405180910390f35b6103c4610d55565b6103526004803603602081101561043257600080fd5b5035610dc4565b610352610f7b565b6103526004803603602081101561045757600080fd5b81019060208101813564010000000081111561047257600080fd5b82018360208201111561048457600080fd5b803590602001918460208302840111640100000000831117156104a657600080fd5b509092509050611048565b61035c600480360360208110156104c757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611195565b610352600480360360208110156104fa57600080fd5b50356111a7565b6105346004803603602081101561051757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611301565b6040805192835260208301919091528051918290030190f35b6103526004803603602081101561056357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661131a565b610352600480360360c081101561059657600080fd5b5080359060208101359060408101359060608101359060808101359060a0013561159e565b610352600480360360608110156105d157600080fd5b50803515159073ffffffffffffffffffffffffffffffffffffffff6020820135169060400135611923565b6103526004803603602081101561061257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611a65565b6103526004803603602081101561064557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611c3f565b610352611cbd565b6106876004803603602081101561068057600080fd5b5035611dbd565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b610352600480360360408110156106c857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611e50565b61035c611edc565b6103526004803603604081101561070b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001351515611ee2565b61035c6123cb565b6102f66123d1565b6102f66004803603602081101561075657600080fd5b50356123ed565b61035c6004803603602081101561077357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612421565b6103c4600480360360408110156107a657600080fd5b5080359060200135612433565b61035c61250c565b6107ee600480360360208110156107d157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612512565b604080519115158252519081900360200190f35b6102f66004803603602081101561081857600080fd5b5035612527565b6103526004803603602081101561083557600080fd5b5035612534565b6106876004803603602081101561085257600080fd5b50356126b3565b6107ee6004803603602081101561086f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166126e1565b610352612742565b61035c61284f565b61035c612855565b610352600480360360608110156108ba57600080fd5b508035906020810135906040013561285b565b61035c600480360360208110156108e357600080fd5b5035612d3c565b6103526004803603602081101561090057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612d5a565b61035c6004803603602081101561093357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612ee4565b6102f6612ef6565b61035c612f12565b6102f6612f18565b7f000000000000000000000000000000000000000000000000000000000000000081565b610994612f34565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614610a1d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600a5473ffffffffffffffffffffffffffffffffffffffff1615610aa257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f416c726561647920736574000000000000000000000000000000000000000000604482015290519081900360640190fd5b610aab81612f38565b50565b60065460009073ffffffffffffffffffffffffffffffffffffffff163314610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613cb86023913960400191505060405180910390fd5b50600c80546001019081905590565b600a5473ffffffffffffffffffffffffffffffffffffffff163314610bb657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f742066726f6d2073687574646f776e2061646d696e000000000000000000604482015290519081900360640190fd5b8073ffffffffffffffffffffffffffffffffffffffff1663ef9b78c66040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bfe57600080fd5b505af1158015610c12573d6000803e3d6000fd5b50505050610c1f8161307e565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f1c24a27ac669c0278656c76cc711441c8dd32d21c32227dad2b42bf6271e8fae90600090a250565b600e54606090610c79848463ffffffff6132f416565b1115610c8857600e5483900391505b8167ffffffffffffffff81118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b5090508260005b83811015610d4d57600e8281548110610ce557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281518110610d1c57fe5b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015260019182019101610cd0565b505092915050565b6060600e805480602002602001604051908101604052809291908181526020018280548015610dba57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610d8f575b5050505050905090565b33600090815260036020908152604080832054600490925290912054610def9163ffffffff6132f416565b811115610e47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180613c8d602b913960400191505060405180910390fd5b336000908152600360205260409020548111610e925733600090815260036020526040902054610e7d908263ffffffff61336f16565b33600090815260036020526040902055610f50565b33600090815260036020526040812054610eb390839063ffffffff61336f16565b3360009081526003602090815260408083208381556001018390556004909152902054909150610ee9908263ffffffff61336f16565b33600090815260046020526040902055600554610f0c908263ffffffff61336f16565b600555610f18336133b1565b60408051828152905133917f85082129d87b2fe11527cb1b3b7a520aeb5aa6913f88a3d8757fe40d1db02fdd919081900360200190a2505b610aab7f00000000000000000000000000000000000000000000000000000000000000003383613467565b336000818152600d6020526040902054600e80549091908110610f9a57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614611012576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cdb6026913960400191505060405180910390fd5b61101b3361307e565b60405133907fdf42bfa876a741bbe542cf1a563269e1390bf03901b5d433a6e8afd6ee36dbfe90600090a2565b611050612f34565b60005473ffffffffffffffffffffffffffffffffffffffff9081169116146110d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6007541561114857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6578656375746f7220616c726561647920736574000000000000000000000000604482015290519081900360640190fd5b8060005b8181101561118f5761118784848381811061116357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff166001613644565b60010161114c565b50505050565b60046020526000908152604090205481565b3360009081526009602052604090205460ff1661122557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b600081118015611238575062278d008111155b6112a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206d696e5374616b65506572696f6400000000000000000000604482015290519081900360640190fd5b600b8190556040805182815290517f6d696e5374616b65506572696f64000000000000000000000000000000000000917f22ea5a9dcc7fb5bc447fcb472061adc51caa147724a67a6695d49a9dff162509919081900360200190a250565b6003602052600090815260409020805460019091015482565b8073ffffffffffffffffffffffffffffffffffffffff1663b3fff9bf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561136057600080fd5b505afa158015611374573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156113bb57600080fd5b81019080805160405193929190846401000000008211156113db57600080fd5b9083019060208201858111156113f057600080fd5b825186602082028301116401000000008211171561140d57600080fd5b82525081516020918201928201910280838360005b8381101561143a578181015183820152602001611422565b50505050905001604052505050516000146114b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f476f7665726e616e63653a204e6f74206120506f6c6c00000000000000000000604482015290519081900360640190fd5b8073ffffffffffffffffffffffffffffffffffffffff16639e6cb42b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156114fc57600080fd5b505afa158015611510573d6000803e3d6000fd5b505050506040513d602081101561152657600080fd5b5051421161159557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f476f7665726e616e63653a20566f74696e67206e6f7420656e64656400000000604482015290519081900360640190fd5b610aab8161307e565b3360009081526009602052604090205460ff1661161c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b60008511801561162f575062093a808511155b61169a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206d696e45786544656c617900000000000000000000000000604482015290519081900360640190fd5b82841080156116ac575062093a808411155b61171757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420766f74654475726174696f6e000000000000000000000000604482015290519081900360640190fd5b60055482111561178857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964206d696e476f76546f6b656e546f437265617465566f746500604482015290519081900360640190fd5b6005548111156117f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964206d696e51756f72756d000000000000000000000000000000604482015290519081900360640190fd5b600086815260016020526040902080541561187557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f436f6e66696720616c7265616479206578697374730000000000000000000000604482015290519081900360640190fd5b858155600180820186905560028083018690556003830185905560048301849055805491820181556000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace018790556040805188815260208101889052808201879052606081018690526080810185905260a0810184905290517f4298cd6fa0bb1aeb8e309c8da40e32f5d5383c757a49341ef32bdcfe4bf091299181900360c00190a150505050505050565b336000818152600d6020526040902054600e8054909190811061194257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16146119ba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cdb6026913960400191505060405180910390fd5b8215611a1257604080518281529051339173ffffffffffffffffffffffffffffffffffffffff8516917f939cecbaa6409c96475d12a0cf1c30c058192b2b51716b5591c3f659ed9354a79181900360200190a3611a60565b604080518281529051339173ffffffffffffffffffffffffffffffffffffffff8516917f66a9138482c99e9baf08860110ef332cc0c23b4a199a53593d8db0fc8f96fbfc9181900360200190a35b505050565b611a6d612f34565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614611af657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60065473ffffffffffffffffffffffffffffffffffffffff1615611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f416c726561647920736574000000000000000000000000000000000000000000604482015290519081900360640190fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617908190556040805160609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252517f766f74696e675265676973746572000000000000000000000000000000000000917f22ea5a9dcc7fb5bc447fcb472061adc51caa147724a67a6695d49a9dff162509916020918190039190910190a250565b3360009081526009602052604090205460ff16610aa257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b611cc5612f34565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614611d4e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600081815260016020526040812060038101548291829182918291611e2857507f766f74650000000000000000000000000000000000000000000000000000000060005260016020527f981ebb1b944d3b52f140c2fb331aac52efb7ba38f2e98cea5942f05b58a04f6f5b8054600182015460028301546003840154600490940154929a91995097509195509350915050565b3360009081526009602052604090205460ff16611ece57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b611ed88282613644565b5050565b60075490565b60065473ffffffffffffffffffffffffffffffffffffffff163314611f52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613cb86023913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613d4a6022913960400191505060405180910390fd5b600e541580612022575073ffffffffffffffffffffffffffffffffffffffff82166000818152600d6020526040902054600e80549091908110611ffd57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614155b612077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613c63602a913960400191505060405180910390fd5b60005b600e548110156122b8576000600e828154811061209357fe5b6000918252602082200154604080517fb3fff9bf000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff9092169350839263b3fff9bf92600480840193829003018186803b15801561210357600080fd5b505afa158015612117573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052602081101561215e57600080fd5b810190808051604051939291908464010000000082111561217e57600080fd5b90830190602082018581111561219357600080fd5b82518660208202830111640100000000821117156121b057600080fd5b82525081516020918201928201910280838360005b838110156121dd5781810151838201526020016121c5565b5050505090500160405250505051600014801561226a5750428173ffffffffffffffffffffffffffffffffffffffff16639e6cb42b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561223c57600080fd5b505afa158015612250573d6000803e3d6000fd5b505050506040513d602081101561226657600080fd5b5051105b156122ab576122a6600e838154811061227f57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1661307e565b6122b2565b6001909101905b5061207a565b600e805473ffffffffffffffffffffffffffffffffffffffff85166000818152600d60205260408120839055600183018455929092527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180547fffffffffffffffffffffffff000000000000000000000000000000000000000016909117905581156123855760405173ffffffffffffffffffffffffffffffffffffffff8416907f3b7f4bea1b2462212751e8a9d23ca2a37a1abf7ff729725e224314f1c190c99190600090a2611a60565b60405173ffffffffffffffffffffffffffffffffffffffff8416907f83f5721a5071f4aac6f77c58360d8c8618098cebdc6d3c393f1e757ef4d1082b90600090a2505050565b60055481565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b600781815481106123fa57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600d6020526000908152604090205481565b60025460609083101561250657600254612453848463ffffffff6132f416565b111561246f5760025461246c908463ffffffff61336f16565b91505b8167ffffffffffffffff8111801561248657600080fd5b506040519080825280602002602001820160405280156124b0578160200160208202803683370190505b50905060005b828110156125045760026124d0828663ffffffff6132f416565b815481106124da57fe5b90600052602060002001548282815181106124f157fe5b60209081029190910101526001016124b6565b505b92915050565b600e5490565b60096020526000908152604090205460ff1681565b600e81815481106123fa57fe5b604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016916370a08231916024808301926020929190829003018186803b1580156125c057600080fd5b505afa1580156125d4573d6000803e3d6000fd5b505050506040513d60208110156125ea57600080fd5b505181111561265a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f476f7665726e616e63653a20696e73756666696369656e742062616c616e6365604482015290519081900360640190fd5b6126867f0000000000000000000000000000000000000000000000000000000000000000333084613933565b33600090815260036020526040902080546126a7908363ffffffff6132f416565b81554260019091015550565b6001602081905260009182526040909120805491810154600282015460038301546004909301549192909185565b73ffffffffffffffffffffffffffffffffffffffff81166000818152600d6020526040812054600e8054929392909190811061271957fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff161492915050565b33600090815260036020526040902080546127be57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f476f7665726e616e63653a204e6f7468696e6720746f207374616b6500000000604482015290519081900360640190fd5b426127d8600b5483600101546132f490919063ffffffff16565b1061282e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613d016025913960400191505060405180910390fd5b805433600090815260036020526040812081815560010155611ed881613b03565b600c5481565b600b5481565b3360009081526009602052604090205460ff166128d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f742066726f6d20766f74696e670000000000000000000000000000000000604482015290519081900360640190fd5b60008381526001602052604090205461295357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f436f6e666967206e6f7420657869737473000000000000000000000000000000604482015290519081900360640190fd5b817f6d696e45786544656c61790000000000000000000000000000000000000000001415612a0f5760008111801561298e575062093a808111155b6129f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c6964206d696e45786544656c617900000000000000000000000000604482015290519081900360640190fd5b6000838152600160205260409020819055612d00565b817f6d696e566f74654475726174696f6e00000000000000000000000000000000001415612adf5760008381526001602052604090206002015481108015612a5a575062093a808111155b612ac557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420766f74654475726174696f6e000000000000000000000000604482015290519081900360640190fd5b600083815260016020819052604090912001819055612d00565b817f6d6178566f74654475726174696f6e00000000000000000000000000000000001415612ba057600083815260016020819052604090912001548111612b8757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c696420766f74654475726174696f6e000000000000000000000000604482015290519081900360640190fd5b6000838152600160205260409020600201819055612d00565b817f6d696e476f76546f6b656e546f437265617465566f74650000000000000000001415612c5257600554811115612c3957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e76616c6964206d696e476f76546f6b656e546f437265617465566f746500604482015290519081900360640190fd5b6000838152600160205260409020600301819055612d00565b817f6d696e51756f72756d00000000000000000000000000000000000000000000001415612d0057600554811115612ceb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964206d696e51756f72756d000000000000000000000000000000604482015290519081900360640190fd5b60008381526001602052604090206004018190555b604080518281529051839185917f10eff86a4e52b12bd92a6e64442cdb5baa87a9b327114811ebfc96a7c1e002819181900360200190a3505050565b60028181548110612d4957fe5b600091825260209091200154905081565b612d62612f34565b60005473ffffffffffffffffffffffffffffffffffffffff908116911614612deb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8116612e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613c3d6026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60086020526000908152604090205481565b600a5473ffffffffffffffffffffffffffffffffffffffff1681565b60025490565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b3390565b73ffffffffffffffffffffffffffffffffffffffff8116612fba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c69642061646d696e00000000000000000000000000000000000000604482015290519081900360640190fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617908190556040805160609290921b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168252517f61646d696e000000000000000000000000000000000000000000000000000000917f22ea5a9dcc7fb5bc447fcb472061adc51caa147724a67a6695d49a9dff162509916020918190039190910190a250565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600d6020526040902054801515806130f657508173ffffffffffffffffffffffffffffffffffffffff16600e6000815481106130d257fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16145b61314b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613cdb6026913960400191505060405180910390fd5b600e547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0181101561326757600e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081106131a757fe5b600091825260209091200154600e805473ffffffffffffffffffffffffffffffffffffffff90921691839081106131da57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d6000600e848154811061323457fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b73ffffffffffffffffffffffffffffffffffffffff82166000908152600d6020526040812055600e80548061329857fe5b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690550190555050565b60008282018381101561336857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061336883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613b8b565b60005b600e54811015611ed857600e81815481106133cb57fe5b6000918252602082200154604080517f17e42ec000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8681166004830152915191909216926317e42ec0926024808201939182900301818387803b15801561344357600080fd5b505af1158015613457573d6000803e3d6000fd5b5050600190920191506133b49050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000178152925182516000946060949389169392918291908083835b6020831061353d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613500565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461359f576040519150601f19603f3d011682016040523d82523d6000602084013e6135a4565b606091505b50915091508180156135d25750805115806135d257508080602001905160208110156135cf57600080fd5b50515b61363d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b73ffffffffffffffffffffffffffffffffffffffff82166136c657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f496e76616c6964206578656375746f7200000000000000000000000000000000604482015290519081900360640190fd5b600754158061372a575073ffffffffffffffffffffffffffffffffffffffff821660008181526008602052604090205460078054909190811061370557fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614155b156137b5576007805473ffffffffffffffffffffffffffffffffffffffff84166000818152600860205260408120839055600183018455929092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169091179055613846565b73ffffffffffffffffffffffffffffffffffffffff821660009081526008602052604090205461384657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f63616e6e6f74207265736574206d61696e206578656375746f72000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff8216600090815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168215151790557f410bdf2fedecd51e396bd4e5ca41880366c00ff01f4df34d7cc46faef60eb706606083901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016826138e95760006138ec565b60015b604080517f766f74696e674578656375746f720000000000000000000000000000000000008152602081019390935260ff9190911682820152519081900360600190a15050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017815292518251600094606094938a169392918291908083835b60208310613a1157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016139d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613a73576040519150601f19603f3d011682016040523d82523d6000602084013e613a78565b606091505b5091509150818015613aa6575080511580613aa65750808060200190516020811015613aa357600080fd5b50515b613afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613d266024913960400191505060405180910390fd5b505050505050565b33600090815260046020526040902054613b23908263ffffffff6132f416565b33600090815260046020526040902055600554613b46908263ffffffff6132f416565b600555613b52336133b1565b60408051828152905133917febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a919081900360200190a250565b60008184841115613c34576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bf9578181015183820152602001613be1565b50505050905090810190601f168015613c265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373476f7665726e616e63653a20566f74696e6720636f6e747261637420616c726561647920657869737473476f7665726e616e63653a20756e6c6f636b2076616c756520657863656564206c6f636b65642066756e64476f7665726e616e63653a204e6f742066726f6d20766f74696e675265676973747279476f7665726e616e63653a20566f74696e6720636f6e7472616374206e6f7420657869737473476f7665726e616e63653a20467265657a656420706572696f64206e6f74207061737365645472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c4544476f7665726e616e63653a20496e76616c696420766f74696e672061646472657373a264697066735822122067608374c2d2415c78a70fff0a226bec94f99c8cc1fd0cea30198e48daa3054264736f6c634300060b0033000000000000000000000000b32ac3c79a94ac1eb258f3c830bbdbc676483c930000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002706f6c6c00000000000000000000000000000000000000000000000000000000766f746500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000001275000000000000000000000000000000000000000000000000000000000000127500000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000152d02c7e14af680000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084595161401484a000000