0x608060405234801561001057600080fd5b506040516104ac3803806104ac833981810160405281019061003291906102db565b807fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf75560008173ffffffffffffffffffffffffffffffffffffffff168360405161007c919061037e565b600060405180830381855af49150503d80600081146100b7576040519150601f19603f3d011682016040523d82523d6000602084013e6100bc565b606091505b5050905080610100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f7906103f2565b60405180910390fd5b505050610412565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61016f82610126565b810181811067ffffffffffffffff8211171561018e5761018d610137565b5b80604052505050565b60006101a1610108565b90506101ad8282610166565b919050565b600067ffffffffffffffff8211156101cd576101cc610137565b5b6101d682610126565b9050602081019050919050565b60005b838110156102015780820151818401526020810190506101e6565b60008484015250505050565b600061022061021b846101b2565b610197565b90508281526020810184848401111561023c5761023b610121565b5b6102478482856101e3565b509392505050565b600082601f8301126102645761026361011c565b5b815161027484826020860161020d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006102a88261027d565b9050919050565b6102b88161029d565b81146102c357600080fd5b50565b6000815190506102d5816102af565b92915050565b600080604083850312156102f2576102f1610112565b5b600083015167ffffffffffffffff8111156103105761030f610117565b5b61031c8582860161024f565b925050602061032d858286016102c6565b9150509250929050565b600081519050919050565b600081905092915050565b600061035882610337565b6103628185610342565b93506103728185602086016101e3565b80840191505092915050565b600061038a828461034d565b915081905092915050565b600082825260208201905092915050565b7f436f6e737472756374696f6e206661696c656400000000000000000000000000600082015250565b60006103dc601383610395565b91506103e7826103a6565b602082019050919050565b6000602082019050818103600083015261040b816103cf565b9050919050565b608c806104206000396000f3fe608060405236600a57005b7fc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7543660008037600080366000846127105a03f43d806000803e8160008114605157816000f35b816000fdfea264697066735822122058d86810da636f121de9cf01ffbb307a3cdaea7dd450d8f79558d26683e1d5f264736f6c634300081100330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000ead330d9da5ea08a3d5574d919ef6811a1f48e520000000000000000000000000000000000000000000000000000000000000004473be60400000000000000000000000000000000000000000000000000000000