0 txs
0 calls
constructor
constructor(address _entryPoint)
functions
entryPoint
viewfunction entryPoint() view returns (address)
get
viewfunction get(address owner, address sponsor, address[] whitelistedAddresses, uint256 salt) view returns (address, address)
paymasterImplementation
viewfunction paymasterImplementation() view returns (address)
tokenEntryPointImplementation
viewfunction tokenEntryPointImplementation() view returns (address)
create
nonpayablefunction create(address owner, address sponsor, address[] whitelistedAddresses, uint256 salt) returns (address tokenEntryPoint, address paymaster)
events
EntryPointCreated
event EntryPointCreated(address indexed owner, address tokenEntryPoint, address paymaster)
errors
No errors.
creation bytecode
0x60e060405234801561001057600080fd5b506040516155b33803806155b383398101604081905261002f916100d8565b6001600160a01b038116608052604051819061004a906100be565b6001600160a01b039091168152602001604051809103906000f080158015610076573d6000803e3d6000fd5b506001600160a01b031660a05260405161008f906100cb565b604051809103906000f0801580156100ab573d6000803e3d6000fd5b506001600160a01b031660c05250610108565b612c1780610fa983390190565b6119f380613bc083390190565b6000602082840312156100ea57600080fd5b81516001600160a01b038116811461010157600080fd5b9392505050565b60805160a05160c051610e586101516000396000818160e601528181610257015261052101526000818160a50152818161034301526105ec015260006101250152610e586000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c8063296c2efa14620000635780634f8a633d146200009f5780638e3484d014620000e05780639ee01b5f1462000108578063b0d691fe146200011f575b600080fd5b6200007a62000074366004620006ee565b62000147565b604080516001600160a01b039384168152929091166020830152015b60405180910390f35b620000c77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200162000096565b620000c77f000000000000000000000000000000000000000000000000000000000000000081565b6200007a62000119366004620006ee565b62000437565b620000c77f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806200015b8888888862000437565b915091506000826001600160a01b03163b1180156200018457506000816001600160a01b03163b115b15620001955790925090506200042e565b6000865111620001ec5760405162461bcd60e51b815260206004820152601d60248201527f77686974656c697374656441646472657373657320697320656d70747900000060448201526064015b60405180910390fd5b600086600081518110620002045762000204620007ee565b6020026020010151905060008989838960405160200162000229949392919062000804565b60408051601f198184030181529082905280516020909101206001600160a01b038b166024830152915081907f00000000000000000000000000000000000000000000000000000000000000009060440160408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b17905251620002b090620006ad565b620002bd92919062000865565b8190604051809103906000f5905080158015620002de573d6000803e3d6000fd5b5060405163f2fde38b60e01b81526001600160a01b038c811660048301529196509086169063f2fde38b90602401600060405180830381600087803b1580156200032757600080fd5b505af11580156200033c573d6000803e3d6000fd5b50505050807f00000000000000000000000000000000000000000000000000000000000000008b878b6040516024016200037993929190620008a9565b60408051601f198184030181529181526020820180516001600160e01b0316633bd1279b60e11b17905251620003af90620006ad565b620003bc92919062000865565b8190604051809103906000f5905080158015620003dd573d6000803e3d6000fd5b50604080516001600160a01b0380841682528881166020830152929850918c16917f6069261d1e7f168b985591572adeb94fd3356d970997086ab9946f4555ddaa50910160405180910390a2505050505b94509492505050565b60008060008451116200048d5760405162461bcd60e51b815260206004820152601d60248201527f77686974656c697374656441646472657373657320697320656d7074790000006044820152606401620001e3565b600084600081518110620004a557620004a5620007ee565b60200260200101519050600087878387604051602001620004ca949392919062000804565b6040516020818303038152906040528051906020012090506000620005bb8260405180602001620004fb90620006ad565b601f1982820381018352601f9091011660408190526001600160a01b038c1660248201527f00000000000000000000000000000000000000000000000000000000000000009060440160408051601f19818403018152918152602080830180516001600160e01b031663189acdbd60e31b17905290516200057f9392910162000865565b60408051601f19818403018152908290526200059f92916020016200090e565b604051602081830303815290604052805190602001206200066d565b905060006200065d8360405180602001620005d690620006ad565b6020820181038252601f19601f820116604052507f00000000000000000000000000000000000000000000000000000000000000008d868d6040516024016200062293929190620008a9565b60408051601f19818403018152918152602080830180516001600160e01b0316633bd1279b60e11b17905290516200057f9392910162000865565b9a91995090975050505050505050565b60006200067c83833062000683565b9392505050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b6104e1806200094283390190565b80356001600160a01b0381168114620006d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080608085870312156200070557600080fd5b6200071085620006bb565b9350602062000721818701620006bb565b9350604086013567ffffffffffffffff808211156200073f57600080fd5b818801915088601f8301126200075457600080fd5b813581811115620007695762000769620006d8565b8060051b604051601f19603f83011681018181108582111715620007915762000791620006d8565b60405291825284820192508381018501918b831115620007b057600080fd5b938501935b82851015620007d957620007c985620006bb565b84529385019392850192620007b5565b989b979a509798606001359750505050505050565b634e487b7160e01b600052603260045260246000fd5b6bffffffffffffffffffffffff19606095861b8116825293851b841660148201529190931b9091166028820152603c810191909152605c0190565b60005b838110156200085c57818101518382015260200162000842565b50506000910152565b60018060a01b03831681526040602082015260008251806040840152620008948160608501602087016200083f565b601f01601f1916919091016060019392505050565b60006060820160018060a01b03808716845260208187168186015260606040860152828651808552608087019150828801945060005b81811015620008ff578551851683529483019491830191600101620008df565b50909998505050505050505050565b60008351620009228184602088016200083f565b835190830190620009388183602088016200083f565b0194935050505056fe60806040526040516104e13803806104e1833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ba60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60b1806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122004eafc12009ddd1bac09a0fbcdbbc0e38fdd09caf7f585983e4d324fd8f99a7364736f6c63430008140033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202719b7eea61ffea4cafbfc1062864eb2ceac573967aba2c6b4b713e3b8e4812564736f6c6343000814003360c0604052306080523480156200001557600080fd5b5060405162002c1738038062002c17833981016040819052620000389162000117565b6001600160a01b03811660a0526200004f62000056565b5062000149565b600054610100900460ff1615620000c35760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000115576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012a57600080fd5b81516001600160a01b03811681146200014257600080fd5b9392505050565b60805160a051612a8c6200018b60003960006104e4015260008181610562015281816105a20152818161063e0152818161067e01526107110152612a8c6000f3fe6080604052600436106100e85760003560e01c80634f1ef2861161008a5780638da5cb5b116100595780638da5cb5b14610269578063a619353114610287578063daf6a3f6146102a7578063f2fde38b146102c757600080fd5b80634f1ef2861461020c57806352d1902d1461021f578063715018a61461023457806377a24f361461024957600080fd5b80631fad948c116100c65780631fad948c1461018c57806335377214146101ac57806335567e1a146101cc5780633659cfe6146101ec57600080fd5b80630bd28e3b146100ed57806316e4cbf91461010f5780631b2e01b814610146575b600080fd5b3480156100f957600080fd5b5061010d610108366004611d15565b6102e7565b005b34801561011b57600080fd5b5060fc546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561015257600080fd5b5061017e610161366004611d50565b60fd60209081526000928352604080842090915290825290205481565b60405190815260200161013d565b34801561019857600080fd5b5061010d6101a7366004611dd0565b6102f2565b3480156101b857600080fd5b5061010d6101c7366004611e26565b610430565b3480156101d857600080fd5b5061017e6101e7366004611d50565b6104b3565b3480156101f857600080fd5b5061010d610207366004611e67565b610558565b61010d61021a366004611f47565b610634565b34801561022b57600080fd5b5061017e610704565b34801561024057600080fd5b5061010d6107b7565b34801561025557600080fd5b5061010d610264366004611f96565b6107cb565b34801561027557600080fd5b506065546001600160a01b0316610129565b34801561029357600080fd5b5061017e6102a2366004611ffa565b6108bd565b3480156102b357600080fd5b5061010d6102c2366004611e67565b6108ff565b3480156102d357600080fd5b5061010d6102e2366004611e67565b61096b565b6102ef6109e1565b50565b6102fa610a3b565b8161035b5760405162461bcd60e51b815260206004820152602660248201527f41413432206e65656473206174206c65617374206f6e652075736572206f70656044820152653930ba34b7b760d11b60648201526084015b60405180910390fd5b8160005b81811015610420573685858381811061037a5761037a612035565b905060200281019061038c919061204b565b905080356020820135604081901c906103a6848484610a94565b6103b08484610afb565b6103bb848483610e11565b6103c484610ef3565b6104118360006103d7606088018861206c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061103c92505050565b8460010194505050505061035f565b505061042b60018055565b505050565b6104386109e1565b60ff8054906000610448836120b2565b919050555060005b8181101561042b5760ff54610100600085858581811061047257610472612035565b90506020020160208101906104879190611e67565b6001600160a01b03168152602081019190915260400160002055806104ab816120b2565b915050610450565b604051631aab3f0d60e11b81526001600160a01b0383811660048301526001600160c01b03831660248301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906335567e1a90604401602060405180830381865afa15801561052d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055191906120d9565b9392505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105a05760405162461bcd60e51b8152600401610352906120f2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105e9600080516020612a10833981519152546001600160a01b031690565b6001600160a01b03161461060f5760405162461bcd60e51b81526004016103529061213e565b610618816102e7565b604080516000808252602082019092526102ef918391906110b2565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361067c5760405162461bcd60e51b8152600401610352906120f2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106c5600080516020612a10833981519152546001600160a01b031690565b6001600160a01b0316146106eb5760405162461bcd60e51b81526004016103529061213e565b6106f4826102e7565b610700828260016110b2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107a45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610352565b50600080516020612a1083398151915290565b6107bf6109e1565b6107c9600061121d565b565b600054610100900460ff16158080156107eb5750600054600160ff909116105b806108055750303b158015610805575060005460ff166001145b6108215760405162461bcd60e51b81526004016103529061218a565b6000805460ff191660011790558015610844576000805461ff0019166101001790555b61084c61126f565b61085461129e565b61085c6112c5565b61086683836112f4565b61087085856113c6565b80156108b6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006108c8826114b8565b6040805160208101929092523090820152466060820152608001604051602081830303815290604052805190602001209050919050565b6109076109e1565b803b6109495760405162461bcd60e51b815260206004820152601160248201527034b73b30b634b2103830bcb6b0b9ba32b960791b6044820152606401610352565b60fc80546001600160a01b0319166001600160a01b0392909216919091179055565b6109736109e1565b6001600160a01b0381166109d85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610352565b6102ef8161121d565b6065546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610352565b600260015403610a8d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610352565b6002600155565b6000610aa083836104b3565b905083602001358114610af55760405162461bcd60e51b815260206004820152601a60248201527f4141323520696e76616c6964206163636f756e74206e6f6e63650000000000006044820152606401610352565b50505050565b6004610b0a606084018461206c565b90501015610b525760405162461bcd60e51b81526020600482015260156024820152744141323620696e76616c69642063616c6c6461746160581b6044820152606401610352565b6000610b61606084018461206c565b610b70916004916000916121d8565b610b7991612202565b90506001600160e01b03198116610bd25760405162461bcd60e51b815260206004820152601e60248201527f4141323720696e76616c69642066756e6374696f6e2073656c6563746f7200006044820152606401610352565b60fe5460e01b6001600160e01b03199081169082161480610c0c575060fe546001600160e01b031982811664010000000090920460e01b16145b610c585760405162461bcd60e51b815260206004820152601e60248201527f4141323720696e76616c69642066756e6374696f6e2073656c6563746f7200006044820152606401610352565b60fe5460e01b6001600160e01b031990811690821603610d13576000610c89610c84606086018661206c565b6114d1565b9050826001600160a01b0316816001600160a01b03161480610cc5575060ff546001600160a01b03821660009081526101006020526040902054145b610d115760405162461bcd60e51b815260206004820152601d60248201527f4141323820636f6e7472616374206e6f742077686974656c69737465640000006044820152606401610352565b505b60fe546001600160e01b031964010000000090910460e01b81169082160361042b576000610d4c610d47606086018661206c565b6114f9565b905060005b81518110156108b6576000828281518110610d6e57610d6e612035565b60200260200101519050846001600160a01b0316816001600160a01b03161480610db2575060ff546001600160a01b03821660009081526101006020526040902054145b610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4141323820636f6e7472616374206e6f742077686974656c69737465640000006044820152606401610352565b5080610e09816120b2565b915050610d51565b6001600160401b038116158015610e275750813b155b15610e3657610e368383611517565b816001600160a01b03811663fff35b7285610e50816108bd565b6040518363ffffffff1660e01b8152600401610e6d929190612397565b6020604051808303816000875af1158015610e8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb091906123b9565b610af55760405162461bcd60e51b815260206004820152601460248201527320a0991a1039b4b3b730ba3ab9329032b93937b960611b6044820152606401610352565b6000610efe82611774565b90506000816001600160a01b031663f465c77e84610f1b866114b8565b60006040518463ffffffff1660e01b8152600401610f3b939291906123db565b6000604051808303816000875af1158015610f5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f829190810190612424565b915050600080610f91836118a5565b90925090506001600160a01b03821615610fe45760405162461bcd60e51b815260206004820152601460248201527320a0999a1039b4b3b730ba3ab9329032b93937b960611b6044820152606401610352565b80156108b65760405162461bcd60e51b815260206004820152602160248201527f41413332207061796d61737465722065787069726564206f72206e6f742064756044820152606560f81b6064820152608401610352565b600080846001600160a01b0316848460405161105891906124a4565b60006040518083038185875af1925050503d8060008114611095576040519150601f19603f3d011682016040523d82523d6000602084013e61109a565b606091505b5091509150816108b657805160208201fd5b60018055565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156110e55761042b836118f8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561113f575060408051601f3d908101601f1916820190925261113c918101906120d9565b60015b6111a25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610352565b600080516020612a1083398151915281146112115760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610352565b5061042b838383611994565b606580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166112965760405162461bcd60e51b8152600401610352906124b6565b6107c96119b9565b600054610100900460ff166107c95760405162461bcd60e51b8152600401610352906124b6565b600054610100900460ff166112ec5760405162461bcd60e51b8152600401610352906124b6565b6107c96119e9565b600054610100900460ff16158080156113145750600054600160ff909116105b8061132e5750303b15801561132e575060005460ff166001145b61134a5760405162461bcd60e51b81526004016103529061218a565b6000805460ff19166001179055801561136d576000805461ff0019166101001790555b600060ff5561137c8383611a10565b801561042b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6113cf8261096b565b60fc80546001600160a01b0319166001600160a01b0383161790556040516113f690611cec565b604051809103906000f080158015611412573d6000803e3d6000fd5b5060fb80546001600160a01b0319166001600160a01b0392909216919091179055604080518082018252601e81527f6578656375746528616464726573732c75696e743235362c627974657329000060209182015260fe805463ffffffff191663b61d27f61790558151606081019092526029808352906129e7908301398051906020012060fe60046101000a81548163ffffffff021916908360e01c02179055505050565b60006114c382611a1a565b805190602001209050919050565b6000806114e183600481876121d8565b8101906114ee9190612501565b509095945050505050565b6060600061150a83600481876121d8565b8101906114ee9190612661565b366000611527604085018561206c565b909250905060148110156115755760405162461bcd60e51b81526020600482015260156024820152744141313720696e76616c696420696e6974436f646560581b6044820152606401610352565b600061158460148284866121d8565b61158d9161273c565b60601c9050803b6115ef5760405162461bcd60e51b815260206004820152602660248201527f4141313620696e76616c696420666163746f7279206f7220646f6573206e6f7460448201526508195e1a5cdd60d21b6064820152608401610352565b60fb54604051632b870d1b60e11b81526000916001600160a01b03169063570e1a3690611622908790879060040161276f565b6020604051808303816000875af1158015611641573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116659190612783565b90506001600160a01b0385166116bd5760405162461bcd60e51b815260206004820152601b60248201527f4141313320696e6974436f6465206661696c6564206f72204f4f4700000000006044820152606401610352565b806001600160a01b0316856001600160a01b03161461171e5760405162461bcd60e51b815260206004820181905260248201527f4141313420696e6974436f6465206d7573742072657475726e2073656e6465726044820152606401610352565b803b61176c5760405162461bcd60e51b815260206004820181905260248201527f4141313520696e6974436f6465206d757374206372656174652073656e6465726044820152606401610352565b505050505050565b6000368161178661012085018561206c565b909250905060148110156117dc5760405162461bcd60e51b815260206004820152601b60248201527f4141333620696e76616c6964207061796d6173746572206461746100000000006044820152606401610352565b60006117eb60148284866121d8565b6117f49161273c565b60601c9050803b6118475760405162461bcd60e51b815260206004820152601b60248201527f41413330207061796d6173746572206e6f74206465706c6f79656400000000006044820152606401610352565b60fc546001600160a01b0382811691161461189d5760405162461bcd60e51b815260206004820152601660248201527520a0999a9034b73b30b634b2103830bcb6b0b9ba32b960511b6044820152606401610352565b949350505050565b600080826000036118bb57506000928392509050565b60006118c684611aed565b9050806040015165ffffffffffff164211806118ed5750806020015165ffffffffffff1642105b905194909350915050565b6001600160a01b0381163b6119655760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610352565b600080516020612a1083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61199d83611b5e565b6000825111806119aa5750805b1561042b57610af58383611b9e565b600054610100900460ff166119e05760405162461bcd60e51b8152600401610352906124b6565b6107c93361121d565b600054610100900460ff166110ac5760405162461bcd60e51b8152600401610352906124b6565b6107008282610430565b6060813560208301356000611a3a611a35604087018761206c565b611bc3565b90506000611a4e611a35606088018861206c565b9050608086013560a087013560c088013560e08901356101008a01356000611a7d611a356101208e018e61206c565b604080516001600160a01b039c909c1660208d01528b81019a909a5260608b019890985250608089019590955260a088019390935260c087019190915260e08601526101008501526101208401526101408084019190915281518084039091018152610160909201905292915050565b60408051606081018252600080825260208201819052918101919091528160a081901c65ffffffffffff8116600003611b29575065ffffffffffff5b604080516060810182526001600160a01b03909316835260d09490941c602083015265ffffffffffff16928101929092525090565b611b67816118f8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606105518383604051806060016040528060278152602001612a3060279139611bd6565b6000604051828085833790209392505050565b6060600080856001600160a01b031685604051611bf391906124a4565b600060405180830381855af49150503d8060008114611c2e576040519150601f19603f3d011682016040523d82523d6000602084013e611c33565b606091505b5091509150611c4486838387611c4e565b9695505050505050565b60608315611cbd578251600003611cb6576001600160a01b0385163b611cb65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610352565b508161189d565b61189d8383815115611cd25781518083602001fd5b8060405162461bcd60e51b815260040161035291906127a0565b610213806127d483390190565b80356001600160c01b0381168114611d1057600080fd5b919050565b600060208284031215611d2757600080fd5b61055182611cf9565b6001600160a01b03811681146102ef57600080fd5b8035611d1081611d30565b60008060408385031215611d6357600080fd5b8235611d6e81611d30565b9150611d7c60208401611cf9565b90509250929050565b60008083601f840112611d9757600080fd5b5081356001600160401b03811115611dae57600080fd5b6020830191508360208260051b8501011115611dc957600080fd5b9250929050565b600080600060408486031215611de557600080fd5b83356001600160401b03811115611dfb57600080fd5b611e0786828701611d85565b9094509250506020840135611e1b81611d30565b809150509250925092565b60008060208385031215611e3957600080fd5b82356001600160401b03811115611e4f57600080fd5b611e5b85828601611d85565b90969095509350505050565b600060208284031215611e7957600080fd5b813561055181611d30565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611ec257611ec2611e84565b604052919050565b60006001600160401b03821115611ee357611ee3611e84565b50601f01601f191660200190565b600082601f830112611f0257600080fd5b8135611f15611f1082611eca565b611e9a565b818152846020838601011115611f2a57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215611f5a57600080fd5b8235611f6581611d30565b915060208301356001600160401b03811115611f8057600080fd5b611f8c85828601611ef1565b9150509250929050565b60008060008060608587031215611fac57600080fd5b8435611fb781611d30565b93506020850135611fc781611d30565b925060408501356001600160401b03811115611fe257600080fd5b611fee87828801611d85565b95989497509550505050565b60006020828403121561200c57600080fd5b81356001600160401b0381111561202257600080fd5b8201610160818503121561055157600080fd5b634e487b7160e01b600052603260045260246000fd5b6000823561015e1983360301811261206257600080fd5b9190910192915050565b6000808335601e1984360301811261208357600080fd5b8301803591506001600160401b0382111561209d57600080fd5b602001915036819003821315611dc957600080fd5b6000600182016120d257634e487b7160e01b600052601160045260246000fd5b5060010190565b6000602082840312156120eb57600080fd5b5051919050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156121e857600080fd5b838611156121f557600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561222a5780818660040360031b1b83161692505b505092915050565b6000808335601e1984360301811261224957600080fd5b83016020810192503590506001600160401b0381111561226857600080fd5b803603821315611dc957600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006101606122bf846122b285611d45565b6001600160a01b03169052565b602083013560208501526122d66040840184612232565b8260408701526122e98387018284612277565b925050506122fa6060840184612232565b858303606087015261230d838284612277565b925050506080830135608085015260a083013560a085015260c083013560c085015260e083013560e085015261010080840135818601525061012061235481850185612232565b86840383880152612366848284612277565b935050505061014061237a81850185612232565b8684038388015261238c848284612277565b979650505050505050565b6040815260006123aa60408301856122a0565b90508260208301529392505050565b6000602082840312156123cb57600080fd5b8151801515811461055157600080fd5b6060815260006123ee60608301866122a0565b60208301949094525060400152919050565b60005b8381101561241b578181015183820152602001612403565b50506000910152565b6000806040838503121561243757600080fd5b82516001600160401b0381111561244d57600080fd5b8301601f8101851361245e57600080fd5b805161246c611f1082611eca565b81815286602083850101111561248157600080fd5b612492826020830160208601612400565b60209590950151949694955050505050565b60008251612062818460208701612400565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008060006060848603121561251657600080fd5b833561252181611d30565b92506020840135915060408401356001600160401b0381111561254357600080fd5b61254f86828701611ef1565b9150509250925092565b60006001600160401b0382111561257257612572611e84565b5060051b60200190565b600082601f83011261258d57600080fd5b8135602061259d611f1083612559565b82815260059290921b840181019181810190868411156125bc57600080fd5b8286015b848110156125d757803583529183019183016125c0565b509695505050505050565b600082601f8301126125f357600080fd5b81356020612603611f1083612559565b82815260059290921b8401810191818101908684111561262257600080fd5b8286015b848110156125d75780356001600160401b038111156126455760008081fd5b6126538986838b0101611ef1565b845250918301918301612626565b60008060006060848603121561267657600080fd5b83356001600160401b038082111561268d57600080fd5b818601915086601f8301126126a157600080fd5b813560206126b1611f1083612559565b82815260059290921b8401810191818101908a8411156126d057600080fd5b948201945b838610156126f75785356126e881611d30565b825294820194908201906126d5565b9750508701359250508082111561270d57600080fd5b6127198783880161257c565b9350604086013591508082111561272f57600080fd5b5061254f868287016125e2565b6bffffffffffffffffffffffff19813581811691601485101561222a5760149490940360031b84901b1690921692915050565b60208152600061189d602083018486612277565b60006020828403121561279557600080fd5b815161055181611d30565b60208152600082518060208401526127bf816040850160208701612400565b601f01601f1916919091016040019291505056fe608060405234801561001057600080fd5b506101f3806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063570e1a3614610030575b600080fd5b61004361003e3660046100ec565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b60008061006f601482858761015e565b61007891610188565b60601c9050600061008c846014818861015e565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525084519495509360209350849250905082850182875af190506000519350806100e357600093505b50505092915050565b600080602083850312156100ff57600080fd5b823567ffffffffffffffff8082111561011757600080fd5b818501915085601f83011261012b57600080fd5b81358181111561013a57600080fd5b86602082850101111561014c57600080fd5b60209290920196919550909350505050565b6000808585111561016e57600080fd5b8386111561017b57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156101b55780818660140360031b1b83161692505b50509291505056fea2646970667358221220ae47150d632594656fe259a0b1e27c8172db3a89a4ab59072d0ae47d8b421b2264736f6c6343000814003365786563757465426174636828616464726573735b5d2c75696e743235365b5d2c62797465735b5d29360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122020ab4607f155d224e3778511f8a346024b8085d5abd43dab5324564220a99a2f64736f6c6343000814003360a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516118db61011860003960008181610247015281816102900152818161032f0152818161036f015261040201526118db6000f3fe6080604052600436106100a75760003560e01c806394e1fc191161006457806394e1fc191461016e578063a9a234091461018e578063c4d66de8146101af578063c9a54e2b146101cf578063f2fde38b146101ef578063f465c77e1461020f57600080fd5b80633659cfe6146100ac5780634f1ef286146100ce57806352d1902d146100e1578063715018a61461010957806377c936621461011e5780638da5cb5b14610150575b600080fd5b3480156100b857600080fd5b506100cc6100c73660046112ff565b61023d565b005b6100cc6100dc366004611330565b610325565b3480156100ed57600080fd5b506100f66103f5565b6040519081526020015b60405180910390f35b34801561011557600080fd5b506100cc6104a8565b34801561012a57600080fd5b5060c9546001600160a01b03165b6040516001600160a01b039091168152602001610100565b34801561015c57600080fd5b506033546001600160a01b0316610138565b34801561017a57600080fd5b506100f6610189366004611421565b6104bc565b34801561019a57600080fd5b506100cc6101a936600461147f565b50505050565b3480156101bb57600080fd5b506100cc6101ca3660046112ff565b61061c565b3480156101db57600080fd5b506100cc6101ea3660046112ff565b610736565b3480156101fb57600080fd5b506100cc61020a3660046112ff565b610760565b34801561021b57600080fd5b5061022f61022a36600461150e565b6107d6565b6040516101009291906115ac565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361028e5760405162461bcd60e51b8152600401610285906115ce565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166102d760008051602061185f833981519152546001600160a01b031690565b6001600160a01b0316146102fd5760405162461bcd60e51b81526004016102859061161a565b61030681610a12565b6040805160008082526020820190925261032291839190610a1a565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361036d5760405162461bcd60e51b8152600401610285906115ce565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166103b660008051602061185f833981519152546001600160a01b031690565b6001600160a01b0316146103dc5760405162461bcd60e51b81526004016102859061161a565b6103e582610a12565b6103f182826001610a1a565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104955760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610285565b5060008051602061185f83398151915290565b6104b0610b8a565b6104ba6000610be4565b565b6000806104cc6060860186611666565b6104db916004916000916116ad565b6104e4916116d7565b90506001600160e01b0319811661053d5760405162461bcd60e51b815260206004820152601e60248201527f4141323720696e76616c69642066756e6374696f6e2073656c6563746f7200006044820152606401610285565b60c9546001600160e01b0319828116600160a01b90920460e01b16148061057c575060c9546001600160e01b0319828116600160c01b90920460e01b16145b6105c85760405162461bcd60e51b815260206004820152601e60248201527f4141323720696e76616c69642066756e6374696f6e2073656c6563746f7200006044820152606401610285565b6105d185610c36565b46306105e560c9546001600160a01b031690565b87876040516020016105fc96959493929190611707565b604051602081830303815290604052805190602001209150509392505050565b600054610100900460ff161580801561063c5750600054600160ff909116105b806106565750303b158015610656575060005460ff166001145b6106b95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610285565b6000805460ff1916600117905580156106dc576000805461ff0019166101001790555b6106e4610cad565b6106ed82610cdc565b80156103f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b61073e610b8a565b60c980546001600160a01b0319166001600160a01b0392909216919091179055565b610768610b8a565b6001600160a01b0381166107cd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610285565b61032281610be4565b60606000808036816107f46107ef6101208b018b611666565b610d77565b92965090945092509050604081148061080d5750604181145b6108595760405162461bcd60e51b815260206004820152601d60248201527f4141333520696e76616c6964207369676e6174757265206c656e6774680000006044820152606401610285565b4265ffffffffffff80851690821610156108af5760405162461bcd60e51b8152602060048201526017602482015276414133322065787069726564206f72206e6f742064756560481b6044820152606401610285565b8465ffffffffffff168165ffffffffffff16106109085760405162461bcd60e51b8152602060048201526017602482015276414133322065787069726564206f72206e6f742064756560481b6044820152606401610285565b600061094b6109188c88886104bc565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b905061098f84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508593925050610db49050565b6001600160a01b03166109aa60c9546001600160a01b031690565b6001600160a01b0316146109e4576109c460018787610dd8565b604051806020016040528060008152509097509750505050505050610a0a565b6109f060008787610dd8565b604080516020810190915260008152985096505050505050505b935093915050565b610322610b8a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610a5257610a4d83610e10565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610aac575060408051601f3d908101601f19168201909252610aa991810190611759565b60015b610b0f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610285565b60008051602061185f8339815191528114610b7e5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610285565b50610a4d838383610eac565b6033546001600160a01b031633146104ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610285565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060813560208301356000610c4d85850186611666565b610c5c916004916000916116ad565b610c65916116d7565b604080516001600160a01b03861660208201529081018490526001600160e01b0319821660608201529091506080016040516020818303038152906040529350505050919050565b600054610100900460ff16610cd45760405162461bcd60e51b815260040161028590611772565b6104ba610ed1565b60c98054604080518082018252601e81527f6578656375746528616464726573732c75696e743235362c6279746573290000602091820152635b0e93fb60a11b6001600160c01b03199093166001600160a01b0386161792909217909255815160608101909252602980835290611836908301398051906020012060c960186101000a81548163ffffffff021916908360e01c021790555050565b6000803681610d8a6054601487896116ad565b810190610d9791906117bd565b9094509250610da985605481896116ad565b949793965094505050565b6000806000610dc38585610f01565b91509150610dd081610f46565b509392505050565b600060d08265ffffffffffff16901b60a08465ffffffffffff16901b85610e00576000610e03565b60015b60ff161717949350505050565b6001600160a01b0381163b610e7d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610285565b60008051602061185f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610eb583611090565b600082511180610ec25750805b15610a4d576101a983836110d0565b600054610100900460ff16610ef85760405162461bcd60e51b815260040161028590611772565b6104ba33610be4565b6000808251604103610f375760208301516040840151606085015160001a610f2b878285856110fc565b94509450505050610f3f565b506000905060025b9250929050565b6000816004811115610f5a57610f5a6117f0565b03610f625750565b6001816004811115610f7657610f766117f0565b03610fc35760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610285565b6002816004811115610fd757610fd76117f0565b036110245760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610285565b6003816004811115611038576110386117f0565b036103225760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610285565b61109981610e10565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110f5838360405180606001604052806027815260200161187f602791396111c0565b9392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561113357506000905060036111b7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611187573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111b0576000600192509250506111b7565b9150600090505b94509492505050565b6060600080856001600160a01b0316856040516111dd9190611806565b600060405180830381855af49150503d8060008114611218576040519150601f19603f3d011682016040523d82523d6000602084013e61121d565b606091505b509150915061122e86838387611238565b9695505050505050565b606083156112a75782516000036112a0576001600160a01b0385163b6112a05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610285565b50816112b1565b6112b183836112b9565b949350505050565b8151156112c95781518083602001fd5b8060405162461bcd60e51b81526004016102859190611822565b80356001600160a01b03811681146112fa57600080fd5b919050565b60006020828403121561131157600080fd5b6110f5826112e3565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561134357600080fd5b61134c836112e3565b9150602083013567ffffffffffffffff8082111561136957600080fd5b818501915085601f83011261137d57600080fd5b81358181111561138f5761138f61131a565b604051601f8201601f19908116603f011681019083821181831017156113b7576113b761131a565b816040528281528860208487010111156113d057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000610160828403121561140557600080fd5b50919050565b803565ffffffffffff811681146112fa57600080fd5b60008060006060848603121561143657600080fd5b833567ffffffffffffffff81111561144d57600080fd5b611459868287016113f2565b9350506114686020850161140b565b91506114766040850161140b565b90509250925092565b6000806000806060858703121561149557600080fd5b8435600381106114a457600080fd5b9350602085013567ffffffffffffffff808211156114c157600080fd5b818701915087601f8301126114d557600080fd5b8135818111156114e457600080fd5b8860208285010111156114f657600080fd5b95986020929092019750949560400135945092505050565b60008060006060848603121561152357600080fd5b833567ffffffffffffffff81111561153a57600080fd5b611546868287016113f2565b9660208601359650604090950135949350505050565b60005b8381101561157757818101518382015260200161155f565b50506000910152565b6000815180845261159881602086016020860161155c565b601f01601f19169290920160200192915050565b6040815260006115bf6040830185611580565b90508260208301529392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000808335601e1984360301811261167d57600080fd5b83018035915067ffffffffffffffff82111561169857600080fd5b602001915036819003821315610f3f57600080fd5b600080858511156116bd57600080fd5b838611156116ca57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116ff5780818660040360031b1b83161692505b505092915050565b60c08152600061171a60c0830189611580565b6020830197909752506001600160a01b03948516604082015292909316606083015265ffffffffffff908116608083015290911660a090910152919050565b60006020828403121561176b57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600080604083850312156117d057600080fd5b6117d98361140b565b91506117e76020840161140b565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6000825161181881846020870161155c565b9190910192915050565b6020815260006110f5602083018461158056fe65786563757465426174636828616464726573735b5d2c75696e743235365b5d2c62797465735b5d29360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205b0d2f06e0b8b74b64739a15d8d918987764757e6bb279738fc392c64296861064736f6c634300081400330000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789