60806040526bdef376571332906a880000006006556001600755650ae9f7bcc00060085560016009553480156200003557600080fd5b50604051620014453803806200144583398101604081905262000058916200022c565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b8152508160039081620000a5919062000302565b506004620000b4828262000302565b505050620000d1620000cb6200010b60201b60201c565b6200010f565b620000e5336006546200016160201b60201c565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620003f6565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001bc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620001d09190620003ce565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b6000602082840312156200023f57600080fd5b81516001600160a01b03811681146200025757600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200028957607f821691505b602082108103620002aa57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200022757600081815260208120601f850160051c81016020861015620002d95750805b601f850160051c820191505b81811015620002fa57828155600101620002e5565b505050505050565b81516001600160401b038111156200031e576200031e6200025e565b62000336816200032f845462000274565b84620002b0565b602080601f8311600181146200036e5760008415620003555750858301515b600019600386901b1c1916600185901b178555620002fa565b600085815260208120601f198616915b828110156200039f578886015182559484019460019091019084016200037e565b5085821015620003be5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620003f057634e487b7160e01b600052601160045260246000fd5b92915050565b61103f80620004066000396000f3fe60806040526004361061014b5760003560e01c80638da5cb5b116100b6578063ac29bc961161006f578063ac29bc96146103a6578063c415b95c146103ae578063d5abeb01146103ce578063dd62ed3e146103e4578063f2fde38b14610404578063fce589d81461042457600080fd5b80638da5cb5b146102e957806395d89b411461031b5780639ed3edf014610330578063a42dce8014610346578063a457c2d714610366578063a9059cbb1461038657600080fd5b8063395093511161010857806339509351146102285780634bf2c7c91461024857806363b0b2641461026857806370a0823114610288578063715018a6146102be5780637c2976db146102d357600080fd5b806306fdde0314610150578063095ea7b31461017b578063096a8ab7146101ab57806318160ddd146101cd57806323b872dd146101ec578063313ce5671461020c575b600080fd5b34801561015c57600080fd5b5061016561043a565b6040516101729190610e14565b60405180910390f35b34801561018757600080fd5b5061019b610196366004610e77565b6104cc565b6040519015158152602001610172565b3480156101b757600080fd5b506101cb6101c6366004610ea3565b6104e6565b005b3480156101d957600080fd5b506002545b604051908152602001610172565b3480156101f857600080fd5b5061019b610207366004610ebc565b6104f3565b34801561021857600080fd5b5060405160128152602001610172565b34801561023457600080fd5b5061019b610243366004610e77565b610517565b34801561025457600080fd5b506101cb610263366004610ea3565b610539565b34801561027457600080fd5b506101cb610283366004610ea3565b610546565b34801561029457600080fd5b506101de6102a3366004610efd565b6001600160a01b031660009081526020819052604090205490565b3480156102ca57600080fd5b506101cb610553565b3480156102df57600080fd5b506101de60095481565b3480156102f557600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610172565b34801561032757600080fd5b50610165610567565b34801561033c57600080fd5b506101de60085481565b34801561035257600080fd5b506101cb610361366004610efd565b610576565b34801561037257600080fd5b5061019b610381366004610e77565b6105a0565b34801561039257600080fd5b5061019b6103a1366004610e77565b610620565b6101cb6106ff565b3480156103ba57600080fd5b50600a54610303906001600160a01b031681565b3480156103da57600080fd5b506101de60065481565b3480156103f057600080fd5b506101de6103ff366004610f21565b61078d565b34801561041057600080fd5b506101cb61041f366004610efd565b6107b8565b34801561043057600080fd5b506101de60075481565b60606003805461044990610f5a565b80601f016020809104026020016040519081016040528092919081815260200182805461047590610f5a565b80156104c25780601f10610497576101008083540402835291602001916104c2565b820191906000526020600020905b8154815290600101906020018083116104a557829003601f168201915b5050505050905090565b6000336104da81858561082e565b60019150505b92915050565b6104ee610953565b600855565b6000336105018582856109ad565b61050c858585610a27565b506001949350505050565b6000336104da81858561052a838361078d565b6105349190610faa565b61082e565b610541610953565b600755565b61054e610953565b600955565b61055b610953565b6105656000610bcb565b565b60606004805461044990610f5a565b61057e610953565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600033816105ae828661078d565b9050838110156106135760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61050c828686840361082e565b6000806064600754846106339190610fbd565b61063d9190610fd4565b905060006064600954856106519190610fbd565b61065b9190610fd4565b90506106673383610c1d565b6106713082610d47565b6001600160a01b038516337f38879da8f436f32c5ae144ba0ff18c834ef204a9560221c1d205e9461f8bc18f836106a88689610ff6565b6106b29190610ff6565b60085460408051928352602083018890528201869052606082015260800160405180910390a36106f685826106e78588610ff6565b6106f19190610ff6565b610e06565b95945050505050565b6008543410156107515760405162461bcd60e51b815260206004820152601760248201527f5472616e73616374696f6e20666565206e6f74206d6574000000000000000000604482015260640161060a565b600a546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561078a573d6000803e3d6000fd5b50565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6107c0610953565b6001600160a01b0381166108255760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161060a565b61078a81610bcb565b6001600160a01b0383166108905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161060a565b6001600160a01b0382166108f15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161060a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6005546001600160a01b031633146105655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161060a565b60006109b9848461078d565b90506000198114610a215781811015610a145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161060a565b610a21848484840361082e565b50505050565b6001600160a01b038316610a8b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161060a565b6001600160a01b038216610aed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161060a565b6001600160a01b03831660009081526020819052604090205481811015610b655760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161060a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610a21565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216610c7d5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161060a565b6001600160a01b03821660009081526020819052604090205481811015610cf15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161060a565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610946565b6001600160a01b038216610d9d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161060a565b8060026000828254610daf9190610faa565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000336104da818585610a27565b600060208083528351808285015260005b81811015610e4157858101830151858201604001528201610e25565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461078a57600080fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e62565b946020939093013593505050565b600060208284031215610eb557600080fd5b5035919050565b600080600060608486031215610ed157600080fd5b8335610edc81610e62565b92506020840135610eec81610e62565b929592945050506040919091013590565b600060208284031215610f0f57600080fd5b8135610f1a81610e62565b9392505050565b60008060408385031215610f3457600080fd5b8235610f3f81610e62565b91506020830135610f4f81610e62565b809150509250929050565b600181811c90821680610f6e57607f821691505b602082108103610f8e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104e0576104e0610f94565b80820281158282048414176104e0576104e0610f94565b600082610ff157634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104e0576104e0610f9456fea26469706673582212208003cb56fefce598c0277f8a71284a8fba748f25557f477c55df25e22593ca9a64736f6c6343000812003300000000000000000000000026364b9941fdcd7e6cbb2a4ced5c5afe9029f5a2