0x608060405234801561000f575f80fd5b5060405161074738038061074783398101604081905261002e91610089565b60015f55600280546001600160a01b03199081163317909155600380546001600160a01b03948516908316179055600480549290931691161790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610680806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610060575f3560e01c80633849f410146100645780634c19eb681461008d5780638da5cb5b146100bf578063d0ebdbe7146100d2578063d1ad17bf146100e7578063fc879190146100fa575b5f80fd5b600454610077906001600160a01b031681565b60405161008491906102b7565b60405180910390f35b6100af61009b3660046102cb565b60056020525f908152604090205460ff1681565b6040519015158152602001610084565b600254610077906001600160a01b031681565b6100e56100e03660046102cb565b61010d565b005b600354610077906001600160a01b031681565b6100e56101083660046102f8565b610145565b6002546001600160a01b03163314610123575f80fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60025f540361019a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640160405180910390fd5b60025f9081556004546040516001600160a01b03909116906101bb9061029d565b6101c591906102b7565b604051809103905ff0801580156101de573d5f803e3d5ffd5b5060015460035460405163189cf22d60e21b815292935083926001600160a01b0380851693636273c8b49361021e938993339381169216906004016103c5565b5f604051808303815f87803b158015610235575f80fd5b505af1158015610247573d5f803e3d5ffd5b5050506001600160a01b0382165f81815260056020526040808220805460ff19166001179055519192507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b91a2505060015f5550565b61010d8061053e83390190565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b5f602082840312156102db575f80fd5b81356001600160a01b03811681146102f1575f80fd5b9392505050565b5f60208284031215610308575f80fd5b81356001600160401b0381111561031d575f80fd5b820161016081850312156102f1575f80fd5b5f808335601e19843603018112610344575f80fd5b83016020810192503590506001600160401b03811115610362575f80fd5b803603821315610370575f80fd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803562ffffff811681146103b1575f80fd5b919050565b803580151581146103b1575f80fd5b608081525f6103d4868761032f565b6101608060808601526103ec6101e086018385610377565b92506103fb60208a018a61032f565b9250607f19808786030160a0880152610415858584610377565b945061042460408c018c61032f565b94509150808786030160c088015261043d858584610377565b945061044c60608c018c61032f565b94509150808786030160e088015250610466848483610377565b93505061047560808a0161039f565b915061010061048a8187018462ffffff169052565b61049660a08b016103b6565b92506101206104a88188018515159052565b6104b460c08c0161039f565b93506101406104c98189018662ffffff169052565b60e08c0135848901526104dd838d016103b6565b8015156101808a015294506104f3828d016103b6565b15156101a08901528b01356101c08801525092935061051a925050602084019050866102aa565b61052760408301856102aa565b61053460608301846102aa565b9594505050505056fe608060405234801561000f575f80fd5b5060405161010d38038061010d83398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b60828061008b5f395ff3fe608060405236601c575f54601a906001600160a01b0316602b565b005b5f54601a906001600160a01b03165b604051365f82375f803683855af43d805f843e8180156048578184f35b8184fdfea264697066735822122022dea97624f32baa6d7f0f3425aa61ce4c2da2837a7f0077952215a26e736a0764736f6c63430008140033a26469706673582212206dc982c6daa0ec45d56df3314b0cb610f12230b432e85c456fe51651c4eeb9ef64736f6c6343000814003300000000000000000000000044a573c9ee6f99afa4bf4ccb1fd7d72f1d6afed20000000000000000000000005416bc9b03dda8eafb17895e3886e6b6b7bc9669