883 txs
1.7k calls
constructor
constructor(address _platformAllocationRecipient, address _WETH, address _uniswapFactory, address _positionManager, address _swapRouter, address _registerer)
functions
allowlistOnly
viewfunction allowlistOnly() view returns (bool)
coinToTokenId
viewfunction coinToTokenId(address coinAddress) view returns (uint256 tokenId)
creatorToAllowlist
viewfunction creatorToAllowlist(address creatorAddress) view returns (bool isAllowed)
creatorToCoin
viewfunction creatorToCoin(address creatorAddress) view returns (address coinAddress)
defaultConfig
viewfunction defaultConfig() view returns (address pairToken, uint24 uniswapPoolFee, int24 tickSpacing, uint256 creatorTaxBps, uint256 creatorPoolTaxBps, address platformAllocationRecipient, uint256 platformAllocationBps, uint256 liquidityAllocationBps, uint256 totalSupply, uint256 basePayoutBps, uint256 maxPayoutBps, address registerer)
maxUsableTick
purefunction maxUsableTick(int24 tickSpacing) pure returns (int24)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
positionManager
viewfunction positionManager() view returns (address)
swapRouter
viewfunction swapRouter() view returns (address)
uniswapFactory
viewfunction uniswapFactory() view returns (address)
WETH
viewfunction WETH() view returns (address)
claimPlatformRewards
nonpayablefunction claimPlatformRewards(address coinAddress, address recipient)
createCreatorCoin
nonpayablefunction createCreatorCoin(address creator, string name, string symbol, int24 initialTick, bytes32 salt) returns (address coinAddress)
createCreatorCoinAndBuy
payablefunction createCreatorCoinAndBuy(address creator, string name, string symbol, int24 initialTick, bytes32 salt) payable returns (address coinAddress)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
pauseCoinCreation
nonpayablefunction pauseCoinCreation()
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowlistOnly
nonpayablefunction setAllowlistOnly(bool _allowlistOnly)
setCreatorAllowlist
nonpayablefunction setCreatorAllowlist(address creator, bool isAllowed)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpauseCoinCreation
nonpayablefunction unpauseCoinCreation()
updateConfig
nonpayablefunction updateConfig(tuple newConfig)
events
AllowlistOnlySet
event AllowlistOnlySet(bool allowlistOnly)
CreatorAddedToAllowlist
event CreatorAddedToAllowlist(address indexed creator)
CreatorCoinCreated
event CreatorCoinCreated(address indexed coin, address indexed creator, string name, string symbol, int24 initialTick)
CreatorRemovedFromAllowlist
event CreatorRemovedFromAllowlist(address indexed creator)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RewardsClaimed
event RewardsClaimed(address indexed coin, address indexed recipient, uint256 amount0, uint256 amount1)
Unpaused
event Unpaused(address account)
errors
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
T
error T()
creation bytecode
0x61010060409080825234620003955760c08162004baa80380380916200002682856200039a565b83398101031262000395576200003c81620003be565b6020916200004c838201620003be565b62000059858301620003be565b6200006760608401620003be565b916200008460a06200007c60808701620003be565b9501620003be565b9433156200037d57600080548951939133906001600160a01b038316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600160a81b0319163360ff60a01b19161760005561018083016001600160401b0381118482101762000367578952600083526127108884015260c8898401526032606084015260326080840152600060a08401526101f460c084015261251c60e084015269d3c21bcecceda10000006101008401526101f461012084015260006101606107d09485610140820152015260018060d01b031960015416966032600255603260035560018060a01b03198060045416946101f460055561251c60065569d3c21bcecceda10000006007556101f4600855600955600a541691600160ff19600b541617600b5560018060a01b03169788630c80027160a41b91171760015560018060a01b031617600a5560018060a01b0316176004558360e05260018060a01b031660805260018060a01b0316908160a05260018060a01b0316908160c05284519163095ea7b360e01b908184526004840152848360448160008019988960248401525af19081156200035c5785936044926200033a575b50600060018060a01b0360e05116885196879586948552600485015260248401525af180156200032f57620002fa575b82516147bc9081620003ee8239608051818181610aca0152611555015260a05181818161089801528181610bc0015281816110aa0152818161194f0152611a40015260c05181818161067c01528181610e3d01526113e2015260e0518181816106c301528181610d420152818161140a015281816114690152818161150a01526118d00152f35b816200031e92903d1062000327575b6200031581836200039a565b810190620003d3565b50388062000273565b503d62000309565b83513d6000823e3d90fd5b6200035490853d871162000327576200031581836200039a565b503862000243565b86513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b8751631e4fbdf760e01b815260006004820152602490fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200036757604052565b51906001600160a01b03821682036200039557565b90816020910312620003955751801515810362000395579056fe6080806040526004803610156200001557600080fd5b600091823560e01c908163150b7a0214620010445750806317d9ccaf146200100757806318ac827e1462000fa05780631a429ff31462000f5d5780631fba28921462000f1d578063227d13181462000d0e5780633d141aa31462000ce95780635c975abb1462000cc257806365c2df531462000c4d578063715018a61462000bef578063791b98bc1462000ba857806387a8cfb71462000af95780638bdb2afa1462000ab25780638da5cb5b1462000a895780639333178614620007c05780639d442a57146200078c5780639e09ed5f14620006f2578063ad5c464814620006ab578063c31c9c071462000664578063c33b596e14620005fd578063dbb9d9ed146200020b578063ef675edd14620001c95763f2fde38b146200013757600080fd5b34620001c5576020366003190112620001c5576200015462001148565b6200015e620021c4565b6001600160a01b03908116918215620001ad57506000548260018060a01b0319821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b604051631e4fbdf760e01b8152908101849052602490fd5b5080fd5b50903462000208576020366003190112620002085750358060020b81036200020357620001f86020916200218b565b6040519060020b8152f35b600080fd5b80fd5b5034620001c55761018080600319360112620005f9576040519081018181106001600160401b03821117620005e4576040526200024762001148565b815260243562ffffff81168103620005e05760208201526044358060020b8103620002035760408201526064356060820152608435608082015260a4356001600160a01b0381168103620002035760a082015260c43560c082015260e43560e0820152610104356101008201526101243561012082015261014435610140820152610164356001600160a01b0381169003620002035761016435610160820152620002f1620021c4565b6113886200030960608301516080840151906200217d565b11620005ad576127106200032760c083015160e0840151906200217d565b036200056f5780516001600160a01b031615620005365762ffffff602082015116612710811490811562000529575b81156200051c575b5015620004dd57604081015160020b600a8114908115620004d1575b8115620004c5575b50156200048a57610100810151156200044f57805160018054602084015160408501516001600160d01b03199092166001600160a01b039485161760a091821b62ffffff60a01b161762ffffff60b81b60b89390931b92909216919091179091556060830151600255608083015160035582015183546001600160a01b03199081169183169190911790935560c082015160055560e082015160065561010082015160075561012082015160085561014082015160095561016090910151600a8054909316911617905580f35b60405162461bcd60e51b81526020818401526014602482015273496e76616c696420746f74616c20737570706c7960601b6044820152606490fd5b60405162461bcd60e51b81526020818401526014602482015273496e76616c6964207469636b2073706163696e6760601b6044820152606490fd5b60c89150143862000382565b603c811491506200037a565b60405162461bcd60e51b81526020818401526018602482015277496e76616c696420756e697377617020706f6f6c2066656560401b6044820152606490fd5b6103e8915014386200035e565b610bb88114915062000356565b60405162461bcd60e51b8152602081840152601260248201527124b73b30b634b2103830b4b9103a37b5b2b760711b6044820152606490fd5b60405162461bcd60e51b81526020818401526017602482015276416c6c6f636174696f6e206d757374206265203130302560481b6044820152606490fd5b60405162461bcd60e51b8152602081840152600c60248201526b0a8dede40daeac6d040e8c2f60a31b6044820152606490fd5b8380fd5b604183634e487b7160e01b6000525260246000fd5b8280fd5b823462000208578060031936011262000208576200061a620021c4565b620006246200224d565b805460ff60a01b1916600160a01b1781556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602090a180f35b823462000208578060031936011262000208576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b823462000208578060031936011262000208576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034620001c55781600319360112620001c5576101809060015460018060a01b039160025490836003549154166005546006549060075492600854946009549689600a5416986040519a81168b5262ffffff8160a01c1660208c015260b81c60020b60408b015260608a0152608089015260a088015260c087015260e0860152610100850152610120840152610140830152610160820152f35b823462000208576020620007ae620007a43662001239565b93929092620012ad565b6040516001600160a01b039091168152f35b5034620001c5576040366003190112620001c557620007de62001148565b90620007e96200115f565b91620007f4620021c4565b6001600160a01b03908116808552600e602090815260408620549491939091851562000a46578316948515620009f95760405190608082018281106001600160401b03821117620009e457916084916040949385528152888582019689885285830160018060801b0390818152816060860191818352848a519c8d9a8b9963fc6f786560e01b8b5251908a01525116602488015251166044860152511660648401527f0000000000000000000000000000000000000000000000000000000000000000165af1908115620009d9578592869262000975575b50916040917fd92c424393cb3ccdf7d5e36602e3bfa34f24490579ba47978f4bcfad496995f2936200092d8385516200090581620011a0565b6016815275105b5bdd5b9d081bd98809144818dbdb1b1958dd195960521b84820152620021f1565b620009698285516200093f81620011a0565b6018815277105b5bdd5b9d081bd98815d155120818dbdb1b1958dd195960421b84820152620021f1565b8351928352820152a380f35b925090506040823d604011620009d0575b816200099560409383620011bc565b81010312620009cc57815191810151907fd92c424393cb3ccdf7d5e36602e3bfa34f24490579ba47978f4bcfad496995f2620008cc565b8480fd5b3d915062000986565b6040513d87823e3d90fd5b604184634e487b7160e01b6000525260246000fd5b506084916040519162461bcd60e51b8352820152602160248201527f526563697069656e74206d75737420626520612076616c6964206164647265736044820152607360f81b6064820152fd5b506064916040519162461bcd60e51b8352820152601f60248201527f4e6f20706f736974696f6e20666f756e6420666f72207468697320636f696e006044820152fd5b82346200020857806003193601126200020857546040516001600160a01b039091168152602090f35b823462000208578060031936011262000208576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b823462000208576040366003190112620002085762000b1762001148565b60243580151591828203620002035762000b30620021c4565b60018060a01b031691828452600c602052604084209060ff8019835416911617905560001462000b81577fe3d81fcb20b37194dd5d9456ed38874b87d41959a62fef2d8b15a84c08f2b89b8280a280f35b7fdbf8c9b3ed8240b4d3294cad4f48bc3f16df309b09e0bcd1cfa8b5799e18bb008280a280f35b823462000208578060031936011262000208576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234620002085780600319360112620002085762000c0c620021c4565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034620001c55781600319360112620001c55762000c6a620021c4565b81549060ff8260a01c161562000cb3575060ff60a01b191681556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b604051638dfc202b60e01b8152fd5b8234620002085780600319360112620002085760ff6020915460a01c166040519015158152f35b82346200020857806003193601126200020857602060ff600b54166040519015158152f35b509062000d1b3662001239565b92959395919091341562000ed95762000d36949596620012ad565b6001600160a01b0392907f00000000000000000000000000000000000000000000000000000000000000008416803b15620005f957604051630d0e30db60e41b81528381868134865af1801562000ece5762000eb8575b5062ffffff93600154926040519260e084018481106001600160401b03821117620009e45788959493869384938993604052865260209a8b978189890193169b8c84528060408a019260a01c16825260608901913383528360808b019534875260a08c019789895260c08d01998a526040519e8f9d8e6304e45aaf60e01b90525116908d0152511660248b015251166044890152511660648701525160848601525160a4850152511660c48301527f00000000000000000000000000000000000000000000000000000000000000001681855a9260e493f1801562000ead5790849162000e7e575b50604051838152f35b813d831162000ea5575b62000e948183620011bc565b810103126200020857828162000e75565b503d62000e88565b6040513d84823e3d90fd5b62000ec69093919362001176565b913862000d8d565b6040513d86823e3d90fd5b60405162461bcd60e51b8152602081870181905260248201527f416d6f756e7420696e206d7573742062652067726561746572207468616e20306044820152606490fd5b82346200020857602036600319011262000208576020906001600160a01b03906040908262000f4b62001148565b168152600d8452205416604051908152f35b823462000208576020366003190112620002085760209060ff906040906001600160a01b0362000f8c62001148565b168152600c84522054166040519015158152f35b5034620001c5576020366003190112620001c55735801515809103620001c55760207f598a5c1ba50b30ed484e905c1d18c1906efe7bdf5b7f371671908e16e8f765cc9162000fee620021c4565b60ff19600b541660ff821617600b55604051908152a180f35b82346200020857602036600319011262000208576020906040906001600160a01b036200103362001148565b168152600e83522054604051908152f35b905082346200020857608036600319011262000208576200106462001148565b506200106f6200115f565b506064356001600160401b03808211620005f95736602383011215620005f95781850135908111620005f957369101602401116200020857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303620010eb57604051630a85bd0160e11b8152602090f35b602060849262461bcd60e51b8352820152603460248201527f43616e206f6e6c79207265636569766520706f736974696f6e732066726f6d206044820152733a3432903837b9b4ba34b7b71036b0b730b3b2b960611b6064820152fd5b600435906001600160a01b03821682036200020357565b602435906001600160a01b03821682036200020357565b6001600160401b0381116200118a57604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176200118a57604052565b90601f801991011681019081106001600160401b038211176200118a57604052565b81601f8201121562000203578035906001600160401b0382116200118a576040519262001216601f8401601f191660200185620011bc565b828452602083830101116200020357816000926020809301838601378301015290565b60a060031982011262000203576004356001600160a01b03811681036200020357916001600160401b036024358181116200020357836200127d91600401620011de565b9260443591821162000203576200129791600401620011de565b906064358060020b810362000203579060843590565b909291600094620012bd6200224d565b336001600160a01b038416148015620020e2575b1562002066576001600160a01b038381168752600d602052604087205416620020215760ff600b5416806200200c575b62001f95575b600254600354604051916200131c83620011a0565b82526020820152600154600854600954600a548a5460405195946001600160a01b039182169491909216929161251787018088116001600160401b039091111762001f81579062ffffff8796959493926020620013a78f6200139490612517620022708d396101806125178d018181520190620020f6565b6125178b01808203908401528d620020f6565b6001600160a01b03808f166125178c0160408101919091528a5160608201529290990151608083015260a092831c93909316918101919091527f0000000000000000000000000000000000000000000000000000000000000000871660c08201527f000000000000000000000000000000000000000000000000000000000000000090961660e087015261010086019190915261012085019190915261014084019190915261016090920152039087f594851562001f75576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908716101562001f0a576001600160a01b038381168252600d6020526040822080546001600160a01b03191691881691909117905560075460055461271090620014e8908290620014dc908562002138565b04926006549062002138565b60015460405163a167129560e01b81526001600160a01b038b811660048301527f00000000000000000000000000000000000000000000000000000000000000008116602483015260a09290921c62ffffff166044820152929091049291906020908290606490829088907f0000000000000000000000000000000000000000000000000000000000000000165af190811562000ece57849162001ec1575b50838760020b1260001462001eb7578660020b84035b620d89e8811162001ea557600181161562001e9a576ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316906002811662001e7d575b6004811662001e60575b6008811662001e43575b6010811662001e26575b6020811662001e09575b6040811662001dec575b6080811662001dcf575b610100811662001db2575b610200811662001d95575b610400811662001d78575b610800811662001d5b575b611000811662001d3e575b612000811662001d21575b614000811662001d04575b618000811662001ce7575b62010000811662001cca575b62020000811662001cae575b62040000811662001c92575b620800001662001c7b575b848860020b1362001c56575b63ffffffff811662001c4e57845b6001600160a01b0383163b1562001c4a5760405163f637731d60e01b815260209290921c60ff91909116016001600160a01b039081166004830152859082906024908290849087165af18015620009d95762001c34575b50600154604051918260608101106001600160401b036060850111176200118a576060830160405260018060a01b0316825262ffffff8160a01c16602083015260b81c60020b604082015260018060a01b0389163b15620005e05760408051632c39a32f60e21b815282516001600160a01b039081166004830152602084015162ffffff166024830152929091015160020b60448201529084908290606490829084908e165af1801562000ece5790849162001c1c575b50506004546001600160a01b039081169089163b15620005e0576040516340c10f1960e01b8152918491839182916200180191906004840162002162565b0381836001600160a01b038d165af1801562001be15790839162001c04575b50506001600160a01b0387163b15620001c5576040516340c10f1960e01b81528281806200185385306004840162002162565b0381836001600160a01b038d165af1801562001be15790839162001bec575b5050600154620018888160b81c60020b6200218b565b9060405192836101608101106001600160401b03610160860111176200118a57620019799262ffffff602093610160870160405260018060a01b038d16875260018060a01b037f0000000000000000000000000000000000000000000000000000000000000000168588015260a01c1660408601528860020b606086015260020b60808501528060a08501528460c08501528460e08501528461010085015230610120850152426101408501526040518093819263095ea7b360e01b835260018060a01b037f0000000000000000000000000000000000000000000000000000000000000000166004840162002162565b0381866001600160a01b038d165af1801562001be15762001ba2575b5060408051634418b22b60e11b815282516001600160a01b0390811660048301526020840151811660248301529183015162ffffff1660448201526060830151600290810b606483015260808085015190910b608483015260a084015160a483015260c084015160c483015260e084015160e48301526101008401516101048301526101208401518316610124830152610140909301516101448201529190829061016490829086907f0000000000000000000000000000000000000000000000000000000000000000165af190811562000ead57829162001b53575b506001600160a01b038716808352600e60205260408320919091553b1562000208576040516338a80c5360e11b81528181600481836001600160a01b038c165af1801562000ead5762001b3b575b50509062001b0f7fb8f45922cb2742798b24ddd316b556a16fdfac624d28ee8f243304222d4d56029262001b0060405196606088526060880190620020f6565b908682036020880152620020f6565b60029390930b60408501526001600160a01b03908116939085169281900390a36001600160a01b031690565b62001b47829162001176565b62000208578062001ac0565b90506080813d60801162001b99575b8162001b7160809383620011bc565b81010312620001c55780516020909101516001600160801b03811603620001c5573862001a72565b3d915062001b62565b6020813d60201162001bd8575b8162001bbe60209383620011bc565b81010312620005f9575180151503620001c5573862001995565b3d915062001baf565b6040513d85823e3d90fd5b62001bf79062001176565b620001c557813862001872565b62001c0f9062001176565b620001c557813862001820565b62001c279062001176565b620005f9578238620017c3565b62001c429094919462001176565b92386200170c565b8580fd5b6001620016b5565b801562001c675760001904620016a7565b634e487b7160e01b85526012600452602485fd5b6b048a170391f7dc42444e8fa20260801c6200169b565b6d2216e584f5fa1ea926041bedfe9890910260801c9062001690565b906e5d6af8dedb81196699c329225ee6040260801c9062001684565b906f09aa508b5b7a84e1c677de54f3e99bc90260801c9062001678565b906f31be135f97d08fd981231505542fcfa60260801c906200166c565b906f70d869a156d2a1b890bb3df62baf32f70260801c9062001661565b906fa9f746462d870fdf8a65dc1f90e061e50260801c9062001656565b906fd097f3bdfd2022b8845ad8f792aa58250260801c906200164b565b906fe7159475a2c29b7443b29c7fa6e889d90260801c9062001640565b906ff3392b0822b70005940c7a398e4b70f30260801c9062001635565b906ff987a7253ac413176f2b074cf7815e540260801c906200162a565b906ffcbe86c7900a88aedcffc83b479aa3a40260801c906200161f565b906ffe5dee046a99a2a811c461f1969c30530260801c9062001614565b906fff2ea16466c96a3843ec78b326b528610260801c906200160a565b906fff973b41fa98c081472e6896dfb254c00260801c9062001600565b906fffcb9843d60f6159c9db58835c9266440260801c90620015f6565b906fffe5caca7e10e4e61c3624eaa0941cd00260801c90620015ec565b906ffff2e50f5f656932ef12357cf3c7fdcc0260801c90620015e2565b906ffff97272373d413259a46990580e213a0260801c90620015d8565b600160801b620015c4565b6040516315e4079d60e11b8152600490fd5b8660020b6200159d565b90506020813d60201162001f01575b8162001edf60209383620011bc565b81010312620005e057516001600160a01b0381168103620005e0573862001587565b3d915062001ed0565b60405162461bcd60e51b815260206004820152603c60248201527f43726561746f7220636f696e20616464726573732073686f756c64206265206c60448201527f6f776572207468616e207061697220746f6b656e2061646472657373000000006064820152608490fd5b604051903d90823e3d90fd5b634e487b7160e01b8d52604160045260248dfd5b6001600160a01b0383168652600c602052604086205460ff16620013075760405162461bcd60e51b815260206004820152602b60248201527f5468652063726561746f72206973206e6f7420616c6c6f77656420746f20637260448201526a32b0ba3290309031b7b4b760a91b6064820152608490fd5b5085546001600160a01b031633141562001301565b60405162461bcd60e51b815260206004820152601e60248201527f5468652063726561746f7220616c726561647920686173206120636f696e00006044820152606490fd5b60405162461bcd60e51b815260206004820152604860248201527f4f6e6c79207468652063726561746f72206f722074686520666163746f72792060448201527f6f776e65722063616e20637265617465206120636f696e20666f7220746869736064820152671031b932b0ba37b960c11b608482015260a490fd5b5085546001600160a01b03163314620012d1565b919082519283825260005b84811062002123575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520162002101565b818102929181159184041417156200214c57565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039091168152602081019190915260400190565b919082018092116200214c57565b60020b8015620021ae5780620d89e80560020b028060020b9081036200214c5790565b634e487b7160e01b600052601260045260246000fd5b6000546001600160a01b03163303620021d957565b60405163118cdaa760e01b8152336004820152602490fd5b6000919082916200223a6040518092620022256020830195632d839cb360e21b8752604060248501526064840190620020f6565b90604483015203601f198101835282620011bc565b51906a636f6e736f6c652e6c6f675afa50565b60ff60005460a01c166200225d57565b60405163d93c066560e01b8152600490fdfe60e0604052346200052a5762002517803803806200001d816200052f565b928339810181810361018081126200052a5782516001600160401b0391908281116200052a57836200005191860162000555565b9060209384860151908482116200052a576200006f91870162000555565b60406200007e818801620005c7565b92605f1901126200052a576040519460408601868110868211176200043c576040526060870151865260808701519681870197885260a08101519062ffffff821682036200052a57620000d460c08201620005c7565b93620000e360e08301620005c7565b94610100830151986101208401519262000110610160620001086101408801620005c7565b9601620005c7565b998051908382116200043c57600391825491600183811c931680156200051f575b8b8410146200041b5781908b601f94858111620004c8575b50508b908483116001146200045e5760009262000452575b50508160011b9160001990851b1c19161782555b82519384116200043c5760045492600184811c9416801562000431575b8a8510146200041b578382869511620003c1575b5089918411600114620003515760009362000345575b50508260011b92600019911b1c1916176004555b33156200032c576005549360018060a01b038099818096819660018060a01b03199e8f33908c16176005556040519a843391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36001600655600855600955168c600d541617600d55168a600e541617600e5560a05216938460c0521660805230156200031657508115620002fd57306000526001815260406000208260005281527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560001991826040600020556040519283523092a31690600f541617600f555160115551601255604051611f3a9081620005dd82396080518181816109a70152610a02015260a051818181610ad20152611407015260c0518181816105810152610a5d0152f35b604051634a1406b160e11b815260006004820152602490fd5b63e602df0560e01b815260006004820152602490fd5b604051631e4fbdf760e01b815260006004820152602490fd5b015191503880620001bc565b600460009081528a81209450601f198616905b8b828210620003aa575050908560019695949392106200038f575b50505050811b01600455620001d0565b01519060f884600019921b161c19169055388080806200037f565b600185978293968601518155019601930162000364565b90919293506004600052896000208380870160051c8201928c881062000411575b9487969594939291940160051c01905b818110620004015750620001a6565b60008155869550600101620003f2565b92508192620003e2565b634e487b7160e01b600052602260045260246000fd5b93607f169362000192565b634e487b7160e01b600052604160045260246000fd5b01519050388062000161565b60008681528d81209350601f198516908e5b828210620004b057505090846001959493921062000497575b505050811b01825562000175565b015160001983871b60f8161c1916905538808062000489565b60018596829396860151815501950193018e62000470565b909192508560005284826000209181860160051c830193861062000515575b9085949392910160051c01905b81811062000505578d915062000149565b60008155849350600101620004f4565b92508192620004e7565b92607f169262000131565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200043c57604052565b919080601f840112156200052a5782516001600160401b0381116200043c576020906200058b601f8201601f191683016200052f565b928184528282870101116200052a5760005b818110620005b357508260009394955001015290565b85810183015184820184015282016200059d565b51906001600160a01b03821682036200052a5756fe60a060409080825260048036101561001657600080fd5b60006080526080513560e01c91826301ffc9a7146118fd5750816302d05d3f146118d357816306fdde03146117ed578163095ea7b31461173957816316f0115b146116f757816318160ddd146116d75781631babc1921461169c57816323b872dd1461159257816323f0c801146114da578163261c6ff314611448578163313ce5671461142b5781633651c24b146113ea5781633ee60bcf146113ca57816340c10f19146113365781634e0a7407146113165781635da73a79146112f65781635ee9a1d2146112615781637094d8d71461109557816370a0823114611059578163715018a614610ff657816388ba030114610ed45781638da5cb5b14610eaa57816392eefe9b14610e1657816395d89b4114610d1e57816396c82e5714610cfe578163a877933f14610cd2578163a8e719ce14610ca8578163a9059cbb14610c78578163aadd1b03146109d6578163ad5c464814610991578163b0e68cbc1461088f578163bc197c81146105d0578163bdcf1753146105b0578163c31c9c071461056b578163c57da02914610546578163db2bd53314610526578163dd62ed3e146104d7578163f23a6e61146102a1578163f2fde38b14610210575063f77c4791146101e157600080fd5b3461020a5760805136600319011261020a57600e5490516001600160a01b039091168152602090f35b60805180fd5b90503461020a57602036600319011261020a5761022b61197b565b90610234611da4565b6001600160a01b03918216928315610288575050600580546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a360805180f35b602492505190631e4fbdf760e01b825260805190820152fd5b90503461020a5760a036600319011261020a576102bc61197b565b506102c5611991565b906044916044359160648035916084356001600160401b03811161020a576102f39096939636908301611a21565b50506080516001600160a01b03851693905b87811061031d57885163f23a6e6160e01b8152602090f35b610325611ca8565b333b1561020a578851637a94c56560e11b81523084820152602488818301526001918285820152608051818881608051335af180156104cb576104b5575b5061036d33611b6d565b9081156104755781906007610383838254611b0a565b90558c5163a9059cbb60e01b81528a81806103a460209687948d8401611c11565b0381608051305af1908115610469576080519161043c575b50156103fc575090877f65cc124f09bcf87adcf501e6e2f217083235e94ded66ff22734f5f90158298d960019594938e519384523393a360065501610305565b91507b10dc99585d1bdc8818dbda5b881d1c985b9cd9995c8819985a5b195960221b949350601c92508b519562461bcd60e51b8752860152840152820152fd5b61045c9150833d8511610462575b61045481836119d0565b810190611af2565b386103bc565b503d61044a565b8e513d608051823e3d90fd5b86907f4e6f207061796f757420746f20636c61696d20666f7220746869732064726f7086888f519362461bcd60e51b855260208092860152840152820152fd5b6104be906119a7565b60805161020a5738610363565b8c513d608051823e3d90fd5b823461020a578060031936011261020a576020906104f361197b565b6104fb611991565b9060018060a01b03809116608051526001845282608051209116600052825280600020549051908152f35b823461020a5760805136600319011261020a576020906013549051908152f35b823461020a5760805136600319011261020a5760115460125482519182526020820152f35b823461020a5760805136600319011261020a57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b823461020a5760805136600319011261020a576020906009549051908152f35b823461020a5760a036600319011261020a576105ea61197b565b506105f3611991565b916044906001600160401b0390823582811161020a5761061690369083016119f1565b9160649160643585811161020a5761063190369084016119f1565b94909560843590811161020a5761064b9036908501611a21565b505084810361085a576080516001600160a01b038a16959092905b82841061067e57895163bc197c8160e01b8152602090f35b60809996979899515b61069285838c611c2c565b35811015610849576106a5858585611c2c565b356106ae611ca8565b333b1561020a578851637a94c56560e11b8152308882015260248082019290925260018d820152608051818a8183335af1801561083d57610827575b506106f433611b6d565b9081156107e7578d90600761070a848254611b0a565b90558a5163a9059cbb60e01b815289818061072b8760209788958401611c11565b0381608051305af19081156104cb57608051916107ca575b501561078c5750869261069294928c7f65cc124f09bcf87adcf501e6e2f217083235e94ded66ff22734f5f90158298d96001948e519384523393a3816006550191509150610687565b7b10dc99585d1bdc8818dbda5b881d1c985b9cd9995c8819985a5b195960221b8e601c8b938d958f519562461bcd60e51b8752860152840152820152fd5b6107e19150833d85116104625761045481836119d0565b38610743565b88907f4e6f207061796f757420746f20636c61696d20666f7220746869732064726f708e8a8d519362461bcd60e51b855260208092860152840152820152fd5b610830906119a7565b60805161020a578d6106ea565b8a513d608051823e3d90fd5b509260019099989796990192610666565b875162461bcd60e51b8152602081850152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b6044820152606490fd5b823461020a57606036600319011261020a57805190606082018281106001600160401b0382111761097c5781526108c461197b565b82526024359062ffffff8216820361020a5760208301918252604435928360020b840361020a578181019384526108f9611da4565b601054946001600160a01b039283871661094657505051169062ffffff60a01b905160a01b16915160b81b62ffffff60b81b169265ffffffffffff60d01b16171717601055608051608051f35b906020606492519162461bcd60e51b8352820152601060248201526f141bdbdb08185b1c9958591e481cd95d60821b6044820152fd5b604184634e487b7160e01b6000525260246000fd5b823461020a5760805136600319011261020a57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8260805160031936011261020a576109ec611ca8565b6109f7341515611aa9565b6001600160a01b03907f00000000000000000000000000000000000000000000000000000000000000008216803b1561020a578151630d0e30db60e41b815260805181868134865af18015610c6c57610c5d575b50815163095ea7b360e01b81526020947f0000000000000000000000000000000000000000000000000000000000000000851691868180610a8f3487878401611c11565b0381608051885af18015610c5157610c34575b5083519260e084018481106001600160401b03821117610c1f5791869188959493875284528484013081528685017f000000000000000000000000000000000000000000000000000000000000000062ffffff168152836060870130815260808801923484528260a08a0195608051875260c08b019760805189528d519e8f9c8d6304e45aaf60e01b90525116908c0152511660248a01525162ffffff166044890152511660648701525160848601525160a4850152511660c4830152816080515a9260e493f18015610c135760805190610bc1575b7f8bf8ad3b635332b30377898900322acaf6f4bb33efbe7ff0a3f8f6ada5fe07739250610ba781600754611b2d565b6007558151933485528401523392a2600160065560805180f35b508282813d8311610c0c575b610bd781836119d0565b81010312610c07577f8bf8ad3b635332b30377898900322acaf6f4bb33efbe7ff0a3f8f6ada5fe07739151610b78565b600080fd5b503d610bcd565b50513d608051823e3d90fd5b604183634e487b7160e01b6000525260246000fd5b610c4a90873d89116104625761045481836119d0565b5086610aa2565b85513d608051823e3d90fd5b610c66906119a7565b84610a4b565b83513d608051823e3d90fd5b823461020a578060031936011261020a57602090610ca1610c9761197b565b6024359033611c52565b5160018152f35b823461020a5760805136600319011261020a57600d5490516001600160a01b039091168152602090f35b823461020a57602036600319011261020a57602090610cf7610cf261197b565b611b6d565b9051908152f35b823461020a5760805136600319011261020a57602090600b549051908152f35b823461020a5760805136600319011261020a57805190608051928054906080515060018260011c9160018416938415610e0c575b6020948585108114610df557848852908115610dd35750600114610d90575b610d8c8686610d82828b03836119d0565b5191829182611932565b0390f35b9092955060805152846080512091608051925b828410610dc05750505082610d8c94610d82928201019486610d71565b8054868501880152928601928101610da3565b60ff191687860152505050151560051b8301019250610d8282610d8c86610d71565b602283634e487b7160e01b60805152526024608051fd5b92607f1692610d52565b90503461020a57602036600319011261020a57610e3161197b565b600e5491906001600160a01b0390610e4c3383861614611a4e565b16928315610e6a5750506001600160a01b03191617600e5560805180f35b906020606492519162461bcd60e51b8352820152601a602482015279496e76616c696420636f6e74726f6c6c6572206164647265737360301b6044820152fd5b823461020a5760805136600319011261020a5760055490516001600160a01b039091168152602090f35b823461020a578060031936011261020a57610eed61197b565b600d5460243592916001600160a01b0391821633148015610fe9575b15610f8957168060805152600a60205281608051205415610f55575b610f4c935060805152600a60205260805120610f42828254611b2d565b9055600b54611b2d565b600b5560805180f35b600c54936000198514610f7257506001610f4c9401600c55610f25565b601190634e487b7160e01b60805152526024608051fd5b825162461bcd60e51b8152602081870152603460248201527f4f6e6c792072656769737465726572206f7220636f6e74726f6c6c6572206361604482015273371031b0b636103a3434b990333ab731ba34b7b760611b6064820152608490fd5b5081600e54163314610f09565b3461020a5760805136600319011261020a57611010611da4565b600580546001600160a01b03198116909155608051906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a360805180f35b823461020a57602036600319011261020a576020906001600160a01b0361107e61197b565b166080515260805182528060805120549051908152f35b90503461020a5760208060031936011261020a578135926110b4611ca8565b6110bf841515611aa9565b80516370a0823160e01b9384825230818301528382602481305afa918215610c6c5760805192611232575b5082516323b872dd60e01b815233828201523060248201528660448201528481606481608051305af19081156112265760805191611209575b50156111d457825194855230908501528284602481305afa9384156111c85760805194611197575b5061117a611182917f1d14043cc813d33e23d26d33afc616de396fe7dc5414811b3f9ffd9b00933d3895611b0a565b600754611b2d565b600755519283523392a2600160065560805180f35b93508284813d83116111c1575b6111ae81836119d0565b8101031261020a5792519261117a61114b565b503d6111a4565b82513d608051823e3d90fd5b825162461bcd60e51b8152908101849052600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6112209150853d87116104625761045481836119d0565b38611123565b84513d608051823e3d90fd5b9091508381813d831161125a575b61124a81836119d0565b8101031261020a575190386110ea565b503d611240565b90503461020a57602036600319011261020a5761127c61197b565b600e546001600160a01b0391906112969083163314611a4e565b169182156112b657600d80546001600160a01b0319168417905560805180f35b906020606492519162461bcd60e51b8352820152601a602482015279496e76616c69642072656769737465726572206164647265737360301b6044820152fd5b823461020a5760805136600319011261020a576020906007549051908152f35b823461020a5760805136600319011261020a576020906008549051908152f35b823461020a578060031936011261020a5761134f61197b565b906024359161135c611da4565b6001600160a01b03169283156113b2575061137982600254611b2d565b6002558260805152608051602052806080512082815401905551908152600080516020611ee5833981519152602060805192a360805180f35b602491519063ec442f0560e01b825260805190820152fd5b823461020a5760805136600319011261020a57602090600c549051908152f35b823461020a5760805136600319011261020a576020905162ffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b823461020a5760805136600319011261020a576020905160128152f35b90503461020a578160031936011261020a578035906024359261147660018060a01b03600e54163314611a4e565b83831161148b57505060085560095560805180f35b906020608492519162461bcd60e51b83528201526024808201527f42617365207061796f75742063616e6e6f7420657863656564206d61782070616044820152631e5bdd5d60e21b6064820152fd5b90503461020a5760805136600319011261020a576114f6611ca8565b60135490811561155b5750608051601355600f546001600160a01b0390611521908390831630611ccb565b600f541691519081527fa3ea21b4a5088591557c1572cd5a2e2eddbb1c751db511d7a4ec8f79d57fdae360203392a3600160065560805180f35b606490602084519162461bcd60e51b835282015260116024820152704e6f20746178657320746f20636c61696d60781b6044820152fd5b90503461020a57606036600319011261020a576115ad61197b565b6115b5611991565b906044359260018060a01b03821680608051526001602052856080512033608051526020528560805120549160001983036115f9575b602087610ca1888888611c52565b85831061167057811561165757331561163e57509184610ca19492602097969460805152600188528660805120336080515288520385608051205591939481936115eb565b602490875190634a1406b160e11b825260805190820152fd5b60249087519063e602df0560e01b825260805190820152fd5b8651637dc7a0d960e11b8152339181019182526020820193909352604081018690528291506060010390fd5b823461020a57602036600319011261020a576020906001600160a01b036116c161197b565b1660805152600a82528060805120549051908152f35b823461020a5760805136600319011261020a576020906002549051908152f35b823461020a5760805136600319011261020a576060906010549080519160018060a01b038116835262ffffff8160a01c16602084015260b81c60020b90820152f35b823461020a578060031936011261020a5761175261197b565b6024359033156117d5576001600160a01b03169081156117bd57602093503360805152600184528260805120826080515284528083608051205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8251634a1406b160e11b815260805181860152602490fd5b825163e602df0560e01b815260805181860152602490fd5b823461020a5760805136600319011261020a57805190608051926003546080515060018160011c916001811680156118c9575b60209485851082146118b257508387529081156118925750600114611852575b505050610d8282610d8c9403836119d0565b608080516003905251838120939650925b82841061187f5750505082610d8c94610d829282010194611840565b8054868501880152928601928101611863565b60ff1916868501525050151560051b8301019250610d8282610d8c611840565b602290634e487b7160e01b60805152526024608051fd5b92607f1692611820565b823461020a5760805136600319011261020a57600f5490516001600160a01b039091168152602090f35b903461020a57602036600319011261020a57359063ffffffff60e01b821680920361020a57602091630271189760e51b148152f35b6020808252825181830181905290939260005b82811061196757505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501611945565b600435906001600160a01b0382168203610c0757565b602435906001600160a01b0382168203610c0757565b6001600160401b0381116119ba57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176119ba57604052565b9181601f84011215610c07578235916001600160401b038311610c07576020808501948460051b010111610c0757565b9181601f84011215610c07578235916001600160401b038311610c075760208381860195010111610c0757565b15611a5557565b60405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920636f6e74726f6c6c65722063616e2063616c6c20746869732066756044820152653731ba34b7b760d11b6064820152608490fd5b15611ab057565b60405162461bcd60e51b815260206004820152601a602482015279446f6e6174696f6e20616d6f756e7420697320746f6f206c6f7760301b6044820152606490fd5b90816020910312610c0757518015158103610c075790565b91908203918211611b1757565b634e487b7160e01b600052601160045260246000fd5b91908201809211611b1757565b8115611b44570490565b634e487b7160e01b600052601260045260246000fd5b81810292918115918404141715611b1757565b6001600160a01b03166000818152600a602052604081205490919015611c0d57611b9c600b54600c5490611b3a565b908252600a60205260408220546127109283820291808304851490151715611bf95750611bd8611bd0611bed938593611b3a565b600854611b5a565b04600954808211611bf1575b50600754611b5a565b0490565b905038611be4565b634e487b7160e01b81526011600452602490fd5b5090565b6001600160a01b039091168152602081019190915260400190565b9190811015611c3c5760051b0190565b634e487b7160e01b600052603260045260246000fd5b91906001600160a01b0380841615611c8f57811615611c7657611c7492611dd0565b565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b600260065414611cb9576002600655565b604051633ee5aeb560e01b8152600490fd5b6001600160a01b0380821692909183611d335750600080516020611ee583398151915291602091611cfe86600254611b2d565b6002555b169384611d1b5780600254036002555b604051908152a3565b84600052600082526040600020818154019055611d12565b60009084825281602052604082205490868210611d725750918160408760209588600080516020611ee583398151915298965283875203912055611d02565b60405163391434e360e21b81526001600160a01b03919091166004820152602481019190915260448101869052606490fd5b6005546001600160a01b03163303611db857565b60405163118cdaa760e01b8152336004820152602490fd5b916001600160a01b0380841615908115611ed9575b8115611ec8575b8115611ebc575b50611eb257907fcdbb40cb223fc5e95cfa1153e9f082ed0b88448ec0078d5e728df9b2b1796c7192611e816080936127109384611e3260115484611b5a565b0494611e4060125484611b5a565b0493611e56611e4f8688611b2d565b8094611b0a565b9280611ea1575b50611e6a86601354611b2d565b601355611e7985600754611b2d565b600755611ccb565b6013549060075491604051938452602084015260408301526060820152a1565b611eac903083611ccb565b38611e5d565b90611c7492611ccb565b83163014905038611df3565b809150601054168184161490611dec565b838116159150611de556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b8e3739e434798ed454ddeb3f7644f76145da80ed4f462a37b10177d2343bdbe64736f6c63430008160033a26469706673582212208b1bfadee36fee9a333252fd176869746b6ace79a9a930c6abb3b5e835e8620b64736f6c634300081600330000000000000000000000002697efce331b946d1a0ceb2bb0db5989ceafddd2000000000000000000000000420000000000000000000000000000000000000600000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000002626664c2603336e57b271c5c0b26f421741e481000000000000000000000000999a76f779a95222a9e1a9e1f996a4702d51500c