0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b411461029b578063a457c2d7146102bb578063a9059cbb146102ce578063d5391393146102e1578063d547741f14610308578063dd62ed3e1461031b57600080fd5b806370a082311461022f57806375b238fc146102585780637d64bcb41461026d5780638bb9c5bf1461027557806391d148541461028857600080fd5b80632f2ff15d116100ff5780632f2ff15d146101d2578063313ce567146101e757806339509351146101f657806340c10f191461020957806342966c681461021c57600080fd5b806305d2035b1461013c57806306fdde0314610158578063095ea7b31461019a57806318160ddd146101ad57806323b872dd146101bf575b600080fd5b60045460ff165b60405190151581526020015b60405180910390f35b60408051808201909152601a81527f5377697373204672616e6320616e642050726f7065727469657300000000000060208201525b60405161014f9190610c66565b6101436101a8366004610cd0565b610354565b6003545b60405190815260200161014f565b6101436101cd366004610cfa565b61036b565b6101e56101e0366004610d36565b610431565b005b6040516008815260200161014f565b610143610204366004610cd0565b610473565b6101e5610217366004610cd0565b6104af565b6101e561022a366004610d62565b61059c565b6101b161023d366004610d7b565b6001600160a01b031660009081526001602052604090205490565b6101b1600080516020610e5183398151915281565b6101e561067d565b6101e5610283366004610d62565b610738565b610143610296366004610d36565b610745565b6040805180820190915260048152630434846560e41b602082015261018d565b6101436102c9366004610cd0565b610758565b6101436102dc366004610cd0565b61080d565b6101b17ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b6101e5610316366004610d36565b61081a565b6101b1610329366004610d96565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610361338484610858565b5060015b92915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156103e35760405162461bcd60e51b815260206004820152601c60248201527f434846503a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064015b60405180910390fd5b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610416908490610dd6565b90915550610427905084848461091a565b5060019392505050565b610449600080516020610e5183398151915233610a92565b6104655760405162461bcd60e51b81526004016103da90610de9565b61046f8282610abb565b5050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103619185906104aa908690610e3d565b610858565b6104d97ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc933610a92565b6105435760405162461bcd60e51b815260206004820152603560248201527f526f6c6542617365644163636573733a2063616c6c657220646f6573206e6f74604482015274206861766520746865204d494e54455220726f6c6560581b60648201526084016103da565b60045460ff16156105925760405162461bcd60e51b815260206004820152601960248201527810d211940e881b5a5b9d1a5b99c81a5cc8199a5b9a5cda1959603a1b60448201526064016103da565b61046f8282610b22565b336000908152600160205260409020548111156106055760405162461bcd60e51b815260206004820152602160248201527f434846503a206275726e20616d6f756e7420657863656564732062616c616e636044820152606560f81b60648201526084016103da565b3360009081526001602052604081208054839290610624908490610dd6565b92505081905550806003600082825461063d9190610dd6565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b610695600080516020610e5183398151915233610a92565b6106b15760405162461bcd60e51b81526004016103da90610de9565b60045460ff16156107005760405162461bcd60e51b815260206004820152601960248201527810d211940e881b5a5b9d1a5b99c81a5cc8199a5b9a5cda1959603a1b60448201526064016103da565b6004805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6107428133610c01565b50565b60006107518383610a92565b9392505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548211156107d75760405162461bcd60e51b8152602060048201526024808201527f434846503a2064656372656173656420616c6c6f77616e63652062656c6f77206044820152637a65726f60e01b60648201526084016103da565b3360008181526002602090815260408083206001600160a01b0388168452909152902054610361919085906104aa908690610dd6565b600061036133848461091a565b610832600080516020610e5183398151915233610a92565b61084e5760405162461bcd60e51b81526004016103da90610de9565b61046f8282610c01565b6001600160a01b0382166108b85760405162461bcd60e51b815260206004820152602160248201527f434846503a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103da565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03821661097b5760405162461bcd60e51b815260206004820152602260248201527f434846503a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103da565b6001600160a01b0383166000908152600160205260409020548111156109f15760405162461bcd60e51b815260206004820152602560248201527f434846503a207472616e7366657220616d6f756e7420657863656564732062616044820152646c616e636560d81b60648201526084016103da565b6001600160a01b03831660009081526001602052604081208054839290610a19908490610dd6565b90915550506001600160a01b03821660009081526001602052604081208054839290610a46908490610e3d565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161090d91815260200190565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610ac58282610a92565b61046f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6001600160a01b038216610b785760405162461bcd60e51b815260206004820152601e60248201527f434846503a206d696e7420746f20746865207a65726f2061646472657373000060448201526064016103da565b8060036000828254610b8a9190610e3d565b90915550506001600160a01b03821660009081526001602052604081208054839290610bb7908490610e3d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b610c0b8282610a92565b1561046f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600060208083528351808285015260005b81811015610c9357858101830151858201604001528201610c77565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ccb57600080fd5b919050565b60008060408385031215610ce357600080fd5b610cec83610cb4565b946020939093013593505050565b600080600060608486031215610d0f57600080fd5b610d1884610cb4565b9250610d2660208501610cb4565b9150604084013590509250925092565b60008060408385031215610d4957600080fd5b82359150610d5960208401610cb4565b90509250929050565b600060208284031215610d7457600080fd5b5035919050565b600060208284031215610d8d57600080fd5b61075182610cb4565b60008060408385031215610da957600080fd5b610db283610cb4565b9150610d5960208401610cb4565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036557610365610dc0565b60208082526034908201527f526f6c6542617365644163636573733a2063616c6c657220646f6573206e6f746040820152732068617665207468652041444d494e20726f6c6560601b606082015260800190565b8082018082111561036557610365610dc056fedf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42a2646970667358221220a82d3396f564a46da315b69a1f6dfb33ef556bb4f047ebd2b38fe504936b6c6264736f6c63430008130033
0x60806040526004805460ff1916905534801561001a57600080fd5b506100457fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233610074565b61006f7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc933610074565b6100f6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166100f2576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45b5050565b610ea6806101056000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b411461029b578063a457c2d7146102bb578063a9059cbb146102ce578063d5391393146102e1578063d547741f14610308578063dd62ed3e1461031b57600080fd5b806370a082311461022f57806375b238fc146102585780637d64bcb41461026d5780638bb9c5bf1461027557806391d148541461028857600080fd5b80632f2ff15d116100ff5780632f2ff15d146101d2578063313ce567146101e757806339509351146101f657806340c10f191461020957806342966c681461021c57600080fd5b806305d2035b1461013c57806306fdde0314610158578063095ea7b31461019a57806318160ddd146101ad57806323b872dd146101bf575b600080fd5b60045460ff165b60405190151581526020015b60405180910390f35b60408051808201909152601a81527f5377697373204672616e6320616e642050726f7065727469657300000000000060208201525b60405161014f9190610c66565b6101436101a8366004610cd0565b610354565b6003545b60405190815260200161014f565b6101436101cd366004610cfa565b61036b565b6101e56101e0366004610d36565b610431565b005b6040516008815260200161014f565b610143610204366004610cd0565b610473565b6101e5610217366004610cd0565b6104af565b6101e561022a366004610d62565b61059c565b6101b161023d366004610d7b565b6001600160a01b031660009081526001602052604090205490565b6101b1600080516020610e5183398151915281565b6101e561067d565b6101e5610283366004610d62565b610738565b610143610296366004610d36565b610745565b6040805180820190915260048152630434846560e41b602082015261018d565b6101436102c9366004610cd0565b610758565b6101436102dc366004610cd0565b61080d565b6101b17ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b6101e5610316366004610d36565b61081a565b6101b1610329366004610d96565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610361338484610858565b5060015b92915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120548211156103e35760405162461bcd60e51b815260206004820152601c60248201527f434846503a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064015b60405180910390fd5b6001600160a01b038416600090815260026020908152604080832033845290915281208054849290610416908490610dd6565b90915550610427905084848461091a565b5060019392505050565b610449600080516020610e5183398151915233610a92565b6104655760405162461bcd60e51b81526004016103da90610de9565b61046f8282610abb565b5050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916103619185906104aa908690610e3d565b610858565b6104d97ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc933610a92565b6105435760405162461bcd60e51b815260206004820152603560248201527f526f6c6542617365644163636573733a2063616c6c657220646f6573206e6f74604482015274206861766520746865204d494e54455220726f6c6560581b60648201526084016103da565b60045460ff16156105925760405162461bcd60e51b815260206004820152601960248201527810d211940e881b5a5b9d1a5b99c81a5cc8199a5b9a5cda1959603a1b60448201526064016103da565b61046f8282610b22565b336000908152600160205260409020548111156106055760405162461bcd60e51b815260206004820152602160248201527f434846503a206275726e20616d6f756e7420657863656564732062616c616e636044820152606560f81b60648201526084016103da565b3360009081526001602052604081208054839290610624908490610dd6565b92505081905550806003600082825461063d9190610dd6565b909155505060405181815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b610695600080516020610e5183398151915233610a92565b6106b15760405162461bcd60e51b81526004016103da90610de9565b60045460ff16156107005760405162461bcd60e51b815260206004820152601960248201527810d211940e881b5a5b9d1a5b99c81a5cc8199a5b9a5cda1959603a1b60448201526064016103da565b6004805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6107428133610c01565b50565b60006107518383610a92565b9392505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548211156107d75760405162461bcd60e51b8152602060048201526024808201527f434846503a2064656372656173656420616c6c6f77616e63652062656c6f77206044820152637a65726f60e01b60648201526084016103da565b3360008181526002602090815260408083206001600160a01b0388168452909152902054610361919085906104aa908690610dd6565b600061036133848461091a565b610832600080516020610e5183398151915233610a92565b61084e5760405162461bcd60e51b81526004016103da90610de9565b61046f8282610c01565b6001600160a01b0382166108b85760405162461bcd60e51b815260206004820152602160248201527f434846503a20617070726f766520746f20746865207a65726f206164647265736044820152607360f81b60648201526084016103da565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03821661097b5760405162461bcd60e51b815260206004820152602260248201527f434846503a207472616e7366657220746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103da565b6001600160a01b0383166000908152600160205260409020548111156109f15760405162461bcd60e51b815260206004820152602560248201527f434846503a207472616e7366657220616d6f756e7420657863656564732062616044820152646c616e636560d81b60648201526084016103da565b6001600160a01b03831660009081526001602052604081208054839290610a19908490610dd6565b90915550506001600160a01b03821660009081526001602052604081208054839290610a46908490610e3d565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161090d91815260200190565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b610ac58282610a92565b61046f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6001600160a01b038216610b785760405162461bcd60e51b815260206004820152601e60248201527f434846503a206d696e7420746f20746865207a65726f2061646472657373000060448201526064016103da565b8060036000828254610b8a9190610e3d565b90915550506001600160a01b03821660009081526001602052604081208054839290610bb7908490610e3d565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b610c0b8282610a92565b1561046f576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600060208083528351808285015260005b81811015610c9357858101830151858201604001528201610c77565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610ccb57600080fd5b919050565b60008060408385031215610ce357600080fd5b610cec83610cb4565b946020939093013593505050565b600080600060608486031215610d0f57600080fd5b610d1884610cb4565b9250610d2660208501610cb4565b9150604084013590509250925092565b60008060408385031215610d4957600080fd5b82359150610d5960208401610cb4565b90509250929050565b600060208284031215610d7457600080fd5b5035919050565b600060208284031215610d8d57600080fd5b61075182610cb4565b60008060408385031215610da957600080fd5b610db283610cb4565b9150610d5960208401610cb4565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036557610365610dc0565b60208082526034908201527f526f6c6542617365644163636573733a2063616c6c657220646f6573206e6f746040820152732068617665207468652041444d494e20726f6c6560601b606082015260800190565b8082018082111561036557610365610dc056fedf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42a2646970667358221220a82d3396f564a46da315b69a1f6dfb33ef556bb4f047ebd2b38fe504936b6c6264736f6c63430008130033