0x608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c806370a0823111610093578063a457c2d711610063578063a457c2d7146101e3578063a9059cbb146101f6578063dd62ed3e14610209578063f2fde38b1461021c575f5ffd5b806370a0823114610191578063715018a6146101b95780638da5cb5b146101c157806395d89b41146101db575f5ffd5b8063185e8e87116100ce578063185e8e871461014757806323b872dd1461015c578063313ce5671461016f578063395093511461017e575f5ffd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f5ffd5b6100fc61022f565b60405161010991906108ea565b60405180910390f35b610125610120366004610933565b6102bf565b6040519015158152602001610109565b6003545b604051908152602001610109565b61015a61015536600461095d565b6102d8565b005b61012561016a36600461097f565b610302565b60405160098152602001610109565b61012561018c366004610933565b61040f565b61013961019f36600461095d565b6001600160a01b03165f9081526001602052604090205490565b61015a610430565b5f546040516001600160a01b039091168152602001610109565b6100fc610443565b6101256101f1366004610933565b610452565b610125610204366004610933565b6104d7565b6101396102173660046109bd565b610527565b61015a61022a36600461095d565b610551565b60606005805461023e906109f4565b80601f016020809104026020016040519081016040528092919081815260200182805461026a906109f4565b80156102b55780601f1061028c576101008083540402835291602001916102b5565b820191905f5260205f20905b81548152906001019060200180831161029857829003601f168201915b5050505050905090565b5f336102cc8185856105ca565b60019150505b92915050565b6102e06106ed565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b0384166103325760405162461bcd60e51b815260040161032990610a2c565b60405180910390fd5b6001600160a01b0383166103585760405162461bcd60e51b815260040161032990610a71565b33610364858285610746565b6001600160a01b0385165f908152600160205260409020548381101561039c5760405162461bcd60e51b815260040161032990610ab4565b6001600160a01b038087165f8181526001602052604080822088860390559288168082529083902080548801905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103fb9088815260200190565b60405180910390a350600195945050505050565b5f336102cc8185856104218383610527565b61042b9190610afa565b6105ca565b6104386106ed565b6104415f6107be565b565b60606006805461023e906109f4565b5f338161045f8286610527565b9050838110156104bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610329565b6104cc82868684036105ca565b506001949350505050565b5f33806104f65760405162461bcd60e51b815260040161032990610a2c565b6001600160a01b03841661051c5760405162461bcd60e51b815260040161032990610a71565b6102cc81858561080d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6105596106ed565b6001600160a01b0381166105be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610329565b6105c7816107be565b50565b6001600160a01b03831661062c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610329565b6001600160a01b03821661068d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610329565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b031633146104415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610329565b5f6107518484610527565b90505f1981146107b857818110156107ab5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610329565b6107b884848484036105ca565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038084165f818152600160205260409020546004549092161480156108395750818111155b1561085d576001600160a01b0383165f9081526001602052604090208290556107b8565b8181101561087d5760405162461bcd60e51b815260040161032990610ab4565b6001600160a01b038085165f8181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108dc9086815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146105c7575f5ffd5b5f5f60408385031215610944575f5ffd5b823561094f8161091f565b946020939093013593505050565b5f6020828403121561096d575f5ffd5b81356109788161091f565b9392505050565b5f5f5f60608486031215610991575f5ffd5b833561099c8161091f565b925060208401356109ac8161091f565b929592945050506040919091013590565b5f5f604083850312156109ce575f5ffd5b82356109d98161091f565b915060208301356109e98161091f565b809150509250929050565b600181811c90821680610a0857607f821691505b602082108103610a2657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156102d257634e487b7160e01b5f52601160045260245ffdfea264697066735822122041f1c07669bdb92ff5164abf197a580226b1b04e9c991c8d709f5b0f6d61a09164736f6c634300081d0033
0x608060405234801561000f575f5ffd5b506040518060400160405280600981526020016810dc9e5c1d1bd0d05560ba1b8152506040518060400160405280600981526020016810dc9e5c1d1bd0d05560ba1b81525061006a6100656100aa60201b60201c565b6100ae565b6005610076838261026d565b506006610083828261026d565b5050506100a56100976100fd60201b60201c565b67016345785d8a000061010b565b61034c565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f546001600160a01b031690565b6001600160a01b0382166101655760405162461bcd60e51b815260206004820181905260248201527f7265766572743a206d696e7420746f20746865207a65726f2061646472657373604482015260640160405180910390fd5b8060035f8282546101769190610327565b90915550506001600160a01b0382165f818152600160209081526040808320805486019055805185815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806101fe57607f821691505b60208210810361021c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101d157805f5260205f20601f840160051c810160208510156102475750805b601f840160051c820191505b81811015610266575f8155600101610253565b5050505050565b81516001600160401b03811115610286576102866101d6565b61029a8161029484546101ea565b84610222565b6020601f8211600181146102cc575f83156102b55750848201515b5f19600385901b1c1916600184901b178455610266565b5f84815260208120601f198516915b828110156102fb57878501518255602094850194600190920191016102db565b508482101561031857868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561034657634e487b7160e01b5f52601160045260245ffd5b92915050565b610b4f806103595f395ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c806370a0823111610093578063a457c2d711610063578063a457c2d7146101e3578063a9059cbb146101f6578063dd62ed3e14610209578063f2fde38b1461021c575f5ffd5b806370a0823114610191578063715018a6146101b95780638da5cb5b146101c157806395d89b41146101db575f5ffd5b8063185e8e87116100ce578063185e8e871461014757806323b872dd1461015c578063313ce5671461016f578063395093511461017e575f5ffd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f5ffd5b6100fc61022f565b60405161010991906108ea565b60405180910390f35b610125610120366004610933565b6102bf565b6040519015158152602001610109565b6003545b604051908152602001610109565b61015a61015536600461095d565b6102d8565b005b61012561016a36600461097f565b610302565b60405160098152602001610109565b61012561018c366004610933565b61040f565b61013961019f36600461095d565b6001600160a01b03165f9081526001602052604090205490565b61015a610430565b5f546040516001600160a01b039091168152602001610109565b6100fc610443565b6101256101f1366004610933565b610452565b610125610204366004610933565b6104d7565b6101396102173660046109bd565b610527565b61015a61022a36600461095d565b610551565b60606005805461023e906109f4565b80601f016020809104026020016040519081016040528092919081815260200182805461026a906109f4565b80156102b55780601f1061028c576101008083540402835291602001916102b5565b820191905f5260205f20905b81548152906001019060200180831161029857829003601f168201915b5050505050905090565b5f336102cc8185856105ca565b60019150505b92915050565b6102e06106ed565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f6001600160a01b0384166103325760405162461bcd60e51b815260040161032990610a2c565b60405180910390fd5b6001600160a01b0383166103585760405162461bcd60e51b815260040161032990610a71565b33610364858285610746565b6001600160a01b0385165f908152600160205260409020548381101561039c5760405162461bcd60e51b815260040161032990610ab4565b6001600160a01b038087165f8181526001602052604080822088860390559288168082529083902080548801905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103fb9088815260200190565b60405180910390a350600195945050505050565b5f336102cc8185856104218383610527565b61042b9190610afa565b6105ca565b6104386106ed565b6104415f6107be565b565b60606006805461023e906109f4565b5f338161045f8286610527565b9050838110156104bf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610329565b6104cc82868684036105ca565b506001949350505050565b5f33806104f65760405162461bcd60e51b815260040161032990610a2c565b6001600160a01b03841661051c5760405162461bcd60e51b815260040161032990610a71565b6102cc81858561080d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b6105596106ed565b6001600160a01b0381166105be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610329565b6105c7816107be565b50565b6001600160a01b03831661062c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610329565b6001600160a01b03821661068d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610329565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b031633146104415760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610329565b5f6107518484610527565b90505f1981146107b857818110156107ab5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610329565b6107b884848484036105ca565b50505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038084165f818152600160205260409020546004549092161480156108395750818111155b1561085d576001600160a01b0383165f9081526001602052604090208290556107b8565b8181101561087d5760405162461bcd60e51b815260040161032990610ab4565b6001600160a01b038085165f8181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108dc9086815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146105c7575f5ffd5b5f5f60408385031215610944575f5ffd5b823561094f8161091f565b946020939093013593505050565b5f6020828403121561096d575f5ffd5b81356109788161091f565b9392505050565b5f5f5f60608486031215610991575f5ffd5b833561099c8161091f565b925060208401356109ac8161091f565b929592945050506040919091013590565b5f5f604083850312156109ce575f5ffd5b82356109d98161091f565b915060208301356109e98161091f565b809150509250929050565b600181811c90821680610a0857607f821691505b602082108103610a2657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b808201808211156102d257634e487b7160e01b5f52601160045260245ffdfea264697066735822122041f1c07669bdb92ff5164abf197a580226b1b04e9c991c8d709f5b0f6d61a09164736f6c634300081d0033