6 txs
7 calls
constructor
constructor(bytes32 _fraxtalHop, uint256 _numDVNs, address _EXECUTOR, address _DVN, address _TREASURY, uint32 _EID, address _frxUsdOft, address _sfrxUsdOft)
functions
DVN
viewfunction DVN() view returns (address)
EID
viewfunction EID() view returns (uint32)
EXECUTOR
viewfunction EXECUTOR() view returns (address)
fraxtalHop
viewfunction fraxtalHop() view returns (bytes32)
frxUsdOft
viewfunction frxUsdOft() view returns (address)
hopFee
viewfunction hopFee() view returns (uint256)
numDVNs
viewfunction numDVNs() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
quote
viewfunction quote(address _oft, bytes32 _to, uint256 _amountLD) view returns (tuple fee)
quoteHop
viewfunction quoteHop() view returns (uint256 finalFee)
sfrxUsdOft
viewfunction sfrxUsdOft() view returns (address)
TREASURY
viewfunction TREASURY() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
mintRedeem
payablefunction mintRedeem(address _oft, uint256 _amountLD) payable
pause
nonpayablefunction pause(bool _paused)
recoverERC20
nonpayablefunction recoverERC20(address tokenAddress, address recipient, uint256 tokenAmount)
recoverETH
nonpayablefunction recoverETH(address recipient, uint256 tokenAmount)
renounceOwnership
nonpayablefunction renounceOwnership()
setFraxtalHop
nonpayablefunction setFraxtalHop(address _fraxtalHop)
setFraxtalHop
nonpayablefunction setFraxtalHop(bytes32 _fraxtalHop)
setFrxUsdOft
nonpayablefunction setFrxUsdOft(address _frxUsdOft)
setHopFee
nonpayablefunction setHopFee(uint256 _hopFee)
setNumDVNs
nonpayablefunction setNumDVNs(uint256 _numDVNs)
setSfrxUsdOft
nonpayablefunction setSfrxUsdOft(address _sfrxUsdOft)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
MintRedeem
event MintRedeem(address oft, address indexed sender, uint256 amountLD)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
HopPaused
error HopPaused()
InsufficientFee
error InsufficientFee()
InvalidOFT
error InvalidOFT()
InvalidOptionType
error InvalidOptionType(uint16 optionType)
NotEndpoint
error NotEndpoint()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
RefundFailed
error RefundFailed()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
ZeroAmountSend
error ZeroAmountSend()
creation bytecode
0x6101006040526000600160146101000a81548160ff021916908315150217905550600260035560016004553480156200003757600080fd5b50604051620033d3380380620033d383398181016040528101906200005d919062000451565b33600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000d35760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000ca91906200052b565b60405180910390fd5b620000e4816200023360201b60201c565b5087600281905550866003819055508573ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508473ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250508263ffffffff1660e08163ffffffff168152505081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000548565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905562000269816200026c60201b60201c565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b6000819050919050565b6200034a8162000335565b81146200035657600080fd5b50565b6000815190506200036a816200033f565b92915050565b6000819050919050565b620003858162000370565b81146200039157600080fd5b50565b600081519050620003a5816200037a565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003d882620003ab565b9050919050565b620003ea81620003cb565b8114620003f657600080fd5b50565b6000815190506200040a81620003df565b92915050565b600063ffffffff82169050919050565b6200042b8162000410565b81146200043757600080fd5b50565b6000815190506200044b8162000420565b92915050565b600080600080600080600080610100898b03121562000475576200047462000330565b5b6000620004858b828c0162000359565b9850506020620004988b828c0162000394565b9750506040620004ab8b828c01620003f9565b9650506060620004be8b828c01620003f9565b9550506080620004d18b828c01620003f9565b94505060a0620004e48b828c016200043a565b93505060c0620004f78b828c01620003f9565b92505060e06200050a8b828c01620003f9565b9150509295985092959890939650565b6200052581620003cb565b82525050565b60006020820190506200054260008301846200051a565b92915050565b60805160a05160c05160e051612e20620005b360003960008181610aab01528181610ba801528181610c8b015281816110a701526115b00152600081816107250152610c4e0152600081816106230152610a6f015260008181610b6c0152610daf0152612e206000f3fe6080604052600436106101a05760003560e01c8063630dc7cb116100ec578063a79524b01161008a578063e30c397811610064578063e30c397814610554578063ec1278d61461057f578063f2fde38b146105a8578063fab35d70146105d1576101a7565b8063a79524b0146104c1578063b218b198146104fe578063d393f07214610529576101a7565b8063715018a6116100c6578063715018a61461043f57806377958f871461045657806379ba50971461047f5780638da5cb5b14610496576101a7565b8063630dc7cb146103c057806367fb4738146103eb5780636d07981314610414576101a7565b8063317f39dd1161015957806348be726e1161013357806348be726e146103165780635b461c83146103415780635c975abb1461036a5780636257cdb414610395576101a7565b8063317f39dd146102a85780633de9dc5c146102c45780633e0c0629146102ed576101a7565b806302329a29146101ac578063104db380146101d55780631171bda914610200578063225325d91461022957806324df604b146102525780632d2c55651461027d576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce9190611e3e565b6105fc565b005b3480156101e157600080fd5b506101ea610621565b6040516101f79190611eac565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190611f29565b610645565b005b34801561023557600080fd5b50610250600480360381019061024b9190611f7c565b6106d1565b005b34801561025e57600080fd5b5061026761071d565b6040516102749190611fb8565b60405180910390f35b34801561028957600080fd5b50610292610723565b60405161029f9190611eac565b60405180910390f35b6102c260048036038101906102bd9190611fd3565b610747565b005b3480156102d057600080fd5b506102eb60048036038101906102e69190611f7c565b6109a9565b005b3480156102f957600080fd5b50610314600480360381019061030f9190611fd3565b6109f5565b005b34801561032257600080fd5b5061032b610a6a565b6040516103389190611fb8565b60405180910390f35b34801561034d57600080fd5b5061036860048036038101906103639190611f7c565b610d4f565b005b34801561037657600080fd5b5061037f610d74565b60405161038c9190612022565b60405180910390f35b3480156103a157600080fd5b506103aa610d87565b6040516103b79190611eac565b60405180910390f35b3480156103cc57600080fd5b506103d5610dad565b6040516103e29190611eac565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d919061203d565b610dd1565b005b34801561042057600080fd5b50610429610de3565b6040516104369190611eac565b60405180910390f35b34801561044b57600080fd5b50610454610e09565b005b34801561046257600080fd5b5061047d600480360381019061047891906120a0565b610e1d565b005b34801561048b57600080fd5b50610494610e2f565b005b3480156104a257600080fd5b506104ab610ebe565b6040516104b89190611eac565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e391906120cd565b610ee7565b6040516104f5919061215e565b60405180910390f35b34801561050a57600080fd5b50610513610fb0565b6040516105209190611fb8565b60405180910390f35b34801561053557600080fd5b5061053e610fb6565b60405161054b9190612188565b60405180910390f35b34801561056057600080fd5b50610569610fbc565b6040516105769190611eac565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a1919061203d565b610fe6565b005b3480156105b457600080fd5b506105cf60048036038101906105ca9190611f7c565b610ff8565b005b3480156105dd57600080fd5b506105e66110a5565b6040516105f391906121c2565b60405180910390f35b6106046110c9565b80600160146101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61064d6110c9565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016106889291906121dd565b6020604051808303816000875af11580156106a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106cb919061221b565b50505050565b6106d96110c9565b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160149054906101000a900460ff161561078e576040517f819f993900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561083a5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610871576040517f7413e48600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61087b8282611150565b9050600081036108b7576040517f4fdf5da600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109318273ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610905573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610929919061225d565b3330846111e4565b610955823373ffffffffffffffffffffffffffffffffffffffff1660001b83611266565b3373ffffffffffffffffffffffffffffffffffffffff167f1db4d91863180048f3f772b26973178921e53f81519ac7ec9b7ad1b9db52d662838360405161099d9291906121dd565b60405180910390a25050565b6109b16110c9565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109fd6110c9565b8173ffffffffffffffffffffffffffffffffffffffff1681604051610a21906122bb565b60006040518083038185875af1925050503d8060008114610a5e576040519150601f19603f3d011682016040523d82523d6000602084013e610a63565b606091505b5050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330bb3aac7f00000000000000000000000000000000000000000000000000000000000000006005306040518463ffffffff1660e01b8152600401610aeb9392919061235d565b602060405180830381865afa158015610b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2c91906123bc565b905060006040518060400160405280601481526020017f01001101000000000000000000000000000493e0000000000000000000000000815250905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663709eb6647f0000000000000000000000000000000000000000000000000000000000000000306024866040518563ffffffff1660e01b8152600401610bea94939291906124a3565b602060405180830381865afa158015610c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2b91906123bc565b905060008160035485610c3e919061251e565b610c489190612560565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d4244221307f00000000000000000000000000000000000000000000000000000000000000008560006040518563ffffffff1660e01b8152600401610ccc9493929190612594565b602060405180830381865afa158015610ce9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0d91906123bc565b90508082610d1b9190612560565b9550612710600454612710610d309190612560565b87610d3b919061251e565b610d459190612608565b9550505050505090565b610d718173ffffffffffffffffffffffffffffffffffffffff1660001b610e1d565b50565b600160149054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b610dd96110c9565b8060048190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610e116110c9565b610e1b600061150a565b565b610e256110c9565b8060028190555050565b6000610e3961153b565b90508073ffffffffffffffffffffffffffffffffffffffff16610e5a610fbc565b73ffffffffffffffffffffffffffffffffffffffff1614610eb257806040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610ea99190611eac565b60405180910390fd5b610ebb8161150a565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610eef611d97565b610ef98483611150565b91506000610f08848485611543565b90508473ffffffffffffffffffffffffffffffffffffffff16633b6f743b8260006040518363ffffffff1660e01b8152600401610f4692919061274b565b6040805180830381865afa158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f86919061284b565b9150610f90610a6a565b82600001818151610fa19190612560565b91508181525050509392505050565b60035481565b60025481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fee6110c9565b8060038190555050565b6110006110c9565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16611060610ebe565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b6110d161153b565b73ffffffffffffffffffffffffffffffffffffffff166110ef610ebe565b73ffffffffffffffffffffffffffffffffffffffff161461114e5761111261153b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111459190611eac565b60405180910390fd5b565b6000808373ffffffffffffffffffffffffffffffffffffffff1663963efcaa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c291906123bc565b90508081846111d19190612608565b6111db919061251e565b91505092915050565b611260848573ffffffffffffffffffffffffffffffffffffffff166323b872dd86868660405160240161121993929190612878565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ff565b50505050565b6000611273838384611543565b905060008473ffffffffffffffffffffffffffffffffffffffff16633b6f743b8360006040518363ffffffff1660e01b81526004016112b392919061274b565b6040805180830381865afa1580156112cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f3919061284b565b905060006112ff610a6a565b826000015161130e9190612560565b90503481111561134a576040517f025dbdd400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113c38673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bc919061225d565b8786611696565b8573ffffffffffffffffffffffffffffffffffffffff1663c7c7f5b383600001518585306040518563ffffffff1660e01b8152600401611405939291906128af565b60c06040518083038185885af1158015611423573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061144891906129e2565b5050803411156115025760003373ffffffffffffffffffffffffffffffffffffffff1682346114779190612a22565b604051611483906122bb565b60006040518083038185875af1925050503d80600081146114c0576040519150601f19603f3d011682016040523d82523d6000602084013e6114c5565b606091505b5050905080611500576040517ff0c49d4400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b505050505050565b600160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055611538816117a5565b50565b600033905090565b61154b611db1565b6000611555611869565b9050611568816000620f42406000611891565b905061762f826000019063ffffffff16908163ffffffff16815250506002548260200181815250508382604001818152505082826060018181525050808260800181905250847f00000000000000000000000000000000000000000000000000000000000000006040516020016115e0929190612a56565b6040516020818303038152906040528260a00181905250509392505050565b600061162a828473ffffffffffffffffffffffffffffffffffffffff1661192e90919063ffffffff16565b9050600081511415801561164f57508080602001905181019061164d919061221b565b155b1561169157826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016116889190611eac565b60405180910390fd5b505050565b60008373ffffffffffffffffffffffffffffffffffffffff1663095ea7b384846040516024016116c79291906121dd565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506117158482611944565b61179f57611794848573ffffffffffffffffffffffffffffffffffffffff1663095ea7b386600060405160240161174d929190612aba565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506115ff565b61179e84826115ff565b5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6060600360405160200161187d9190612b27565b604051602081830303815290604052905090565b606084600361ffff166118ae600083611a0b90919063ffffffff16565b61ffff1614611907576118cb600082611a0b90919063ffffffff16565b6040517f3a51740d0000000000000000000000000000000000000000000000000000000081526004016118fe9190612b51565b60405180910390fd5b6000611914868686611a72565b905061192287600383611ae3565b92505050949350505050565b606061193c83836000611ba0565b905092915050565b60008060008473ffffffffffffffffffffffffffffffffffffffff168460405161196e9190612b9d565b6000604051808303816000865af19150503d80600081146119ab576040519150601f19603f3d011682016040523d82523d6000602084013e6119b0565b606091505b50915091508180156119de57506000815114806119dd5750808060200190518101906119dc919061221b565b5b5b8015611a01575060008573ffffffffffffffffffffffffffffffffffffffff163b115b9250505092915050565b6000600282611a1a9190612560565b83511015611a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5490612c11565b60405180910390fd5b60008260028501015190508091505092915050565b60606000826fffffffffffffffffffffffffffffffff1614611ab757838383604051602001611aa393929190612c83565b604051602081830303815290604052611ada565b8383604051602001611aca929190612cc0565b6040516020818303038152906040525b90509392505050565b606083600361ffff16611b00600083611a0b90919063ffffffff16565b61ffff1614611b5957611b1d600082611a0b90919063ffffffff16565b6040517f3a51740d000000000000000000000000000000000000000000000000000000008152600401611b509190612b51565b60405180910390fd5b84600180611b678651611c6d565b611b719190612cec565b8686604051602001611b87959493929190612d65565b6040516020818303038152906040529150509392505050565b606081471015611be757306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401611bde9190611eac565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051611c109190612b9d565b60006040518083038185875af1925050503d8060008114611c4d576040519150601f19603f3d011682016040523d82523d6000602084013e611c52565b606091505b5091509150611c62868383611cc3565b925050509392505050565b600061ffff8016821115611cbb576010826040517f6dfcc650000000000000000000000000000000000000000000000000000000008152600401611cb2929190612df7565b60405180910390fd5b819050919050565b606082611cd857611cd382611d52565b611d4a565b60008251148015611d00575060008473ffffffffffffffffffffffffffffffffffffffff163b145b15611d4257836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401611d399190611eac565b60405180910390fd5b819050611d4b565b5b9392505050565b600081511115611d655780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604051806040016040528060008152602001600081525090565b6040518060e00160405280600063ffffffff1681526020016000801916815260200160008152602001600081526020016060815260200160608152602001606081525090565b6000604051905090565b600080fd5b60008115159050919050565b611e1b81611e06565b8114611e2657600080fd5b50565b600081359050611e3881611e12565b92915050565b600060208284031215611e5457611e53611e01565b5b6000611e6284828501611e29565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e9682611e6b565b9050919050565b611ea681611e8b565b82525050565b6000602082019050611ec16000830184611e9d565b92915050565b611ed081611e8b565b8114611edb57600080fd5b50565b600081359050611eed81611ec7565b92915050565b6000819050919050565b611f0681611ef3565b8114611f1157600080fd5b50565b600081359050611f2381611efd565b92915050565b600080600060608486031215611f4257611f41611e01565b5b6000611f5086828701611ede565b9350506020611f6186828701611ede565b9250506040611f7286828701611f14565b9150509250925092565b600060208284031215611f9257611f91611e01565b5b6000611fa084828501611ede565b91505092915050565b611fb281611ef3565b82525050565b6000602082019050611fcd6000830184611fa9565b92915050565b60008060408385031215611fea57611fe9611e01565b5b6000611ff885828601611ede565b925050602061200985828601611f14565b9150509250929050565b61201c81611e06565b82525050565b60006020820190506120376000830184612013565b92915050565b60006020828403121561205357612052611e01565b5b600061206184828501611f14565b91505092915050565b6000819050919050565b61207d8161206a565b811461208857600080fd5b50565b60008135905061209a81612074565b92915050565b6000602082840312156120b6576120b5611e01565b5b60006120c48482850161208b565b91505092915050565b6000806000606084860312156120e6576120e5611e01565b5b60006120f486828701611ede565b93505060206121058682870161208b565b925050604061211686828701611f14565b9150509250925092565b61212981611ef3565b82525050565b6040820160008201516121456000850182612120565b5060208201516121586020850182612120565b50505050565b6000604082019050612173600083018461212f565b92915050565b6121828161206a565b82525050565b600060208201905061219d6000830184612179565b92915050565b600063ffffffff82169050919050565b6121bc816121a3565b82525050565b60006020820190506121d760008301846121b3565b92915050565b60006040820190506121f26000830185611e9d565b6121ff6020830184611fa9565b9392505050565b60008151905061221581611e12565b92915050565b60006020828403121561223157612230611e01565b5b600061223f84828501612206565b91505092915050565b60008151905061225781611ec7565b92915050565b60006020828403121561227357612272611e01565b5b600061228184828501612248565b91505092915050565b600081905092915050565b50565b60006122a560008361228a565b91506122b082612295565b600082019050919050565b60006122c682612298565b9150819050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b6000819050919050565b600061231361230e612309846122d0565b6122ee565b6122da565b9050919050565b612323816122f8565b82525050565b600082825260208201905092915050565b6000612347600083612329565b915061235282612295565b600082019050919050565b600060808201905061237260008301866121b3565b61237f602083018561231a565b61238c6040830184611e9d565b818103606083015261239d8161233a565b9050949350505050565b6000815190506123b681611efd565b92915050565b6000602082840312156123d2576123d1611e01565b5b60006123e0848285016123a7565b91505092915050565b6000819050919050565b600061240e612409612404846123e9565b6122ee565b611ef3565b9050919050565b61241e816123f3565b82525050565b600081519050919050565b60005b8381101561244d578082015181840152602081019050612432565b60008484015250505050565b6000601f19601f8301169050919050565b600061247582612424565b61247f8185612329565b935061248f81856020860161242f565b61249881612459565b840191505092915050565b60006080820190506124b860008301876121b3565b6124c56020830186611e9d565b6124d26040830185612415565b81810360608301526124e4818461246a565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061252982611ef3565b915061253483611ef3565b925082820261254281611ef3565b91508282048414831517612559576125586124ef565b5b5092915050565b600061256b82611ef3565b915061257683611ef3565b925082820190508082111561258e5761258d6124ef565b5b92915050565b60006080820190506125a96000830187611e9d565b6125b660208301866121b3565b6125c36040830185611fa9565b6125d06060830184612013565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061261382611ef3565b915061261e83611ef3565b92508261262e5761262d6125d9565b5b828204905092915050565b612642816121a3565b82525050565b6126518161206a565b82525050565b600082825260208201905092915050565b600061267382612424565b61267d8185612657565b935061268d81856020860161242f565b61269681612459565b840191505092915050565b600060e0830160008301516126b96000860182612639565b5060208301516126cc6020860182612648565b5060408301516126df6040860182612120565b5060608301516126f26060860182612120565b506080830151848203608086015261270a8282612668565b91505060a083015184820360a08601526127248282612668565b91505060c083015184820360c086015261273e8282612668565b9150508091505092915050565b6000604082019050818103600083015261276581856126a1565b90506127746020830184612013565b9392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127b882612459565b810181811067ffffffffffffffff821117156127d7576127d6612780565b5b80604052505050565b60006127ea611df7565b90506127f682826127af565b919050565b6000604082840312156128115761281061277b565b5b61281b60406127e0565b9050600061282b848285016123a7565b600083015250602061283f848285016123a7565b60208301525092915050565b60006040828403121561286157612860611e01565b5b600061286f848285016127fb565b91505092915050565b600060608201905061288d6000830186611e9d565b61289a6020830185611e9d565b6128a76040830184611fa9565b949350505050565b600060808201905081810360008301526128c981866126a1565b90506128d8602083018561212f565b6128e56060830184611e9d565b949350505050565b6000815190506128fc81612074565b92915050565b61290b816122da565b811461291657600080fd5b50565b60008151905061292881612902565b92915050565b6000608082840312156129445761294361277b565b5b61294e60606127e0565b9050600061295e848285016128ed565b600083015250602061297284828501612919565b6020830152506040612986848285016127fb565b60408301525092915050565b6000604082840312156129a8576129a761277b565b5b6129b260406127e0565b905060006129c2848285016123a7565b60008301525060206129d6848285016123a7565b60208301525092915050565b60008060c083850312156129f9576129f8611e01565b5b6000612a078582860161292e565b9250506080612a1885828601612992565b9150509250929050565b6000612a2d82611ef3565b9150612a3883611ef3565b9250828203905081811115612a5057612a4f6124ef565b5b92915050565b6000604082019050612a6b6000830185612179565b612a7860208301846121b3565b9392505050565b6000819050919050565b6000612aa4612a9f612a9a84612a7f565b6122ee565b611ef3565b9050919050565b612ab481612a89565b82525050565b6000604082019050612acf6000830185611e9d565b612adc6020830184612aab565b9392505050565b600061ffff82169050919050565b60008160f01b9050919050565b6000612b0982612af1565b9050919050565b612b21612b1c82612ae3565b612afe565b82525050565b6000612b338284612b10565b60028201915081905092915050565b612b4b81612ae3565b82525050565b6000602082019050612b666000830184612b42565b92915050565b6000612b7782612424565b612b81818561228a565b9350612b9181856020860161242f565b80840191505092915050565b6000612ba98284612b6c565b915081905092915050565b600082825260208201905092915050565b7f746f55696e7431365f6f75744f66426f756e6473000000000000000000000000600082015250565b6000612bfb601483612bb4565b9150612c0682612bc5565b602082019050919050565b60006020820190508181036000830152612c2a81612bee565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b60008160801b9050919050565b6000612c6582612c4d565b9050919050565b612c7d612c7882612c31565b612c5a565b82525050565b6000612c8f8286612b10565b600282019150612c9f8285612c6c565b601082019150612caf8284612c6c565b601082019150819050949350505050565b6000612ccc8285612b10565b600282019150612cdc8284612c6c565b6010820191508190509392505050565b6000612cf782612ae3565b9150612d0283612ae3565b9250828201905061ffff811115612d1c57612d1b6124ef565b5b92915050565b600060ff82169050919050565b60008160f81b9050919050565b6000612d4782612d2f565b9050919050565b612d5f612d5a82612d22565b612d3c565b82525050565b6000612d718288612b6c565b9150612d7d8287612d4e565b600182019150612d8d8286612b10565b600282019150612d9d8285612d4e565b600182019150612dad8284612b6c565b91508190509695505050505050565b6000819050919050565b6000612de1612ddc612dd784612dbc565b6122ee565b612d22565b9050919050565b612df181612dc6565b82525050565b6000604082019050612e0c6000830185612de8565b612e196020830184611fa9565b9392505050560000000000000000000000003e6a2cbafd864e09e6dab9cf035a0abea32bc0bc00000000000000000000000000000000000000000000000000000000000000020000000000000000000000002cca08ae69e0c44b18a57ab2a87644234daebae40000000000000000000000009e059a54699a285714207b43b055483e78faac25000000000000000000000000ccd558d6839e128320bbc932cbba2c890a5518e800000000000000000000000000000000000000000000000000000000000075e8000000000000000000000000e5020a6d073a794b6e7f05678707de47986fb0b600000000000000000000000091a3f8a8d7a881fbdfcfecd7a2dc92a46dcfa14e