0 txs
145 calls
constructor
constructor()
functions
assetManagementConfig
viewfunction assetManagementConfig() view returns (address)
deployedPositionWrappers
viewfunction deployedPositionWrappers(uint256) view returns (address)
ETHERNAL_FARMING_ADDRESS
viewfunction ETHERNAL_FARMING_ADDRESS() view returns (address)
externalPositionStorage
viewfunction externalPositionStorage() view returns (address)
FARMING_CENTER_ADDRESS
viewfunction FARMING_CENTER_ADDRESS() view returns (address)
protocolConfig
viewfunction protocolConfig() view returns (address)
protocolId
viewfunction protocolId() view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
approveAndAddForFarming
nonpayablefunction approveAndAddForFarming(uint256 tokenId, address pool, address rewardToken, address bonusRewardToken, uint256 nonce)
claimCollectedRewards
nonpayablefunction claimCollectedRewards(address rewardToken, uint256 amountRequested) returns (uint256 rewardBalanceBefore)
claimRewards
nonpayablefunction claimRewards(tuple key, uint256 tokenId)
collectFees
nonpayablefunction collectFees(uint256 _tokenId)
createNewWrapperPosition
nonpayablefunction createNewWrapperPosition(address _token0, address _token1, string _name, string _symbol, int24 _tickLower, int24 _tickUpper) returns (address)
createNewWrapperPositionAndDeposit
nonpayablefunction createNewWrapperPositionAndDeposit(address _dustReceiver, address _token0, address _token1, string _name, string _symbol, tuple params) returns (address)
decreaseLiquidity
nonpayablefunction decreaseLiquidity(address _positionWrapper, uint256 _withdrawalAmount, uint256 _amount0Min, uint256 _amount1Min, address, address, address, uint256, uint24)
exitFarming
nonpayablefunction exitFarming(uint256 tokenId, address pool, address rewardToken, address bonusRewardToken, uint256 nonce)
increaseLiquidity
nonpayablefunction increaseLiquidity(tuple _params)
init
nonpayablefunction init(address _externalPositionStorage, address _protocolConfig, address _assetManagerConfig, address _accessController, address _nftManager, address _swapRouter, address _vault, bytes32 _protocolId)
initializePositionAndDeposit
nonpayablefunction initializePositionAndDeposit(address _dustReceiver, address _positionWrapper, tuple params)
transferTokenToVault
nonpayablefunction transferTokenToVault(address _token)
updateRange
nonpayablefunction updateRange(tuple params)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
ETHTransferredToVault
event ETHTransferredToVault(uint256 amount)
Initialized
event Initialized(uint8 version)
LiquidityDecreased
event LiquidityDecreased(address indexed user, uint256 liquidity)
LiquidityIncreased
event LiquidityIncreased(address indexed user, uint256 liquidity)
NewPositionCreated
event NewPositionCreated(address indexed positionWrapper, address indexed token0, address indexed token1)
PositionInitializedAndDeposited
event PositionInitializedAndDeposited(address indexed positionManager)
PriceRangeUpdated
event PriceRangeUpdated(address indexed positionManager, int24 tickLower, int24 tickUpper)
TokenTransferredToVault
event TokenTransferredToVault(address indexed token, uint256 amount)
Upgraded
event Upgraded(address indexed implementation)
errors
AmountCannotBeZero
error AmountCannotBeZero()
CallerNotAdmin
error CallerNotAdmin()
CallerNotAssetManager
error CallerNotAssetManager()
InsufficientBalance
error InsufficientBalance()
InvalidAddress
error InvalidAddress()
InvalidCastToUint128
error InvalidCastToUint128()
InvalidPositionWrapper
error InvalidPositionWrapper()
InvalidTokenAddress
error InvalidTokenAddress()
ProtocolEmergencyPaused
error ProtocolEmergencyPaused()
ProtocolIsPaused
error ProtocolIsPaused()
TokenNotEnabled
error TokenNotEnabled()
TokenNotWhitelisted
error TokenNotWhitelisted()
creation bytecode
0x60c060405230608052736f866dfb4ec07864807217c48e4ff58b137c15a760a0523480156200002d57600080fd5b50620000386200003e565b620000ff565b600054610100900460ff1615620000ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000fd576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60805160a051615edf62000148600039600081816103620152611f59015260008181610f9901528181610fe50152818161108d015281816110d001526115c70152615edf6000f3fe6080604052600436106200015b5760003560e01c80638619575411620000c5578063b2219d251162000078578063b2219d2514620003f3578063c5f8afca1462000415578063da1f12ab146200043a578063f5efbb4f1462000452578063f7b865eb1462000474578063fd6b4937146200049957600080fd5b8063861957541462000304578063928c51591462000329578063a57c29de146200034e578063a8c11b9d1462000384578063aba579e114620003a9578063b17acdcd14620003ce57600080fd5b80633659cfe6116200011e5780633659cfe614620002415780634f1ef286146200026657806351e0a3ad146200027d57806352d1902d14620002a257806360bafc3314620002ba5780637da892be14620002df57600080fd5b8063213498891462000160578063220e06c0146200019f578063264e303c14620001c65780632e824fb814620001e8578063346f2bbb146200020d575b600080fd5b3480156200016d57600080fd5b50609e5462000182906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620001ac57600080fd5b50620001c4620001be36600462004737565b620004be565b005b348015620001d357600080fd5b5060995462000182906001600160a01b031681565b348015620001f557600080fd5b506200018262000207366004620048b8565b62000693565b3480156200021a57600080fd5b50620002326200022c36600462004976565b62000dbc565b60405190815260200162000196565b3480156200024e57600080fd5b50620001c462000260366004620049a5565b62000f8f565b620001c462000277366004620049c5565b62001083565b3480156200028a57600080fd5b50620001c46200029c36600462004a44565b6200115b565b348015620002af57600080fd5b5062000232620015ba565b348015620002c757600080fd5b50620001c4620002d936600462004b0a565b62001670565b348015620002ec57600080fd5b50620001c4620002fe366004620049a5565b62001885565b3480156200031157600080fd5b50620001c46200032336600462004bc7565b62001a45565b3480156200033657600080fd5b50620001826200034836600462004c29565b62001c99565b3480156200035b57600080fd5b50620001827f000000000000000000000000000000000000000000000000000000000000000081565b3480156200039157600080fd5b50620001c4620003a336600462004d61565b62001dc5565b348015620003b657600080fd5b50620001c4620003c836600462004e10565b6200205b565b348015620003db57600080fd5b50620001c4620003ed36600462004edd565b6200266b565b3480156200040057600080fd5b50609b5462000182906001600160a01b031681565b3480156200042257600080fd5b50620001826200043436600462004edd565b6200285e565b3480156200044757600080fd5b5062000232609d5481565b3480156200045f57600080fd5b5060985462000182906001600160a01b031681565b3480156200048157600080fd5b50620001c46200049336600462004ef7565b62002889565b348015620004a657600080fd5b50620001c4620004b836600462004bc7565b62002c61565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000512573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000538919062004f96565b1562000557576040516306eb3ed160e31b815260040160405180910390fd5b6200056162002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015620005bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005e5919062004f96565b620006035760405163142bddf560e01b815260040160405180910390fd5b609b5460a054604051630e695cef60e41b81526001600160a01b039283169263e695cef0926200063d929116908690869060040162004fba565b60408051808303816000875af11580156200065c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000682919062005028565b50506200068f6001606555565b5050565b6098546040805163dac8856160e01b815290516000926001600160a01b03169163dac885619160048083019260209291908290030181865afa158015620006de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000704919062004f96565b156200072357604051632bc2c01360e21b815260040160405180910390fd5b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562000781573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007a7919062004f96565b620007c55760405163142bddf560e01b815260040160405180910390fd5b6001600160a01b0387161580620007e357506001600160a01b038616155b15620008025760405163e6c4247b60e01b815260040160405180910390fd5b609960009054906101000a90046001600160a01b03166001600160a01b031663e348560b6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000858573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200087e919062004f96565b8015620009765750609954604051630daf9c2160e41b81526001600160a01b0389811660048301529091169063daf9c210906024016020604051808303816000875af1158015620008d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008f9919062004f96565b1580620009765750609954604051630daf9c2160e41b81526001600160a01b0388811660048301529091169063daf9c210906024016020604051808303816000875af11580156200094e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000974919062004f96565b155b1562000995576040516307c241ad60e51b815260040160405180910390fd5b60985460405163748538d960e01b81526001600160a01b0389811660048301529091169063748538d990602401602060405180830381865afa158015620009e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a06919062004f96565b158062000a81575060985460405163748538d960e01b81526001600160a01b0388811660048301529091169063748538d990602401602060405180830381865afa15801562000a59573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a7f919062004f96565b155b1562000aa057604051631fcf8c4760e11b815260040160405180910390fd5b609754604051630ad567f360e21b81526001600160a01b03808a16600483015280891660248301529091166044820152600090819073c65e9bd2a3b59d46966797dcdd9a603e94cb495a90632b559fcc906064016040805180830381865af415801562000b11573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b3791906200505a565b915091506000609960009054906101000a90046001600160a01b03166001600160a01b03166351cac1516040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000b93573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bb9919062005099565b604051634742b21d60e11b9062000bdd903090879087908e908e906024016200510d565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905162000c1c9062004729565b62000c2992919062005163565b604051809103906000f08015801562000c46573d6000803e3d6000fd5b5060405163534c7cd960e01b815260006004820152600288810b602483015287900b604482015290915081906001600160a01b0382169063534c7cd990606401600060405180830381600087803b15801562000ca157600080fd5b505af115801562000cb6573d6000803e3d6000fd5b5050609c80546001810182556000919091527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c0180546001600160a01b0319166001600160a01b03858116918217909255609e5460405163d87ba12b60e01b81526004810192909252909116925063d87ba12b9150602401600060405180830381600087803b15801562000d4957600080fd5b505af115801562000d5e573d6000803e3d6000fd5b50505050896001600160a01b03168b6001600160a01b0316826001600160a01b03167fa77b84203703e872514405d12ca4a42a1d9370a48a2a6fa9b78d6029f805368360405160405180910390a493505050505b9695505050505050565b609854604080516320e4603160e01b815290516000926001600160a01b0316916320e460319160048083019260209291908290030181865afa15801562000e07573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e2d919062004f96565b1562000e4c576040516306eb3ed160e31b815260040160405180910390fd5b62000e5662002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562000eb4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eda919062004f96565b62000ef85760405163142bddf560e01b815260040160405180910390fd5b609b5460a054604051632f2d783d60e01b81526001600160a01b038681166004830152918216602482015260448101859052911690632f2d783d906064016020604051808303816000875af115801562000f56573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f7c919062005189565b905062000f896001606555565b92915050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000fe35760405162461bcd60e51b815260040162000fda90620051a3565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200102e60008051602062005e43833981519152546001600160a01b031690565b6001600160a01b031614620010575760405162461bcd60e51b815260040162000fda90620051ef565b620010628162002e60565b60408051600080825260208201909252620010809183919062002e8c565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620010ce5760405162461bcd60e51b815260040162000fda90620051a3565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200111960008051602062005e43833981519152546001600160a01b031690565b6001600160a01b031614620011425760405162461bcd60e51b815260040162000fda90620051ef565b6200114d8262002e60565b6200068f8282600162002e8c565b609860009054906101000a90046001600160a01b03166001600160a01b031663dac885616040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011d5919062004f96565b15620011f457604051632bc2c01360e21b815260040160405180910390fd5b620011fe62002dfe565b60208101516001600160a01b0316158062001221575080516001600160a01b0316155b15620012405760405163e6c4247b60e01b815260040160405180910390fd5b600081602001516001600160a01b03166317d70f7c6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012ad919062005189565b9050600082602001516001600160a01b0316630dfe16816040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620012f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200131c919062005099565b9050600083602001516001600160a01b031663d21220a76040518163ffffffff1660e01b81526004016020604051808303816000875af115801562001365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200138b919062005099565b905060006200139b833062003004565b90506000620013ab833062003004565b9050620013c38484886040015189606001516200307c565b6000620013d1853062003004565b90506000620013e1853062003004565b9050620013ef848362005251565b604089015262001400838262005251565b6060890181905260408901516200141b9188918891620030ac565b6097546040805160c0810182528981528a82015160208201526060808c0151828401526080808d01519183019190915260a0808d0151918301919091524290820152905163219f5d1760e01b81526000926001600160a01b03169163219f5d1791620014c99190600401600060c082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6060604051808303816000875af1158015620014e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200150f91906200527f565b50509050620015258960200151898333620030ee565b62001531873062003004565b92506200153f863062003004565b89519092506200156990888862001557898862005251565b62001563898862005251565b620032a5565b6040516001600160801b038216815233907f983f2acadae67dcb6752959ec3afacc1234ebb093cbfe883360eeac07c8d432d9060200160405180910390a25050505050505050620010806001606555565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146200165c5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000fda565b5060008051602062005e4383398151915290565b609860009054906101000a90046001600160a01b03166001600160a01b031663dac885616040518163ffffffff1660e01b8152600401602060405180830381865afa158015620016c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016ea919062004f96565b156200170957604051632bc2c01360e21b815260040160405180910390fd5b6200171362002dfe565b6200184183836040518060e0016040528085600001518152602001856020015181526020018560400151815260200185606001518152602001866001600160a01b03166375825e3d6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200178d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620017b39190620052c4565b60020b8152602001866001600160a01b031663f42512e86040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620017fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018229190620052c4565b60020b815260200185608001516001600160a01b0316815250620032cd565b6040516001600160a01b038316907fd0c086ce165849751bfad136b1703217189e5a5fc2844b0a100baa342e6dd85e90600090a2620018806001606555565b505050565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018ff919062004f96565b156200191e576040516306eb3ed160e31b815260040160405180910390fd5b6200192862002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562001986573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019ac919062004f96565b620019ca5760405163142bddf560e01b815260040160405180910390fd5b6000620019d8823062003004565b60a054909150620019f59083906001600160a01b0316836200354d565b816001600160a01b03167fd98bc60e16b638a99f9cf6f33c41d551288bf06ffaa7c87afe45f0746959237a8260405162001a3191815260200190565b60405180910390a250620010806001606555565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a99573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001abf919062004f96565b1562001ade576040516306eb3ed160e31b815260040160405180910390fd5b62001ae862002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562001b46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b6c919062004f96565b62001b8a5760405163142bddf560e01b815260040160405180910390fd5b609754609b54604051634197b18560e11b815260048101889052600160248201526001600160a01b03918216604482015291169063832f630a90606401600060405180830381600087803b15801562001be257600080fd5b505af115801562001bf7573d6000803e3d6000fd5b5050609b54604080516080810182526001600160a01b038881168252878116602083015289811682840152606082018790529151635739f0b960e01b8152919092169350635739f0b9925062001c5391908990600401620052e4565b600060405180830381600087803b15801562001c6e57600080fd5b505af115801562001c83573d6000803e3d6000fd5b5050505062001c926001606555565b5050505050565b6098546040805163dac8856160e01b815290516000926001600160a01b03169163dac885619160048083019260209291908290030181865afa15801562001ce4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d0a919062004f96565b1562001d2957604051632bc2c01360e21b815260040160405180910390fd5b62001d3362002dfe565b6001600160a01b03871662001d5b5760405163e6c4247b60e01b815260040160405180910390fd5b600062001d758787878787608001518860a0015162000693565b905062001d84888285620032cd565b6040516001600160a01b038216907fd0c086ce165849751bfad136b1703217189e5a5fc2844b0a100baa342e6dd85e90600090a2905062000db26001606555565b600054610100900460ff161580801562001de65750600054600160ff909116105b8062001e025750303b15801562001e02575060005460ff166001145b62001e675760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000fda565b6000805460ff19166001179055801562001e8b576000805461ff0019166101001790555b6001600160a01b038816158062001ea957506001600160a01b038716155b8062001ebc57506001600160a01b038616155b1562001edb5760405163e6c4247b60e01b815260040160405180910390fd5b62001ee562003681565b62001eef620036ad565b609e80546001600160a01b03199081166001600160a01b038c8116919091179092556097805482168884161790556098805482168b84161790556099805482168a8416179055609a8054909116888316179055609d83905560408051631baadcbb60e31b815290517f00000000000000000000000000000000000000000000000000000000000000009092169163dd56e5d8916004818101926020929091908290030181865afa15801562001fa8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001fce919062005099565b609b80546001600160a01b03199081166001600160a01b0393841617909155609f8054821687841617905560a08054909116918516919091179055801562002050576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b609860009054906101000a90046001600160a01b03166001600160a01b031663dac885616040518163ffffffff1660e01b8152600401602060405180830381865afa158015620020af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620020d5919062004f96565b15620020f457604051632bc2c01360e21b815260040160405180910390fd5b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562002152573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002178919062004f96565b620021965760405163142bddf560e01b815260040160405180910390fd5b600081600001516001600160a01b03166317d70f7c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620021dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002203919062005189565b9050600082600001516001600160a01b0316630dfe16816040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200224c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002272919062005099565b9050600083600001516001600160a01b031663d21220a76040518163ffffffff1660e01b81526004016020604051808303816000875af1158015620022bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620022e1919062005099565b90506000620022f084620036e1565b9050600062002300843062003004565b9050600062002310843062003004565b90506200232983878960c001518a60e001513062003765565b620023e360405180610160016040528089600001516001600160a01b031681526020018881526020018960a00151815260200189602001516001600160a01b03168152602001876001600160a01b03168152602001866001600160a01b0316815260200189604001516001600160a01b0316815260200189606001516001600160a01b0316815260200189610100015160020b815260200189610120015160020b815260200189610140015162ffffff16815250620038d0565b50506000620023f3863062003004565b9050600062002403863062003004565b90506200241387878484620030ac565b6000604051806101600160405280896001600160a01b03168152602001886001600160a01b031681526020018b608001516001600160a01b031681526020018b610100015160020b81526020018b610120015160020b81526020018481526020018381526020016000815260200160008152602001306001600160a01b031681526020014281525090506000609760009054906101000a90046001600160a01b03166001600160a01b031663fe3f3be7836040518263ffffffff1660e01b8152600401620024e2919062005324565b6080604051808303816000875af115801562002502573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025289190620053f1565b50508c516101008e01516101208f015160405163c1faa55b60e01b81526004810186905260006024820152600292830b6044820152910b60648201529293506001600160a01b03169163c1faa55b9150608401600060405180830381600087803b1580156200259657600080fd5b505af1158015620025ab573d6000803e3d6000fd5b505050506000620025bd8a3062003004565b90506000620025cd8a3062003004565b60a054909150620025fb906001600160a01b03168c8c620025ef8c8762005251565b620015638c8762005251565b8c600001516001600160a01b03167f59822d4047fdf97c6f9d4046ab230d12a4cc4827ebda804c112c2c7cf3c29ae28e61010001518f610120015160405162002654929190600292830b8152910b602082015260400190565b60405180910390a250505050505050505050505050565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa158015620026bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026e5919062004f96565b1562002704576040516306eb3ed160e31b815260040160405180910390fd5b6200270e62002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156200276c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002792919062004f96565b620027b05760405163142bddf560e01b815260040160405180910390fd5b6097546040805160808101825283815260a0546001600160a01b0390811660208301526001600160801b038284018190526060830152915163fc6f786560e01b8152919092169163fc6f7865916200280c919060040162005430565b60408051808303816000875af11580156200282b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002851919062005028565b5050620010806001606555565b609c81815481106200286f57600080fd5b6000918252602090912001546001600160a01b0316905081565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002903919062004f96565b1562002922576040516306eb3ed160e31b815260040160405180910390fd5b6200292c62002dfe565b609e5460405163d43660f160e01b81526001600160a01b038b811660048301529091169063d43660f1906024016020604051808303816000875af115801562002979573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200299f919062004f96565b620029bd57604051630b5a457960e11b815260040160405180910390fd5b6000896001600160a01b03166317d70f7c6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562002a00573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002a26919062005189565b90506001600160a01b038a1662002a505760405163e6c4247b60e01b815260040160405180910390fd5b8860000362002a725760405163d11b25af60e01b815260040160405180910390fd5b6040516370a0823160e01b81523360048201526001600160a01b038b16906370a0823190602401602060405180830381865afa15801562002ab7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002add919062005189565b89111562002afe57604051631e9acf1760e31b815260040160405180910390fd5b60008a6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002b3f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002b65919062005189565b604051632770a7eb60e21b8152336004820152602481018c90529091506001600160a01b038c1690639dc29fac90604401600060405180830381600087803b15801562002bb157600080fd5b505af115801562002bc6573d6000803e3d6000fd5b50505050600062002c04828c62002bdd86620036e1565b6001600160801b031662002bf2919062005473565b62002bfe91906200548d565b62003a5f565b905062002c1581848c8c3362003765565b6040516001600160801b038216815233907fdd03239c467d2f6a44131ee7a4598a34d0f2e5007c12705218171c245ce2fb169060200160405180910390a2505050620020506001606555565b609860009054906101000a90046001600160a01b03166001600160a01b03166320e460316040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002cb5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002cdb919062004f96565b1562002cfa576040516306eb3ed160e31b815260040160405180910390fd5b62002d0462002dfe565b609a54604051632474521560e21b815260008051602062005e8a83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801562002d62573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002d88919062004f96565b62002da65760405163142bddf560e01b815260040160405180910390fd5b609b54604080516080810182526001600160a01b038681168252858116602083015287811682840152606082018590529151632239f65360e11b81529190921691634473eca69162001c5391908990600401620052e4565b60026065540362002e525760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000fda565b6002606555565b6001606555565b6098546001600160a01b03163314620010805760405163036c8cf960e11b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562002ec257620018808362003a8e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562002f1f575060408051601f3d908101601f1916820190925262002f1c9181019062005189565b60015b62002f845760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000fda565b60008051602062005e43833981519152811462002ff65760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000fda565b506200188083838362003b2d565b6040516370a0823160e01b81526001600160a01b038281166004830152600091908416906370a0823190602401602060405180830381865afa1580156200304f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003075919062005189565b9392505050565b81156200309157620030918433308562003b58565b8015620030a657620030a68333308462003b58565b50505050565b8115620030cd57609754620030cd9085906001600160a01b03168462003ca0565b8015620030a657609754620030a69084906001600160a01b03168362003ca0565b6000846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200312f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003155919062005189565b90506000816000036200317357506001600160801b03831662003239565b60006200318086620036e1565b6001600160801b0316670de0b6b3a7640000866001600160801b0316620031a8919062005473565b620031b491906200548d565b604051630d9bb71760e41b8152600481018290526024810185905290915073c65e9bd2a3b59d46966797dcdd9a603e94cb495a9063d9bb717090604401602060405180830381865af41580156200320f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003235919062005189565b9150505b6040516340c10f1960e01b81526001600160a01b038481166004830152602482018390528716906340c10f1990604401600060405180830381600087803b1580156200328457600080fd5b505af115801562003299573d6000803e3d6000fd5b50505050505050505050565b8115620032b957620032b98486846200354d565b801562001c925762001c928386836200354d565b6000826001600160a01b0316630dfe16816040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003310573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003336919062005099565b90506000836001600160a01b031663d21220a76040518163ffffffff1660e01b81526004016020604051808303816000875af11580156200337b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620033a1919062005099565b90506000620033b1833062003004565b90506000620033c1833062003004565b9050620033d98484876000015188602001516200307c565b6000620033e7853062003004565b90506000620033f7853062003004565b905062003405848362005251565b875262003413838262005251565b6020880181905287516200342b9188918891620030ac565b6000806200343a8a8a62003d23565b60405163c929ccf360e01b81526004810183905291935091506001600160a01b038b169063c929ccf390602401600060405180830381600087803b1580156200348257600080fd5b505af115801562003497573d6000803e3d6000fd5b50506040516340c10f1960e01b81523360048201526001600160801b03841660248201526001600160a01b038d1692506340c10f199150604401600060405180830381600087803b158015620034ec57600080fd5b505af115801562003501573d6000803e3d6000fd5b5050505062003511883062003004565b93506200351f873062003004565b9250620035408b8989620035348a8962005251565b620015638a8962005251565b5050505050505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691620035ab9190620054b0565b6000604051808303816000865af19150503d8060008114620035ea576040519150601f19603f3d011682016040523d82523d6000602084013e620035ef565b606091505b50915091508180156200361d5750805115806200361d5750808060200190518101906200361d919062004f96565b62001c925760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b606482015260840162000fda565b600054610100900460ff16620036ab5760405162461bcd60e51b815260040162000fda90620054ce565b565b600054610100900460ff16620036d75760405162461bcd60e51b815260040162000fda90620054ce565b620036ab62003f1f565b60975460405163133f757160e31b8152600481018390526000916001600160a01b0316906399fbab889060240161018060405180830381865afa1580156200372d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003753919062005519565b50929c9b505050505050505050505050565b6097546040805160a0810182528681526001600160801b03888116602083019081528284018881526060840188815242608086019081529551630624e65f60e11b8152945160048601529151909216602484015290516044830152516064820152905160848201526001600160a01b0390911690630c49ccbe9060a40160408051808303816000875af115801562003801573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003827919062005028565b5050609754604080516080810182528681526001600160a01b0384811660208301526001600160801b038284018190526060830152915163fc6f786560e01b8152919092169163fc6f78659162003882919060040162005430565b60408051808303816000875af1158015620038a1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620038c7919062005028565b50505050505050565b600080600083604001511115620038f657620038ec8362003f49565b9092509050915091565b60985460975460405163ec4db13960e01b81527360c29ef13b2629fd0b5ab36410401d81d47bd3499263ec4db1399262003943926001600160a01b0392831692899216906004016200560d565b60006040518083038186803b1580156200395c57600080fd5b505af415801562003971573d6000803e3d6000fd5b50505060808401516040516370a0823160e01b81523060048201526001600160a01b0390911691506370a0823190602401602060405180830381865afa158015620039c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620039e6919062005189565b60a08401516040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa15801562003a32573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003a58919062005189565b9050915091565b60006001600160801b0382111562003a8a5760405163272f619f60e01b815260040160405180910390fd5b5090565b6001600160a01b0381163b62003afd5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000fda565b60008051602062005e4383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62003b3883620042e9565b60008251118062003b465750805b156200188057620030a683836200432b565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169162003bbe9190620054b0565b6000604051808303816000865af19150503d806000811462003bfd576040519150601f19603f3d011682016040523d82523d6000602084013e62003c02565b606091505b509150915081801562003c3057508051158062003c3057508080602001905181019062003c30919062004f96565b62003c985760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840162000fda565b505050505050565b60405163095ea7b360e01b81526001600160a01b0383811660048301526000602483015284169063095ea7b3906044016020604051808303816000875af192505050801562003d0e575060408051601f3d908101601f1916820190925262003d0b9181019062004f96565b60015b1562003d1657505b6200188083838362004353565b6000806000604051806101600160405280866001600160a01b0316630dfe16816040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003d75573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003d9b919062005099565b6001600160a01b03168152602001866001600160a01b031663d21220a76040518163ffffffff1660e01b81526004016020604051808303816000875af115801562003dea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003e10919062005099565b6001600160a01b031681526020018560c001516001600160a01b03168152602001856080015160020b81526020018560a0015160020b815260200185600001518152602001856020015181526020018560400151815260200185606001518152602001306001600160a01b03168152602001428152509050609760009054906101000a90046001600160a01b03166001600160a01b031663fe3f3be7826040518263ffffffff1660e01b815260040162003ecb919062005324565b6080604051808303816000875af115801562003eeb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062003f119190620053f1565b509197909650945050505050565b600054610100900460ff1662002e595760405162461bcd60e51b815260040162000fda90620054ce565b60c081015160e0820151608083015160a08401516000938493909290916001600160a01b03808516908416148062003fb05750816001600160a01b0316836001600160a01b0316148062003fae5750806001600160a01b0316836001600160a01b0316145b155b8062003feb5750816001600160a01b0316846001600160a01b0316148062003fe95750806001600160a01b0316846001600160a01b0316145b155b156200400a57604051630f58058360e11b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa15801562004052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004078919062005189565b9050620040858862004485565b60985488516097546101008b01516101208c015160808d015160a08e01516040516370a0823160e01b81523060048201527360c29ef13b2629fd0b5ab36410401d81d47bd3499763099587e5976001600160a01b039182169790969082169590949093909290918f918c918316906370a0823190602401602060405180830381865afa1580156200411a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062004140919062005189565b6040516001600160e01b031960e08d901b1681526001600160a01b039a8b166004820152988a1660248a01529689166044890152600295860b60648901529390940b608487015290861660a4860152851660c4850152931660e4830152610104820192909252610124810191909152610144016040805180830381865af4158015620041d0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620041f6919062005028565b60808a01516040516370a0823160e01b81523060048201529299509097506001600160a01b0316906370a0823190602401602060405180830381865afa15801562004245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200426b919062005189565b60a08901516040516370a0823160e01b81523060048201529198506001600160a01b0316906370a0823190602401602060405180830381865afa158015620042b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620042dd919062005189565b95505050505050915091565b620042f48162003a8e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062003075838360405180606001604052806027815260200162005e636027913962004606565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b1790529151600092839290871691620043b19190620054b0565b6000604051808303816000865af19150503d8060008114620043f0576040519150601f19603f3d011682016040523d82523d6000602084013e620043f5565b606091505b5091509150818015620044235750805115806200442357508080602001905181019062004423919062004f96565b62001c925760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201526a1c9bdd994819985a5b195960aa1b606482015260840162000fda565b60c0810151604080830151609f54915163095ea7b360e01b81526001600160a01b03928316600482015260248101829052909183169063095ea7b3906044016020604051808303816000875af1158015620044e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200450a919062004f96565b50609f5460408051610100810182526001600160a01b03858116825260e0878101518216602084019081526060808a0151841685870190815230918601918252426080870190815260a087018a8152600060c089018181529689019081529851630b3ce3c960e11b81529751871660048901529351861660248801529051851660448701529051841660648601525160848501525160a48401525160c48301529151821660e4820152911690631679c79290610104016020604051808303816000875af1158015620045e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620030a6919062005189565b6060600080856001600160a01b031685604051620046259190620054b0565b600060405180830381855af49150503d806000811462004662576040519150601f19603f3d011682016040523d82523d6000602084013e62004667565b606091505b509150915062000db28683838760608315620046e8578251600003620046e0576001600160a01b0385163b620046e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000fda565b5081620046f4565b620046f48383620046fc565b949350505050565b8151156200470d5781518083602001fd5b8060405162461bcd60e51b815260040162000fda919062005706565b610727806200571c83390190565b60008082840360a08112156200474c57600080fd5b60808112156200475b57600080fd5b50919360808501359350915050565b6001600160a01b03811681146200108057600080fd5b80356200478d816200476a565b919050565b634e487b7160e01b600052604160045260246000fd5b604051610160810167ffffffffffffffff81118282101715620047cf57620047cf62004792565b60405290565b60405160e0810167ffffffffffffffff81118282101715620047cf57620047cf62004792565b600067ffffffffffffffff8084111562004819576200481962004792565b604051601f8501601f19908116603f0116810190828211818310171562004844576200484462004792565b816040528093508581528686860111156200485e57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126200488a57600080fd5b6200307583833560208501620047fb565b8060020b81146200108057600080fd5b80356200478d816200489b565b60008060008060008060c08789031215620048d257600080fd5b8635620048df816200476a565b95506020870135620048f1816200476a565b9450604087013567ffffffffffffffff808211156200490f57600080fd5b6200491d8a838b0162004878565b955060608901359150808211156200493457600080fd5b506200494389828a0162004878565b935050608087013562004956816200489b565b915060a087013562004968816200489b565b809150509295509295509295565b600080604083850312156200498a57600080fd5b823562004997816200476a565b946020939093013593505050565b600060208284031215620049b857600080fd5b813562003075816200476a565b60008060408385031215620049d957600080fd5b8235620049e6816200476a565b9150602083013567ffffffffffffffff81111562004a0357600080fd5b8301601f8101851362004a1557600080fd5b62004a2685823560208401620047fb565b9150509250929050565b803562ffffff811681146200478d57600080fd5b6000610160828403121562004a5857600080fd5b62004a62620047a8565b62004a6d8362004780565b815262004a7d6020840162004780565b602082015260408301356040820152606083013560608201526080830135608082015260a083013560a082015262004ab860c0840162004780565b60c082015262004acb60e0840162004780565b60e082015261010062004ae081850162004780565b90820152610120838101359082015261014062004aff81850162004a30565b908201529392505050565b600080600083850360e081121562004b2157600080fd5b843562004b2e816200476a565b9350602085013562004b40816200476a565b925060a0603f198201121562004b5557600080fd5b5060405160a0810181811067ffffffffffffffff8211171562004b7c5762004b7c62004792565b806040525060408501358152606085013560208201526080850135604082015260a0850135606082015260c085013562004bb6816200476a565b608082015292959194509192509050565b600080600080600060a0868803121562004be057600080fd5b85359450602086013562004bf4816200476a565b9350604086013562004c06816200476a565b9250606086013562004c18816200476a565b949793965091946080013592915050565b60008060008060008086880361018081121562004c4557600080fd5b873562004c52816200476a565b9650602088013562004c64816200476a565b9550604088013562004c76816200476a565b9450606088013567ffffffffffffffff8082111562004c9457600080fd5b62004ca28b838c0162004878565b955060808a013591508082111562004cb957600080fd5b5062004cc88a828b0162004878565b93505060e0609f198201121562004cde57600080fd5b5062004ce9620047d5565b60a0880135815260c0880135602082015260e08801356040820152610100880135606082015261012088013562004d20816200489b565b608082015261014088013562004d36816200489b565b60a082015261016088013562004d4c816200476a565b8060c083015250809150509295509295509295565b600080600080600080600080610100898b03121562004d7f57600080fd5b883562004d8c816200476a565b9750602089013562004d9e816200476a565b9650604089013562004db0816200476a565b9550606089013562004dc2816200476a565b9450608089013562004dd4816200476a565b935060a089013562004de6816200476a565b925060c089013562004df8816200476a565b8092505060e089013590509295985092959890939650565b6000610160828403121562004e2457600080fd5b62004e2e620047a8565b62004e398362004780565b815262004e496020840162004780565b602082015262004e5c6040840162004780565b604082015262004e6f6060840162004780565b606082015262004e826080840162004780565b608082015260a083013560a082015260c083013560c082015260e083013560e082015261010062004eb5818501620048ab565b9082015261012062004ec9848201620048ab565b9082015261014062004aff84820162004a30565b60006020828403121562004ef057600080fd5b5035919050565b60008060008060008060008060006101208a8c03121562004f1757600080fd5b893562004f24816200476a565b985060208a0135975060408a0135965060608a0135955060808a013562004f4b816200476a565b945060a08a013562004f5d816200476a565b935060c08a013562004f6f816200476a565b925060e08a0135915062004f876101008b0162004a30565b90509295985092959850929598565b60006020828403121562004fa957600080fd5b815180151581146200307557600080fd5b6001600160a01b03848116825260c0820190843562004fd9816200476a565b818116602085015250602085013562004ff2816200476a565b81811660408501525060408501356200500b816200476a565b166060838101919091529390930135608082015260a00152919050565b600080604083850312156200503c57600080fd5b505080516020909101519092909150565b80516200478d816200476a565b600080604083850312156200506e57600080fd5b82516200507b816200476a565b60208401519092506200508e816200476a565b809150509250929050565b600060208284031215620050ac57600080fd5b815162003075816200476a565b60005b83811015620050d6578181015183820152602001620050bc565b50506000910152565b60008151808452620050f9816020860160208601620050b9565b601f01601f19169290920160200192915050565b6001600160a01b03868116825285811660208301528416604082015260a0606082018190526000906200514390830185620050df565b8281036080840152620051578185620050df565b98975050505050505050565b6001600160a01b0383168152604060208201819052600090620046f490830184620050df565b6000602082840312156200519c57600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000f895762000f896200523b565b80516001600160801b03811681146200478d57600080fd5b6000806000606084860312156200529557600080fd5b620052a08462005267565b925060208401519150604084015190509250925092565b80516200478d816200489b565b600060208284031215620052d757600080fd5b815162003075816200489b565b82516001600160a01b0390811682526020808501518216908301526040808501519091169082015260609283015192810192909252608082015260a00190565b81516001600160a01b03168152610160810160208301516200535160208401826001600160a01b03169052565b5060408301516200536d60408401826001600160a01b03169052565b50606083015162005383606084018260020b9052565b50608083015162005399608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151620053e0828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156200540857600080fd5b845193506200541a6020860162005267565b6040860151606090960151949790965092505050565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b808202811582820484141762000f895762000f896200523b565b600082620054ab57634e487b7160e01b600052601260045260246000fd5b500490565b60008251620054c4818460208701620050b9565b9190910192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000806000806000806000806000806000806101808d8f0312156200553d57600080fd5b8c516affffffffffffffffffffff811681146200555957600080fd5b9b506200556960208e016200504d565b9a506200557960408e016200504d565b99506200558960608e016200504d565b98506200559960808e016200504d565b9750620055a960a08e01620052b7565b9650620055b960c08e01620052b7565b9550620055c960e08e0162005267565b94506101008d015193506101208d01519250620055ea6101408e0162005267565b9150620055fb6101608e0162005267565b90509295989b509295989b509295989b565b6001600160a01b03848116825283511660208201526101a08101602084015160408301526040840151606083015260608401516200565660808401826001600160a01b03169052565b5060808401516001600160a01b03811660a08401525060a08401516001600160a01b03811660c08401525060c08401516001600160a01b03811660e08401525060e0840151610100620056b3818501836001600160a01b03169052565b8501519050610120620056ca8482018360020b9052565b8501519050610140620056e18482018360020b9052565b85015162ffffff16610160840152506001600160a01b038316610180830152620046f4565b602081526000620030756020830184620050df56fe608060405260405161072738038061072783398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610700602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b6102bb806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025f602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b6060600080856001600160a01b0316856040516100e0919061020f565b600060405180830381855af49150503d806000811461011b576040519150601f19603f3d011682016040523d82523d6000602084013e610120565b606091505b50915091506101318683838761013b565b9695505050505050565b606083156101af5782516000036101a8576001600160a01b0385163b6101a85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b50816101b9565b6101b983836101c1565b949350505050565b8151156101d15781518083602001fd5b8060405162461bcd60e51b815260040161019f919061022b565b60005b838110156102065781810151838201526020016101ee565b50506000910152565b600082516102218184602087016101eb565b9190910192915050565b602081526000825180602084015261024a8160408501602087016101eb565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203d912d0abbe116b83dfa1d3a82e612e3256de4ef536ea1a35d0e77601b02b17764736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649c6e3ae929b539a99db03120eac7d9f862d68479b44f1eec05ab6036fcf56830a2646970667358221220b054a177cead095418b3346f4533e6ad71f55154f0dfcf1724d09a6389435f8e64736f6c63430008110033