60806040526007805462ffff001916620101001790553480156200002257600080fd5b506200002e336200029a565b604080518082019091526005808252644f6861726160d81b60209092019182526200005c91600491620003d2565b50604080518082019091526005808252644f6861726160d81b6020909201918252620000899181620003d2565b506007805460ff19166001179055600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b815290516c0c9f2c9cd04674edea400000009291829163c45a0155916004808201926020929091908290030181865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000134919062000478565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000182573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a8919062000478565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000478565b600d80546001600160a01b0319166001600160a01b039290921691821790556000908152600860209081526040808320805460ff19908116600190811790925543600b5560078054821690553380865260069094529190932080549091169092179091556103e8600a55620002929083620002ea565b50506200050d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216620003455760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060036000828254620003599190620004aa565b90915550506001600160a01b0382166000908152600160205260408120805483929062000388908490620004aa565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620003e090620004d1565b90600052602060002090601f0160209004810192826200040457600085556200044f565b82601f106200041f57805160ff19168380011785556200044f565b828001600101855582156200044f579182015b828111156200044f57825182559160200191906001019062000432565b506200045d92915062000461565b5090565b5b808211156200045d576000815560010162000462565b6000602082840312156200048b57600080fd5b81516001600160a01b0381168114620004a357600080fd5b9392505050565b60008219821115620004cc57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620004e657607f821691505b6020821081036200050757634e487b7160e01b600052602260045260246000fd5b50919050565b61107c806200051d6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063a25f530b116100f9578063c6a53bd011610097578063d9e4158211610071578063d9e41582146103b1578063dd62ed3e146103c4578063f2fde38b146103fd578063fa67ae5a1461041057600080fd5b8063c6a53bd014610360578063cdeaf94f14610373578063d9bf481f1461038557600080fd5b8063b216fbeb116100d3578063b216fbeb1461030e578063b62496f514610321578063bf56b37114610344578063bffb691d1461034d57600080fd5b8063a25f530b146102d5578063a457c2d7146102e8578063a9059cbb146102fb57600080fd5b8063395093511161016657806370a082311161014057806370a0823114610281578063715018a6146102aa5780638da5cb5b146102b257806395d89b41146102cd57600080fd5b806339509351146102385780634294dd2a1461024b5780636ca50eab1461026e57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806316c38b3c146101ef57806318160ddd1461020457806323b872dd14610216578063313ce56714610229575b600080fd5b6101b6610423565b6040516101c39190610e17565b60405180910390f35b6101df6101da366004610e88565b6104b5565b60405190151581526020016101c3565b6102026101fd366004610ec2565b6104cd565b005b6003545b6040519081526020016101c3565b6101df610224366004610ee4565b610513565b604051601281526020016101c3565b6101df610246366004610e88565b610537565b6101df610259366004610f20565b60066020526000908152604090205460ff1681565b61020261027c366004610f3b565b610576565b61020861028f366004610f20565b6001600160a01b031660009081526001602052604090205490565b6102026105cb565b6000546040516001600160a01b0390911681526020016101c3565b6101b6610601565b6102026102e3366004610ec2565b610610565b6101df6102f6366004610e88565b610656565b6101df610309366004610e88565b6106e8565b61020261031c366004610f3b565b6106f6565b6101df61032f366004610f20565b60086020526000908152604090205460ff1681565b610208600b5481565b6007546101df9062010000900460ff1681565b61020261036e366004610ec2565b61074b565b6007546101df90610100900460ff1681565b6101df610393366004610f20565b6001600160a01b031660009081526009602052604090205460ff1690565b6102026103bf366004610f3b565b61078f565b6102086103d2366004610f6e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61020261040b366004610f20565b6107e4565b61020261041e366004610f98565b61087f565b60606004805461043290610fb1565b80601f016020809104026020016040519081016040528092919081815260200182805461045e90610fb1565b80156104ab5780601f10610480576101008083540402835291602001916104ab565b820191906000526020600020905b81548152906001019060200180831161048e57829003601f168201915b5050505050905090565b6000336104c38185856108ae565b5060019392505050565b6000546001600160a01b031633146105005760405162461bcd60e51b81526004016104f790610feb565b60405180910390fd5b6007805460ff1916911515919091179055565b6000336105218582856109d2565b61052c858585610a64565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091906104c39082908690610571908790611020565b6108ae565b6000546001600160a01b031633146105a05760405162461bcd60e51b81526004016104f790610feb565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146105f55760405162461bcd60e51b81526004016104f790610feb565b6105ff6000610dc7565b565b60606005805461043290610fb1565b6000546001600160a01b0316331461063a5760405162461bcd60e51b81526004016104f790610feb565b60078054911515620100000262ff000019909216919091179055565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909190838110156106db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104f7565b61052c82868684036108ae565b6000336104c3818585610a64565b6000546001600160a01b031633146107205760405162461bcd60e51b81526004016104f790610feb565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107755760405162461bcd60e51b81526004016104f790610feb565b600780549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146107b95760405162461bcd60e51b81526004016104f790610feb565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461080e5760405162461bcd60e51b81526004016104f790610feb565b6001600160a01b0381166108735760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f7565b61087c81610dc7565b50565b6000546001600160a01b031633146108a95760405162461bcd60e51b81526004016104f790610feb565b600a55565b6001600160a01b0383166109105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104f7565b6001600160a01b0382166109715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104f7565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381166000908152600260209081526040808320938616835292905220546000198114610a5e5781811015610a515760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104f7565b610a5e84848484036108ae565b50505050565b6001600160a01b038316610ac85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f7565b6001600160a01b038216610b2a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f7565b60075462010000900460ff1615610bb2576001600160a01b03831660009081526009602052604090205460ff16158015610b7d57506001600160a01b03821660009081526009602052604090205460ff16155b610bb25760405162461bcd60e51b81526004016104f790602080825260049082015263426f742160e01b604082015260600190565b600754610100900460ff168015610be157506001600160a01b03831660009081526008602052604090205460ff165b8015610c0a5750737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03831614155b15610c4957600a54600b54610c1f9190611020565b4311610c49576001600160a01b0382166000908152600960205260409020805460ff191660011790555b60075460ff161580610c7357506001600160a01b03831660009081526006602052604090205460ff165b610cbf5760405162461bcd60e51b815260206004820152601860248201527f5472616e73616374696f6e7320617265207061757365642e000000000000000060448201526064016104f7565b6001600160a01b03831660009081526001602052604090205481811015610d375760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104f7565b6001600160a01b03808516600090815260016020526040808220858503905591851681529081208054849290610d6e908490611020565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610dba91815260200190565b60405180910390a3610a5e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208083528351808285015260005b81811015610e4457858101830151858201604001528201610e28565b81811115610e56576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610e8357600080fd5b919050565b60008060408385031215610e9b57600080fd5b610ea483610e6c565b946020939093013593505050565b80358015158114610e8357600080fd5b600060208284031215610ed457600080fd5b610edd82610eb2565b9392505050565b600080600060608486031215610ef957600080fd5b610f0284610e6c565b9250610f1060208501610e6c565b9150604084013590509250925092565b600060208284031215610f3257600080fd5b610edd82610e6c565b60008060408385031215610f4e57600080fd5b610f5783610e6c565b9150610f6560208401610eb2565b90509250929050565b60008060408385031215610f8157600080fd5b610f8a83610e6c565b9150610f6560208401610e6c565b600060208284031215610faa57600080fd5b5035919050565b600181811c90821680610fc557607f821691505b602082108103610fe557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561104157634e487b7160e01b600052601160045260246000fd5b50019056fea2646970667358221220bd5f134f75bc53b79be87d419e0d0c00c26e9c3a83a4393ddaba8653f493032f64736f6c634300080d0033