0x608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101bd578063a9059cbb146101c5578063dd62ed3e146101d8578063f2fde38b14610202575f80fd5b806370a0823114610184578063715018a6146101a35780638da5cb5b146101ad575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461011057806323b872dd14610127578063313ce5671461013a57806349bd5a5e14610159575b5f80fd5b6100d7610215565b6040516100e491906106d8565b60405180910390f35b6101006100fb36600461073e565b6102a1565b60405190151581526020016100e4565b61011960015481565b6040519081526020016100e4565b610100610135366004610766565b61030d565b6009546101479060ff1681565b60405160ff90911681526020016100e4565b60025461016c906001600160a01b031681565b6040516001600160a01b0390911681526020016100e4565b61011961019236600461079f565b600a6020525f908152604090205481565b6101ab610389565b005b5f546001600160a01b031661016c565b6100d761042f565b6101006101d336600461073e565b61043c565b6101196101e63660046107bf565b600860209081525f928352604080842090915290825290205481565b6101ab61021036600461079f565b610452565b60068054610222906107f0565b80601f016020809104026020016040519081016040528092919081815260200182805461024e906107f0565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b505050505081565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fb9086815260200190565b60405180910390a35060015b92915050565b5f610319848484610569565b506001600160a01b0384165f908152600860209081526040808320338452909152902054821115610348575f80fd5b6001600160a01b0384165f9081526008602090815260408083203384529091528120805484929061037a90849061083c565b90915550600195945050505050565b5f546001600160a01b031633146103e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60038054610222906107f0565b5f610448338484610569565b5060019392505050565b5f546001600160a01b031633146104ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103de565b6001600160a01b0381166105105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103de565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383165f90815260056020526040812054810361061d576002546001600160a01b038581169116148015906105bb57506001600160a01b0384165f9081526007602052604090205415155b156105f0576004546001600160a01b0385165f90815260056020526040812080549091906105ea90849061083c565b90915550505b6001600160a01b0384165f908152600a60205260408120805484929061061790849061083c565b90915550505b6001600160a01b0383165f908152600a60205260408120805484929061064490849061084f565b90915550505f829003610681576004546001600160a01b0384165f908152600760205260408120805490919061067b90849061084f565b90915550505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c691815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b81811015610703578581018301518582016040015282016106e7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610739575f80fd5b919050565b5f806040838503121561074f575f80fd5b61075883610723565b946020939093013593505050565b5f805f60608486031215610778575f80fd5b61078184610723565b925061078f60208501610723565b9150604084013590509250925092565b5f602082840312156107af575f80fd5b6107b882610723565b9392505050565b5f80604083850312156107d0575f80fd5b6107d983610723565b91506107e760208401610723565b90509250929050565b600181811c9082168061080457607f821691505b60208210810361082257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561030757610307610828565b808201808211156103075761030761082856fea2646970667358221220bf67981c2e7b3fe5b9abac5d5a7c9fc6d6e392917f55c1a8798ecdcc27eb404364736f6c63430008140033
0x6080604052602d6004556009805460ff19168117905534801562000021575f80fd5b5060405162000e4138038062000e418339810160408190526200004491620002cb565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600954620000979060ff16600a62000409565b620000a790633b9aca0062000419565b6001819055335f908152600a602090815260409182902092909255805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592600480830193928290030181865afa1580156200010d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001339190620002cb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200017f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a59190620002cb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001f0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002169190620002cb565b600280546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260078152664b41424f53485560c81b6020820152600390620002639082620004d3565b5060045460055f846001600160a01b03166001600160a01b031681526020019081526020015f20819055506040518060400160405280600b81526020016a4b41424f53485520494e5560a81b81525060069081620002c29190620004d3565b5050506200059b565b5f60208284031215620002dc575f80fd5b81516001600160a01b0381168114620002f3575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200034e57815f1904821115620003325762000332620002fa565b808516156200034057918102915b93841c939080029062000313565b509250929050565b5f82620003665750600162000403565b816200037457505f62000403565b81600181146200038d57600281146200039857620003b8565b600191505062000403565b60ff841115620003ac57620003ac620002fa565b50506001821b62000403565b5060208310610133831016604e8410600b8410161715620003dd575081810a62000403565b620003e983836200030e565b805f1904821115620003ff57620003ff620002fa565b0290505b92915050565b5f620002f360ff84168362000356565b8082028115828204841417620004035762000403620002fa565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200045c57607f821691505b6020821081036200047b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620004ce575f81815260208120601f850160051c81016020861015620004a95750805b601f850160051c820191505b81811015620004ca57828155600101620004b5565b5050505b505050565b81516001600160401b03811115620004ef57620004ef62000433565b620005078162000500845462000447565b8462000481565b602080601f8311600181146200053d575f8415620005255750858301515b5f19600386901b1c1916600185901b178555620004ca565b5f85815260208120601f198616915b828110156200056d578886015182559484019460019091019084016200054c565b50858210156200058b57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b61089880620005a95f395ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c806370a082311161008857806395d89b411161006357806395d89b41146101bd578063a9059cbb146101c5578063dd62ed3e146101d8578063f2fde38b14610202575f80fd5b806370a0823114610184578063715018a6146101a35780638da5cb5b146101ad575f80fd5b806306fdde03146100cf578063095ea7b3146100ed57806318160ddd1461011057806323b872dd14610127578063313ce5671461013a57806349bd5a5e14610159575b5f80fd5b6100d7610215565b6040516100e491906106d8565b60405180910390f35b6101006100fb36600461073e565b6102a1565b60405190151581526020016100e4565b61011960015481565b6040519081526020016100e4565b610100610135366004610766565b61030d565b6009546101479060ff1681565b60405160ff90911681526020016100e4565b60025461016c906001600160a01b031681565b6040516001600160a01b0390911681526020016100e4565b61011961019236600461079f565b600a6020525f908152604090205481565b6101ab610389565b005b5f546001600160a01b031661016c565b6100d761042f565b6101006101d336600461073e565b61043c565b6101196101e63660046107bf565b600860209081525f928352604080842090915290825290205481565b6101ab61021036600461079f565b610452565b60068054610222906107f0565b80601f016020809104026020016040519081016040528092919081815260200182805461024e906107f0565b80156102995780601f1061027057610100808354040283529160200191610299565b820191905f5260205f20905b81548152906001019060200180831161027c57829003601f168201915b505050505081565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102fb9086815260200190565b60405180910390a35060015b92915050565b5f610319848484610569565b506001600160a01b0384165f908152600860209081526040808320338452909152902054821115610348575f80fd5b6001600160a01b0384165f9081526008602090815260408083203384529091528120805484929061037a90849061083c565b90915550600195945050505050565b5f546001600160a01b031633146103e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b60038054610222906107f0565b5f610448338484610569565b5060019392505050565b5f546001600160a01b031633146104ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103de565b6001600160a01b0381166105105760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103de565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383165f90815260056020526040812054810361061d576002546001600160a01b038581169116148015906105bb57506001600160a01b0384165f9081526007602052604090205415155b156105f0576004546001600160a01b0385165f90815260056020526040812080549091906105ea90849061083c565b90915550505b6001600160a01b0384165f908152600a60205260408120805484929061061790849061083c565b90915550505b6001600160a01b0383165f908152600a60205260408120805484929061064490849061084f565b90915550505f829003610681576004546001600160a01b0384165f908152600760205260408120805490919061067b90849061084f565b90915550505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106c691815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b81811015610703578581018301518582016040015282016106e7565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610739575f80fd5b919050565b5f806040838503121561074f575f80fd5b61075883610723565b946020939093013593505050565b5f805f60608486031215610778575f80fd5b61078184610723565b925061078f60208501610723565b9150604084013590509250925092565b5f602082840312156107af575f80fd5b6107b882610723565b9392505050565b5f80604083850312156107d0575f80fd5b6107d983610723565b91506107e760208401610723565b90509250929050565b600181811c9082168061080457607f821691505b60208210810361082257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561030757610307610828565b808201808211156103075761030761082856fea2646970667358221220bf67981c2e7b3fe5b9abac5d5a7c9fc6d6e392917f55c1a8798ecdcc27eb404364736f6c63430008140033000000000000000000000000faa691dfe75f9f4e6551a252755eaa8cc3c58fb3