0 txs
920 calls
constructor
constructor(address _cashModule, address _dataProvider)
functions
applicableSpendingLimit
viewfunction applicableSpendingLimit(address safe) view returns (tuple)
canSpend
viewfunction canSpend(address safe, bytes32 txId, address[] tokens, uint256[] amountsInUsd) view returns (bool, string)
canSpendSingleToken
viewfunction canSpendSingleToken(address safe, bytes32 txId, address[] creditModeTokenPreferences, address[] debitModeTokenPreferences, uint256 amountInUsd) view returns (uint8 mode, address token, bool canSpendResult, string declineReason)
cashModule
viewfunction cashModule() view returns (address)
dataProvider
viewfunction dataProvider() view returns (address)
getMaxSpendCredit
viewfunction getMaxSpendCredit(address safe) view returns (uint256 returnAmtInCreditModeUsd)
getMaxSpendDebit
viewfunction getMaxSpendDebit(address safe, address[] debtServiceTokenPreference) view returns (tuple)
getPendingWithdrawalAmount
viewfunction getPendingWithdrawalAmount(address safe, address token) view returns (uint256)
getSafeCashData
viewfunction getSafeCashData(address safe, address[] debtServiceTokenPreference) view returns (tuple safeCashData)
getUserCollateralForToken
viewfunction getUserCollateralForToken(address safe, address token) view returns (uint256)
getUserTotalCollateral
viewfunction getUserTotalCollateral(address safe) view returns (tuple[])
HUNDRED_PERCENT
viewfunction HUNDRED_PERCENT() view returns (uint256)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
roleRegistry
viewfunction roleRegistry() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
initialize
nonpayablefunction initialize(address _roleRegistry)
pause
nonpayablefunction pause()
unpause
nonpayablefunction unpause()
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
DuplicateElementFound
error DuplicateElementFound()
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotABorrowToken
error NotABorrowToken()
NotACollateralToken
error NotACollateralToken()
NotInitializing
error NotInitializing()
OnlyRoleRegistryOwner
error OnlyRoleRegistryOwner()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
Unauthorized
error Unauthorized()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60e060405230608052348015610013575f5ffd5b5060405161561538038061561583398101604081905261003291610121565b6001600160a01b0380831660a052811660c05261004d610054565b5050610152565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100a45760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101035780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811461011c575f5ffd5b919050565b5f5f60408385031215610132575f5ffd5b61013b83610106565b915061014960208401610106565b90509250929050565b60805160a05160c05161541b6101fa5f395f81816103660152610db401525f81816101940152818161047d01528181610500015281816107a801528181610a9301528181610c9b01528181610d3101528181610e370152818161134d015281816113d0015281816115050152818161166d0152818161182001528181611a2e0152818161287401526128f701525f818161232a0152818161235301526124f0015261541b5ff3fe6080604052600436106100fd575f3560e01c80636ed93dd01161008e5780636ed93dd01461027057806371e5a9231461028c5780638456cb59146102b85780638d3bb64f146102cc5780639a664ee1146102eb578063ad3cb1cc14610318578063b334ed8614610355578063b752cde114610388578063c4d66de8146103b7578063c8d31d06146103d6575f5ffd5b806308c73259146101015780630ac3e50d1461012b5780630d8f21be146101575780633575f0de146101835780633f4ba83a146101b6578063408130f5146101cc5780634f1ef286146101f957806352d1902d1461020c5780635c975abb146102205780635e6107e314610244575b5f5ffd5b34801561010c575f5ffd5b506101156103f5565b6040516101229190614171565b60405180910390f35b348015610136575f5ffd5b5061014a610145366004614301565b61040f565b604051610122919061441e565b348015610162575f5ffd5b50610176610171366004614430565b6107a3565b6040516101229190614490565b34801561018e575f5ffd5b506101157f000000000000000000000000000000000000000000000000000000000000000081565b3480156101c1575f5ffd5b506101ca610a26565b005b3480156101d7575f5ffd5b506101eb6101e63660046144a2565b610a8f565b604051908152602001610122565b6101ca6102073660046144d9565b610c2c565b348015610217575f5ffd5b506101eb610c4b565b34801561022b575f5ffd5b50610234610c66565b6040519015158152602001610122565b34801561024f575f5ffd5b5061026361025e366004614430565b610c7a565b604051610122919061457e565b34801561027b575f5ffd5b506101eb68056bc75e2d6310000081565b348015610297575f5ffd5b506102ab6102a6366004614301565b610d26565b60405161012291906146ce565b3480156102c3575f5ffd5b506101ca6112e2565b3480156102d7575f5ffd5b506101eb6102e6366004614430565b611349565b3480156102f6575f5ffd5b5061030a6103053660046147c4565b611485565b6040516101229291906148c7565b348015610323575f5ffd5b50610348604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161012291906148e1565b348015610360575f5ffd5b506101157f000000000000000000000000000000000000000000000000000000000000000081565b348015610393575f5ffd5b506103a76103a2366004614933565b611665565b60405161012294939291906149c4565b3480156103c2575f5ffd5b506101ca6103d1366004614430565b611933565b3480156103e1575f5ffd5b506101eb6103f03660046144a2565b611a2a565b5f5f6103ff611acd565b546001600160a01b031692915050565b610417614022565b81515f819003610468575050604080515f6080820181815260a0830184528252825181815260208082018552808401919091528351828152908101845292820192909252606081019190915261079d565b600181111561047a5761047a83611af1565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fb91906149fc565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b22876040518263ffffffff1660e01b815260040161054a9190614171565b5f60405180830381865afa158015610564573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261058b9190810190614c59565b90505f5f5f61059c858a8a89611c06565b925092509250805f03610659576040518060800160405280898152602001876001600160401b038111156105d2576105d2614199565b6040519080825280602002602001820160405280156105fb578160200160208202803683370190505b508152602001876001600160401b0381111561061957610619614199565b604051908082528060200260200182016040528015610642578160200160208202803683370190505b5081526020015f815250965050505050505061079d565b5f5f61066a878c888d896001611edf565b9150915080515f146106c657604080515f6080820181815260a083018452825282518181526020808201855280840191909152835182815290810184529192830191905081526020015f8152509850505050505050505061079d565b5f5f886001600160a01b031663fefb05498e866040518363ffffffff1660e01b81526004016106f6929190614d11565b6040805180830381865afa158015610710573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107349190614d34565b91509150805f14806107465750808210155b1561077a575050604080516080810182528b8152602081019690965285019390935250606083015250935061079d92505050565b6107908c87898c61078b8787614d6a565b612213565b9a50505050505050505050505b92915050565b60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610802573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082691906149fc565b90505f816001600160a01b031663b58eb63f6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610864573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261088b9190810190614d7d565b80519091505f816001600160401b038111156108a9576108a9614199565b6040519080825280602002602001820160405280156108e257816020015b6108cf614049565b8152602001906001900390816108c75790505b5090505f805b83811015610a1a575f85828151811061090357610903614dae565b60200260200101516001600160a01b03166370a082318a6040518263ffffffff1660e01b81526004016109369190614171565b602060405180830381865afa158015610951573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109759190614dc2565b90505f61099b8a88858151811061098e5761098e614dae565b6020026020010151611a2a565b90508115610a10576109ad8183614d6a565b91508115610a105760405180604001604052808885815181106109d2576109d2614dae565b60200260200101516001600160a01b03168152602001838152508585815181106109fe576109fe614dae565b60200260200101819052508360010193505b50506001016108e8565b50815295945050505050565b610a2e6103f5565b6001600160a01b0316635efcc07c336040518263ffffffff1660e01b8152600401610a599190614171565b5f6040518083038186803b158015610a6f575f5ffd5b505afa158015610a81573d5f5f3e3d5ffd5b50505050610a8d6122c9565b565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1191906149fc565b6040516311d9858b60e21b81529091506001600160a01b03821690634766162c90610b40908690600401614171565b602060405180830381865afa158015610b5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7f9190614dd9565b610b9c576040516375e72ed760e11b815260040160405180910390fd5b6040516370a0823160e01b81525f906001600160a01b038516906370a0823190610bca908890600401614171565b602060405180830381865afa158015610be5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c099190614dc2565b90505f610c168686611a2a565b9050610c228183614d6a565b9695505050505050565b610c3461231f565b610c3d826123c3565b610c478282612424565b5050565b5f610c546124e5565b505f5160206152245f395f51905f5290565b5f5f610c7061252e565b5460ff1692915050565b610c8261405f565b604051631c13359160e11b81525f906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906338266b2290610cd0908690600401614171565b5f60405180830381865afa158015610cea573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d119190810190614c59565b9050610d1f815f0151612552565b9392505050565b610d2e6140d2565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610daf91906149fc565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630a065fb66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e3291906149fc565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b22876040518263ffffffff1660e01b8152600401610e819190614171565b5f60405180830381865afa158015610e9b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ec29190810190614c59565b604051631d20a23d60e21b81529091506001600160a01b0384169063748288f490610ef1908990600401614171565b5f60405180830381865afa158015610f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f329190810190614e81565b60c088015260408088019190915260a08701919091526020808701929092529082015160808601525163cebcff8960e01b81526001600160a01b0387811660048301526001602483015284169063cebcff8990604401602060405180830381865afa158015610fa3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc79190614dc2565b8460e00181815250505f836001600160a01b031663b58eb63f6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561100c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526110339190810190614d7d565b8051909150806001600160401b0381111561105057611050614199565b60405190808252806020026020018201604052801561108957816020015b611076614049565b81526020019060019003908161106e5790505b5060608701525f5b8181101561119c578281815181106110ab576110ab614dae565b6020026020010151876060015182815181106110c9576110c9614dae565b60200260200101515f01906001600160a01b031690816001600160a01b031681525050846001600160a01b031663aea9107884838151811061110d5761110d614dae565b60200260200101516040518263ffffffff1660e01b81526004016111319190614171565b602060405180830381865afa15801561114c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111709190614dc2565b8760600151828151811061118657611186614dae565b6020908102919091018101510152600101611091565b5082516111a890612665565b6101208701526111b788611349565b61010087015286515f036112365761122b88866001600160a01b0316635a52477a6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611204573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526101459190810190614d7d565b610180870152611247565b611240888861040f565b6101808701525b608083015161014087015260608301516101608701526040830151869060018111156112755761127561463b565b908160018111156112885761128861463b565b905250610160860151158015906112a3575085610160015142115b156112d75760a0830151869060018111156112c0576112c061463b565b908160018111156112d3576112d361463b565b9052505b505050505092915050565b6112ea6103f5565b6001600160a01b031663bf4019ec336040518263ffffffff1660e01b81526004016113159190614171565b5f6040518083038186803b15801561132b575f5ffd5b505afa15801561133d573d5f5f3e3d5ffd5b50505050610a8d612713565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113cb91906149fc565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b22856040518263ffffffff1660e01b815260040161141a9190614171565b5f60405180830381865afa158015611434573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261145b9190810190614c59565b90505f611469838684612759565b90945090508061147d57505f949350505050565b505050919050565b5f606083515f036114c2575050604080518082019091526012815271139bc81d1bdad95b9cc81c1c9bdd9a59195960721b60208201525f9061165c565b82518451146114ee575f6040518060600160405280602981526020016151fb602991399150915061165c565b60405163e5a53ea760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e5a53ea79061153c9089908990600401614ef6565b602060405180830381865afa158015611557573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061157b9190614dd9565b156115bb57505060408051808201909152601b81527a151c985b9cd858dd1a5bdb88185b1c9958591e4818db19585c9959602a1b60208201525f9061165c565b6001845111156115ce576115ce84611af1565b5f805b8451811015611609578481815181106115ec576115ec614dae565b6020026020010151826115ff9190614f0f565b91506001016115d1565b50805f0361164a575050604080518082019091526018815277151bdd185b08185b5bdd5b9d081e995c9bc81a5b881554d160421b60208201525f915061165c565b6116568786868461286e565b92509250505b94509492505050565b5f5f5f60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b228d6040518263ffffffff1660e01b81526004016116b79190614171565b5f60405180830381865afa1580156116d1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116f89190810190614c59565b905080606001515f14611711578060a001519450611719565b806040015194505b5f600186600181111561172e5761172e61463b565b1461173a578a8a61173d565b88885b808060200260200160405190810160405280939291908181526020018383602002808284375f92018290525084519495509390930392506117be91505057505060408051808201909152601d81527f4e6f20746f6b656e20707265666572656e6365732070726f766964656400000060208201525f93508392509050611925565b865f0361181e5785815f815181106117d8576117d8614dae565b60200260200101515f60405180604001604052806015815260200174416d6f756e742063616e6e6f74206265207a65726f60581b81525095509550955095505050611925565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a53ea78e8e6040518363ffffffff1660e01b815260040161186c929190614ef6565b602060405180830381865afa158015611887573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118ab9190614dd9565b1561190f5785815f815181106118c3576118c3614dae565b60200260200101515f6040518060400160405280601b81526020017a151c985b9cd858dd1a5bdb88185b1c9958591e4818db19585c9959602a1b81525095509550955095505050611925565b61191b8d8d838a612a31565b9196509450925050505b975097509750979350505050565b5f61193c612b8e565b805490915060ff600160401b82041615906001600160401b03165f811580156119625750825b90505f826001600160401b0316600114801561197d5750303b155b90508115801561198b575080155b156119a95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156119d357845460ff60401b1916600160401b1785555b6119dc86612bb2565b8315611a2257845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b22856040518263ffffffff1660e01b8152600401611a789190614171565b5f60405180830381865afa158015611a92573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611ab99190810190614c59565b9050611ac58184612bee565b949350505050565b7fa5586bb7fe6c4d1a576fc53fefe6d5915940638d338769f6905020734977f50090565b805160018111611aff575050565b5f816001600160401b03811115611b1857611b18614199565b604051908082528060200260200182016040528015611b41578160200160208202803683370190505b5090505f5b82811015611c00575f848281518110611b6157611b61614dae565b602002602001015190505f5f90505b82811015611bcb57838181518110611b8a57611b8a614dae565b60200260200101516001600160a01b0316826001600160a01b031603611bc357604051630e3e200f60e41b815260040160405180910390fd5b600101611b70565b5080838381518110611bdf57611bdf614dae565b6001600160a01b039092166020928302919091019091015250600101611b46565b50505050565b6060805f836001600160401b03811115611c2257611c22614199565b604051908082528060200260200182016040528015611c4b578160200160208202803683370190505b509250836001600160401b03811115611c6657611c66614199565b604051908082528060200260200182016040528015611c8f578160200160208202803683370190505b5091505f5b84811015611ed4575f868281518110611caf57611caf614dae565b60200260200101519050886001600160a01b03166392f1079a826040518263ffffffff1660e01b8152600401611ce59190614171565b602060405180830381865afa158015611d00573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d249190614dd9565b611d4157604051634211ebcf60e01b815260040160405180910390fd5b611d4b8882611a2a565b6040516370a0823160e01b81526001600160a01b038316906370a0823190611d77908c90600401614171565b602060405180830381865afa158015611d92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db69190614dc2565b611dc09190614d6a565b858381518110611dd257611dd2614dae565b6020026020010181815250505f858381518110611df157611df1614dae565b60200260200101511115611ecb57886001600160a01b031663c5b66b4a82878581518110611e2157611e21614dae565b60200260200101516040518363ffffffff1660e01b8152600401611e46929190614ef6565b602060405180830381865afa158015611e61573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e859190614dc2565b848381518110611e9757611e97614dae565b602002602001018181525050838281518110611eb557611eb5614dae565b602002602001015183611ec89190614f0f565b92505b50600101611c94565b509450945094915050565b6060805f886001600160a01b031663b58eb63f6040518163ffffffff1660e01b81526004015f60405180830381865afa158015611f1e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f459190810190614d7d565b80519091505f816001600160401b03811115611f6357611f63614199565b604051908082528060200260200182016040528015611f9c57816020015b611f89614049565b815260200190600190039081611f815790505b5090505f805b838110156121ef575f858281518110611fbd57611fbd614dae565b60200260200101516001600160a01b03166370a082318e6040518263ffffffff1660e01b8152600401611ff09190614171565b602060405180830381865afa15801561200b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202f9190614dc2565b90505f6120558d88858151811061204857612048614dae565b6020026020010151612bee565b905081156121e5576120678183614d6a565b915060018a600181111561207d5761207d61463b565b0361218a575f5b8c51811015612188578c818151811061209f5761209f614dae565b60200260200101516001600160a01b03168885815181106120c2576120c2614dae565b60200260200101516001600160a01b031603612180578b81815181106120ea576120ea614dae565b602002602001015183101561215457604080515f8082526020820190925290612129565b612116614049565b81526020019060019003908161210e5790505b506040518060800160405280604881526020016151b360489139995099505050505050505050612208565b8b818151811061216657612166614dae565b6020026020010151836121799190614d6a565b9250612188565b600101612084565b505b60405180604001604052808885815181106121a7576121a7614dae565b60200260200101516001600160a01b03168152602001838152508585815181106121d3576121d3614dae565b60200260200101819052508360010193505b5050600101611fa2565b50815260408051602081019091525f8152909450925050505b965096945050505050565b61221b614022565b85515f80808061222d8b8b8a8a612c84565b93509350935093505f82111561228a57604080515f6080820181815260a083018452825282518181526020808201855280840191909152835182815290810184529192830191905081526020015f815250955050505050506122c0565b5f61229985858c8e868b612df7565b604080516080810182528e8152602081019790975286019490945250505060608201529150505b95945050505050565b6122d1612f14565b5f6122da61252e565b805460ff1916815590507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516123149190614171565b60405180910390a150565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806123a557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166123995f5160206152245f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610a8d5760405163703e46dd60e11b815260040160405180910390fd5b5f6123cc611acd565b8054604051634766d28760e01b81529192506001600160a01b031690634766d287906123fc903390600401614171565b5f6040518083038186803b158015612412575f5ffd5b505afa158015611a22573d5f5f3e3d5ffd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561247e575060408051601f3d908101601f1916820190925261247b91810190614dc2565b60015b6124a65781604051634c9c8ce360e01b815260040161249d9190614171565b60405180910390fd5b5f5160206152245f395f51905f5281146124d657604051632a87526960e21b81526004810182905260240161249d565b6124e08383612f39565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a8d5760405163703e46dd60e11b815260040160405180910390fd5b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f0330090565b61255a61405f565b6101008201516001600160401b03161580159061258457508161010001516001600160401b031642115b1561259d5760808201805183525f908190526101008301525b6101208201516001600160401b0316158015906125c757508161012001516001600160401b031642115b156125e35760a08201805160208401525f908190526101208301525b8160c001516001600160401b0316421115612622575f604083015260c08201516101408301516126139190612f8e565b6001600160401b031660c08301525b8160e001516001600160401b0316421115612661575f606083015260e08201516101408301516126529190612fbc565b6001600160401b031660e08301525b5090565b5f61266f82612552565b805160208201516101008301519294505f92839291906001600160401b03161561269f5785608001519150600193505b6101208601516001600160401b0316156126be575060a0850151600192505b81866040015111156126d557505f95945050505050565b80866060015111156126ec57505f95945050505050565b610c228660400151836126ff9190614d6a565b606088015161270e9084614d6a565b612fea565b61271b612ff9565b5f61272461252e565b805460ff1916600117815590507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586123073390565b5f8080806127a38787878460405190808252806020026020018201604052801561278d578160200160208202803683370190505b50604080515f8082526020820190925290611edf565b9150915080515f1415806127b657508151155b156127c8575f5f935093505050612866565b5f5f886001600160a01b031663fefb054989866040518363ffffffff1660e01b81526004016127f8929190614d11565b6040805180830381865afa158015612812573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128369190614d34565b9150915081811115612851575f5f9550955050505050612866565b61285b8183614d6a565b600195509550505050505b935093915050565b5f60605f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b2ddc656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128f291906149fc565b90505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166338266b22896040518263ffffffff1660e01b81526004016129419190614171565b5f60405180830381865afa15801561295b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129829190810190614c59565b60408101516060820151919250901561299c575060a08101515b5f8160018111156129af576129af61463b565b1480156129bd575060018851115b156129e8575f604051806060016040528060258152602001615244602591399450945050505061165c565b81515f9081906129f8908961301f565b9150915081612a10575f9650945061165c9350505050565b612a1f8b8b8b8b898989613243565b96509650505050505094509492505050565b6040805160018082528183019092525f9182916060918391906020808301908036833701905050905084815f81518110612a6d57612a6d614dae565b60209081029190910101526040805160018082528183019092525f9181602001602082028036833701905050905060605f5b8851811015612b5d57888181518110612aba57612aba614dae565b6020026020010151835f81518110612ad457612ad4614dae565b60200260200101906001600160a01b031690816001600160a01b0316815250505f5f612b028d8d8789611485565b91509150825f03612b11578093505b8115612b53578a8381518110612b2957612b29614dae565b6020026020010151600160405180602001604052805f815250985098509850505050505050612b84565b5050600101612a9f565b50875f81518110612b7057612b70614dae565b60200260200101515f829550955095505050505b9450945094915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0090565b612bba613555565b5f612bc3611acd565b80546001600160a01b0319166001600160a01b0384161781559050612be661357a565b610c47613582565b602082015151515f9080825b82811015612c4b57846001600160a01b031686602001515f01518281518110612c2557612c25614dae565b60200260200101516001600160a01b031603612c4357809150612c4b565b600101612bfa565b50818103612c59575f6122c0565b8460200151602001518181518110612c7357612c73614dae565b602002602001015195945050505050565b6060805f5f5f88519050806001600160401b03811115612ca657612ca6614199565b604051908082528060200260200182016040528015612ccf578160200160208202803683370190505b509450806001600160401b03811115612cea57612cea614199565b604051908082528060200260200182016040528015612d13578160200160208202803683370190505b5093508592505f5b8181108015612d2957505f84115b15612dea575f898281518110612d4157612d41614dae565b602002602001015190505f811115612de1575f5f5f612d7b8e8681518110612d6b57612d6b614dae565b6020026020010151858a8f61359e565b925092509250828a8681518110612d9457612d94614dae565b60200260200101818152505081898681518110612db357612db3614dae565b6020908102919091010152612dc88189614d6a565b9750849650875f03612ddd5750505050612dea565b5050505b50600101612d1b565b5050945094509450949050565b5f805b838111612e3057868181518110612e1357612e13614dae565b602002602001015182612e269190614f0f565b9150600101612dfa565b505f612e3d846001614f0f565b90505b82811015612f09575f858281518110612e5b57612e5b614dae565b60200260200101511115612f0157858181518110612e7b57612e7b614dae565b6020026020010151888281518110612e9557612e95614dae565b602002602001018181525050848181518110612eb357612eb3614dae565b6020026020010151878281518110612ecd57612ecd614dae565b602002602001018181525050848181518110612eeb57612eeb614dae565b602002602001015182612efe9190614f0f565b91505b600101612e40565b509695505050505050565b612f1c610c66565b610a8d57604051638dfc202b60e01b815260040160405180910390fd5b612f42826136f4565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612f86576124e0828261374e565b610c476137b7565b5f5b612fa36001600160401b038416836137d6565b9250826001600160401b03164211612f90575090919050565b5f5b612fd16001600160401b03841683613819565b9250826001600160401b03164211612fbe575090919050565b5f828218828410028218610d1f565b613001610c66565b15610a8d5760405163d93c066560e01b815260040160405180910390fd5b5f606061302b84612552565b805160208201516101008301519296505f92839291906001600160401b03161561305b5787608001519150600193505b6101208801516001600160401b03161561307a575060a0870151600192505b81886040015111156130da5783156130b3575f6040518060600160405280602f8152602001615142602f9139955095505050505061323c565b5f6040518060600160405280602681526020016150f460269139955095505050505061323c565b808860600151111561313a578215613113575f6040518060600160405280603181526020016152d360319139955095505050505061323c565b5f60405180606001604052806028815260200161511a60289139955095505050505061323c565b5f88604001518361314b9190614d6a565b90505f89606001518361315e9190614d6a565b9050818911156131c0578515613197575f604051806080016040528060428152602001615171604291399750975050505050505061323c565b5f604051806060016040528060398152602001615269603991399750975050505050505061323c565b808911156132205784156131f7575f604051806080016040528060448152602001615390604491399750975050505050505061323c565b5f6040518060600160405280603b81526020016153d4603b91399750975050505050505061323c565b600160405180602001604052805f815250975097505050505050505b9250929050565b5f60605f88516001600160401b0381111561326057613260614199565b604051908082528060200260200182016040528015613289578160200160208202803683370190505b5090505f5b895181101561350b57866001600160a01b03166392f1079a8b83815181106132b8576132b8614dae565b60200260200101516040518263ffffffff1660e01b81526004016132dc9190614171565b602060405180830381865afa1580156132f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061331b9190614dd9565b613361575f6040518060400160405280601c81526020017f4e6f74206120737570706f7274656420737461626c6520746f6b656e00000000815250935093505050613549565b866001600160a01b031663afe6ab008b838151811061338257613382614dae565b60200260200101518b848151811061339c5761339c614dae565b60200260200101516040518363ffffffff1660e01b81526004016133c1929190614ef6565b602060405180830381865afa1580156133dc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134009190614dc2565b82828151811061341257613412614dae565b602090810291909101015260018560018111156134315761343161463b565b1480156134d9575081818151811061344b5761344b614dae565b60200260200101518a828151811061346557613465614dae565b60200260200101516001600160a01b03166370a082318d6040518263ffffffff1660e01b81526004016134989190614171565b602060405180830381865afa1580156134b3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134d79190614dc2565b105b15613503575f60405180606001604052806032815260200161530460329139935093505050613549565b60010161328e565b505f84600181111561351f5761351f61463b565b0361353c576135328a8a838a8a8a61389e565b9250925050613549565b6135328a8a8389896139ad565b97509795505050505050565b61355d613a9e565b610a8d57604051631afcd79f60e31b815260040160405180910390fd5b610a8d613555565b61358a613555565b5f61359361252e565b805460ff1916905550565b5f5f5f5f846001600160a01b031663f0ba097e896040518263ffffffff1660e01b81526004016135ce9190614171565b606060405180830381865afa1580156135e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061360d9190614f38565b5190505f61362f886001600160501b03841668056bc75e2d6310000084613ab7565b90508681106136de575f6136588868056bc75e2d631000006001600160501b0386166001613ab7565b9050613664818a614d6a565b60405162afe6ab60e81b81529095506001600160a01b0388169063afe6ab0090613694908d908990600401614ef6565b602060405180830381865afa1580156136af573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136d39190614dc2565b9550879350506136e8565b5f94505f93508092505b50509450945094915050565b806001600160a01b03163b5f036137205780604051634c9c8ce360e01b815260040161249d9190614171565b5f5160206152245f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161376a9190614fa3565b5f60405180830381855af49150503d805f81146137a2576040519150601f19603f3d011682016040523d82523d5f602084013e6137a7565b606091505b50915091506122c0858383613af9565b3415610a8d5760405163b398979f60e01b815260040160405180910390fd5b5f806137e28385614fb9565b90505f6137f26201518083614ff4565b90505f613800826001614f0f565b61380d9062015180615020565b9050610c228582615037565b5f806138258385614fb9565b90505f8061383e613839620151808561505d565b613b4c565b50909250905061384f600182615070565b9050600c8160ff16111561386d5750600161386a8183615089565b91505b5f61387a83836001613cba565b6138879062015180615020565b90506138938682615037565b979650505050505050565b5f6060855f815181106138b3576138b3614dae565b6020026020010151875f815181106138cd576138cd614dae565b60200260200101516001600160a01b03166370a08231866040518263ffffffff1660e01b81526004016139009190614171565b602060405180830381865afa15801561391b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061393f9190614dc2565b1015613968575f6040518060600160405280603881526020016153366038913991509150612208565b5f5f613978868b878c8c5f611edf565b9150915080515f14613990575f935091506122089050565b61399c8a838989613df0565b935093505050965096945050505050565b5f60605f5f6139c1868a878b8b6001611edf565b9150915080515f146139d9575f93509150613a949050565b5f5f876001600160a01b031663fefb05498c866040518363ffffffff1660e01b8152600401613a09929190614d11565b6040805180830381865afa158015613a23573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a479190614d34565b9150915081811115613a7a575f6040518060600160405280603181526020016152a2603191399550955050505050613a94565b600160405180602001604052805f81525095509550505050505b9550959350505050565b5f613aa7612b8e565b54600160401b900460ff16919050565b5f613ae4613ac483613f03565b8015613adf57505f8480613ada57613ada614fe0565b868809115b151590565b613aef868686613f2f565b6122c09190614f0f565b606082613b0e57613b0982613fe5565b610d1f565b8151158015613b2557506001600160a01b0384163b155b15613b455783604051639996b31560e01b815260040161249d9190614171565b5080610d1f565b5f80808381613b5e8262010bd9614fb9565b613b6b9062253d8c614fb9565b90505f62023ab1613b7d8360046150a3565b613b879190614ff4565b90506004613b988262023ab16150a3565b613ba3906003614fb9565b613bad9190614ff4565b613bb79083615037565b91505f62164b09613bc9846001614fb9565b613bd590610fa06150a3565b613bdf9190614ff4565b90506004613bef826105b56150a3565b613bf99190614ff4565b613c039084615037565b613c0e90601f614fb9565b92505f61098f613c1f8560506150a3565b613c299190614ff4565b90505f6050613c3a8361098f6150a3565b613c449190614ff4565b613c4e9086615037565b9050613c5b600b83614ff4565b9450613c6885600c6150a3565b613c73836002614fb9565b613c7d9190615037565b91508483613c8c603187615037565b613c979060646150a3565b613ca19190614fb9565b613cab9190614fb9565b9a919950975095505050505050565b5f61ffff841660ff8085169084168362253d8c60046064600c613cde600e88615037565b613ce89190614ff4565b613cf488611324614fb9565b613cfe9190614fb9565b613d089190614ff4565b613d139060036150a3565b613d1d9190614ff4565b600c80613d2b600e88615037565b613d359190614ff4565b613d4090600c6150a3565b613d4b600288615037565b613d559190615037565b613d619061016f6150a3565b613d6b9190614ff4565b6004600c613d7a600e89615037565b613d849190614ff4565b613d90896112c0614fb9565b613d9a9190614fb9565b613da6906105b56150a3565b613db09190614ff4565b613dbc617d4b87615037565b613dc69190614fb9565b613dd09190614fb9565b613dda9190615037565b613de49190615037565b98975050505050505050565b5f60605f5f846001600160a01b031663fefb054989896040518363ffffffff1660e01b8152600401613e23929190614d11565b6040805180830381865afa158015613e3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e619190614d34565b9150915081811115613e92575f60405180606001604052806022815260200161536e6022913993509350505061165c565b613e9c8183614d6a565b861115613ee5575f6040518060400160405280601c81526020017f496e73756666696369656e7420626f72726f77696e6720706f7765720000000081525093509350505061165c565b505060408051602081019091525f8152600197909650945050505050565b5f6002826003811115613f1857613f1861463b565b613f2291906150d2565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f03613f6357838281613f5957613f59614fe0565b0492505050610d1f565b808411613f7a57613f7a6003851502601118614011565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b805115613ff55780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b634e487b715f52806020526024601cfd5b60405180608001604052806060815260200160608152602001606081526020015f81525090565b604080518082019091525f808252602082015290565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160401b031681526020015f6001600160401b031681526020015f6001600160401b031681526020015f6001600160401b031681526020015f81525090565b604080516101a08101909152805f8152602001606081526020016060815260200160608152602001614135604051806080016040528060608152602001606081526020015f6001600160a01b031681526020015f6001600160601b031681525090565b81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200161416c614022565b905290565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461400e575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b60405161016081016001600160401b03811182821017156141d0576141d0614199565b60405290565b604051608081016001600160401b03811182821017156141d0576141d0614199565b60405160c081016001600160401b03811182821017156141d0576141d0614199565b604080519081016001600160401b03811182821017156141d0576141d0614199565b604051601f8201601f191681016001600160401b038111828210171561426457614264614199565b604052919050565b5f6001600160401b0382111561428457614284614199565b5060051b60200190565b5f82601f83011261429d575f5ffd5b81356142b06142ab8261426c565b61423c565b8082825260208201915060208360051b8601019250858311156142d1575f5ffd5b602085015b838110156142f75780356142e981614185565b8352602092830192016142d6565b5095945050505050565b5f5f60408385031215614312575f5ffd5b823561431d81614185565b915060208301356001600160401b03811115614337575f5ffd5b6143438582860161428e565b9150509250929050565b5f8151808452602084019350602083015f5b828110156143865781516001600160a01b031686526020958601959091019060010161435f565b5093949350505050565b5f8151808452602084019350602083015f5b828110156143865781518652602095860195909101906001016143a2565b5f8151608084526143d4608085018261434d565b9050602083015184820360208601526143ed8282614390565b915050604083015184820360408601526144078282614390565b915050606083015160608501528091505092915050565b602081525f610d1f60208301846143c0565b5f60208284031215614440575f5ffd5b8135610d1f81614185565b5f8151808452602084019350602083015f5b8281101561438657815180516001600160a01b03168752602090810151818801526040909601959091019060010161445d565b602081525f610d1f602083018461444b565b5f5f604083850312156144b3575f5ffd5b82356144be81614185565b915060208301356144ce81614185565b809150509250929050565b5f5f604083850312156144ea575f5ffd5b82356144f581614185565b915060208301356001600160401b0381111561450f575f5ffd5b8301601f8101851361451f575f5ffd5b80356001600160401b0381111561453857614538614199565b61454b601f8201601f191660200161423c565b81815286602083850101111561455f575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f61016082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c08301516145d660c08401826001600160401b03169052565b5060e08301516145f160e08401826001600160401b03169052565b5061010083015161460e6101008401826001600160401b03169052565b5061012083015161462b6101208401826001600160401b03169052565b5061014092830151919092015290565b634e487b7160e01b5f52602160045260245ffd5b6002811061466b57634e487b7160e01b5f52602160045260245ffd5b9052565b5f815160808452614683608085018261434d565b90506020830151848203602086015261469c8282614390565b6040858101516001600160a01b0316908701526060948501516001600160601b03169490950193909352509192915050565b602081526146e060208201835161464f565b5f60208301516101a060408401526146fc6101c084018261444b565b90506040840151601f19848303016060850152614719828261444b565b9150506060840151601f19848303016080850152614737828261444b565b9150506080840151601f198483030160a0850152614755828261466f565b91505060a084015160c084015260c084015160e084015260e0840151610100840152610100840151610120840152610120840151610140840152610140840151610160840152610160840151610180840152610180840151601f19848303016101a08501526122c082826143c0565b5f5f5f5f608085870312156147d7575f5ffd5b84356147e281614185565b93506020850135925060408501356001600160401b03811115614803575f5ffd5b61480f8782880161428e565b92505060608501356001600160401b0381111561482a575f5ffd5b8501601f8101871361483a575f5ffd5b80356148486142ab8261426c565b8082825260208201915060208360051b850101925089831115614869575f5ffd5b6020840193505b8284101561488b578335825260209384019390910190614870565b969995985093965050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201525f611ac56040830184614899565b602081525f610d1f6020830184614899565b5f5f83601f840112614903575f5ffd5b5081356001600160401b03811115614919575f5ffd5b6020830191508360208260051b850101111561323c575f5ffd5b5f5f5f5f5f5f5f60a0888a031215614949575f5ffd5b873561495481614185565b96506020880135955060408801356001600160401b03811115614975575f5ffd5b6149818a828b016148f3565b90965094505060608801356001600160401b0381111561499f575f5ffd5b6149ab8a828b016148f3565b989b979a50959894979596608090950135949350505050565b6149ce818661464f565b6001600160a01b038416602082015282151560408201526080606082018190525f90610c2290830184614899565b5f60208284031215614a0c575f5ffd5b8151610d1f81614185565b80516001600160401b0381168114614a2d575f5ffd5b919050565b5f6101608284031215614a43575f5ffd5b614a4b6141ad565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a080840151908201529050614a8f60c08301614a17565b60c0820152614aa060e08301614a17565b60e0820152614ab26101008301614a17565b610100820152614ac56101208301614a17565b6101208201526101409182015191810191909152919050565b8051614a2d81614185565b5f82601f830112614af8575f5ffd5b8151614b066142ab8261426c565b8082825260208201915060208360051b860101925085831115614b27575f5ffd5b602085015b838110156142f7578051614b3f81614185565b835260209283019201614b2c565b80516001600160601b0381168114614a2d575f5ffd5b5f60808284031215614b73575f5ffd5b614b7b6141d6565b905081516001600160401b03811115614b92575f5ffd5b614b9e84828501614ae9565b82525060208201516001600160401b03811115614bb9575f5ffd5b8201601f81018413614bc9575f5ffd5b8051614bd76142ab8261426c565b8082825260208201915060208360051b850101925086831115614bf8575f5ffd5b6020840193505b82841015614c1a578351825260209384019390910190614bff565b602085015250614c2f91505060408301614ade565b6040820152614c4060608301614b4d565b606082015292915050565b805160028110614a2d575f5ffd5b5f60208284031215614c69575f5ffd5b81516001600160401b03811115614c7e575f5ffd5b82016102008185031215614c90575f5ffd5b614c986141f8565b614ca28583614a32565b81526101608201516001600160401b03811115614cbd575f5ffd5b614cc986828501614b63565b602083015250614cdc6101808301614c4b565b60408201526101a082015160608201526101c08201516080820152614d046101e08301614c4b565b60a0820152949350505050565b6001600160a01b03831681526040602082018190525f90611ac59083018461444b565b5f5f60408385031215614d45575f5ffd5b505080516020909101519092909150565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561079d5761079d614d56565b5f60208284031215614d8d575f5ffd5b81516001600160401b03811115614da2575f5ffd5b611ac584828501614ae9565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215614dd2575f5ffd5b5051919050565b5f60208284031215614de9575f5ffd5b81518015158114610d1f575f5ffd5b5f82601f830112614e07575f5ffd5b8151614e156142ab8261426c565b8082825260208201915060208360061b860101925085831115614e36575f5ffd5b602085015b838110156142f75760408188031215614e52575f5ffd5b614e5a61421a565b8151614e6581614185565b8152602082810151818301529084529290920191604001614e3b565b5f5f5f5f60808587031215614e94575f5ffd5b84516001600160401b03811115614ea9575f5ffd5b614eb587828801614df8565b60208701516040880151919650945090506001600160401b03811115614ed9575f5ffd5b614ee587828801614df8565b606096909601519497939650505050565b6001600160a01b03929092168252602082015260400190565b8082018082111561079d5761079d614d56565b80516001600160501b0381168114614a2d575f5ffd5b5f6060828403128015614f49575f5ffd5b50604051606081016001600160401b0381118282101715614f6c57614f6c614199565b604052614f7883614f22565b8152614f8660208401614f22565b6020820152614f9760408401614b4d565b60408201529392505050565b5f82518060208501845e5f920191825250919050565b8082018281125f831280158216821582161715614fd857614fd8614d56565b505092915050565b634e487b7160e01b5f52601260045260245ffd5b5f8261500257615002614fe0565b600160ff1b82145f198414161561501b5761501b614d56565b500590565b808202811582820484141761079d5761079d614d56565b8181035f83128015838313168383128216171561505657615056614d56565b5092915050565b5f8261506b5761506b614fe0565b500490565b60ff818116838216019081111561079d5761079d614d56565b61ffff818116838216019081111561079d5761079d614d56565b8082025f8212600160ff1b841416156150be576150be614d56565b818105831482151761079d5761079d614d56565b5f60ff8316806150e4576150e4614fe0565b8060ff8416069150509291505056fe4461696c79207370656e64696e67206c696d697420616c7265616479206578686175737465644d6f6e74686c79207370656e64696e67206c696d697420616c726561647920657868617573746564496e636f6d696e67206461696c79207370656e64696e67206c696d697420616c726561647920657868617573746564496e636f6d696e67206461696c7920617661696c61626c65207370656e64696e67206c696d6974206c657373207468616e20616d6f756e7420726571756573746564496e73756666696369656e74206566666563746976652062616c616e6365206166746572207769746864726177616c20746f207370656e642077697468206465626974206d6f6465546f6b656e7320616e6420616d6f756e747320617272617973206c656e677468206d69736d61746368360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc4f6e6c79206f6e6520746f6b656e20616c6c6f77656420696e20437265646974206d6f64654461696c7920617661696c61626c65207370656e64696e67206c696d6974206c657373207468616e20616d6f756e7420726571756573746564426f72726f77696e67732067726561746572207468616e206d617820626f72726f77206166746572207370656e64696e67496e636f6d696e67206d6f6e74686c79207370656e64696e67206c696d697420616c726561647920657868617573746564496e73756666696369656e7420746f6b656e2062616c616e636520666f72206465626974206d6f6465207370656e64696e67496e73756666696369656e74206c697175696469747920696e2064656274206d616e6167657220746f20636f76657220746865206c6f616e426f72726f77696e67732067726561746572207468616e206d617820626f72726f77496e636f6d696e67206d6f6e74686c7920617661696c61626c65207370656e64696e67206c696d6974206c657373207468616e20616d6f756e74207265717565737465644d6f6e74686c7920617661696c61626c65207370656e64696e67206c696d6974206c657373207468616e20616d6f756e7420726571756573746564a164736f6c634300081c000a000000000000000000000000bc5e1a8cdc14b286a8f5f523059cf02a7ffe9a6d0000000000000000000000004a9c44c97bbf6079db37c4769aebe425bbcdd09a