2 txs
3 calls
constructor
constructor()
functions
canLaunch
viewfunction canLaunch(address) view returns (bool)
feeAddress
viewfunction feeAddress() view returns (address)
initialPayoutPct
viewfunction initialPayoutPct() view returns (uint256)
mintPeriod
viewfunction mintPeriod() view returns (uint256)
owner
viewfunction owner() view returns (address result)
ownershipHandoverExpiresAt
viewfunction ownershipHandoverExpiresAt(address pendingOwner) view returns (uint256 result)
publicAllowed
viewfunction publicAllowed() view returns (bool)
tokenWorksFeePct
viewfunction tokenWorksFeePct() view returns (uint256)
authorizeLauncher
nonpayablefunction authorizeLauncher(address launcher)
cancelOwnershipHandover
payablefunction cancelOwnershipHandover() payable
completeOwnershipHandover
payablefunction completeOwnershipHandover(address pendingOwner) payable
launchFundingWorks
nonpayablefunction launchFundingWorks(address builder, uint256 maxSupply, uint256 mintPrice, uint256 vestingPeriod, string ipfsHash, bool uniqueTokenMetadata, bool unlockAfterVesting, string tokenName, string tokenSymbol) returns (address)
renounceOwnership
payablefunction renounceOwnership() payable
requestOwnershipHandover
payablefunction requestOwnershipHandover() payable
revokeLauncher
nonpayablefunction revokeLauncher(address launcher)
setPublicAllowed
nonpayablefunction setPublicAllowed(bool _publicAllowed)
transferOwnership
payablefunction transferOwnership(address newOwner) payable
updateFeeAddress
nonpayablefunction updateFeeAddress(address _feeAddress)
updateFeePercentages
nonpayablefunction updateFeePercentages(uint256 _initialPayoutPct, uint256 _tokenWorksFeePct)
events
FundingWorksLaunched
event FundingWorksLaunched(address indexed fundingWorks, uint256 maxSupply, uint256 mintPrice, uint256 mintPeriod, uint256 vestingPeriod, uint256 initialPayoutPct, uint256 tokenWorksFeePct, address indexed deployer, address indexed tokenWorks, bool uniqueTokenMetadata, bool unlockAfterVesting, string ipfsHash, string tokenName, string tokenSymbol)
OwnershipHandoverCanceled
event OwnershipHandoverCanceled(address indexed pendingOwner)
OwnershipHandoverRequested
event OwnershipHandoverRequested(address indexed pendingOwner)
OwnershipTransferred
event OwnershipTransferred(address indexed oldOwner, address indexed newOwner)
errors
AlreadyInitialized
error AlreadyInitialized()
InvalidAddress
error InvalidAddress()
InvalidFeePercentages
error InvalidFeePercentages()
InvalidMaxSupply
error InvalidMaxSupply()
InvalidMintPrice
error InvalidMintPrice()
InvalidParameters
error InvalidParameters()
InvalidVestingPeriod
error InvalidVestingPeriod()
NewOwnerIsZeroAddress
error NewOwnerIsZeroAddress()
NoHandoverRequest
error NoHandoverRequest()
NotAuthorized
error NotAuthorized()
PublicDeploymentNotAllowed
error PublicDeploymentNotAllowed()
Unauthorized
error Unauthorized()
creation bytecode
0x608060405234606357600760025560038055600480546001600160a01b03191633908117909155638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a360405161339090816100688239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806310739ef0146107e25780631a3769fd146107995780632569296214610750578063385610da1461071857806341275358146106f05780634c498203146106d357806354d1f13d1461068f57806358373f0414610653578063715018a61461060a5780637319dbab146105ed57806378578bb3146105925780638da5cb5b14610566578063bbcaac381461050b578063d83d0f76146104e9578063f04e283e1461049c578063f2fde38b1461045f578063fb1eecb414610442578063fee81cf4146104105763ff05c083146100ea575f80fd5b3461040c5761012036600319011261040c57610104610828565b60243590604435906064359060843567ffffffffffffffff811161040c5761013090369060040161083e565b9360a4359081151580920361040c5760c4359485151580960361040c5760e43567ffffffffffffffff811161040c5761016d90369060040161083e565b916101043567ffffffffffffffff811161040c5761018f90369060040161083e565b9461019a8133610923565b156103fd576001600160a01b031680156103ee578351156103ee578551156103ee57600a821080156103e3575b6103d457662386f26fc10000831080156103c3575b6103b45762278d00871080156103a7575b61039857600254600354600454604051936129dc92838601926001600160a01b0316919067ffffffffffffffff8411878510176103845786956102a39561097f883988855289602086015262093a8060408601528d6060860152608085015260a084015260c083015260e08201526101a06101008201526102936102768d6101a08401906108a6565b896101208401528c610140840152828103610160840152886108a6565b90610180818303910152886108a6565b03905ff080156103795761035e7f900d4b58dec9f29a819a57e3232dd4c5c13365833be830d74bce4369921e98c99461034f60209b61036e94335f525f8e5260405f2060ff19815416905560018060a01b03169b8c996002546003549060018060a01b03600454169e6040519b8c9b8c5260208c015262093a8060408c015260608b015260808a015260a089015260c088015260e08701526101606101008701526101608601906108a6565b908482036101208601526108a6565b82810361014084015233966108a6565b0390a4604051908152f35b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b63ca6075df60e01b5f5260045ffd5b506301e1338087116101ed565b63020b5e0b60e11b5f5260045ffd5b50670de0b6b3a764000083116101dc565b63066f305360e21b5f5260045ffd5b506103e882116101c7565b630e52390960e41b5f5260045ffd5b63ea8e4eb560e01b5f5260045ffd5b5f80fd5b3461040c57602036600319011261040c57610429610828565b63389a75e1600c525f52602080600c2054604051908152f35b3461040c575f36600319011261040c576020600254604051908152f35b602036600319011261040c57610473610828565b61047b6108ca565b8060601b1561048f5761048d906108e6565b005b637448fbae5f526004601cfd5b602036600319011261040c576104b0610828565b6104b86108ca565b63389a75e1600c52805f526020600c2090815442116104dc575f61048d92556108e6565b636f5e88185f526004601cfd5b3461040c575f36600319011261040c57602060ff600154166040519015158152f35b3461040c57602036600319011261040c57610524610828565b61052c6108ca565b6001600160a01b03168015610557576bffffffffffffffffffffffff60a01b60045416176004555f80f35b63e6c4247b60e01b5f5260045ffd5b3461040c575f36600319011261040c57638b78c6d819546040516001600160a01b039091168152602090f35b3461040c57604036600319011261040c576024356004356105b16108ca565b8181018082116105d957600a036105ca57600255600355005b6317e71c1d60e31b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b3461040c575f36600319011261040c576020600354604051908152f35b5f36600319011261040c5761061d6108ca565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b3461040c57602036600319011261040c576001600160a01b03610674610828565b165f525f602052602060ff60405f2054166040519015158152f35b5f36600319011261040c5763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b3461040c575f36600319011261040c57602060405162093a808152f35b3461040c575f36600319011261040c576004546040516001600160a01b039091168152602090f35b3461040c57602036600319011261040c5760043580151580910361040c5761073e6108ca565b60ff8019600154169116176001555f80f35b5f36600319011261040c5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b3461040c57602036600319011261040c576107b2610828565b6107ba6108ca565b6001600160a01b03168015610557575f525f60205260405f20600160ff198254161790555f80f35b3461040c57602036600319011261040c576107fb610828565b6108036108ca565b6001600160a01b03168015610557575f525f60205260405f2060ff1981541690555f80f35b600435906001600160a01b038216820361040c57565b81601f8201121561040c5780359067ffffffffffffffff82116103845760405192601f8301601f19908116603f0116840167ffffffffffffffff811185821017610384576040528284526020838301011161040c57815f926020809301838601378301015290565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b638b78c6d8195433036108d957565b6382b429005f526004601cfd5b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b638b78c6d819546001600160a01b0391821692911682148015610969575b6109625760ff600154166109555750505f90565b6001600160a01b03161490565b5050600190565b50815f525f60205260ff60405f20541661094156fe61016060405234610646576129dc8038038061001a8161064a565b92833981016101a0828203126106465781519160208101519060408101519360608201519360808301519460a084015161005660c0860161066f565b9661006360e0870161066f565b6101008701519093906001600160401b0381116106465785610086918901610683565b9961009461012089016106d4565b986100a26101408a016106d4565b6101608a01519099906001600160401b03811161064657886100c5918301610683565b6101808201519098906001600160401b038111610646576100e69201610683565b600160055560809890985260a05260c05260e0526101005261012052610140528051906001600160401b038211610464575f5490600182811c9216801561063c575b60208310146104465781601f8493116105cf575b50602090601f831160011461056c575f92610561575b50508160011b915f199060031b1c1916175f555b8051906001600160401b0382116104645760015490600182811c92168015610557575b60208310146104465781601f8493116104e9575b50602090601f8311600114610483575f92610478575b50508160011b915f199060031b1c1916176001555b83516001600160401b03811161046457601054600181811c9116801561045a575b602082101461044657601f81116103e3575b50602094601f8211600114610380579481929394955f92610375575b50508160011b915f199060031b1c1916176010555b6011805461ffff191692151560ff169290921790151560081b61ff00161790556001600160a01b0316638b78c6d8198190555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36040516122fa90816106e2823960805181818161122b015281816112c501528181611f57015261205c015260a0518181816105b60152818161070501528181610f1a015281816113120152611f2e015260c0518181816107e30152818161092b01528181610e7f01528181610f930152818161133c0152611ef4015260e051818181610da5015281816113610152818161183401528181611abf01528181611ce901528181611eb3015261223801526101005181818161072e015281816108590152610f4301526101205181818161075f01526111f1015261014051818181610c7101528181610df50152610eb00152f35b015190505f80610217565b601f1982169560105f52805f20915f5b8881106103cb575083600195969798106103b3575b505050811b0160105561022c565b01515f1960f88460031b161c191690555f80806103a5565b91926020600181928685015181550194019201610390565b60105f527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672601f830160051c8101916020841061043c575b601f0160051c01905b81811061043157506101fb565b5f8155600101610424565b909150819061041b565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101e9565b634e487b7160e01b5f52604160045260245ffd5b015190505f806101b3565b60015f9081528281209350601f198516905b8181106104d157509084600195949392106104b9575b505050811b016001556101c8565b01515f1960f88460031b161c191690555f80806104ab565b92936020600181928786015181550195019301610495565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c8101916020851061054d575b90601f859493920160051c01905b81811061053f575061019d565b5f8155849350600101610532565b9091508190610524565b91607f1691610189565b015190505f80610152565b5f8080528281209350601f198516905b8181106105b7575090846001959493921061059f575b505050811b015f55610166565b01515f1960f88460031b161c191690555f8080610592565b9293602060018192878601518155019501930161057c565b5f80529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f840160051c81019160208510610632575b90601f859493920160051c01905b818110610624575061013c565b5f8155849350600101610617565b9091508190610609565b91607f1691610128565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761046457604052565b51906001600160a01b038216820361064657565b81601f82011215610646578051906001600160401b038211610464576106b2601f8301601f191660200161064a565b928284526020838301011161064657815f9260208093018386015e8301015290565b519081151582036106465756fe6080806040526004361015610034575b50361561002557631eb49d6d60e11b5f5260045ffd5b631eb49d6d60e11b5f5260045ffd5b5f3560e01c9081630197d9721461181f5750806301ffc9a7146117d257806306fdde0314611730578063075b222514611713578063081812fc146116c25780630913348f146114e9578063095ea7b3146114cc5780630b97d964146114af5780630f4161aa1461148d5780631249c58b146114385780631e1d6b771461141a57806323b872dd1461140857806324bd2816146113eb57806325692962146113a257806327ffb9a21461128d5780632eb4a7ab146112705780632f2c269c1461124e57806332cb6b0c1461121457806333e03e09146111da578063358cbf0a1461119d57806342842e0e1461116457806342966c6814610fb857806344b28d5914610edf5780634bb278f314610ce95780634f3e1efc14610ca0578063520f3cc814610c5c578063537924ef14610b4f57806354d1f13d14610b0b5780636352211e14610adb5780636c02a93114610a3957806370a0823114610a16578063715018a6146109cd5780637b61c320146108b05780637cb647591461096b5780638285268e1461094e57806383ea6e97146109145780638da5cb5b146108e8578063931e2e49146108cb57806395d89b41146108b0578063a22cb4651461087c578063a2c00d9e14610842578063a8660a7814610825578063a899adf4146106ca578063b7663e97146106ad578063b88d4fde146105fb578063bac3bfb8146105d9578063c002d23d1461059f578063c623674f146104e8578063c87b56dd146104b9578063d123973014610494578063d62f3b1c14610449578063db1704e11461042c578063e32a748f1461040f578063e985e9c5146103cb578063eab1e62c146103ae578063f04e283e14610361578063f2fde38b14610324578063f998c8e8146102ff5763fee81cf4146102c9575f61000f565b346102fb5760203660031901126102fb576102e26118af565b63389a75e1600c525f52602080600c2054604051908152f35b5f80fd5b346102fb575f3660031901126102fb57602060ff60065460081c166040519015158152f35b60203660031901126102fb576103386118af565b610340611e73565b8060601b1561035457610352906121c5565b005b637448fbae5f526004601cfd5b60203660031901126102fb576103756118af565b61037d611e73565b63389a75e1600c52805f526020600c2090815442116103a1575f61035292556121c5565b636f5e88185f526004601cfd5b346102fb575f3660031901126102fb576020600d54604051908152f35b346102fb5760403660031901126102fb576103e46118af565b6103ec6118c5565b601c52670a5a2e7a000000006008525f5260206030600c20546040519015158152f35b346102fb575f3660031901126102fb576020600954604051908152f35b346102fb575f3660031901126102fb576020600c54604051908152f35b346102fb575f3660031901126102fb57610461611e73565b600160ff1960035416176003557fbad7871e16f9b9d8b2a6bd6e38ada7c99940913046fe099cffa0040643fb064e5f80a1005b346102fb575f3660031901126102fb57602060ff60035460081c166040519015158152f35b346102fb5760203660031901126102fb576104e46104d8600435611d86565b60405191829182611857565b0390f35b346102fb575f3660031901126102fb576040515f60105461050881611915565b808452906001811690811561057b5750600114610530575b6104e4836104d881850382611969565b60105f9081525f5160206122a55f395f51905f52939250905b808210610561575090915081016020016104d8610520565b919260018160209254838588010152019101909291610549565b60ff191660208086019190915291151560051b840190910191506104d89050610520565b346102fb575f3660031901126102fb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102fb575f3660031901126102fb5760206105f3611cd3565b604051908152f35b60803660031901126102fb5761060f6118af565b6106176118c5565b60443560643567ffffffffffffffff81116102fb5761063a903690600401611881565b929093610648838383611b24565b813b61065057005b67ffffffffffffffff84116106995760405193610677601f8201601f191660200186611969565b80855236818701116102fb576020815f926103529883890137860101526120ee565b634e487b7160e01b5f52604160045260245ffd5b346102fb575f3660031901126102fb576020600b54604051908152f35b346102fb575f3660031901126102fb576106e2611e73565b60035460ff8160081c166108165761ffff191661010117600355426004556107947f000000000000000000000000000000000000000000000000000000000000000061078f60646107537f000000000000000000000000000000000000000000000000000000000000000084611a4f565b0480600a5560646107847f000000000000000000000000000000000000000000000000000000000000000085611a4f565b049283600b55611a42565b611a42565b600c557fbad7871e16f9b9d8b2a6bd6e38ada7c99940913046fe099cffa0040643fb064e5f80a17fcb0654d378ad3cd02dbc858de79e52889616696769cabc0cbfb2ec86e055045160406108087f000000000000000000000000000000000000000000000000000000000000000042611c66565b8151904282526020820152a1005b6339f3829b60e01b5f5260045ffd5b346102fb575f3660031901126102fb576020600754604051908152f35b346102fb575f3660031901126102fb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102fb5760403660031901126102fb576108956118af565b50602435801515036102fb576108a9611e8f565b1561002557005b346102fb575f3660031901126102fb576104e46104d861198b565b346102fb575f3660031901126102fb576020600454604051908152f35b346102fb575f3660031901126102fb57638b78c6d819546040516001600160a01b039091168152602090f35b346102fb575f3660031901126102fb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102fb575f3660031901126102fb576020600a54604051908152f35b346102fb5760203660031901126102fb57600435610987611e73565b80156109be576020817f90004c04698bc3322499a575ed3752dd4abf33e0a7294c06a787a0fe01bea94192600255604051908152a1005b631e1d0ab560e01b5f5260045ffd5b5f3660031901126102fb576109e0611e73565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b346102fb5760203660031901126102fb5760206105f3610a346118af565b611ca0565b346102fb575f3660031901126102fb576040515f5f54610a5881611915565b808452906001811690811561057b5750600114610a7f576104e4836104d881850382611969565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610ac1575090915081016020016104d8610520565b919260018160209254838588010152019101909291610aa9565b346102fb5760203660031901126102fb576020610af9600435611c73565b6040516001600160a01b039091168152f35b5f3660031901126102fb5763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b60203660031901126102fb5760043567ffffffffffffffff81116102fb57366023820112156102fb57806004013567ffffffffffffffff81116102fb5760248160051b8301013681116102fb573068929eee149b4bd212685414610c4f573068929eee149b4bd2126855610bc234611ede565b6002549260405160208101903360601b825260148152610be3603482611969565b51902092610c20575b505003610c11576020610bfd611fb9565b3868929eee149b4bd2126855604051908152f35b6306fb10a960e01b5f5260045ffd5b602401915b602083359182811160051b9081521852602060405f20920191818310610c25579150508280610bec565b63ab143c065f526004601cfd5b346102fb575f3660031901126102fb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346102fb575f3660031901126102fb57610cbf60055460095490611a42565b5f198101908111610cd557602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b346102fb575f3660031901126102fb573068929eee149b4bd212685414610c4f573068929eee149b4bd2126855638b78c6d81954336001600160a01b038216141580610eac575b6100255760065460ff81161580610e76575b610e675760081c60ff16610e5857600e5490600f549180610e2e575b505080610de4575b61010061ff0019600654161760065542600755426008557fb968440accd1ce5fa60b00de8bb8d8487eb2fda3c3701fb30fea3f69aa910a486040610dca7f000000000000000000000000000000000000000000000000000000000000000042611c66565b8151904282526020820152a13868929eee149b4bd2126855005b804710610e1f57610e19905f600f557f0000000000000000000000000000000000000000000000000000000000000000612180565b80610d66565b63786e0a9960e01b5f5260045ffd5b804710610e1f57610e51915f600e55610e4982600d54611c66565b600d55612180565b8180610d5e565b6372de7acd60e01b5f5260045ffd5b63a4bcf01360e01b5f5260045ffd5b50610ea46004547f000000000000000000000000000000000000000000000000000000000000000090611c66565b421115610d42565b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415610d30565b346102fb575f3660031901126102fb57610ef7611e73565b60035460ff8160081c166108165761ff0019166101001760035542600455610f687f000000000000000000000000000000000000000000000000000000000000000061078f60646107537f000000000000000000000000000000000000000000000000000000000000000084611a4f565b600c557fcb0654d378ad3cd02dbc858de79e52889616696769cabc0cbfb2ec86e055045160406108087f000000000000000000000000000000000000000000000000000000000000000042611c66565b346102fb5760203660031901126102fb576004353068929eee149b4bd212685414610c4f573068929eee149b4bd212685560ff60065460081c16156111555761100081611c73565b336001600160a01b03909116036111465761101a81611a80565b906110236120b3565b61102e600954611c58565b6009556001600160a01b0361104282611c73565b1615158061113f575b80611130575b610025575f818152673ec412a9852d173d60c11b601c5260209020810181018054906001600160a01b03821690811561112357815f5280600101928354801560011715611104575b905f9484926110fb575b50189055601c600c20821981540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4806110eb575b3868929eee149b4bd2126855005b6110f59033612180565b806110dd565b859055876110a3565b906030600c2054156111165790611099565b634b6e7f185f526004601cfd5b63ceea21b65f526004601cfd5b50611139611e8f565b15611051565b505f61104b565b6359dc379f60e01b5f5260045ffd5b635788079960e01b5f5260045ffd5b61116d366118db565b61117a8183859495611b24565b823b61118257005b6103529260405192611195602085611969565b5f84526120ee565b346102fb575f3660031901126102fb576111b5611e73565b3068929eee149b4bd212685414610c4f573068929eee149b4bd21268556110dd6120b3565b346102fb575f3660031901126102fb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102fb575f3660031901126102fb5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102fb575f3660031901126102fb57602060ff600654166040519015158152f35b346102fb575f3660031901126102fb576020600254604051908152f35b346102fb575f3660031901126102fb575f60806040516112ac8161194d565b82815282602082015282604082015282606082015201527f0000000000000000000000000000000000000000000000000000000000000000600554905f198201918211610cd55760a0916040516113028161194d565b82815260208101918252604081017f00000000000000000000000000000000000000000000000000000000000000008152608060608301927f0000000000000000000000000000000000000000000000000000000000000000845201927f00000000000000000000000000000000000000000000000000000000000000008452604051948552516020850152516040840152516060830152516080820152f35b5f3660031901126102fb5763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b346102fb575f3660031901126102fb576020600f54604051908152f35b610352611414366118db565b91611b24565b346102fb5760203660031901126102fb5760206105f3600435611a80565b5f3660031901126102fb573068929eee149b4bd212685414610c4f573068929eee149b4bd212685561146934611ede565b60ff600354161561147e576020610bfd611fb9565b63447691f760e01b5f5260045ffd5b346102fb575f3660031901126102fb57602060ff600354166040519015158152f35b346102fb575f3660031901126102fb576020600e54604051908152f35b60403660031901126102fb576114e06118af565b506108a9611e8f565b346102fb5760203660031901126102fb5760043567ffffffffffffffff81116102fb5761151a903690600401611881565b611522611e73565b67ffffffffffffffff81116106995761153c601054611915565b601f811161165a575b505f91601f82116001146115c957604090827fddf1c344aad789eabd94922c3bda7a42ef5192db3a152c21524fa011b9b11c15945f916115be575b508360011b905f198560031b1c1916176010555b82825193849260208452816020850152848401375f828201840152601f01601f19168101030190a1005b905081013585611580565b601f19821660105f525f5160206122a55f395f51905f52905f5b8181106116425750907fddf1c344aad789eabd94922c3bda7a42ef5192db3a152c21524fa011b9b11c1594846040949310611629575b5050600183811b01601055611594565b8201355f19600386901b60f8161c191690558480611619565b838601358355602095860195600190930192016115e3565b60105f52601f820160051c5f5160206122a55f395f51905f520190602083106116ad575b601f0160051c5f5160206122a55f395f51905f5201905b8181106116a25750611545565b5f8155600101611695565b5f5160206122a55f395f51905f52915061167e565b346102fb5760203660031901126102fb576004355f818152673ec412a9852d173d60c11b601c5260209020810101805460601b1561112357600101546040516001600160a01b039091168152602090f35b346102fb575f3660031901126102fb576020600854604051908152f35b346102fb575f3660031901126102fb576040515f5f5461174f81611915565b808452906001811690811561057b5750600114611776576104e4836104d881850382611969565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b8082106117b8575090915081016020016104d8610520565b9192600181602092548385880101520191019092916117a0565b346102fb5760203660031901126102fb576004356001600160e01b0319811681036102fb5760209060e01c60405190635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b346102fb575f3660031901126102fb576020907f00000000000000000000000000000000000000000000000000000000000000008152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b9181601f840112156102fb5782359167ffffffffffffffff83116102fb57602083818601950101116102fb57565b600435906001600160a01b03821682036102fb57565b602435906001600160a01b03821682036102fb57565b60609060031901126102fb576004356001600160a01b03811681036102fb57906024356001600160a01b03811681036102fb579060443590565b90600182811c92168015611943575b602083101461192f57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611924565b60a0810190811067ffffffffffffffff82111761069957604052565b90601f8019910116810190811067ffffffffffffffff82111761069957604052565b604051905f826001549161199e83611915565b8083529260018116908115611a2357506001146119c4575b6119c292500383611969565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310611a075750509060206119c2928201016119b6565b60209193508060019154838589010152019101909184926119ef565b602092506119c294915060ff191682840152151560051b8201016119b6565b91908203918211610cd557565b81810292918115918404141715610cd557565b8115611a6c570490565b634e487b7160e01b5f52601260045260245ffd5b5f818152673ec412a9852d173d60c11b601c52602090208101015460601b15611b155760ff60065460081c1615611b0f57611abd60075442611a42565b7f00000000000000000000000000000000000000000000000000000000000000009081811015611b0957611b00611b0692611afb600c549384611a4f565b611a62565b90611a42565b90565b50505f90565b600c5490565b63677510db60e11b5f5260045ffd5b6001600160a01b038116151580611c46575b80611c37575b610025575f838152673ec412a9852d173d60c11b3317601c52602090208301830180546001600160a01b0393841693928316928116808414810215611c225750825f528160010180548033148533141715611c0b575b611c02575b50838318189055601c600c205f198154019055815f52601c600c2060018154019063ffffffff8216840215611bed57557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4565b67ea553b3401336cea841560021b526004601cfd5b5f90555f611b97565b6030600c2054611b9257634b6e7f185f526004601cfd5b67ceea21b6a1148100901560021b526004601cfd5b50611c40611e8f565b15611b3c565b506001600160a01b0382161515611b36565b5f198114610cd55760010190565b91908201809211610cd557565b5f818152673ec412a9852d173d60c11b601c5260209020810101546001600160a01b031690811561112357565b8015611cc657673ec412a9852d173d60c11b601c525f5263ffffffff601c600c20541690565b638f4eb6045f526004601cfd5b60ff60065460081c1615611d0e57611b06600c547f000000000000000000000000000000000000000000000000000000000000000090611a62565b5f90565b6010545f9291611d2182611915565b9160018116908115611d745750600114611d39575050565b60105f90815292935090915f5160206122a55f395f51905f525b838210611d605750500190565b600181602092548486015201910190611d53565b60ff1916825250811515909102019150565b5f818152673ec412a9852d173d60c11b601c5260209020810181015460601b15611b155760ff60115416611de6575060405166697066733a2f2f60c81b6020820152611b0681611dd860278201611d12565b03601f198101835282611969565b604051600a608082019260a083016040525f8452925b5f190192603082820601845304918215611e1857600a90611dfc565b91506001611b0691608084601f198101920301815260405193849166697066733a2f2f60c81b6020840152611e4f60278401611d12565b90602f60f81b82525180928583015e015f838201520301601f198101835282611969565b638b78c6d819543303611e8257565b6382b429005f526004601cfd5b60ff60115460081c1615611d0e5760ff60065460081c1615611d0e57611ed86007547f000000000000000000000000000000000000000000000000000000000000000090611c66565b42101590565b60ff60035460081c161561147e57611f196004547f000000000000000000000000000000000000000000000000000000000000000090611c66565b4211611faa57611f2833611ca0565b611f9b577f000000000000000000000000000000000000000000000000000000000000000003611f8c576005547f000000000000000000000000000000000000000000000000000000000000000010611f7d57565b6370d818df60e01b5f5260045ffd5b6349986e7360e01b5f5260045ffd5b631bbdf5c560e31b5f5260045ffd5b63046b084160e31b5f5260045ffd5b60055490611fc682611c58565b60055581611fd8600a54600e54611c66565b600e55611fe9600b54600f54611c66565b600f55805f52673ec412a9852d173d60c11b601c5260205f208101810180548060601b6120a65733179055335f52601c600c2060018154019063ffffffff82163302156120915755335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a46005547f00000000000000000000000000000000000000000000000000000000000000001061208257565b600160ff196006541617600655565b67ea553b3401336cea331560021b526004601cfd5b63c991cbb15f526004601cfd5b6120bb612202565b80156120eb57804710610e1f57806120d86119c292600d54611c66565b600d5542600855638b78c6d81954612180565b50565b9060a46020939460405195869463150b7a028652338787015260018060a01b03166040860152606085015260808085015280518091818060a088015261216c575b505001905f601c8401915af11561215e575b5163757a42ff60e11b0161215157565b63d1a57ed65f526004601cfd5b3d15612141573d5f823e3d90fd5b818760c08801920160045afa50805f61212f565b8147106121b8575f3881808585620186a0f11561219b575050565b601691600b915f526073825360ff602053f0156121b457565b3838fd5b63b12d13eb5f526004601cfd5b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b60ff60065460081c1615611d0e576005545f198101908111610cd55760095461222a91611a42565b801561229f5761225d6007547f000000000000000000000000000000000000000000000000000000000000000090611c66565b8042105f14612299575042905b600854808311156122925761228561228d91611b0694611a42565b61228d611cd3565b611a4f565b5050505f90565b9061226a565b505f9056fe1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae672a2646970667358221220bba314080e3eefce30ac0e19b2e1a82998fcfc9163abe1d3df34eca596e451a564736f6c634300081e0033a2646970667358221220fcbf43a7ddababe55b2713299796a24de91921d1d3d1c4c80b1c46cbab1e2cee64736f6c634300081e0033