0x6080604052348015600e575f80fd5b506108608061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806301d90a7414610043578063150b7a021461005857806340c62af814610093575b5f80fd5b610056610051366004610562565b6100a6565b005b6100766100663660046105c7565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200160405180910390f35b6100566100a1366004610689565b6101c5565b80518251146100d05760405162461bcd60e51b81526004016100c790610701565b60405180910390fd5b5f5b8251811015610182575f8382815181106100ee576100ee610747565b602002602001015190505f83838151811061010b5761010b610747565b602090810291909101015160405163095ea7b360e01b8152306004820152602481018290529091506001600160a01b0383169063095ea7b3906044015f604051808303815f87803b15801561015e575f80fd5b505af1158015610170573d5f803e3d5ffd5b5050600190940193506100d292505050565b50604051309033907f02b7f2723a95031ca06ce090ad661724b4ae2239a0d473548ac20a04136b62a7906101b9908690869061075b565b60405180910390a35050565b81518351146101e65760405162461bcd60e51b81526004016100c790610701565b6001600160a01b03811661023c5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656365697665722061646472657373000000000000000060448201526064016100c7565b5f805b84518110156103ce575f85828151811061025b5761025b610747565b602002602001015190505f85838151811061027857610278610747565b60200260200101519050336001600160a01b0316826001600160a01b0316636352211e836040518263ffffffff1660e01b81526004016102ba91815260200190565b602060405180830381865afa1580156102d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f991906107e4565b6001600160a01b03161461034f5760405162461bcd60e51b815260206004820152601760248201527f53656e646572206d757374206f776e20746865204e465400000000000000000060448201526064016100c7565b604051632142170760e11b81523360048201526001600160a01b038681166024830152604482018390528316906342842e0e906064015f604051808303815f87803b15801561039c575f80fd5b505af11580156103ae573d5f803e3d5ffd5b5050505083806103bd90610806565b9450506001909201915061023f9050565b506040518181526001600160a01b0383169033907fcd4898aedb7a162f9670cf20219de40b978b936cb8f78cce3b65413718ea688c9060200160405180910390a350505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561045257610452610415565b604052919050565b5f67ffffffffffffffff82111561047357610473610415565b5060051b60200190565b6001600160a01b0381168114610491575f80fd5b50565b5f82601f8301126104a3575f80fd5b81356104b66104b18261045a565b610429565b8082825260208201915060208360051b8601019250858311156104d7575f80fd5b602085015b838110156104fd5780356104ef8161047d565b8352602092830192016104dc565b5095945050505050565b5f82601f830112610516575f80fd5b81356105246104b18261045a565b8082825260208201915060208360051b860101925085831115610545575f80fd5b602085015b838110156104fd57803583526020928301920161054a565b5f8060408385031215610573575f80fd5b823567ffffffffffffffff811115610589575f80fd5b61059585828601610494565b925050602083013567ffffffffffffffff8111156105b1575f80fd5b6105bd85828601610507565b9150509250929050565b5f805f80608085870312156105da575f80fd5b84356105e58161047d565b935060208501356105f58161047d565b925060408501359150606085013567ffffffffffffffff811115610617575f80fd5b8501601f81018713610627575f80fd5b803567ffffffffffffffff81111561064157610641610415565b610654601f8201601f1916602001610429565b818152886020838501011115610668575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f805f6060848603121561069b575f80fd5b833567ffffffffffffffff8111156106b1575f80fd5b6106bd86828701610494565b935050602084013567ffffffffffffffff8111156106d9575f80fd5b6106e586828701610507565b92505060408401356106f68161047d565b809150509250925092565b60208082526026908201527f496e70757420617272617973206d7573742068617665207468652073616d65206040820152650d8cadccee8d60d31b606082015260800190565b634e487b7160e01b5f52603260045260245ffd5b604080825283519082018190525f9060208501906060840190835b8181101561079d5783516001600160a01b0316835260209384019390920191600101610776565b5050838103602080860191909152855180835291810192508501905f5b818110156107d85782518452602093840193909201916001016107ba565b50919695505050505050565b5f602082840312156107f4575f80fd5b81516107ff8161047d565b9392505050565b5f6001820161082357634e487b7160e01b5f52601160045260245ffd5b506001019056fea264697066735822122041085dc4d3fe4c93d0b410ae426a9340c97d7b97a70e398de39a46f44bf98b4d64736f6c634300081a0033