0 txs
4 calls
constructor
constructor()
functions
implementation
viewfunction implementation() view returns (address)
prepareUninstallation
viewfunction prepareUninstallation(address _dao, tuple _payload) view returns (tuple[] permissions)
supportsInterface
viewfunction supportsInterface(bytes4 _interfaceId) view returns (bool)
prepareInstallation
nonpayablefunction prepareInstallation(address _dao, bytes _data) returns (address plugin, tuple preparedSetupData)
prepareUpdate
nonpayablefunction prepareUpdate(address _dao, uint16 _currentBuild, tuple _payload) returns (bytes initData, tuple preparedSetupData)
events
No events.
errors
No errors.
creation bytecode
0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b613fef80611a8083390190565b6080516119dd6100a36000396000818160ad0152818161028e015281816103880152818161048201528181610670015281816107b10152818161089b015261098501526119dd6000f3fe60806040523480156200001157600080fd5b50600436106200006f5760003560e01c80639cb0a12411620000565780639cb0a12414620000d8578063a8a9c29e14620000fe578063f10832f1146200012557600080fd5b806301ffc9a714620000745780635c60da1b14620000a0575b600080fd5b6200008b6200008536600462000b71565b6200014c565b60405190151581526020015b60405180910390f35b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016815260200162000097565b620000ef620000e936600462000beb565b620001e6565b60405162000097919062000cb4565b620001156200010f36600462000d01565b6200060d565b6040516200009792919062000e69565b6200013c6200013636600462000e9b565b62000635565b6040516200009792919062000f25565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f99718b50000000000000000000000000000000000000000000000000000000001480620001e057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60408051600480825260a08201909252606091816020015b6040805160a081018252600080825260208083018290529282018190526060820181905260808201528252600019909201910181620001fe5750506040805160a08101909152600181529091506020808201906200025f9085018562000f67565b6001600160a01b03168152602001846001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638377c4606040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000311919062000f85565b815250816000815181106200032a576200032a62000f9f565b60209081029190910101526040805160a081019091528060018152602090810190620003599085018562000f67565b6001600160a01b03168152602001846001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631befc4056040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040b919062000f85565b8152508160018151811062000424576200042462000f9f565b60209081029190910101526040805160a081019091528060018152602090810190620004539085018562000f67565b6001600160a01b03168152602001846001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c9c4bfca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000505919062000f85565b815250816002815181106200051e576200051e62000f9f565b60209081029190910101526040805160a081019091528060018152602001846001600160a01b0316815260200183600001602081019062000560919062000f67565b6001600160a01b0316815260200160006001600160a01b03168152602001846001600160a01b0316630729d0546040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e3919062000f85565b81525081600381518110620005fc57620005fc62000f9f565b602002602001018190525092915050565b60606200062d604051806040016040528060608152602001606081525090565b935093915050565b600062000655604051806040016040528060608152602001606081525090565b6000806200066685870187620010a4565b91509150620007137f000000000000000000000000000000000000000000000000000000000000000063c147210e60e01b898585604051602401620006ae9392919062001160565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000b0a565b60408051600480825260a0820190925291955060009190816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282526000199092019101816200072f579050506040805160a081019091529091508060008152602001866001600160a01b03168152602001896001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638377c4606040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200080e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000834919062000f85565b815250816000815181106200084d576200084d62000f9f565b60209081029190910101526040805160a081019091528060008152602001866001600160a01b03168152602001896001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631befc4056040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200091e919062000f85565b8152508160018151811062000937576200093762000f9f565b60209081029190910101526040805160a081019091528060008152602001866001600160a01b03168152602001896001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c9c4bfca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620009e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a08919062000f85565b8152508160028151811062000a215762000a2162000f9f565b60209081029190910101526040805160a081019091528060008152602001896001600160a01b03168152602001866001600160a01b0316815260200160006001600160a01b03168152602001896001600160a01b0316630729d0546040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000aac573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ad2919062000f85565b8152508160038151811062000aeb5762000aeb62000f9f565b6020026020010181905250808460200181905250505050935093915050565b600062000b18838362000b1f565b9392505050565b6000828260405162000b319062000b63565b62000b3e929190620011d6565b604051809103906000f08015801562000b5b573d6000803e3d6000fd5b509392505050565b6107ad80620011fb83390190565b60006020828403121562000b8457600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811462000b1857600080fd5b80356001600160a01b038116811462000bcd57600080fd5b919050565b60006060828403121562000be557600080fd5b50919050565b6000806040838503121562000bff57600080fd5b62000c0a8362000bb5565b9150602083013567ffffffffffffffff81111562000c2757600080fd5b62000c358582860162000bd2565b9150509250929050565b6003811062000c5e57634e487b7160e01b600052602160045260246000fd5b50565b6000815162000c708162000c3f565b8352506020818101516001600160a01b0390811691840191909152604080830151821690840152606080830151909116908301526080908101519082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101562000cf55762000ce683855162000c61565b93850193925060010162000cd0565b50909695505050505050565b60008060006060848603121562000d1757600080fd5b62000d228462000bb5565b9250602084013561ffff8116811462000d3a57600080fd5b9150604084013567ffffffffffffffff81111562000d5757600080fd5b62000d658682870162000bd2565b9150509250925092565b6000815180845260005b8181101562000d975760208185018101518683018201520162000d79565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101562000df25781516001600160a01b03168752958201959082019060010162000dcb565b509495945050505050565b600081516040845262000e14604085018262000db7565b60208481015186830387830152805180845290820193509091600091908301905b8083101562000e5e5762000e4b82865162000c61565b9150838501945060018301925062000e35565b509695505050505050565b60408152600062000e7e604083018562000d6f565b828103602084015262000e92818562000dfd565b95945050505050565b60008060006040848603121562000eb157600080fd5b62000ebc8462000bb5565b9250602084013567ffffffffffffffff8082111562000eda57600080fd5b818601915086601f83011262000eef57600080fd5b81358181111562000eff57600080fd5b87602082850101111562000f1257600080fd5b6020830194508093505050509250925092565b6001600160a01b038316815260406020820152600062000f49604083018462000dfd565b949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121562000f7a57600080fd5b62000b188262000bb5565b60006020828403121562000f9857600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60405160a0810167ffffffffffffffff8111828210171562000fdb5762000fdb62000f51565b60405290565b803563ffffffff8116811462000bcd57600080fd5b600082601f8301126200100857600080fd5b8135602067ffffffffffffffff8083111562001028576200102862000f51565b8260051b604051601f19603f8301168101818110848211171562001050576200105062000f51565b6040529384528581018301938381019250878511156200106f57600080fd5b83870191505b848210156200109957620010898262000bb5565b8352918301919083019062001075565b979650505050505050565b60008082840360c0811215620010b957600080fd5b60a0811215620010c857600080fd5b50620010d362000fb5565b833560038110620010e357600080fd5b8152620010f36020850162000fe1565b6020820152620011066040850162000fe1565b6040820152606084013567ffffffffffffffff80821682146200112857600080fd5b8160608401526080860135608084015282945060a08601359250808311156200115057600080fd5b505062000c358582860162000ff6565b6001600160a01b0384168152600083516200117b8162000c3f565b80602084015250602084015163ffffffff8082166040850152806040870151166060850152505067ffffffffffffffff6060850151166080830152608084015160a083015260e060c083015262000e9260e083018462000db7565b6001600160a01b038316815260406020820152600062000f49604083018462000d6f56fe60806040526040516107ad3803806107ad83398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610786602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b610341806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102e5602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610277565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9190610293565b60005b8381101561026e578181015183820152602001610256565b50506000910152565b60008251610289818460208701610253565b9190910192915050565b60208152600082518060208401526102b2816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015b2167515f4ace04b6d5f73baf181691326aab8bf1c62e731322916c13586ec64736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204c9640c02d6a263ab8860630de54952f9a8cc7c085c00ba7246754b293891d2564736f6c6343000811003360a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b603254610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60325460ff90811614620000e5576032805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613ed06200011f600039600081816109d201528181610a6d01528181610b7401528181610c0a0152610d010152613ed06000f3fe60806040526004361061024f5760003560e01c80637c36e8e811610138578063c7f758a8116100b0578063cf1311491161007f578063f60046b211610064578063f60046b214610726578063f794062e1461073c578063fe0d94c11461075c57600080fd5b8063cf131149146106f1578063da35c6641461071157600080fd5b8063c7f758a81461064b578063c9c4bfca1461067d578063cc63604a146106b1578063ce6366c4146106d157600080fd5b80639cba302111610107578063a84eb999116100ec578063a84eb999146105eb578063b1bb8d261461060b578063c147210e1461062b57600080fd5b80639cba3021146105ab578063a230c524146105cb57600080fd5b80637c36e8e8146104de5780638377c460146104ff5780638a4b00f814610533578063970601d81461055357600080fd5b80633659cfe6116101cb57806352d1902d1161019a578063567157611161017f57806356715761146104685780635c60da1b146104a95780636a6b2d86146104be57600080fd5b806352d1902d14610433578063536f9f421461044857600080fd5b80633659cfe6146103ba5780634162169f146103da57806341de68301461040c5780634f1ef2861461042057600080fd5b806317d1b4041161022257806323d071881161020757806323d071881461036357806327f1608d146103855780633628731c1461039a57600080fd5b806317d1b404146103015780631befc4051461032157600080fd5b806301ffc9a714610254578063054fd2c2146102895780630de21856146102bf5780630dfb278e146102df575b600080fd5b34801561026057600080fd5b5061027461026f366004612fe2565b61077c565b60405190151581526020015b60405180910390f35b34801561029557600080fd5b506101925465010000000000900463ffffffff165b60405163ffffffff9091168152602001610280565b3480156102cb57600080fd5b506102746102da36600461300c565b610828565b3480156102eb57600080fd5b506102ff6102fa36600461303d565b6108cb565b005b34801561030d57600080fd5b5061027461031c366004613082565b610916565b34801561032d57600080fd5b506103557fbba35d41610b7d25c8e486006535c76bd423091563e694d206ae3d71ce949fe581565b604051908152602001610280565b34801561036f57600080fd5b506101925460ff165b60405161028091906130e6565b34801561039157600080fd5b5061035561092d565b3480156103a657600080fd5b506102ff6103b536600461313e565b610947565b3480156103c657600080fd5b506102ff6103d5366004613180565b6109c8565b3480156103e657600080fd5b5060fb546001600160a01b03165b6040516001600160a01b039091168152602001610280565b34801561041857600080fd5b506000610378565b6102ff61042e36600461320c565b610b6a565b34801561043f57600080fd5b50610355610cf4565b34801561045457600080fd5b5061035561046336600461300c565b610dba565b34801561047457600080fd5b50610192546901000000000000000000900467ffffffffffffffff1660405167ffffffffffffffff9091168152602001610280565b3480156104b557600080fd5b506103f4610dc5565b3480156104ca57600080fd5b506103556104d936600461300c565b610dfd565b3480156104ea57600080fd5b5061019254610100900463ffffffff166102aa565b34801561050b57600080fd5b506103557f37c20ba3fe5e4e1eb04b4bdb30d528f9d2d37a43a745d3976dffa671d4a3895381565b34801561053f57600080fd5b5061027461054e36600461300c565b610e0a565b34801561055f57600080fd5b5061059e61056e36600461329f565b6000828152610191602090815260408083206001600160a01b038516845260060190915290205460ff1692915050565b60405161028091906132e3565b3480156105b757600080fd5b506103556105c636600461332b565b610e4a565b3480156105d757600080fd5b506102746105e6366004613180565b6110d3565b3480156105f757600080fd5b506102ff61060636600461313e565b6110de565b34801561061757600080fd5b50610274610626366004613410565b611152565b34801561063757600080fd5b506102ff61064636600461343c565b61117e565b34801561065757600080fd5b5061066b61066636600461300c565b6112e7565b6040516102809695949392919061356e565b34801561068957600080fd5b506103557f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f581565b3480156106bd57600080fd5b506102746106cc36600461300c565b61154f565b3480156106dd57600080fd5b506102ff6106ec366004613626565b61155a565b3480156106fd57600080fd5b5061027461070c36600461300c565b6115b4565b34801561071d57600080fd5b50610355611616565b34801561073257600080fd5b5061019354610355565b34801561074857600080fd5b50610274610757366004613180565b611622565b34801561076857600080fd5b506102ff61077736600461300c565b611656565b60006001600160e01b031982167f5f21eb8b0000000000000000000000000000000000000000000000000000000014806107df57506001600160e01b031982167f0bb5c60300000000000000000000000000000000000000000000000000000000145b8061081357506001600160e01b031982167fa230c52400000000000000000000000000000000000000000000000000000000145b806108225750610822826116a1565b92915050565b6000818152610191602052604081206003810154600482015460018301548492919061086490600160a81b900467ffffffffffffffff16610dba565b61086e919061367c565b610878919061367c565b6001830154909150610896908290610100900463ffffffff1661368f565b600483015460018401546108b890610100900463ffffffff16620f424061367c565b6108c2919061368f565b11949350505050565b60fb547fbba35d41610b7d25c8e486006535c76bd423091563e694d206ae3d71ce949fe590610909906001600160a01b031630335b84600036611713565b61091282611801565b5050565b6000610923848484611a04565b90505b9392505050565b60006109396001611aec565b6001600160e01b0316905090565b60fb547f37c20ba3fe5e4e1eb04b4bdb30d528f9d2d37a43a745d3976dffa671d4a3895390610980906001600160a01b03163033610900565b61098a8383611b34565b7f11ba20e083ffba533caf1d501ce171aa2acdc05a5601e4e473e449460b0718d883836040516109bb9291906136a6565b60405180910390a1505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a6b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084015b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ac67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610b425760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610a62565b610b4b81611c3a565b60408051600080825260208201909252610b6791839190611c73565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c085760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610a62565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c637f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610cdf5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610a62565b610ce882611c3a565b61091282826001611c73565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d945760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610a62565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b600061082282610dfd565b6000610df87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b6000610822600183611e18565b6000818152610191602052604081206002810154600382015460058301546004840154610e3791906136f4565b610e4191906136f4565b10159392505050565b6000610e566101935490565b15801590610e6a5750610e6833611622565b155b15610ea3576040517feab99344000000000000000000000000000000000000000000000000000000008152336004820152602401610a62565b60006001610eb043611ecb565b039050610ebd8686611f4f565b9096509450610ed2338c8c89898e8e8e612090565b6000818152610191602052604090206001810180547fffffffffffffffffffffff00000000000000000000000000000000ffffffffff166501000000000067ffffffffffffffff8b8116919091027fffffffffffffffffffffff0000000000000000ffffffffffffffffffffffffff16919091176d01000000000000000000000000008a831602177fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16600160a81b91861691909102179055610192549193509060ff1660018083018054909160ff1990911690836002811115610fb857610fb86130c0565b0217905550610192546001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff1663ffffffff610100938490041690920291909117905561102d61101567ffffffffffffffff8416610dba565b6101925465010000000000900463ffffffff166120f6565b6002820155871561104057600881018890555b60005b8981101561109f57816007018b8b8381811061106157611061613707565b9050602002810190611073919061371d565b81546001810183556000928352602090922090916003020161109582826137b7565b5050600101611043565b5060008560038111156110b4576110b46130c0565b146110c4576110c483868661155a565b50509998505050505050505050565b600061082282611622565b60fb547f37c20ba3fe5e4e1eb04b4bdb30d528f9d2d37a43a745d3976dffa671d4a3895390611117906001600160a01b03163033610900565b6111218383612186565b7f0ba413f7646035cae0a4ee999d676078fc8a763d1a36a8ef25e4c10f67d8615d83836040516109bb9291906136a6565b6001600160a01b03821660009081526020819052604081206111749083611e18565b6001149392505050565b603254610100900460ff161580801561119e5750603254600160ff909116105b806111b85750303b1580156111b8575060325460ff166001145b61122a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610a62565b6032805460ff19166001179055801561124d576032805461ff0019166101001790555b61125785856121ef565b6112618383611b34565b7f11ba20e083ffba533caf1d501ce171aa2acdc05a5601e4e473e449460b0718d883836040516112929291906136a6565b60405180910390a180156112e0576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052819061133e60405180606001604052806000815260200160008152602001600081525090565b6000858152610191602052604081206060919061135a8161227e565b81546040805160c08101909152600184018054939a5060ff928316995090929091839116600281111561138f5761138f6130c0565b60028111156113a0576113a06130c0565b8152815463ffffffff61010082041660208084019190915267ffffffffffffffff65010000000000830481166040808601919091526d010000000000000000000000000084048216606080870191909152600160a81b909404909116608085015260019094015460a090930192909252825190810183526003850154815260048501548183015260058501548184015260078501805484518185028101850190955280855294995090975091929060009084015b82821015611538576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600181015493830193909352600283018054929392918401916114a79061373d565b80601f01602080910402602001604051908101604052809291908181526020018280546114d39061373d565b80156115205780601f106114f557610100808354040283529160200191611520565b820191906000526020600020905b81548152906001019060200180831161150357829003601f168201915b50505050508152505081526020019060010190611454565b505050509250806008015491505091939550919395565b6000610822826122ec565b33611566848285611a04565b6115a2578381846040517f70b4b254000000000000000000000000000000000000000000000000000000008152600401610a62939291906138e8565b6115ae84848385612394565b50505050565b600081815261019160205260408120600581015460018201546115e29190610100900463ffffffff1661368f565b6004820154600183015461160490610100900463ffffffff16620f424061367c565b61160e919061368f565b119392505050565b6000610df861015f5490565b6001600160a01b038116600090815260208190526040812061164390611aec565b6001600160e01b03166001149050919050565b61165f816122ec565b611698576040517f9fefd0f100000000000000000000000000000000000000000000000000000000815260048101829052602401610a62565b610b6781612589565b60006001600160e01b031982167f8678b01e00000000000000000000000000000000000000000000000000000000148061170457506001600160e01b031982167f4d19145e00000000000000000000000000000000000000000000000000000000145b806108225750610822826126f1565b6040517ffdef91060000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063fdef9106906117609088908890889088908890600401613936565b602060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190613974565b6117f9576040517f32dbe3b40000000000000000000000000000000000000000000000000000000081526001600160a01b03808816600483015280871660248301528516604482015260648101849052608401610a62565b505050505050565b61180f6001620f424061367c565b61181f60408301602084016139a3565b63ffffffff16111561188a576118396001620f424061367c565b61184960408301602084016139a3565b6040517fcc80c195000000000000000000000000000000000000000000000000000000008152600481019290925263ffffffff166024820152604401610a62565b620f424061189e60608301604084016139a3565b63ffffffff1611156118be57620f424061184960608301604084016139a3565b610e106118d160808301606084016139c0565b67ffffffffffffffff16101561193a57610e106118f460808301606084016139c0565b6040517fc51033ee00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff928316600482015291166024820152604401610a62565b6301e1338061194f60808301606084016139c0565b67ffffffffffffffff161115611974576301e133806118f460808301606084016139c0565b8061019261198282826139f7565b507fa8a18d06ddd19f24a872740e3d364c86f62be25f7154525dda18ef07fda46f3e90506119b36020830183613b0a565b6119c360408401602085016139a3565b6119d360608501604086016139a3565b6119e360808601606087016139c0565b85608001356040516119f9959493929190613b27565b60405180910390a150565b600083815261019160205260408120611a1c8161227e565b611a2a576000915050610926565b6000836003811115611a3e57611a3e6130c0565b03611a4d576000915050610926565b6001810154611a6e908590600160a81b900467ffffffffffffffff16611152565b611a7c576000915050610926565b6001600160a01b038416600090815260068201602052604081205460ff166003811115611aab57611aab6130c0565b14158015611ad257506002600182015460ff166002811115611acf57611acf6130c0565b14155b15611ae1576000915050610926565b506001949350505050565b80546000908015611b2b57611b1483611b0660018461367c565b600091825260209091200190565b5464010000000090046001600160e01b0316610926565b60009392505050565b60005b81811015611c2b57611b69838383818110611b5457611b54613707565b90506020020160208101906107579190613180565b15611bd357828282818110611b8057611b80613707565b9050602002016020810190611b959190613180565b6040517fc0b7477d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401610a62565b611c216001600080868686818110611bed57611bed613707565b9050602002016020810190611c029190613180565b6001600160a01b0316815260208101919091526040016000209061272f565b5050600101611b37565b506115ae600161276583612769565b60fb547f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f590610912906001600160a01b03163033610900565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611cab57611ca6836127a1565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611d05575060408051601f3d908101601f19168201909252611d0291810190613b63565b60015b611d775760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610a62565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611e0c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610a62565b50611ca683838361286c565b6000438210611e695760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610a62565b6000611e7483612891565b84549091506000611e878684838561290d565b90508015611eb557611e9e86611b0660018461367c565b5464010000000090046001600160e01b0316611eb8565b60005b6001600160e01b03169695505050505050565b600067ffffffffffffffff821115611f4b5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f34206269747300000000000000000000000000000000000000000000000000006064820152608401610a62565b5090565b6000806000611f5d42611ecb565b90508467ffffffffffffffff16600003611f7957809250611fde565b8492508067ffffffffffffffff168367ffffffffffffffff161015611fde576040517f4cc9c0f400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015284166024820152604401610a62565b61019254600090612006906901000000000000000000900467ffffffffffffffff1685613b7c565b90508467ffffffffffffffff1660000361202257809250612087565b8492508067ffffffffffffffff168367ffffffffffffffff161015612087576040517f4cc9c0f400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff808316600483015284166024820152604401610a62565b50509250929050565b600061209a61296e565b9050886001600160a01b0316817fa6c1f8f4276dc3f243459e13b557c84e8f4e90b2e09070bad5f6909cee687c9288888c8c8a8a8a6040516120e29796959493929190613b9d565b60405180910390a398975050505050505050565b6000620f4240821115612141576040517fcc80c195000000000000000000000000000000000000000000000000000000008152620f4240600482015260248101839052604401610a62565b61214b828461368f565b9250600061215c620f424085613cc2565b905061216b620f424085613cd6565b9150801561217f5761217c82613cea565b91505b5092915050565b60005b818110156121e0576121a6838383818110611b5457611b54613707565b6121bc57828282818110611b8057611b80613707565b6121d66000806000868686818110611bed57611bed613707565b5050600101612189565b506115ae600161298983612769565b603254610100900460ff1661226c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a62565b6122758261298e565b61091281611801565b60008061228a42611ecb565b600184015490915067ffffffffffffffff8083166501000000000090920416118015906122d95750600183015467ffffffffffffffff6d01000000000000000000000000009091048116908216105b8015610926575050905460ff1615919050565b600081815261019160205260408120805460ff161561230e5750600092915050565b6123178161227e565b1561235f5760018082015460ff166002811115612336576123366130c0565b146123445750600092915050565b61234d83610828565b61235a5750600092915050565b612375565b612368836115b4565b6123755750600092915050565b61237e83610e0a565b61238b5750600092915050565b50600192915050565b6000848152610191602090815260408083206001600160a01b0386168452600681019092529091205460ff1660028160038111156123d4576123d46130c0565b036123f45760048201546123ea9060019061367c565b6004830155612458565b6003816003811115612408576124086130c0565b0361242857600582015461241e9060019061367c565b6005830155612458565b600181600381111561243c5761243c6130c0565b036124585760038201546124529060019061367c565b60038301555b600285600381111561246c5761246c6130c0565b0361248b5760048201546124819060016136f4565b60048301556124ed565b600385600381111561249f5761249f6130c0565b036124be5760058201546124b49060016136f4565b60058301556124ed565b60018560038111156124d2576124d26130c0565b036124ed5760038201546124e79060016136f4565b60038301555b6001600160a01b03841660009081526006830160205260409020805486919060ff19166001836003811115612524576125246130c0565b0217905550836001600160a01b0316867fb83d25c6a5d258561330739951487acb4bd09ba5190b5d32c4f261817d906792876001604051612566929190613d04565b60405180910390a382801561257f575061257f866122ec565b156117f9576117f9865b600081815261019160205260409020805460ff19166001179055611ca66125b860fb546001600160a01b031690565b826101916000858152602001908152602001600020600701805480602002602001604051908101604052809291908181526020016000905b828210156126d4576000848152602090819020604080516060810182526003860290920180546001600160a01b03168352600181015493830193909352600283018054929392918401916126439061373d565b80601f016020809104026020016040519081016040528092919081815260200182805461266f9061373d565b80156126bc5780601f10612691576101008083540402835291602001916126bc565b820191906000526020600020905b81548152906001019060200180831161269f57829003601f168201915b505050505081525050815260200190600101906125f0565b505050600086815261019160205260409020600801549050612a14565b60006001600160e01b031982167fda35c664000000000000000000000000000000000000000000000000000000001480610822575061082282612ae3565b60008061274d8461273f43612891565b61274886612b7e565b612bfd565b6001600160e01b0391821693501690505b9250929050565b0190565b6000806127948561278f61277c88611aec565b6001600160e01b0316868863ffffffff16565b61272f565b915091505b935093915050565b6001600160a01b0381163b61281e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610a62565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61287583612da0565b6000825111806128825750805b15611ca6576115ae8383612de0565b600063ffffffff821115611f4b5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610a62565b60005b818310156129635760006129248484612e05565b60008781526020902090915063ffffffff86169082015463ffffffff16111561294f5780925061295d565b61295a8160016136f4565b93505b50612910565b50805b949350505050565b6000612978611616565b9050610db761015f80546001019055565b900390565b603254610100900460ff16612a0b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a62565b610b6781612e20565b6040517fc71bf3240000000000000000000000000000000000000000000000000000000081526060906000906001600160a01b0387169063c71bf32490612a6390889088908890600401613d1f565b6000604051808303816000875af1158015612a82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612aaa9190810190613d48565b604051919350915085907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a294509492505050565b60006001600160e01b031982167f41de6830000000000000000000000000000000000000000000000000000000001480612b4657506001600160e01b031982167f52d1902d00000000000000000000000000000000000000000000000000000000145b8061082257507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610822565b60006001600160e01b03821115611f4b5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610a62565b825460009081908015612d46576000612c1b87611b0660018561367c565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b031660208401529192509087161015612c9d5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b65797300000000006044820152606401610a62565b805163ffffffff808816911603612ce65784612cbe88611b0660018661367c565b80546001600160e01b03929092166401000000000263ffffffff909216919091179055612d36565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b6020015192508391506127999050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316640100000000029190931617920191909155905081612799565b612da9816127a1565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606109268383604051806060016040528060278152602001613e7460279139612ecc565b6000612e146002848418613cd6565b610926908484166136f4565b603254610100900460ff16612e9d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610a62565b60fb805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080856001600160a01b031685604051612ee99190613e4e565b600060405180830381855af49150503d8060008114612f24576040519150601f19603f3d011682016040523d82523d6000602084013e612f29565b606091505b5091509150612f3a86838387612f44565b9695505050505050565b60608315612fb3578251600003612fac576001600160a01b0385163b612fac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a62565b5081612966565b6129668383815115612fc85781518083602001fd5b8060405162461bcd60e51b8152600401610a629190613e60565b600060208284031215612ff457600080fd5b81356001600160e01b03198116811461092657600080fd5b60006020828403121561301e57600080fd5b5035919050565b600060a0828403121561303757600080fd5b50919050565b600060a0828403121561304f57600080fd5b6109268383613025565b6001600160a01b0381168114610b6757600080fd5b80356004811061307d57600080fd5b919050565b60008060006060848603121561309757600080fd5b8335925060208401356130a981613059565b91506130b76040850161306e565b90509250925092565b634e487b7160e01b600052602160045260246000fd5b60038110610b6757610b676130c0565b602081016130f3836130d6565b91905290565b60008083601f84011261310b57600080fd5b50813567ffffffffffffffff81111561312357600080fd5b6020830191508360208260051b850101111561275e57600080fd5b6000806020838503121561315157600080fd5b823567ffffffffffffffff81111561316857600080fd5b613174858286016130f9565b90969095509350505050565b60006020828403121561319257600080fd5b813561092681613059565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156131dc576131dc61319d565b604052919050565b600067ffffffffffffffff8211156131fe576131fe61319d565b50601f01601f191660200190565b6000806040838503121561321f57600080fd5b823561322a81613059565b9150602083013567ffffffffffffffff81111561324657600080fd5b8301601f8101851361325757600080fd5b803561326a613265826131e4565b6131b3565b81815286602083850101111561327f57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600080604083850312156132b257600080fd5b8235915060208301356132c481613059565b809150509250929050565b600481106132df576132df6130c0565b9052565b6020810161082282846132cf565b67ffffffffffffffff81168114610b6757600080fd5b803561307d816132f1565b8015158114610b6757600080fd5b803561307d81613312565b600080600080600080600080600060e08a8c03121561334957600080fd5b893567ffffffffffffffff8082111561336157600080fd5b818c0191508c601f83011261337557600080fd5b81358181111561338457600080fd5b8d602082850101111561339657600080fd5b60209283019b509950908b013590808211156133b157600080fd5b506133be8c828d016130f9565b90985096505060408a013594506133d760608b01613307565b93506133e560808b01613307565b92506133f360a08b0161306e565b915061340160c08b01613320565b90509295985092959850929598565b6000806040838503121561342357600080fd5b823561342e81613059565b946020939093013593505050565b60008060008060e0858703121561345257600080fd5b843561345d81613059565b935061346c8660208701613025565b925060c085013567ffffffffffffffff81111561348857600080fd5b613494878288016130f9565b95989497509550505050565b60005b838110156134bb5781810151838201526020016134a3565b50506000910152565b600081518084526134dc8160208601602086016134a0565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b85811015613561578284038952815180516001600160a01b03168552858101518686015260409081015160609186018290529061354d818701836134c4565b9a87019a955050509084019060010161350e565b5091979650505050505050565b60006101a088151583528715156020840152865161358b816130d6565b8060408501525063ffffffff6020880151166060840152604087015167ffffffffffffffff80821660808601528060608a01511660a08601528060808a01511660c0860152505060a087015160e08401526135fe6101008401878051825260208082015190830152604090810151910152565b80610160840152613611818401866134f0565b91505082610180830152979650505050505050565b60008060006060848603121561363b57600080fd5b8335925061364b6020850161306e565b9150604084013561365b81613312565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082257610822613666565b808202811582820484141761082257610822613666565b60208082528181018390526000908460408401835b868110156136e95782356136ce81613059565b6001600160a01b0316825291830191908301906001016136bb565b509695505050505050565b8082018082111561082257610822613666565b634e487b7160e01b600052603260045260246000fd5b60008235605e1983360301811261373357600080fd5b9190910192915050565b600181811c9082168061375157607f821691505b60208210810361303757634e487b7160e01b600052602260045260246000fd5b601f821115611ca657600081815260208120601f850160051c810160208610156137985750805b601f850160051c820191505b818110156117f9578281556001016137a4565b81356137c281613059565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013582840155600283016040850135601e1986360301811261381057600080fd5b8501803567ffffffffffffffff81111561382957600080fd5b803603848301131561383a57600080fd5b61384e81613848855461373d565b85613771565b6000601f821160018114613884576000831561386c57508382018601355b600019600385901b1c1916600184901b1785556138dd565b600085815260209020601f19841690835b828110156138b457868501890135825593880193908901908801613895565b50848210156138d35760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b8381526001600160a01b03831660208201526060810161296660408301846132cf565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b0380881683528087166020840152508460408301526080606083015261396960808301848661390b565b979650505050505050565b60006020828403121561398657600080fd5b815161092681613312565b63ffffffff81168114610b6757600080fd5b6000602082840312156139b557600080fd5b813561092681613991565b6000602082840312156139d257600080fd5b8135610926816132f1565b60038110610b6757600080fd5b60008135610822816132f1565b8135613a02816139dd565b613a0b816130d6565b815460ff821691508160ff1982161783556020840135613a2a81613991565b64ffffffff008160081b16905080837fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000008416171784556040850135613a6e81613991565b68ffffffff00000000008160281b16847fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000851617831717855550505050613afc613aba606084016139ea565b82547fffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff1660489190911b70ffffffffffffffff00000000000000000016178255565b608082013560018201555050565b600060208284031215613b1c57600080fd5b8135610926816139dd565b60a08101613b34876130d6565b95815263ffffffff948516602082015292909316604083015267ffffffffffffffff1660608201526080015290565b600060208284031215613b7557600080fd5b5051919050565b67ffffffffffffffff81811683821601908082111561217f5761217f613666565b600067ffffffffffffffff808a1683526020818a1681850152604060a081860152613bcc60a086018a8c61390b565b606086820381880152818983528483019050848a60051b8401018b60005b8c811015613c8e57601f198684030184528135605e198f3603018112613c0f57600080fd5b8e018035613c1c81613059565b6001600160a01b0316845280890135898501528781013536829003601e19018112613c4657600080fd5b0188810190358a811115613c5957600080fd5b803603821315613c6857600080fd5b8689860152613c7a878601828461390b565b958a01959450505090870190600101613bea565b50508097505050505050505082608083015298975050505050505050565b634e487b7160e01b600052601260045260246000fd5b600082613cd157613cd1613cac565b500690565b600082613ce557613ce5613cac565b500490565b60006000198203613cfd57613cfd613666565b5060010190565b60408101613d1282856132cf565b8260208301529392505050565b838152606060208201526000613d3860608301856134f0565b9050826040830152949350505050565b6000806040808486031215613d5c57600080fd5b835167ffffffffffffffff80821115613d7457600080fd5b818601915086601f830112613d8857600080fd5b8151602082821115613d9c57613d9c61319d565b8160051b613dab8282016131b3565b928352848101820192828101908b851115613dc557600080fd5b83870192505b84831015613e3a57825186811115613de35760008081fd5b8701603f81018d13613df55760008081fd5b84810151613e05613265826131e4565b8181528e8b838501011115613e1a5760008081fd5b613e29828883018d86016134a0565b845250509183019190830190613dcb565b9990920151989a9899505050505050505050565b600082516137338184602087016134a0565b60208152600061092660208301846134c456fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220845824f48997f972e4f3969651ce1115fbe6817ed9949f6751f9405b0c2c9e4c64736f6c63430008110033