0x6080604052600436106101015760003560e01c806370a08231116100955780639ff6190a116100645780639ff6190a14610276578063a9059cbb1461028b578063bc89f75b146102ab578063dd62ed3e146102be578063ef11e18b146102de57610108565b806370a0823114610215578063715018a6146102355780638da5cb5b1461024c57806395d89b411461026157610108565b806323b872dd116100d157806323b872dd1461019c57806327b1a8e9146101bc578063313ce567146101d157806349bd5a5e146101f357610108565b806282c1541461010d57806306fdde0314610138578063095ea7b31461015a57806318160ddd1461018757610108565b3661010857005b600080fd5b34801561011957600080fd5b506101226102fe565b60405161012f9190611067565b60405180910390f35b34801561014457600080fd5b5061014d610304565b60405161012f9190610e1a565b34801561016657600080fd5b5061017a610175366004610d4e565b61032e565b60405161012f9190610e0f565b34801561019357600080fd5b5061012261034b565b3480156101a857600080fd5b5061017a6101b7366004610d0e565b61036c565b3480156101c857600080fd5b506101226103f4565b3480156101dd57600080fd5b506101e66103fa565b60405161012f9190611070565b3480156101ff57600080fd5b506102086103ff565b60405161012f9190610da6565b34801561022157600080fd5b50610122610230366004610c9e565b61040e565b34801561024157600080fd5b5061024a610429565b005b34801561025857600080fd5b506102086104b1565b34801561026d57600080fd5b5061014d6104c0565b34801561028257600080fd5b506102086104dd565b34801561029757600080fd5b5061017a6102a6366004610d4e565b6104ec565b61024a6102b9366004610cd6565b610500565b3480156102ca57600080fd5b506101226102d9366004610cd6565b61089b565b3480156102ea57600080fd5b5061024a6102f9366004610d0e565b6108c6565b60055481565b60408051808201909152601081526f4d616769632050455045204d6f6e657960801b602082015290565b600061034261033b6108f9565b84846108fd565b50600192915050565b60006103596012600a6110dc565b61036790633b9aca006111ad565b905090565b60006103798484846109b1565b6103e9846103856108f9565b6103e48560405180606001604052806028815260200161122d602891396001600160a01b038a166000908152600260205260408120906103c36108f9565b6001600160a01b031681526020810191909152604001600020549190610b7b565b6108fd565b5060015b9392505050565b60065481565b601290565b6009546001600160a01b031681565b6001600160a01b031660009081526001602052604090205490565b6104316108f9565b6000546001600160a01b039081169116146104675760405162461bcd60e51b815260040161045e90610f29565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6040805180820190915260038152624d504d60e81b602082015290565b6003546001600160a01b031681565b60006103426104f96108f9565b84846109b1565b6105086108f9565b6000546001600160a01b039081169116146105355760405162461bcd60e51b815260040161045e90610f29565b600954600160b01b900460ff161561055f5760405162461bcd60e51b815260040161045e90611030565b600354600a80546001600160a01b0319166001600160a01b0392831690811782553060009081526002602090815260408083209383529281529082902060001990559154815163c45a015560e01b8152915193169263c45a015592600480840193919291829003018186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060f9190610cba565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190610cba565b6040518363ffffffff1660e01b81526004016106c1929190610dba565b602060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107139190610cba565b600980546001600160a01b0319166001600160a01b03928316179081905581166000908152600260209081526040808320868516845290915290206000199055600a541663f305d71934306107678161040e565b6000806000426040518863ffffffff1660e01b815260040161078e96959493929190610dd4565b6060604051808303818588803b1580156107a757600080fd5b505af11580156107bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e09190610d79565b5050506001600160a01b038281166000818152600260208181526040808420878716808652908352818520600019908190556009805460ff60a81b1916600160a81b178155600380548a168852848820839055815460ff60b01b1916600160b01b17825583885286865284882090548a168852855283872082905543600455549097168552838352818520818652835281852087905530855292825280842094845293905282822084905581522055610897610429565b5050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60405181815282847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a350505050565b3390565b6001600160a01b0383166109235760405162461bcd60e51b815260040161045e90610fec565b6001600160a01b0382166109495760405162461bcd60e51b815260040161045e90610eb0565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109a4908590611067565b60405180910390a3505050565b6001600160a01b0383166109d75760405162461bcd60e51b815260040161045e90610fa7565b6001600160a01b0382166109fd5760405162461bcd60e51b815260040161045e90610e6d565b60008111610a1d5760405162461bcd60e51b815260040161045e90610f5e565b600954600160b01b900460ff16151560011415610b00576009546001600160a01b038481169116148015610a5f5750600a546001600160a01b03838116911614155b15610a7a5760068054906000610a74836111e3565b91905055505b600954600160a01b900460ff16158015610aa157506009546001600160a01b038381169116145b8015610ab65750600954600160a81b900460ff165b15610b0057306000908152600160208190526040808320546009546001600160a01b03168452922054906005820483119060ff82161415610afc57610afc868686610bb5565b5050505b6001600160a01b038316600090815260016020526040902054610b239082610c2d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b529082610c6f565b6001600160a01b038316600090815260016020526040902055610b768383836108c6565b505050565b60008184841115610b9f5760405162461bcd60e51b815260040161045e9190610e1a565b506000610bac84866111cc565b95945050505050565b6009805460ff60a01b1916600160a01b179055610bd46012600a6110dc565b610bdf90600a6111ad565b6009546001600160a01b03166000908152600160205260409020541115610c1057610c0b838383610bb5565b610c1b565b610c1b8383836108c6565b50506009805460ff60a01b1916905550565b60006103ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b7b565b600080610c7c838561107e565b9050838110156103ed5760405162461bcd60e51b815260040161045e90610ef2565b600060208284031215610caf578081fd5b81356103ed81611214565b600060208284031215610ccb578081fd5b81516103ed81611214565b60008060408385031215610ce8578081fd5b8235610cf381611214565b91506020830135610d0381611214565b809150509250929050565b600080600060608486031215610d22578081fd5b8335610d2d81611214565b92506020840135610d3d81611214565b929592945050506040919091013590565b60008060408385031215610d60578182fd5b8235610d6b81611214565b946020939093013593505050565b600080600060608486031215610d8d578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015610e4657858101830151858201604001528201610e2a565b81811115610e575783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115611091576110916111fe565b500190565b80825b60018086116110a857506110d3565b8187048211156110ba576110ba6111fe565b808616156110c757918102915b9490941c938002611099565b94509492505050565b60006103ed60001960ff8516846000826110f8575060016103ed565b81611105575060006103ed565b816001811461111b576002811461112557611152565b60019150506103ed565b60ff841115611136576111366111fe565b6001841b91508482111561114c5761114c6111fe565b506103ed565b5060208310610133831016604e8410600b8410161715611185575081810a83811115611180576111806111fe565b6103ed565b6111928484846001611096565b8086048211156111a4576111a46111fe565b02949350505050565b60008160001904831182151516156111c7576111c76111fe565b500290565b6000828210156111de576111de6111fe565b500390565b60006000198214156111f7576111f76111fe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461122957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203969dbaeed1388ca7c9c59e8a198d15496e18b846caa22c31c6daa167259f7f864736f6c63430008010033
0x6080604052600380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905560006006556009805461ffff60a01b191690553480156200004a57600080fd5b5060405162001591380380620015918339810160408190526200006d9162000161565b6000620000796200012a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506005819055620000d66012600a620001c7565b620000e690633b9aca00620002bf565b306000818152600160205260408120929092556200012391906200010d6012600a620001c7565b6200011d90633b9aca00620002bf565b6200012e565b50620002f7565b3390565b60405181815282847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a350505050565b60006020828403121562000173578081fd5b5051919050565b80825b60018086116200018e5750620001be565b818704821115620001a357620001a3620002e1565b80861615620001b157918102915b9490941c9380026200017d565b94509492505050565b6000620001db60001960ff851684620001e2565b9392505050565b600082620001f357506001620001db565b816200020257506000620001db565b81600181146200021b576002811462000226576200025a565b6001915050620001db565b60ff8411156200023a576200023a620002e1565b6001841b915084821115620002535762000253620002e1565b50620001db565b5060208310610133831016604e8410600b841016171562000292575081810a838111156200028c576200028c620002e1565b620001db565b620002a184848460016200017a565b808604821115620002b657620002b6620002e1565b02949350505050565b6000816000190483118215151615620002dc57620002dc620002e1565b500290565b634e487b7160e01b600052601160045260246000fd5b61128a80620003076000396000f3fe6080604052600436106101015760003560e01c806370a08231116100955780639ff6190a116100645780639ff6190a14610276578063a9059cbb1461028b578063bc89f75b146102ab578063dd62ed3e146102be578063ef11e18b146102de57610108565b806370a0823114610215578063715018a6146102355780638da5cb5b1461024c57806395d89b411461026157610108565b806323b872dd116100d157806323b872dd1461019c57806327b1a8e9146101bc578063313ce567146101d157806349bd5a5e146101f357610108565b806282c1541461010d57806306fdde0314610138578063095ea7b31461015a57806318160ddd1461018757610108565b3661010857005b600080fd5b34801561011957600080fd5b506101226102fe565b60405161012f9190611067565b60405180910390f35b34801561014457600080fd5b5061014d610304565b60405161012f9190610e1a565b34801561016657600080fd5b5061017a610175366004610d4e565b61032e565b60405161012f9190610e0f565b34801561019357600080fd5b5061012261034b565b3480156101a857600080fd5b5061017a6101b7366004610d0e565b61036c565b3480156101c857600080fd5b506101226103f4565b3480156101dd57600080fd5b506101e66103fa565b60405161012f9190611070565b3480156101ff57600080fd5b506102086103ff565b60405161012f9190610da6565b34801561022157600080fd5b50610122610230366004610c9e565b61040e565b34801561024157600080fd5b5061024a610429565b005b34801561025857600080fd5b506102086104b1565b34801561026d57600080fd5b5061014d6104c0565b34801561028257600080fd5b506102086104dd565b34801561029757600080fd5b5061017a6102a6366004610d4e565b6104ec565b61024a6102b9366004610cd6565b610500565b3480156102ca57600080fd5b506101226102d9366004610cd6565b61089b565b3480156102ea57600080fd5b5061024a6102f9366004610d0e565b6108c6565b60055481565b60408051808201909152601081526f4d616769632050455045204d6f6e657960801b602082015290565b600061034261033b6108f9565b84846108fd565b50600192915050565b60006103596012600a6110dc565b61036790633b9aca006111ad565b905090565b60006103798484846109b1565b6103e9846103856108f9565b6103e48560405180606001604052806028815260200161122d602891396001600160a01b038a166000908152600260205260408120906103c36108f9565b6001600160a01b031681526020810191909152604001600020549190610b7b565b6108fd565b5060015b9392505050565b60065481565b601290565b6009546001600160a01b031681565b6001600160a01b031660009081526001602052604090205490565b6104316108f9565b6000546001600160a01b039081169116146104675760405162461bcd60e51b815260040161045e90610f29565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6040805180820190915260038152624d504d60e81b602082015290565b6003546001600160a01b031681565b60006103426104f96108f9565b84846109b1565b6105086108f9565b6000546001600160a01b039081169116146105355760405162461bcd60e51b815260040161045e90610f29565b600954600160b01b900460ff161561055f5760405162461bcd60e51b815260040161045e90611030565b600354600a80546001600160a01b0319166001600160a01b0392831690811782553060009081526002602090815260408083209383529281529082902060001990559154815163c45a015560e01b8152915193169263c45a015592600480840193919291829003018186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060f9190610cba565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a49190610cba565b6040518363ffffffff1660e01b81526004016106c1929190610dba565b602060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107139190610cba565b600980546001600160a01b0319166001600160a01b03928316179081905581166000908152600260209081526040808320868516845290915290206000199055600a541663f305d71934306107678161040e565b6000806000426040518863ffffffff1660e01b815260040161078e96959493929190610dd4565b6060604051808303818588803b1580156107a757600080fd5b505af11580156107bb573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107e09190610d79565b5050506001600160a01b038281166000818152600260208181526040808420878716808652908352818520600019908190556009805460ff60a81b1916600160a81b178155600380548a168852848820839055815460ff60b01b1916600160b01b17825583885286865284882090548a168852855283872082905543600455549097168552838352818520818652835281852087905530855292825280842094845293905282822084905581522055610897610429565b5050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60405181815282847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602084a350505050565b3390565b6001600160a01b0383166109235760405162461bcd60e51b815260040161045e90610fec565b6001600160a01b0382166109495760405162461bcd60e51b815260040161045e90610eb0565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109a4908590611067565b60405180910390a3505050565b6001600160a01b0383166109d75760405162461bcd60e51b815260040161045e90610fa7565b6001600160a01b0382166109fd5760405162461bcd60e51b815260040161045e90610e6d565b60008111610a1d5760405162461bcd60e51b815260040161045e90610f5e565b600954600160b01b900460ff16151560011415610b00576009546001600160a01b038481169116148015610a5f5750600a546001600160a01b03838116911614155b15610a7a5760068054906000610a74836111e3565b91905055505b600954600160a01b900460ff16158015610aa157506009546001600160a01b038381169116145b8015610ab65750600954600160a81b900460ff165b15610b0057306000908152600160208190526040808320546009546001600160a01b03168452922054906005820483119060ff82161415610afc57610afc868686610bb5565b5050505b6001600160a01b038316600090815260016020526040902054610b239082610c2d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b529082610c6f565b6001600160a01b038316600090815260016020526040902055610b768383836108c6565b505050565b60008184841115610b9f5760405162461bcd60e51b815260040161045e9190610e1a565b506000610bac84866111cc565b95945050505050565b6009805460ff60a01b1916600160a01b179055610bd46012600a6110dc565b610bdf90600a6111ad565b6009546001600160a01b03166000908152600160205260409020541115610c1057610c0b838383610bb5565b610c1b565b610c1b8383836108c6565b50506009805460ff60a01b1916905550565b60006103ed83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b7b565b600080610c7c838561107e565b9050838110156103ed5760405162461bcd60e51b815260040161045e90610ef2565b600060208284031215610caf578081fd5b81356103ed81611214565b600060208284031215610ccb578081fd5b81516103ed81611214565b60008060408385031215610ce8578081fd5b8235610cf381611214565b91506020830135610d0381611214565b809150509250929050565b600080600060608486031215610d22578081fd5b8335610d2d81611214565b92506020840135610d3d81611214565b929592945050506040919091013590565b60008060408385031215610d60578182fd5b8235610d6b81611214565b946020939093013593505050565b600080600060608486031215610d8d578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b81811015610e4657858101830151858201604001528201610e2a565b81811115610e575783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b90815260200190565b60ff91909116815260200190565b60008219821115611091576110916111fe565b500190565b80825b60018086116110a857506110d3565b8187048211156110ba576110ba6111fe565b808616156110c757918102915b9490941c938002611099565b94509492505050565b60006103ed60001960ff8516846000826110f8575060016103ed565b81611105575060006103ed565b816001811461111b576002811461112557611152565b60019150506103ed565b60ff841115611136576111366111fe565b6001841b91508482111561114c5761114c6111fe565b506103ed565b5060208310610133831016604e8410600b8410161715611185575081810a83811115611180576111806111fe565b6103ed565b6111928484846001611096565b8086048211156111a4576111a46111fe565b02949350505050565b60008160001904831182151516156111c7576111c76111fe565b500290565b6000828210156111de576111de6111fe565b500390565b60006000198214156111f7576111f76111fe565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461122957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203969dbaeed1388ca7c9c59e8a198d15496e18b846caa22c31c6daa167259f7f864736f6c634300080100330000000000000000000000000000000000000000000000008d0954b9d2bc8500