0 txs
129 calls
constructor
constructor()
functions
assetPluginRegistry
viewfunction assetPluginRegistry() view returns (address)
assetRegistry
viewfunction assetRegistry() view returns (address)
backingManager
viewfunction backingManager() view returns (address)
basketHandler
viewfunction basketHandler() view returns (address)
broker
viewfunction broker() view returns (address)
daoFeeRegistry
viewfunction daoFeeRegistry() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
distributor
viewfunction distributor() view returns (address)
frozen
viewfunction frozen() view returns (bool)
furnace
viewfunction furnace() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isComponent
viewfunction isComponent(address) view returns (bool)
issuancePaused
viewfunction issuancePaused() view returns (bool)
issuancePausedOrFrozen
viewfunction issuancePausedOrFrozen() view returns (bool)
LONG_FREEZER_ROLE
viewfunction LONG_FREEZER_ROLE() view returns (bytes32)
longFreeze
viewfunction longFreeze() view returns (uint48)
longFreezes
viewfunction longFreezes(address) view returns (uint256)
OWNER_ROLE
viewfunction OWNER_ROLE() view returns (bytes32)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rsr
viewfunction rsr() view returns (address)
rsrTrader
viewfunction rsrTrader() view returns (address)
rToken
viewfunction rToken() view returns (address)
rTokenTrader
viewfunction rTokenTrader() view returns (address)
SHORT_FREEZER_ROLE
viewfunction SHORT_FREEZER_ROLE() view returns (bytes32)
shortFreeze
viewfunction shortFreeze() view returns (uint48)
stRSR
viewfunction stRSR() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tradingPaused
viewfunction tradingPaused() view returns (bool)
tradingPausedOrFrozen
viewfunction tradingPausedOrFrozen() view returns (bool)
unfreezeAt
viewfunction unfreezeAt() view returns (uint48)
version
purefunction version() pure returns (string)
versionRegistry
viewfunction versionRegistry() view returns (address)
beginTx
nonpayablefunction beginTx()
cacheComponents
nonpayablefunction cacheComponents()
endTx
nonpayablefunction endTx()
freezeForever
nonpayablefunction freezeForever()
freezeLong
nonpayablefunction freezeLong()
freezeShort
nonpayablefunction freezeShort()
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
init
nonpayablefunction init(tuple components, address rsr_, uint48 shortFreeze_, uint48 longFreeze_)
pauseIssuance
nonpayablefunction pauseIssuance()
pauseTrading
nonpayablefunction pauseTrading()
poke
nonpayablefunction poke()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAssetPluginRegistry
nonpayablefunction setAssetPluginRegistry(address registry_)
setDAOFeeRegistry
nonpayablefunction setDAOFeeRegistry(address feeRegistry_)
setLongFreeze
nonpayablefunction setLongFreeze(uint48 longFreeze_)
setShortFreeze
nonpayablefunction setShortFreeze(uint48 shortFreeze_)
setVersionRegistry
nonpayablefunction setVersionRegistry(address versionRegistry_)
unfreeze
nonpayablefunction unfreeze()
unpauseIssuance
nonpayablefunction unpauseIssuance()
unpauseTrading
nonpayablefunction unpauseTrading()
upgradeMainTo
nonpayablefunction upgradeMainTo(bytes32 versionHash)
upgradeRTokenTo
nonpayablefunction upgradeRTokenTo(bytes32 versionHash, bool preValidation, bool postValidation)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AssetRegistrySet
event AssetRegistrySet(address oldVal, address newVal)
BackingManagerSet
event BackingManagerSet(address oldVal, address newVal)
BasketHandlerSet
event BasketHandlerSet(address oldVal, address newVal)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
BrokerSet
event BrokerSet(address oldVal, address newVal)
DistributorSet
event DistributorSet(address oldVal, address newVal)
FurnaceSet
event FurnaceSet(address oldVal, address newVal)
Initialized
event Initialized(uint8 version)
IssuancePausedSet
event IssuancePausedSet(bool oldVal, bool newVal)
LongFreezeDurationSet
event LongFreezeDurationSet(uint48 oldDuration, uint48 newDuration)
MainInitialized
event MainInitialized()
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
RSRTraderSet
event RSRTraderSet(address oldVal, address newVal)
RTokenSet
event RTokenSet(address indexed oldVal, address indexed newVal)
RTokenTraderSet
event RTokenTraderSet(address oldVal, address newVal)
ShortFreezeDurationSet
event ShortFreezeDurationSet(uint48 oldDuration, uint48 newDuration)
StRSRSet
event StRSRSet(address oldVal, address newVal)
TradingPausedSet
event TradingPausedSet(bool oldVal, bool newVal)
UnfreezeAtSet
event UnfreezeAtSet(uint48 oldVal, uint48 newVal)
Upgraded
event Upgraded(address indexed implementation)
errors
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50600054610100900460ff16158080156100355750600054600160ff909116105b8061004f5750303b15801561004f575060005460ff166001145b6100b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff1916600117905580156100d9576000805461ff0019166101001790555b801561011f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506080516140a961015760003960008181611305015281816113450152818161146a015281816114aa015261165001526140a96000f3fe60806040526004361061038c5760003560e01c80636a28f000116101dc578063bfe1092811610102578063df23cbb1116100a0578063e63ab1e91161006f578063e63ab1e914610b05578063f41c869514610b1a578063f8aa0c4e14610b3a578063fe8aa12a14610b6057600080fd5b8063df23cbb114610a7e578063df5e9b2914610a93578063e083b5e614610ac3578063e58378bb14610af057600080fd5b8063d547741f116100dc578063d547741f146109fd578063d99ba25014610a1d578063dc8af5f614610a3e578063de1611cf14610a5e57600080fd5b8063bfe109281461099b578063c691af92146109bb578063c99dc3dd146109dc57600080fd5b806394c7f2991161017a5780639980cb23116101495780639980cb2314610925578063a217fddf14610946578063abff01101461095b578063be2cb3b41461097b57600080fd5b806394c7f299146108bb578063979d7e86146108d057806398f73e52146108f0578063992e1d6a1461090557600080fd5b80637162c797116101b65780637162c797146107895780637173a83a1461086657806375a8f9261461088657806391d148541461089b57600080fd5b80636a28f00014610735578063705a66181461074a57806370d4bb001461076957600080fd5b806336568abe116102c15780635187ae681161025f57806354fd4d501161022e57806354fd4d50146106ab578063590f6b1a146106df57806360893515146106f4578063656e96e11461071557600080fd5b80635187ae681461063557806352d1902d14610655578063531367631461066a57806353e23e2e1461068a57600080fd5b806341bf0c4e1161029b57806341bf0c4e146105cd578063456068d2146105ed5780634780a5e5146106025780634f1ef2861461062257600080fd5b806336568abe1461056d5780633659cfe61461058d57806340c65f72146105ad57600080fd5b8063248a9ca31161032e5780632d870960116103085780632d870960146104eb5780632f2439b1146105005780632f2ff15d1461053857806331cfec051461055857600080fd5b8063248a9ca31461045b5780632585a270146104995780632b56d18a146104ae57600080fd5b80630f702ed31161036a5780630f702ed3146104075780631031e36e1461041c57806314f4ded214610431578063181783581461044657600080fd5b806301ffc9a714610391578063054f7d9c146103c6578063092f248b146103e5575b600080fd5b34801561039d57600080fd5b506103b16103ac36600461375f565b610b75565b60405190151581526020015b60405180910390f35b3480156103d257600080fd5b5060985465ffffffffffff1642106103b1565b3480156103f157600080fd5b50610405610400366004613789565b610bac565b005b34801561041357600080fd5b50610405610e29565b34801561042857600080fd5b50610405610ec1565b34801561043d57600080fd5b50610405610f50565b34801561045257600080fd5b50610405610fab565b34801561046757600080fd5b5061048b610476366004613789565b60009081526065602052604090206001015490565b6040519081526020016103bd565b3480156104a557600080fd5b5061040561107d565b3480156104ba57600080fd5b506098546104d490600160301b900465ffffffffffff1681565b60405165ffffffffffff90911681526020016103bd565b3480156104f757600080fd5b5061048b611106565b34801561050c57600080fd5b5060cc54610520906001600160a01b031681565b6040516001600160a01b0390911681526020016103bd565b34801561054457600080fd5b506104056105533660046137b7565b611137565b34801561056457600080fd5b50610405611203565b34801561057957600080fd5b506104056105883660046137b7565b61127d565b34801561059957600080fd5b506104056105a83660046137e7565b6112fb565b3480156105b957600080fd5b5060c954610520906001600160a01b031681565b3480156105d957600080fd5b5060d054610520906001600160a01b031681565b3480156105f957600080fd5b506104056113d7565b34801561060e57600080fd5b5060ca54610520906001600160a01b031681565b6104056106303660046138c0565b611460565b34801561064157600080fd5b5061040561065036600461396e565b61152c565b34801561066157600080fd5b5061048b611643565b34801561067657600080fd5b5060cf54610520906001600160a01b031681565b34801561069657600080fd5b506098546103b190600160901b900460ff1681565b3480156106b757600080fd5b5060408051808201825260058152640342e322e360dc1b602082015290516103bd91906139ad565b3480156106eb57600080fd5b5061048b6116f6565b34801561070057600080fd5b5061016054610520906001600160a01b031681565b34801561072157600080fd5b5060d154610520906001600160a01b031681565b34801561074157600080fd5b50610405611725565b34801561075657600080fd5b506098546104d49065ffffffffffff1681565b34801561077557600080fd5b506104056107843660046137e7565b6117b8565b34801561079557600080fd5b5060c9546001600160a01b03908116600090815260d360205260408082208054600160ff19918216811790925560ca5485168452828420805482168317905560cb5485168452828420805482168317905560cc5485168452828420805482168317905560cd5485168452828420805482168317905560ce5485168452828420805482168317905560cf5485168452828420805482168317905560d05485168452828420805482168317905560d15485168452828420805482168317905560d254909416835291208054909216179055005b34801561087257600080fd5b506104056108813660046137e7565b61185c565b34801561089257600080fd5b506103b1611900565b3480156108a757600080fd5b506103b16108b63660046137b7565b611929565b3480156108c757600080fd5b50610405611957565b3480156108dc57600080fd5b5060cb54610520906001600160a01b031681565b3480156108fc57600080fd5b506103b1611996565b34801561091157600080fd5b506104056109203660046139eb565b6119bd565b34801561093157600080fd5b5061016254610520906001600160a01b031681565b34801561095257600080fd5b5061048b600081565b34801561096757600080fd5b5060d254610520906001600160a01b031681565b34801561098757600080fd5b506104056109963660046137e7565b611b7e565b3480156109a757600080fd5b5060ce54610520906001600160a01b031681565b3480156109c757600080fd5b506098546103b190600160981b900460ff1681565b3480156109e857600080fd5b5061015f54610520906001600160a01b031681565b348015610a0957600080fd5b50610405610a183660046137b7565b611c22565b348015610a2957600080fd5b5061016154610520906001600160a01b031681565b348015610a4a57600080fd5b5060cd54610520906001600160a01b031681565b348015610a6a57600080fd5b50610405610a7936600461396e565b611c47565b348015610a8a57600080fd5b50610405611d60565b348015610a9f57600080fd5b506103b1610aae3660046137e7565b60d36020526000908152604090205460ff1681565b348015610acf57600080fd5b5061048b610ade3660046137e7565b60976020526000908152604090205481565b348015610afc57600080fd5b5061048b611def565b348015610b1157600080fd5b5061048b611e16565b348015610b2657600080fd5b50610405610b35366004613b09565b611e3e565b348015610b4657600080fd5b506098546104d490600160601b900465ffffffffffff1681565b348015610b6c57600080fd5b506104056122d6565b60006001600160e01b03198216637965db0b60e01b1480610ba657506301ffc9a760e01b6001600160e01b03198316145b92915050565b6040518060400160405280600581526020016427aba722a960d91b815250610bd390613b4b565b610bdc81612399565b610160546001600160a01b0316610c285760405162461bcd60e51b815260206004820152600b60248201526a6e6f20726567697374727960a81b60448201526064015b60405180910390fd5b610160546040516237935760e61b8152600481018490526001600160a01b0390911690630de4d5c090602401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c959190613b72565b15610cd75760405162461bcd60e51b81526020600482015260126024820152711d995c9cda5bdb8819195c1c9958d85d195960721b6044820152606401610c1f565b61016054604051632777202560e11b8152600481018490526000916001600160a01b031690634eee404a906024016101a060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d479190613bff565b9050610d573082600001516123a3565b82306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dbe9190810190613d14565b604051602001610dce9190613d8b565b6040516020818303038152906040528051906020012014610e245760405162461bcd60e51b815260206004820152601060248201526f0eae0cee4c2c8ca40dad2e6dac2e8c6d60831b6044820152606401610c1f565b505050565b6040518060400160405280600d81526020016c29a427a92a2fa32922a2ad22a960991b815250610e5890613b4b565b610e6181612399565b610e996040518060400160405280600d81526020016c29a427a92a2fa32922a2ad22a960991b815250610e9390613b4b565b3361247b565b609854610ebe90610eb990600160301b900465ffffffffffff1642613dbd565b6124e2565b50565b604051806040016040528060068152602001652820aaa9a2a960d11b815250610ee990613b4b565b610ef281612399565b60985460408051600160901b90920460ff1615158252600160208301527f87161063ac9982961a7044485445fe4f7bb1a458f731e5ad5ca31b97f3d452bf910160405180910390a1506098805460ff60901b1916600160901b179055565b33600090815260d3602052604090205460ff16610fa15760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08184818dbdb5c1bdb995b9d608a1b6044820152606401610c1f565b610fa961258e565b565b60cb60009054906101000a90046001600160a01b03166001600160a01b031663f8ac93e86040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610ffb57600080fd5b505af115801561100f573d6000803e3d6000fd5b5050505060ca60009054906101000a90046001600160a01b03166001600160a01b031663296130866040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561106357600080fd5b505af1158015611077573d6000803e3d6000fd5b50505050565b604051806040016040528060068152602001652820aaa9a2a960d11b8152506110a590613b4b565b6110ae81612399565b60985460408051600160981b90920460ff1615158252600060208301527f5ab09e6f82d5fade96a17975df4c40286cfcce3b71eeea0f1c76567f0296447d910160405180910390a1506098805460ff60981b19169055565b6040518060400160405280600c81526020016b2627a723afa32922a2ad22a960a11b81525061113490613b4b565b81565b60008281526065602052604090206001015461115281612399565b6001600160a01b0382166111a85760405162461bcd60e51b815260206004820152601e60248201527f63616e6e6f74206772616e7420726f6c6520746f2061646472657373203000006044820152606401610c1f565b6040518060400160405280600c81526020016b2627a723afa32922a2ad22a960a11b8152506111d690613b4b565b83036111f9576001600160a01b0382166000908152609760205260409020600690555b610e2483836125d8565b33600090815260d3602052604090205460ff166112545760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd08184818dbdb5c1bdb995b9d608a1b6044820152606401610c1f565b610fa960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b03811633146112ed5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c1f565b6112f7828261247b565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036113435760405162461bcd60e51b8152600401610c1f90613ddb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661138c60008051602061402d833981519152546001600160a01b031690565b6001600160a01b0316146113b25760405162461bcd60e51b8152600401610c1f90613e27565b6113bb81612684565b60408051600080825260208201909252610ebe918391906126be565b604051806040016040528060068152602001652820aaa9a2a960d11b8152506113ff90613b4b565b61140881612399565b60985460408051600160901b90920460ff1615158252600060208301527f87161063ac9982961a7044485445fe4f7bb1a458f731e5ad5ca31b97f3d452bf910160405180910390a1506098805460ff60901b19169055565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114a85760405162461bcd60e51b8152600401610c1f90613ddb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114f160008051602061402d833981519152546001600160a01b031690565b6001600160a01b0316146115175760405162461bcd60e51b8152600401610c1f90613e27565b61152082612684565b6112f7828260016126be565b6040518060400160405280600581526020016427aba722a960d91b81525061155390613b4b565b61155c81612399565b65ffffffffffff82161580159061157f57506301e1338065ffffffffffff831611155b6115cb5760405162461bcd60e51b815260206004820152601860248201527f6c6f6e6720667265657a65206f7574206f662072616e676500000000000000006044820152606401610c1f565b6098546040805165ffffffffffff600160601b9093048316815291841660208301527f2b855a9093ce8fb8bd37179aa306b424a5008d3a000751f4c2e721c51b89f9a2910160405180910390a1506098805465ffffffffffff909216600160601b0265ffffffffffff60601b19909216919091179055565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116e35760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c1f565b5060008051602061402d83398151915290565b6040518060400160405280600d81526020016c29a427a92a2fa32922a2ad22a960991b81525061113490613b4b565b6040518060400160405280600581526020016427aba722a960d91b81525061174c90613b4b565b61175581612399565b6098546040805165ffffffffffff92831681524290921660208301527f4fd793fe252ef26ede0a814ca52971990ff5ade10f86376fb1914bfb17c57e08910160405180910390a1506098805465ffffffffffff19164265ffffffffffff16179055565b6040518060400160405280600581526020016427aba722a960d91b8152506117df90613b4b565b6117e881612399565b6001600160a01b03821661180e5760405162461bcd60e51b8152600401610c1f90613e73565b610160546001600160a01b0316156118385760405162461bcd60e51b8152600401610c1f90613eaa565b5061016080546001600160a01b0319166001600160a01b0392909216919091179055565b6040518060400160405280600581526020016427aba722a960d91b81525061188390613b4b565b61188c81612399565b6001600160a01b0382166118b25760405162461bcd60e51b8152600401610c1f90613e73565b610162546001600160a01b0316156118dc5760405162461bcd60e51b8152600401610c1f90613eaa565b5061016280546001600160a01b0319166001600160a01b0392909216919091179055565b609854600090600160981b900460ff1680611924575060985465ffffffffffff1642105b905090565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff165b9392505050565b6040518060400160405280600581526020016427aba722a960d91b81525061197e90613b4b565b61198781612399565b610ebe65ffffffffffff6124e2565b609854600090600160901b900460ff168061192457505060985465ffffffffffff16421090565b600054610100900460ff16158080156119dd5750600054600160ff909116105b806119f75750303b1580156119f7575060005460ff166001145b611a5a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c1f565b6000805460ff191660011790558015611a7d576000805461ff0019166101001790555b6001600160a01b038416611ac95760405162461bcd60e51b8152602060048201526013602482015272696e76616c696420525352206164647265737360681b6044820152606401610c1f565b611ad38383612829565b611adc8561297e565b611ae4612a27565b611aec612a56565b61015f80546001600160a01b0319166001600160a01b0386161790556040517fb3d8a26384852953cab1d93ea954a4ac74e1dc9f5c29576d4a4f45cdb230130e90600090a18015611b77576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6040518060400160405280600581526020016427aba722a960d91b815250611ba590613b4b565b611bae81612399565b6001600160a01b038216611bd45760405162461bcd60e51b8152600401610c1f90613e73565b610161546001600160a01b031615611bfe5760405162461bcd60e51b8152600401610c1f90613eaa565b5061016180546001600160a01b0319166001600160a01b0392909216919091179055565b600082815260656020526040902060010154611c3d81612399565b610e24838361247b565b6040518060400160405280600581526020016427aba722a960d91b815250611c6e90613b4b565b611c7781612399565b65ffffffffffff821615801590611c99575062278d0065ffffffffffff831611155b611ce55760405162461bcd60e51b815260206004820152601960248201527f73686f727420667265657a65206f7574206f662072616e6765000000000000006044820152606401610c1f565b6098546040805165ffffffffffff600160301b9093048316815291841660208301527f84af4c1855ea2ef70449c6ae7119d367873ea35277b9681e0e47898900266f94910160405180910390a1506098805465ffffffffffff909216600160301b026bffffffffffff00000000000019909216919091179055565b604051806040016040528060068152602001652820aaa9a2a960d11b815250611d8890613b4b565b611d9181612399565b60985460408051600160981b90920460ff1615158252600160208301527f5ab09e6f82d5fade96a17975df4c40286cfcce3b71eeea0f1c76567f0296447d910160405180910390a1506098805460ff60981b1916600160981b179055565b6040518060400160405280600581526020016427aba722a960d91b81525061113490613b4b565b604051806040016040528060068152602001652820aaa9a2a960d11b81525061113490613b4b565b6040518060400160405280600581526020016427aba722a960d91b815250611e6590613b4b565b611e6e81612399565b610160546001600160a01b0316611eb55760405162461bcd60e51b815260206004820152600b60248201526a6e6f20726567697374727960a81b6044820152606401610c1f565b83306001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015611ef4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f1c9190810190613d14565b604051602001611f2c9190613d8b565b6040516020818303038152906040528051906020012014611f845760405162461bcd60e51b81526020600482015260126024820152711d5c19dc985919481b585a5b88199a5c9cdd60721b6044820152606401610c1f565b61016054604051632777202560e11b8152600481018690526000916001600160a01b031690634eee404a906024016101a060405180830381865afa158015611fd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff49190613bff565b905083156120635760cb60009054906101000a90046001600160a01b03166001600160a01b03166332e0f32f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561204a57600080fd5b505afa15801561205e573d6000803e3d6000fd5b505050505b60c95460208201515161207f916001600160a01b0316906123a3565b60ca54602080830151015161209d916001600160a01b0316906123a3565b60cb546020820151604001516120bc916001600160a01b0316906123a3565b60cc546020820151606001516120db916001600160a01b0316906123a3565b60cd546020820151608001516120fa916001600160a01b0316906123a3565b60ce54602082015160a00151612119916001600160a01b0316906123a3565b60d154602082015160c00151612138916001600160a01b0316906123a3565b60d254602082015160e00151612157916001600160a01b0316906123a3565b60cf5460208201516101000151612177916001600160a01b0316906123a3565b60d05460208201516101200151612197916001600160a01b0316906123a3565b82156122045760cb60009054906101000a90046001600160a01b03166001600160a01b03166332e0f32f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156121eb57600080fd5b505afa1580156121ff573d6000803e3d6000fd5b505050505b60d2546040828101515190516306e3005960e41b81526001600160a01b039182166004820152911690636e30059090602401600060405180830381600087803b15801561225057600080fd5b505af1158015612264573d6000803e3d6000fd5b505060d254604084810151602001519051631535c2ed60e11b81526001600160a01b03918216600482015291169250632a6b85da9150602401600060405180830381600087803b1580156122b757600080fd5b505af11580156122cb573d6000803e3d6000fd5b505050505050505050565b6040518060400160405280600c81526020016b2627a723afa32922a2ad22a960a11b81525061230490613b4b565b61230d81612399565b33600090815260976020526040812080546001929061232d908490613ecf565b9091555050336000908152609760205260408120549003612379576123796040518060400160405280600c81526020016b2627a723afa32922a2ad22a960a11b815250610e9390613b4b565b609854610ebe90610eb990600160601b900465ffffffffffff1642613dbd565b610ebe8133612a7d565b604080516001600160a01b0383811660248084019190915283518084039091018152604490920183526020820180516001600160e01b0316631b2ce7f360e11b17905291516000928516916123f791613d8b565b6000604051808303816000865af19150503d8060008114612434576040519150601f19603f3d011682016040523d82523d6000602084013e612439565b606091505b5050905080610e245760405162461bcd60e51b815260206004820152600e60248201526d1d5c19dc9859194819985a5b195960921b6044820152606401610c1f565b6124858282611929565b156112f75760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60985465ffffffffffff908116908216116125285760405162461bcd60e51b8152602060048201526006602482015265333937bd32b760d11b6044820152606401610c1f565b6098546040805165ffffffffffff928316815291831660208301527f4fd793fe252ef26ede0a814ca52971990ff5ade10f86376fb1914bfb17c57e08910160405180910390a16098805465ffffffffffff191665ffffffffffff92909216919091179055565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008054600119016125d257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6125e28282611929565b6112f75760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561261a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b333014610ebe5760405162461bcd60e51b81526020600482015260086024820152673737ba1039b2b63360c11b6044820152606401610c1f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156126f157610e2483612ad6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561274b575060408051601f3d908101601f1916820190925261274891810190613ee2565b60015b6127ae5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c1f565b60008051602061402d833981519152811461281d5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c1f565b50610e24838383612b72565b600054610100900460ff166128505760405162461bcd60e51b8152600401610c1f90613efb565b612858612a56565b6128ae6040518060400160405280600581526020016427aba722a960d91b81525061288290613b4b565b6040518060400160405280600581526020016427aba722a960d91b8152506128a990613b4b565b612b97565b6128e06040518060400160405280600d81526020016c29a427a92a2fa32922a2ad22a960991b81525061288290613b4b565b6129116040518060400160405280600c81526020016b2627a723afa32922a2ad22a960a11b81525061288290613b4b565b61293c604051806040016040528060068152602001652820aaa9a2a960d11b81525061288290613b4b565b61296c6040518060400160405280600581526020016427aba722a960d91b81525061296690613b4b565b336125d8565b61297582611c47565b6112f78161152c565b600054610100900460ff166129a55760405162461bcd60e51b8152600401610c1f90613efb565b6129b28160800151612be2565b6129bf8160600151612cb6565b6129cd816101000151612d8a565b6129db816101200151612e5e565b6129e88160400151612f32565b6129f58160a00151613006565b612a028160c001516130da565b612a0f8160e001516131ae565b612a1c816020015161327b565b8051610ebe90613347565b600054610100900460ff16612a4e5760405162461bcd60e51b8152600401610c1f90613efb565b610fa9613407565b600054610100900460ff16610fa95760405162461bcd60e51b8152600401610c1f90613efb565b612a878282611929565b6112f757612a948161342e565b612a9f836020613440565b604051602001612ab0929190613f46565b60408051601f198184030181529082905262461bcd60e51b8252610c1f916004016139ad565b6001600160a01b0381163b612b435760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c1f565b60008051602061402d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612b7b836135dc565b600082511180612b885750805b15610e2457611077838361361c565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6001600160a01b038116612c385760405162461bcd60e51b815260206004820152601e60248201527f696e76616c6964204261636b696e674d616e61676572206164647265737300006044820152606401610c1f565b60cd546040517fd4ec685c4e7367fc82d24a1c90d8c91c07a0e204b5b4655fc1a6d5b6b9d9eeb791612c77916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560cd80546001600160a01b0319169091179055565b6001600160a01b038116612d0c5760405162461bcd60e51b815260206004820152601d60248201527f696e76616c6964204261736b657448616e646c657220616464726573730000006044820152606401610c1f565b60cc546040517fa41efa7d680b9ae9379ca75b956c50587b28ed07453f7d19388c7199397a1e8e91612d4b916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560cc80546001600160a01b0319169091179055565b6001600160a01b038116612de05760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964205253525472616465722061646472657373000000000000006044820152606401610c1f565b60cf546040517f2fa6596476f0ebdb5fef9a37bedb7ef956e0e1c4e094464cbf49c38f44f7e8d191612e1f916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560cf80546001600160a01b0319169091179055565b6001600160a01b038116612eb45760405162461bcd60e51b815260206004820152601c60248201527f696e76616c69642052546f6b656e5472616465722061646472657373000000006044820152606401610c1f565b60d0546040517f0d76a5d5849780e9a81127e61df7ee55bf3f766bc326510d3a52ede3caea168f91612ef3916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560d080546001600160a01b0319169091179055565b6001600160a01b038116612f885760405162461bcd60e51b815260206004820152601d60248201527f696e76616c6964204173736574526567697374727920616464726573730000006044820152606401610c1f565b60cb546040517f5c69d378772ea2f02015deabd3b7ee1db0851dba819e216585de7a155d22a14891612fc7916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560cb80546001600160a01b0319169091179055565b6001600160a01b03811661305c5760405162461bcd60e51b815260206004820152601b60248201527f696e76616c6964204469737472696275746f72206164647265737300000000006044820152606401610c1f565b60ce546040517f8c6eabd1db7fe5a1951a7c78767c0e3633c5352578d15d45f99aa4c4db01c55a9161309b916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560ce80546001600160a01b0319169091179055565b6001600160a01b0381166131305760405162461bcd60e51b815260206004820152601760248201527f696e76616c6964204675726e61636520616464726573730000000000000000006044820152606401610c1f565b60d1546040517fe0c9d7fae2ccca1a3980ce26aada40d9f7fc84406cdb3adbdcfb8f9dd21c9b539161316f916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560d180546001600160a01b0319169091179055565b6001600160a01b0381166131fd5760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642042726f6b6572206164647265737360501b6044820152606401610c1f565b60d2546040517fc29cab4074359a76aba74458623910a8b95269ded89ad9f98cd2db1de3ead3569161323c916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560d280546001600160a01b0319169091179055565b6001600160a01b0381166132c95760405162461bcd60e51b8152602060048201526015602482015274696e76616c6964205374525352206164647265737360581b6044820152606401610c1f565b60ca546040517f1b29dc90e15d6ade122a9e27d886b4a077e66131c7e0cc805fc303e49690c9fc91613308916001600160a01b03909116908490613fbb565b60405180910390a16001600160a01b0316600081815260d360205260409020805460ff1916600117905560ca80546001600160a01b0319169091179055565b6001600160a01b0381166133965760405162461bcd60e51b8152602060048201526016602482015275696e76616c69642052546f6b656e206164647265737360501b6044820152606401610c1f565b60c9546040516001600160a01b038084169216907f2d2909c1d06afe38080a70d63a8793874674efb0fdf3b3bf3fd046056688b3ea90600090a36001600160a01b0316600081815260d360205260409020805460ff1916600117905560c980546001600160a01b0319169091179055565b600054610100900460ff1661265e5760405162461bcd60e51b8152600401610c1f90613efb565b6060610ba66001600160a01b03831660145b6060600061344f836002613fd5565b61345a906002613fec565b67ffffffffffffffff81111561347257613472613804565b6040519080825280601f01601f19166020018201604052801561349c576020820181803683370190505b509050600360fc1b816000815181106134b7576134b7613fff565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106134e6576134e6613fff565b60200101906001600160f81b031916908160001a905350600061350a846002613fd5565b613515906001613fec565b90505b600181111561358d576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061354957613549613fff565b1a60f81b82828151811061355f5761355f613fff565b60200101906001600160f81b031916908160001a90535060049490941c9361358681614015565b9050613518565b5083156119505760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c1f565b6135e581612ad6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611950838360405180606001604052806027815260200161404d602791396060600080856001600160a01b0316856040516136599190613d8b565b600060405180830381855af49150503d8060008114613694576040519150601f19603f3d011682016040523d82523d6000602084013e613699565b606091505b50915091506136aa868383876136b4565b9695505050505050565b6060831561372357825160000361371c576001600160a01b0385163b61371c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c1f565b508161372d565b61372d8383613735565b949350505050565b8151156137455781518083602001fd5b8060405162461bcd60e51b8152600401610c1f91906139ad565b60006020828403121561377157600080fd5b81356001600160e01b03198116811461195057600080fd5b60006020828403121561379b57600080fd5b5035919050565b6001600160a01b0381168114610ebe57600080fd5b600080604083850312156137ca57600080fd5b8235915060208301356137dc816137a2565b809150509250929050565b6000602082840312156137f957600080fd5b8135611950816137a2565b634e487b7160e01b600052604160045260246000fd5b604051610140810167ffffffffffffffff8111828210171561383e5761383e613804565b60405290565b6040516060810167ffffffffffffffff8111828210171561383e5761383e613804565b604051601f8201601f1916810167ffffffffffffffff8111828210171561389057613890613804565b604052919050565b600067ffffffffffffffff8211156138b2576138b2613804565b50601f01601f191660200190565b600080604083850312156138d357600080fd5b82356138de816137a2565b9150602083013567ffffffffffffffff8111156138fa57600080fd5b8301601f8101851361390b57600080fd5b803561391e61391982613898565b613867565b81815286602083850101111561393357600080fd5b816020840160208301376000602083830101528093505050509250929050565b803565ffffffffffff8116811461396957600080fd5b919050565b60006020828403121561398057600080fd5b61195082613953565b60005b838110156139a457818101518382015260200161398c565b50506000910152565b60208152600082518060208401526139cc816040850160208701613989565b601f01601f19169190910160400192915050565b8035613969816137a2565b6000806000808486036101a0811215613a0357600080fd5b610140811215613a1257600080fd5b50613a1b61381a565b613a24866139e0565b8152613a32602087016139e0565b6020820152613a43604087016139e0565b6040820152613a54606087016139e0565b6060820152613a65608087016139e0565b6080820152613a7660a087016139e0565b60a0820152613a8760c087016139e0565b60c0820152613a9860e087016139e0565b60e0820152613aaa61010087016139e0565b610100820152613abd61012087016139e0565b6101208201529350613ad261014086016139e0565b9250613ae16101608601613953565b9150613af06101808601613953565b905092959194509250565b8015158114610ebe57600080fd5b600080600060608486031215613b1e57600080fd5b833592506020840135613b3081613afb565b91506040840135613b4081613afb565b809150509250925092565b80516020808301519190811015613b6c576000198160200360031b1b821691505b50919050565b600060208284031215613b8457600080fd5b815161195081613afb565b8051613969816137a2565b600060408284031215613bac57600080fd5b6040805190810167ffffffffffffffff81118282101715613bcf57613bcf613804565b80604052508091508251613be2816137a2565b81526020830151613bf2816137a2565b6020919091015292915050565b60008183036101a081128015613c1457600080fd5b50613c1d613844565b8351613c28816137a2565b8152610140601f1983011215613c3d57600080fd5b613c4561381a565b9150613c5360208501613b8f565b8252613c6160408501613b8f565b6020830152613c7260608501613b8f565b6040830152613c8360808501613b8f565b6060830152613c9460a08501613b8f565b6080830152613ca560c08501613b8f565b60a0830152613cb660e08501613b8f565b60c0830152613cc86101008501613b8f565b60e0830152613cda6101208501613b8f565b610100830152613ced6101408501613b8f565b610120830152816020820152613d07856101608601613b9a565b6040820152949350505050565b600060208284031215613d2657600080fd5b815167ffffffffffffffff811115613d3d57600080fd5b8201601f81018413613d4e57600080fd5b8051613d5c61391982613898565b818152856020838501011115613d7157600080fd5b613d82826020830160208601613989565b95945050505050565b60008251613d9d818460208701613989565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff8181168382160190811115610ba657610ba6613da7565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526018908201527f696e76616c696420726567697374727920616464726573730000000000000000604082015260600190565b6020808252600b908201526a185b1c9958591e481cd95d60aa1b604082015260600190565b81810381811115610ba657610ba6613da7565b600060208284031215613ef457600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613f7e816017850160208801613989565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613faf816028840160208801613989565b01602801949350505050565b6001600160a01b0392831681529116602082015260400190565b8082028115828204841417610ba657610ba6613da7565b80820180821115610ba657610ba6613da7565b634e487b7160e01b600052603260045260246000fd5b60008161402457614024613da7565b50600019019056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220000e8c68d2dd0933c7bb1966043e55bad2b2d86cebf28629409b3b9b50ea070d64736f6c634300081c0033