0 txs
2.5k calls
constructor
constructor(address defaultAdmin, address ntSuperToken, address[] upgraders)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
nativeSuperToken
viewfunction nativeSuperToken() view returns (address)
SUPERTOKEN_DECIMALS
viewfunction SUPERTOKEN_DECIMALS() view returns (uint8)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UPGRADER_ROLE
viewfunction UPGRADER_ROLE() view returns (bytes32)
addUpgrader
nonpayablefunction addUpgrader(address newUpgradeCaller)
downgrade
nonpayablefunction downgrade(address superToken, address account, uint256 amount)
downgradeToETH
nonpayablefunction downgradeToETH(uint256 wad)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
revokeUpgrader
nonpayablefunction revokeUpgrader(address oldUpgradeCaller)
upgrade
nonpayablefunction upgrade(address superToken, address account, uint256 amount)
upgradeByETH
payablefunction upgradeByETH() payable
events
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
errors
ERC20TransferFromRevert
error ERC20TransferFromRevert()
ERC20TransferRevert
error ERC20TransferRevert()
NativeSuperTokenNotSupported
error NativeSuperTokenNotSupported()
OperationNotAllowed
error OperationNotAllowed()
SuperTokenNotUnderlying
error SuperTokenNotUnderlying()
ZeroAddress
error ZeroAddress()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620034a4380380620034a483398181016040528101906200003791906200066b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200009e576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620000b36000801b84620001e760201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060005b8151811015620001dd57600073ffffffffffffffffffffffffffffffffffffffff16828281518110620001225762000121620006e6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160362000178576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620001c77fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d11838381518110620001b357620001b2620006e6565b5b6020026020010151620001e760201b60201c565b8080620001d4906200074e565b915050620000ea565b505050506200079b565b620001f98282620001fd60201b60201c565b5050565b6200021482826200024560201b620017071760201c565b6200024081600160008581526020019081526020016000206200033660201b620017e71790919060201c565b505050565b6200025782826200036e60201b60201c565b6200033257600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002d7620003d860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000366836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620003e060201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000620003f483836200045a60201b60201c565b6200044f57826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000454565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004be8262000491565b9050919050565b620004d081620004b1565b8114620004dc57600080fd5b50565b600081519050620004f081620004c5565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200054682620004fb565b810181811067ffffffffffffffff821117156200056857620005676200050c565b5b80604052505050565b60006200057d6200047d565b90506200058b82826200053b565b919050565b600067ffffffffffffffff821115620005ae57620005ad6200050c565b5b602082029050602081019050919050565b600080fd5b6000620005db620005d58462000590565b62000571565b90508083825260208201905060208402830185811115620006015762000600620005bf565b5b835b818110156200062e5780620006198882620004df565b84526020840193505060208101905062000603565b5050509392505050565b600082601f83011262000650576200064f620004f6565b5b815162000662848260208601620005c4565b91505092915050565b60008060006060848603121562000687576200068662000487565b5b60006200069786828701620004df565b9350506020620006aa86828701620004df565b925050604084015167ffffffffffffffff811115620006ce57620006cd6200048c565b5b620006dc8682870162000638565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b60006200075b8262000744565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000790576200078f62000715565b5b600182019050919050565b608051612ca7620007fd6000396000818161012c0152818161019a0152818161052e015281816105ca0152818161064b01528181610689015281816108400152818161087c015281816108ef015281816109c501526115b10152612ca76000f3fe60806040526004361061010d5760003560e01c80639010d07c11610095578063ca15c87311610064578063ca15c87314610466578063cf81464b146104a3578063d547741f146104ad578063e5110158146104d6578063f72c0d8b146104ff576101f6565b80639010d07c1461039657806391d14854146103d3578063a217fddf14610410578063abbedca21461043b576101f6565b80632a197298116100dc5780632a197298146102c95780632bf6e9ec146102f25780632f2ff15d1461031b57806336568abe146103445780637c8537801461036d576101f6565b806301ffc9a7146101fb5780630b138eef14610238578063160e8be314610263578063248a9ca31461028c576101f6565b366101f657600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1603610198576040517fba16c22a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101f4576101f361052a565b5b005b600080fd5b34801561020757600080fd5b50610222600480360381019061021d9190612045565b6107c4565b60405161022f919061208d565b60405180910390f35b34801561024457600080fd5b5061024d61083e565b60405161025a9190612127565b60405180910390f35b34801561026f57600080fd5b5061028a60048036038101906102859190612178565b610862565b005b34801561029857600080fd5b506102b360048036038101906102ae91906121db565b610aa4565b6040516102c09190612217565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb91906122ae565b610ac3565b005b3480156102fe57600080fd5b50610319600480360381019061031491906122ae565b61100a565b005b34801561032757600080fd5b50610342600480360381019061033d9190612301565b6113f5565b005b34801561035057600080fd5b5061036b60048036038101906103669190612301565b61141e565b005b34801561037957600080fd5b50610394600480360381019061038f9190612341565b6114a1565b005b3480156103a257600080fd5b506103bd60048036038101906103b8919061236e565b6114ce565b6040516103ca91906123bd565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612301565b6114fd565b604051610407919061208d565b60405180910390f35b34801561041c57600080fd5b50610425611567565b6040516104329190612217565b60405180910390f35b34801561044757600080fd5b5061045061156e565b60405161045d91906123f4565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906121db565b611573565b60405161049a919061241e565b60405180910390f35b6104ab611597565b005b3480156104b957600080fd5b506104d460048036038101906104cf9190612301565b611627565b005b3480156104e257600080fd5b506104fd60048036038101906104f89190612341565b611650565b005b34801561050b57600080fd5b506105146116e3565b6040516105219190612217565b60405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058591906123bd565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c6919061244e565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663cf81464b346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561063057600080fd5b505af1158015610644573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106e091906123bd565b602060405180830381865afa1580156106fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610721919061244e565b61072b91906124aa565b6040518363ffffffff1660e01b81526004016107489291906124de565b6020604051808303816000875af1158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b9190612533565b6107c1576040517f22c5e6d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610837575061083682611817565b5b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16036108e8576040517fba16c22a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004790507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161094a93929190612560565b6020604051808303816000875af1158015610969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098d9190612533565b6109c3576040517f47a5f7fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663160e8be3836040518263ffffffff1660e01b8152600401610a1c919061241e565b600060405180830381600087803b158015610a3657600080fd5b505af1158015610a4a573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff166108fc8247610a7491906124aa565b9081150290604051600060405180830381858888f19350505050158015610a9f573d6000803e3d6000fd5b505050565b6000806000838152602001908152602001600020600101549050919050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b265750610b247fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d11336114fd565b155b15610b5d576040517ff50a3b5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce91906125ac565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c36576040517f1f830e3100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c7191906123bd565b602060405180830381865afa158015610c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb2919061244e565b90508173ffffffffffffffffffffffffffffffffffffffff166323b872dd8530866040518463ffffffff1660e01b8152600401610cf193929190612560565b6020604051808303816000875af1158015610d10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d349190612533565b610d6a576040517f47a5f7fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663095ea7b386856040518363ffffffff1660e01b8152600401610da59291906124de565b6020604051808303816000875af1158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612533565b508473ffffffffffffffffffffffffffffffffffffffff166345977d03610e7d858573ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e789190612605565b611891565b6040518263ffffffff1660e01b8152600401610e99919061241e565b600060405180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85838873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f2291906123bd565b602060405180830381865afa158015610f3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f63919061244e565b610f6d91906124aa565b6040518363ffffffff1660e01b8152600401610f8a9291906124de565b6020604051808303816000875af1158015610fa9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcd9190612533565b611003576040517f22c5e6d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561106d575061106b7fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d11336114fd565b155b156110a4576040517ff50a3b5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd8330846040518463ffffffff1660e01b81526004016110e193929190612560565b6020604051808303816000875af1158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190612533565b61115a576040517f47a5f7fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1663ee719bc86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb91906125ac565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120891906123bd565b602060405180830381865afa158015611225573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611249919061244e565b90508473ffffffffffffffffffffffffffffffffffffffff166311bcc81e846040518263ffffffff1660e01b8152600401611284919061241e565b600060405180830381600087803b15801561129e57600080fd5b505af11580156112b2573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85838573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161130d91906123bd565b602060405180830381865afa15801561132a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134e919061244e565b61135891906124aa565b6040518363ffffffff1660e01b81526004016113759291906124de565b6020604051808303816000875af1158015611394573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b89190612533565b6113ee576040517f22c5e6d100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b6113fe82610aa4565b61140f8161140a611912565b61191a565b61141983836119b7565b505050565b611426611912565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a906126b5565b60405180910390fd5b61149d82826119eb565b5050565b6114cb7fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d1182611627565b50565b60006114f58260016000868152602001908152602001600020611a1f90919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b601281565b600061159060016000848152602001908152602001600020611a39565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff160361161d576040517fba16c22a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61162561052a565b565b61163082610aa4565b6116418161163c611912565b61191a565b61164b83836119eb565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116b6576040517ff50a3b5200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116e07fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d11826113f5565b50565b7fc6b0943e8e99f31e7ac279c6c9af7b07e69ffcd86b03d3fa1924f61ae5413d1181565b61171182826114fd565b6117e357600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611788611912565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600061180f836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611a4e565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061188a575061188982611abe565b5b9050919050565b6000601260ff168260ff1610156118cd578160126118af91906126d5565b600a6118bb919061283c565b836118c69190612887565b905061190c565b601260ff168260ff161115611907576012826118e991906126d5565b600a6118f5919061283c565b836119009190612910565b905061190b565b8290505b5b92915050565b600033905090565b61192482826114fd565b6119b3576119498173ffffffffffffffffffffffffffffffffffffffff166014611b28565b6119578360001c6020611b28565b604051602001611968929190612a53565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119aa9190612ad7565b60405180910390fd5b5050565b6119c18282611707565b6119e681600160008581526020019081526020016000206117e790919063ffffffff16565b505050565b6119f58282611d64565b611a1a8160016000858152602001908152602001600020611e4590919063ffffffff16565b505050565b6000611a2e8360000183611e75565b60001c905092915050565b6000611a4782600001611ea0565b9050919050565b6000611a5a8383611eb1565b611ab3578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611ab8565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611b3b9190612887565b611b459190612af9565b67ffffffffffffffff811115611b5e57611b5d612b4f565b5b6040519080825280601f01601f191660200182016040528015611b905781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611bc857611bc7612b7e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611c2c57611c2b612b7e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611c6c9190612887565b611c769190612af9565b90505b6001811115611d16577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611cb857611cb7612b7e565b5b1a60f81b828281518110611ccf57611cce612b7e565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611d0f90612bad565b9050611c79565b5060008414611d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5190612c22565b60405180910390fd5b8091505092915050565b611d6e82826114fd565b15611e4157600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611de6611912565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611e6d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ed4565b905092915050565b6000826000018281548110611e8d57611e8c612b7e565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114611fdc576000600182611f0691906124aa565b9050600060018660000180549050611f1e91906124aa565b9050818114611f8d576000866000018281548110611f3f57611f3e612b7e565b5b9060005260206000200154905080876000018481548110611f6357611f62612b7e565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480611fa157611fa0612c42565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611fe2565b60009150505b92915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61202281611fed565b811461202d57600080fd5b50565b60008135905061203f81612019565b92915050565b60006020828403121561205b5761205a611fe8565b5b600061206984828501612030565b91505092915050565b60008115159050919050565b61208781612072565b82525050565b60006020820190506120a2600083018461207e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006120ed6120e86120e3846120a8565b6120c8565b6120a8565b9050919050565b60006120ff826120d2565b9050919050565b6000612111826120f4565b9050919050565b61212181612106565b82525050565b600060208201905061213c6000830184612118565b92915050565b6000819050919050565b61215581612142565b811461216057600080fd5b50565b6000813590506121728161214c565b92915050565b60006020828403121561218e5761218d611fe8565b5b600061219c84828501612163565b91505092915050565b6000819050919050565b6121b8816121a5565b81146121c357600080fd5b50565b6000813590506121d5816121af565b92915050565b6000602082840312156121f1576121f0611fe8565b5b60006121ff848285016121c6565b91505092915050565b612211816121a5565b82525050565b600060208201905061222c6000830184612208565b92915050565b600061223d826120a8565b9050919050565b600061224f82612232565b9050919050565b61225f81612244565b811461226a57600080fd5b50565b60008135905061227c81612256565b92915050565b61228b81612232565b811461229657600080fd5b50565b6000813590506122a881612282565b92915050565b6000806000606084860312156122c7576122c6611fe8565b5b60006122d58682870161226d565b93505060206122e686828701612299565b92505060406122f786828701612163565b9150509250925092565b6000806040838503121561231857612317611fe8565b5b6000612326858286016121c6565b925050602061233785828601612299565b9150509250929050565b60006020828403121561235757612356611fe8565b5b600061236584828501612299565b91505092915050565b6000806040838503121561238557612384611fe8565b5b6000612393858286016121c6565b92505060206123a485828601612163565b9150509250929050565b6123b781612232565b82525050565b60006020820190506123d260008301846123ae565b92915050565b600060ff82169050919050565b6123ee816123d8565b82525050565b600060208201905061240960008301846123e5565b92915050565b61241881612142565b82525050565b6000602082019050612433600083018461240f565b92915050565b6000815190506124488161214c565b92915050565b60006020828403121561246457612463611fe8565b5b600061247284828501612439565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124b582612142565b91506124c083612142565b9250828210156124d3576124d261247b565b5b828203905092915050565b60006040820190506124f360008301856123ae565b612500602083018461240f565b9392505050565b61251081612072565b811461251b57600080fd5b50565b60008151905061252d81612507565b92915050565b60006020828403121561254957612548611fe8565b5b60006125578482850161251e565b91505092915050565b600060608201905061257560008301866123ae565b61258260208301856123ae565b61258f604083018461240f565b949350505050565b6000815190506125a681612282565b92915050565b6000602082840312156125c2576125c1611fe8565b5b60006125d084828501612597565b91505092915050565b6125e2816123d8565b81146125ed57600080fd5b50565b6000815190506125ff816125d9565b92915050565b60006020828403121561261b5761261a611fe8565b5b6000612629848285016125f0565b91505092915050565b600082825260208201905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061269f602f83612632565b91506126aa82612643565b604082019050919050565b600060208201905081810360008301526126ce81612692565b9050919050565b60006126e0826123d8565b91506126eb836123d8565b9250828210156126fe576126fd61247b565b5b828203905092915050565b60008160011c9050919050565b6000808291508390505b60018511156127605780860481111561273c5761273b61247b565b5b600185161561274b5780820291505b808102905061275985612709565b9450612720565b94509492505050565b6000826127795760019050612835565b816127875760009050612835565b816001811461279d57600281146127a7576127d6565b6001915050612835565b60ff8411156127b9576127b861247b565b5b8360020a9150848211156127d0576127cf61247b565b5b50612835565b5060208310610133831016604e8410600b841016171561280b5782820a9050838111156128065761280561247b565b5b612835565b6128188484846001612716565b9250905081840481111561282f5761282e61247b565b5b81810290505b9392505050565b600061284782612142565b9150612852836123d8565b925061287f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612769565b905092915050565b600061289282612142565b915061289d83612142565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128d6576128d561247b565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061291b82612142565b915061292683612142565b925082612936576129356128e1565b5b828204905092915050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000612982601783612941565b915061298d8261294c565b601782019050919050565b600081519050919050565b60005b838110156129c15780820151818401526020810190506129a6565b838111156129d0576000848401525b50505050565b60006129e182612998565b6129eb8185612941565b93506129fb8185602086016129a3565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000612a3d601183612941565b9150612a4882612a07565b601182019050919050565b6000612a5e82612975565b9150612a6a82856129d6565b9150612a7582612a30565b9150612a8182846129d6565b91508190509392505050565b6000601f19601f8301169050919050565b6000612aa982612998565b612ab38185612632565b9350612ac38185602086016129a3565b612acc81612a8d565b840191505092915050565b60006020820190508181036000830152612af18184612a9e565b905092915050565b6000612b0482612142565b9150612b0f83612142565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b4457612b4361247b565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bb882612142565b915060008203612bcb57612bca61247b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000612c0c602083612632565b9150612c1782612bd6565b602082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212200e90a1165ed4423fe9ee2cc084636cfaa22ff84300c7eaef60eadbbfa162c98864736f6c634300080d0033000000000000000000000000a67e5e25dbea60e843dde146f4518f69e23bbe780000000000000000000000004ac8bd1bdae47beef2d1c6aa62229509b962aa0d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000003000000000000000000000000552008c0f6870c2f77e5cc1d2eb9bdff03e30ea0000000000000000000000000362fa9d0bca5d19f743db50738345ce2b40ec99f0000000000000000000000009dd11f4fc672006ea9e666b6a222c5a8141f2ac0