0 txs
0 calls
constructor
constructor(address _seed, address _collection)
functions
collectionAddress
viewfunction collectionAddress() view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FEE_SETTER
viewfunction FEE_SETTER() view returns (bytes32)
feePerSeed
viewfunction feePerSeed(address) view returns (uint256)
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)
getSeedAmount
viewfunction getSeedAmount(address token, uint256 amount) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
seedAddress
viewfunction seedAddress() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenFeeSetterRole
purefunction tokenFeeSetterRole(address token) pure returns (bytes32)
tokenIssuable
viewfunction tokenIssuable(address token) view returns (bool)
emptyTokens
nonpayablefunction emptyTokens(address _tokenAddress, address _to)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
issueSeedsForErc20
nonpayablefunction issueSeedsForErc20(address recipient, address feeToken, uint256 feeAmount)
issueSeedsForErc20Multiple
nonpayablefunction issueSeedsForErc20Multiple(address[] recipients, address feeToken, uint256[] feeAmounts)
issueSeedsForNative
payablefunction issueSeedsForNative(address recipient) payable
issueSeedsForNativeMultiple
payablefunction issueSeedsForNativeMultiple(address[] recipients, uint256[] feeAmounts) payable
removeTokenFeeSetterRole
nonpayablefunction removeTokenFeeSetterRole(address token, address feeSetter)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setCollectionAddress
nonpayablefunction setCollectionAddress(address _address)
setFeePerSeed
nonpayablefunction setFeePerSeed(address token, uint256 price)
setFeePerSeedMultiple
nonpayablefunction setFeePerSeedMultiple(address[] tokens, uint256[] prices)
setTokenFeeSetterRole
nonpayablefunction setTokenFeeSetterRole(address token, address feeSetter)
events
FeePerSeedChanged
event FeePerSeedChanged(address indexed token, uint256 feePerSeed)
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)
SeedsIssued
event SeedsIssued(address indexed sender, address indexed feeToken, address indexed recipient, uint256 feeAmount, uint256 seedAmount)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162003c7938038062003c79833981810160405281019062000037919062000419565b6200005b6000801b6200004f6200011960201b60201c565b6200012160201b60201c565b6200009c7f3c8f0f83bc4264add7714ab92a8e9e5a6814570c3ad9097c24df507732990266620000906200011960201b60201c565b6200012160201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000460565b600033905090565b6200013382826200013760201b60201c565b5050565b6200014e82826200017f60201b620018391760201c565b6200017a81600160008581526020019081526020016000206200027060201b620019191790919060201c565b505050565b620001918282620002a860201b60201c565b6200026c57600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002116200011960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620002a0836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6200031260201b60201c565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006200032683836200038c60201b60201c565b6200038157826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000386565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003e182620003b4565b9050919050565b620003f381620003d4565b8114620003ff57600080fd5b50565b6000815190506200041381620003e8565b92915050565b60008060408385031215620004335762000432620003af565b5b6000620004438582860162000402565b9250506020620004568582860162000402565b9150509250929050565b6080516137e1620004986000396000818161084b01528181610b1801528181610eac0152818161125a01526116f001526137e16000f3fe6080604052600436106101815760003560e01c806391d14854116100d1578063d490f3471161008a578063d80e36ee11610064578063d80e36ee14610593578063eb31ef5b146105d0578063ef76d2ff146105f9578063f009b3d11461061557610181565b8063d490f34714610518578063d547741f14610541578063d5d021831461056a57610181565b806391d14854146103f65780639dc48b2c14610433578063a217fddf1461045c578063a6904aa514610487578063ca15c873146104b0578063d33f7978146104ed57610181565b806336568abe1161013e5780634eb3cedc116101185780634eb3cedc146103285780636aa00371146103655780638f02e66c146103905780639010d07c146103b957610181565b806336568abe146102ad578063398bf7e0146102d657806344dad3e7146102ff57610181565b806301ffc9a7146101865780630b96cb89146101c3578063248a9ca3146102005780632f2ff15d1461023d578063311d9b27146102665780633513e28c14610291575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190612536565b610652565b6040516101ba919061257e565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906125f7565b6106cc565b6040516101f7919061257e565b60405180910390f35b34801561020c57600080fd5b506102276004803603810190610222919061265a565b610717565b6040516102349190612696565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f91906126b1565b610736565b005b34801561027257600080fd5b5061027b61075f565b6040516102889190612696565b60405180910390f35b6102ab60048036038101906102a691906127ac565b610783565b005b3480156102b957600080fd5b506102d460048036038101906102cf91906126b1565b610a2d565b005b3480156102e257600080fd5b506102fd60048036038101906102f89190612863565b610ab0565b005b34801561030b57600080fd5b50610326600480360381019061032191906128f4565b610c28565b005b34801561033457600080fd5b5061034f600480360381019061034a9190612934565b610d65565b60405161035c9190612983565b60405180910390f35b34801561037157600080fd5b5061037a610de6565b60405161038791906129ad565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b291906129c8565b610e0c565b005b3480156103c557600080fd5b506103e060048036038101906103db9190612a5d565b611080565b6040516103ed91906129ad565b60405180910390f35b34801561040257600080fd5b5061041d600480360381019061041891906126b1565b6110af565b60405161042a919061257e565b60405180910390f35b34801561043f57600080fd5b5061045a600480360381019061045591906127ac565b611119565b005b34801561046857600080fd5b506104716111d3565b60405161047e9190612696565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a991906125f7565b6111da565b005b3480156104bc57600080fd5b506104d760048036038101906104d2919061265a565b611234565b6040516104e49190612983565b60405180910390f35b3480156104f957600080fd5b50610502611258565b60405161050f91906129ad565b60405180910390f35b34801561052457600080fd5b5061053f600480360381019061053a9190612a9d565b61127c565b005b34801561054d57600080fd5b50610568600480360381019061056391906126b1565b611388565b005b34801561057657600080fd5b50610591600480360381019061058c9190612a9d565b6113b1565b005b34801561059f57600080fd5b506105ba60048036038101906105b591906125f7565b61153f565b6040516105c79190612696565b60405180910390f35b3480156105dc57600080fd5b506105f760048036038101906105f29190612934565b611571565b005b610613600480360381019061060e91906125f7565b611697565b005b34801561062157600080fd5b5061063c600480360381019061063791906125f7565b611821565b6040516106499190612983565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106c557506106c482611949565b5b9050919050565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000806000838152602001908152602001600020600101549050919050565b61073f82610717565b6107508161074b6119c3565b6119cb565b61075a8383611a68565b505050565b7f3c8f0f83bc4264add7714ab92a8e9e5a6814570c3ad9097c24df50773299026681565b8181905084849050146107cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c290612b3a565b60405180910390fd5b6107e873eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6106cc565b6107f157610a27565b6000805b858590508110156109da57600084848381811061081557610814612b5a565b5b905060200201359050600061083e73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83610d65565b905060008111156109c5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1989898681811061089857610897612b5a565b5b90506020020160208101906108ad91906125f7565b836040518363ffffffff1660e01b81526004016108cb929190612b89565b600060405180830381600087803b1580156108e557600080fd5b505af11580156108f9573d6000803e3d6000fd5b5050505081846109099190612be1565b935087878481811061091e5761091d612b5a565b5b905060200201602081019061093391906125f7565b73ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4464de8d8a6210da88bfc63bb48f8954f36c18e41ac15cd013c55d75dcc12d7685856040516109bc929190612c37565b60405180910390a45b505080806109d290612c60565b9150506107f5565b50610a07600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611a9c565b80341115610a2557610a24338234610a1f9190612ca9565b611a9c565b5b505b50505050565b610a356119c3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9990612d4f565b60405180910390fd5b610aac8282611b4d565b5050565b6000610abc8383610d65565b90506000811115610c2257610b1633600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848673ffffffffffffffffffffffffffffffffffffffff16611b81909392919063ffffffff16565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1985836040518363ffffffff1660e01b8152600401610b71929190612b89565b600060405180830381600087803b158015610b8b57600080fd5b505af1158015610b9f573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4464de8d8a6210da88bfc63bb48f8954f36c18e41ac15cd013c55d75dcc12d768585604051610c19929190612c37565b60405180910390a45b50505050565b6000801b610c3d81610c386119c3565b6119cb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca490612dbb565b60405180910390fd5b610d60828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cea91906129ad565b60206040518083038186803b158015610d0257600080fd5b505afa158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a9190612df0565b8573ffffffffffffffffffffffffffffffffffffffff16611c0a9092919063ffffffff16565b505050565b600080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115610dda5780670de0b6b3a764000084610dc89190612e1d565b610dd29190612ea6565b915050610de0565b60009150505b92915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b818190508585905014610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90612b3a565b60405180910390fd5b610e5d836106cc565b610e6657611079565b6000805b86869050811015611027576000848483818110610e8a57610e89612b5a565b5b9050602002013590506000610e9f8783610d65565b90506000811115611012577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f198a8a86818110610ef957610ef8612b5a565b5b9050602002016020810190610f0e91906125f7565b836040518363ffffffff1660e01b8152600401610f2c929190612b89565b600060405180830381600087803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b505050508184610f6a9190612be1565b9350888884818110610f7f57610f7e612b5a565b5b9050602002016020810190610f9491906125f7565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4464de8d8a6210da88bfc63bb48f8954f36c18e41ac15cd013c55d75dcc12d768585604051611009929190612c37565b60405180910390a45b5050808061101f90612c60565b915050610e6a565b5061107733600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838773ffffffffffffffffffffffffffffffffffffffff16611b81909392919063ffffffff16565b505b5050505050565b60006110a78260016000868152602001908152602001600020611c9090919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b818190508484905014611161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115890612b3a565b60405180910390fd5b60005b848490508110156111cc576111b985858381811061118557611184612b5a565b5b905060200201602081019061119a91906125f7565b8484848181106111ad576111ac612b5a565b5b90506020020135611571565b80806111c490612c60565b915050611164565b5050505050565b6000801b81565b6000801b6111ef816111ea6119c3565b6119cb565b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600061125160016000848152602001908152602001600020611caa565b9050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000801b6112918161128c6119c3565b6119cb565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611301576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f890612f23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612f8f565b60405180910390fd5b61138361137d8461153f565b83611b4d565b505050565b61139182610717565b6113a28161139d6119c3565b6119cb565b6113ac8383611b4d565b505050565b6000801b6113c6816113c16119c3565b6119cb565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612f23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d90612f8f565b60405180910390fd5b6000801b6114b38461153f565b141580156114e957507f3c8f0f83bc4264add7714ab92a8e9e5a6814570c3ad9097c24df5077329902666114e68461153f565b14155b611528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151f90612ffb565b60405180910390fd5b61153a6115348461153f565b83611cbf565b505050565b60008160405160200161155291906130ba565b60405160208183030381529060405261156a9061311d565b9050919050565b61158a61157d8361153f565b6115856119c3565b6110af565b806115c257506115c17f3c8f0f83bc4264add7714ab92a8e9e5a6814570c3ad9097c24df5077329902666115bc6119c3565b6110af565b5b611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f8906131d0565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff167ffa0b88f87a6922791ba60a644460541504f013aebfd7e114e4f06498b36784cc826040516116479190612983565b60405180910390a280600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60006116b773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee34610d65565b90506000811115611812576116ee600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1634611a9c565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401611749929190612b89565b600060405180830381600087803b15801561176357600080fd5b505af1158015611777573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4464de8d8a6210da88bfc63bb48f8954f36c18e41ac15cd013c55d75dcc12d763485604051611805929190612c37565b60405180910390a461181d565b61181c3334611a9c565b5b5050565b60036020528060005260406000206000915090505481565b61184382826110af565b61191557600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506118ba6119c3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000611941836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611ccd565b905092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806119bc57506119bb82611d3d565b5b9050919050565b600033905090565b6119d582826110af565b611a64576119fa8173ffffffffffffffffffffffffffffffffffffffff166014611da7565b611a088360001c6020611da7565b604051602001611a199291906132f7565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b919061337b565b60405180910390fd5b5050565b611a728282611839565b611a97816001600085815260200190815260200160002061191990919063ffffffff16565b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611ac2906133ce565b60006040518083038185875af1925050503d8060008114611aff576040519150601f19603f3d011682016040523d82523d6000602084013e611b04565b606091505b5050905080611b48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3f9061342f565b60405180910390fd5b505050565b611b578282611fe3565b611b7c81600160008581526020019081526020016000206120c490919063ffffffff16565b505050565b611c04846323b872dd60e01b858585604051602401611ba29392919061344f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120f4565b50505050565b611c8b8363a9059cbb60e01b8484604051602401611c29929190612b89565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506120f4565b505050565b6000611c9f83600001836121bb565b60001c905092915050565b6000611cb8826000016121e6565b9050919050565b611cc98282611a68565b5050565b6000611cd983836121f7565b611d32578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611d37565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b606060006002836002611dba9190612e1d565b611dc49190612be1565b67ffffffffffffffff811115611ddd57611ddc613486565b5b6040519080825280601f01601f191660200182016040528015611e0f5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611e4757611e46612b5a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611eab57611eaa612b5a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611eeb9190612e1d565b611ef59190612be1565b90505b6001811115611f95577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611f3757611f36612b5a565b5b1a60f81b828281518110611f4e57611f4d612b5a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080611f8e906134b5565b9050611ef8565b5060008414611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd09061352b565b60405180910390fd5b8091505092915050565b611fed82826110af565b156120c057600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506120656119c3565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006120ec836000018373ffffffffffffffffffffffffffffffffffffffff1660001b61221a565b905092915050565b6000612156826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661232e9092919063ffffffff16565b90506000815111156121b657808060200190518101906121769190613577565b6121b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ac90613616565b60405180910390fd5b5b505050565b60008260000182815481106121d3576121d2612b5a565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b6000808360010160008481526020019081526020016000205490506000811461232257600060018261224c9190612ca9565b90506000600186600001805490506122649190612ca9565b90508181146122d357600086600001828154811061228557612284612b5a565b5b90600052602060002001549050808760000184815481106122a9576122a8612b5a565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b856000018054806122e7576122e6613636565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612328565b60009150505b92915050565b606061233d8484600085612346565b90509392505050565b60608247101561238b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612382906136d7565b60405180910390fd5b6123948561245a565b6123d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ca90613743565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516123fc9190613794565b60006040518083038185875af1925050503d8060008114612439576040519150601f19603f3d011682016040523d82523d6000602084013e61243e565b606091505b509150915061244e82828661246d565b92505050949350505050565b600080823b905060008111915050919050565b6060831561247d578290506124cd565b6000835111156124905782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c4919061337b565b60405180910390fd5b9392505050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612513816124de565b811461251e57600080fd5b50565b6000813590506125308161250a565b92915050565b60006020828403121561254c5761254b6124d4565b5b600061255a84828501612521565b91505092915050565b60008115159050919050565b61257881612563565b82525050565b6000602082019050612593600083018461256f565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c482612599565b9050919050565b6125d4816125b9565b81146125df57600080fd5b50565b6000813590506125f1816125cb565b92915050565b60006020828403121561260d5761260c6124d4565b5b600061261b848285016125e2565b91505092915050565b6000819050919050565b61263781612624565b811461264257600080fd5b50565b6000813590506126548161262e565b92915050565b6000602082840312156126705761266f6124d4565b5b600061267e84828501612645565b91505092915050565b61269081612624565b82525050565b60006020820190506126ab6000830184612687565b92915050565b600080604083850312156126c8576126c76124d4565b5b60006126d685828601612645565b92505060206126e7858286016125e2565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112612716576127156126f1565b5b8235905067ffffffffffffffff811115612733576127326126f6565b5b60208301915083602082028301111561274f5761274e6126fb565b5b9250929050565b60008083601f84011261276c5761276b6126f1565b5b8235905067ffffffffffffffff811115612789576127886126f6565b5b6020830191508360208202830111156127a5576127a46126fb565b5b9250929050565b600080600080604085870312156127c6576127c56124d4565b5b600085013567ffffffffffffffff8111156127e4576127e36124d9565b5b6127f087828801612700565b9450945050602085013567ffffffffffffffff811115612813576128126124d9565b5b61281f87828801612756565b925092505092959194509250565b6000819050919050565b6128408161282d565b811461284b57600080fd5b50565b60008135905061285d81612837565b92915050565b60008060006060848603121561287c5761287b6124d4565b5b600061288a868287016125e2565b935050602061289b868287016125e2565b92505060406128ac8682870161284e565b9150509250925092565b60006128c1826125b9565b9050919050565b6128d1816128b6565b81146128dc57600080fd5b50565b6000813590506128ee816128c8565b92915050565b6000806040838503121561290b5761290a6124d4565b5b6000612919858286016128df565b925050602061292a858286016125e2565b9150509250929050565b6000806040838503121561294b5761294a6124d4565b5b6000612959858286016125e2565b925050602061296a8582860161284e565b9150509250929050565b61297d8161282d565b82525050565b60006020820190506129986000830184612974565b92915050565b6129a7816125b9565b82525050565b60006020820190506129c2600083018461299e565b92915050565b6000806000806000606086880312156129e4576129e36124d4565b5b600086013567ffffffffffffffff811115612a0257612a016124d9565b5b612a0e88828901612700565b95509550506020612a21888289016125e2565b935050604086013567ffffffffffffffff811115612a4257612a416124d9565b5b612a4e88828901612756565b92509250509295509295909350565b60008060408385031215612a7457612a736124d4565b5b6000612a8285828601612645565b9250506020612a938582860161284e565b9150509250929050565b60008060408385031215612ab457612ab36124d4565b5b6000612ac2858286016125e2565b9250506020612ad3858286016125e2565b9150509250929050565b600082825260208201905092915050565b7f4c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b6000612b24600f83612add565b9150612b2f82612aee565b602082019050919050565b60006020820190508181036000830152612b5381612b17565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612b9e600083018561299e565b612bab6020830184612974565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bec8261282d565b9150612bf78361282d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c2c57612c2b612bb2565b5b828201905092915050565b6000604082019050612c4c6000830185612974565b612c596020830184612974565b9392505050565b6000612c6b8261282d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c9e57612c9d612bb2565b5b600182019050919050565b6000612cb48261282d565b9150612cbf8361282d565b925082821015612cd257612cd1612bb2565b5b828203905092915050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612d39602f83612add565b9150612d4482612cdd565b604082019050919050565b60006020820190508181036000830152612d6881612d2c565b9050919050565b7f726563697069656e742063616e6e6f7420626520300000000000000000000000600082015250565b6000612da5601583612add565b9150612db082612d6f565b602082019050919050565b60006020820190508181036000830152612dd481612d98565b9050919050565b600081519050612dea81612837565b92915050565b600060208284031215612e0657612e056124d4565b5b6000612e1484828501612ddb565b91505092915050565b6000612e288261282d565b9150612e338361282d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e6c57612e6b612bb2565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eb18261282d565b9150612ebc8361282d565b925082612ecc57612ecb612e77565b5b828204905092915050565b7f746f6b656e20616464726573732063616e6e6f74206265203000000000000000600082015250565b6000612f0d601983612add565b9150612f1882612ed7565b602082019050919050565b60006020820190508181036000830152612f3c81612f00565b9050919050565b7f6665652073657474657220616464726573732063616e6e6f7420626520300000600082015250565b6000612f79601e83612add565b9150612f8482612f43565b602082019050919050565b60006020820190508181036000830152612fa881612f6c565b9050919050565b7f696e76616c6964206665652073657474657220726f6c65000000000000000000600082015250565b6000612fe5601783612add565b9150612ff082612faf565b602082019050919050565b6000602082019050818103600083015261301481612fd8565b9050919050565b600081905092915050565b7f4645455f53455454455200000000000000000000000000000000000000000000600082015250565b600061305c600a8361301b565b915061306782613026565b600a82019050919050565b60008160601b9050919050565b600061308a82613072565b9050919050565b600061309c8261307f565b9050919050565b6130b46130af826125b9565b613091565b82525050565b60006130c58261304f565b91506130d182846130a3565b60148201915081905092915050565b600081519050919050565b6000819050602082019050919050565b60006131078251612624565b80915050919050565b600082821b905092915050565b6000613128826130e0565b82613132846130eb565b905061313d816130fb565b9250602082101561317d576131787fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802613110565b831692505b5050919050565b7f4e6565647320726f6c6520666f722073657474696e6720666565000000000000600082015250565b60006131ba601a83612add565b91506131c582613184565b602082019050919050565b600060208201905081810360008301526131e9816131ad565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061322660178361301b565b9150613231826131f0565b601782019050919050565b600081519050919050565b60005b8381101561326557808201518184015260208101905061324a565b83811115613274576000848401525b50505050565b60006132858261323c565b61328f818561301b565b935061329f818560208601613247565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006132e160118361301b565b91506132ec826132ab565b601182019050919050565b600061330282613219565b915061330e828561327a565b9150613319826132d4565b9150613325828461327a565b91508190509392505050565b6000601f19601f8301169050919050565b600061334d8261323c565b6133578185612add565b9350613367818560208601613247565b61337081613331565b840191505092915050565b600060208201905081810360008301526133958184613342565b905092915050565b600081905092915050565b50565b60006133b860008361339d565b91506133c3826133a8565b600082019050919050565b60006133d9826133ab565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000613419601483612add565b9150613424826133e3565b602082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b6000606082019050613464600083018661299e565b613471602083018561299e565b61347e6040830184612974565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006134c08261282d565b915060008214156134d4576134d3612bb2565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000613515602083612add565b9150613520826134df565b602082019050919050565b6000602082019050818103600083015261354481613508565b9050919050565b61355481612563565b811461355f57600080fd5b50565b6000815190506135718161354b565b92915050565b60006020828403121561358d5761358c6124d4565b5b600061359b84828501613562565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613600602a83612add565b915061360b826135a4565b604082019050919050565b6000602082019050818103600083015261362f816135f3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006136c1602683612add565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b600061372d601d83612add565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b600061376e826130e0565b613778818561339d565b9350613788818560208601613247565b80840191505092915050565b60006137a08284613763565b91508190509291505056fea26469706673582212200f566a8bd292c4c581c357579ded71005d83ef42a4727889dc5459d2a6baa56064736f6c6343000809003300000000000000000000000095f86c8eb9bdea0ea52659e6801ad8e7ca2b928300000000000000000000000030f641f941a6ac300a308bb40b41b24c66487711