60806040526007805460ff191660011790553480156200001e57600080fd5b5060006200002b620001e0565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260058082526409ee48aa8960db1b6020909201918252620000a391600691620001e4565b5060405180606001604052806021815260200162001449602191398051620000d491600591602090910190620001e4565b506004805460ff1916600a90811791829055620000f59160ff169062000301565b6200010590631fb80f48620003f9565b6003818155620001159162000293565b730872b71efc37cb8dde22b2118de3d800427fdba060005260016020527f4e4350310a41566e76748ce4abbb320a386129e2f4092dffeb3cc00e46d8ac8355600454620001679060ff16600a62000301565b6200017590610144620003f9565b33600090815260016020526040808220929092556003549151730872b71efc37cb8dde22b2118de3d800427fdba0927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001d291906200028a565b60405180910390a36200046e565b3390565b828054620001f2906200041b565b90600052602060002090601f01602090048101928262000216576000855562000261565b82601f106200023157805160ff191683800117855562000261565b8280016001018555821562000261579182015b828111156200026157825182559160200191906001019062000244565b506200026f92915062000273565b5090565b5b808211156200026f576000815560010162000274565b90815260200190565b600082620002af57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620002c85750620002f8565b818704821115620002dd57620002dd62000458565b80861615620002eb57918102915b9490941c938002620002b7565b94509492505050565b60006200031560001960ff8516846200031c565b9392505050565b6000826200032d5750600162000315565b816200033c5750600062000315565b8160018114620003555760028114620003605762000394565b600191505062000315565b60ff84111562000374576200037462000458565b6001841b9150848211156200038d576200038d62000458565b5062000315565b5060208310610133831016604e8410600b8410161715620003cc575081810a83811115620003c657620003c662000458565b62000315565b620003db8484846001620002b4565b808604821115620003f057620003f062000458565b02949350505050565b600081600019048311821515161562000416576200041662000458565b500290565b6002810460018216806200043057607f821691505b602082108114156200045257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b610fcb806200047e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806381b2d07b116100a2578063a457c2d711610071578063a457c2d714610211578063a9059cbb14610224578063d29d44ee14610237578063dd62ed3e1461024a578063f2fde38b1461025d57610116565b806381b2d07b146101d95780638da5cb5b146101e157806395d89b41146101f6578063a0712d68146101fe57610116565b8063313ce567116100e9578063313ce56714610181578063395093511461019657806370a08231146101a9578063715018a6146101bc578063729ad39e146101c657610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461015957806323b872dd1461016e575b600080fd5b610123610270565b6040516101309190610c10565b60405180910390f35b61014c610147366004610aef565b610302565b6040516101309190610c05565b61016161031f565b6040516101309190610e5a565b61014c61017c366004610ab4565b610325565b6101896103ac565b6040516101309190610e63565b61014c6101a4366004610aef565b6103b5565b6101616101b7366004610a68565b610403565b6101c461043c565b005b6101c46101d4366004610b18565b6104c4565b61014c610573565b6101e96105c3565b6040516101309190610bf1565b6101236105d2565b61014c61020c366004610bd9565b6105e1565b61014c61021f366004610aef565b610631565b61014c610232366004610aef565b610699565b6101c4610245366004610a68565b6106ad565b610161610258366004610a82565b61072e565b6101c461026b366004610a68565b610759565b60606006805461027f90610ea0565b80601f01602080910402602001604051908101604052809291908181526020018280546102ab90610ea0565b80156102f85780601f106102cd576101008083540402835291602001916102f8565b820191906000526020600020905b8154815290600101906020018083116102db57829003601f168201915b5050505050905090565b600061031661030f61079a565b848461079e565b50600192915050565b60035490565b6000610332848484610816565b6103a28461033e61079a565b61039d85604051806060016040528060288152602001610f23602891396001600160a01b038a1660009081526002602052604081209061037c61079a565b6001600160a01b03168152602081019190915260400160002054919061092d565b61079e565b5060019392505050565b60045460ff1690565b60006103166103c261079a565b8461039d85600260006103d361079a565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610967565b6001600160a01b03811660009081526001602052604081205460075460ff16610431576402540be400610433565b805b9150505b919050565b61044461079a565b6000546001600160a01b0390811691161461047a5760405162461bcd60e51b815260040161047190610da0565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b805160005b8181101561056e578281815181106104f157634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316730872b71efc37cb8dde22b2118de3d800427fdba06001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6402540be4006040516105549190610e5a565b60405180910390a38061056681610edb565b9150506104c9565b505050565b600061057d61079a565b6000546001600160a01b039081169116146105aa5760405162461bcd60e51b815260040161047190610da0565b506007805460ff19811660ff9182161517918290551690565b6000546001600160a01b031690565b60606005805461027f90610ea0565b60006105eb61079a565b6000546001600160a01b039081169116146106185760405162461bcd60e51b815260040161047190610da0565b61062961062361079a565b8361099d565b506001919050565b600061031661063e61079a565b8461039d85604051806060016040528060258152602001610f71602591396002600061066861079a565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061092d565b60006103166106a661079a565b8484610816565b6001600160a01b0381166106d35760405162461bcd60e51b815260040161047190610cec565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61076161079a565b6000546001600160a01b0390811691161461078e5760405162461bcd60e51b815260040161047190610da0565b610797816106ad565b50565b3390565b6001600160a01b0383166107c45760405162461bcd60e51b815260040161047190610ca8565b6001600160a01b0382166107ea5760405162461bcd60e51b815260040161047190610e18565b6001600160a01b0392831660009081526002602090815260408083209490951682529290925291902055565b6001600160a01b03831661083c5760405162461bcd60e51b815260040161047190610c63565b6001600160a01b0382166108625760405162461bcd60e51b815260040161047190610dd5565b61089f81604051806060016040528060268152602001610f4b602691396001600160a01b038616600090815260016020526040902054919061092d565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546108ce9082610967565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610920908590610e5a565b60405180910390a3505050565b600081848411156109515760405162461bcd60e51b81526004016104719190610c10565b50600061095e8486610e89565b95945050505050565b6000806109748385610e71565b9050838110156109965760405162461bcd60e51b815260040161047190610d32565b9392505050565b6001600160a01b0382166109c35760405162461bcd60e51b815260040161047190610d69565b6003546109d09082610967565b6003556001600160a01b0382166000908152600160205260409020546109f69082610967565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a45908590610e5a565b60405180910390a35050565b80356001600160a01b038116811461043757600080fd5b600060208284031215610a79578081fd5b61099682610a51565b60008060408385031215610a94578081fd5b610a9d83610a51565b9150610aab60208401610a51565b90509250929050565b600080600060608486031215610ac8578081fd5b610ad184610a51565b9250610adf60208501610a51565b9150604084013590509250925092565b60008060408385031215610b01578182fd5b610b0a83610a51565b946020939093013593505050565b60006020808385031215610b2a578182fd5b823567ffffffffffffffff80821115610b41578384fd5b818501915085601f830112610b54578384fd5b813581811115610b6657610b66610f0c565b83810260405185828201018181108582111715610b8557610b85610f0c565b604052828152858101935084860182860187018a1015610ba3578788fd5b8795505b83861015610bcc57610bb881610a51565b855260019590950194938601938601610ba7565b5098975050505050505050565b600060208284031215610bea578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610c3c57858101830151858201604001528201610c20565b81811115610c4d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526025908201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601f908201527f42455032303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115610e8457610e84610ef6565b500190565b600082821015610e9b57610e9b610ef6565b500390565b600281046001821680610eb457607f821691505b60208210811415610ed557634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610eef57610eef610ef6565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212203a72e1921e728a2c072512b871ef0ed5d2638dd303150e63d0e12558b387e85964736f6c634300080000334f726967696e45746865722072657761726473206f6e2065746873746b2e70726f