0x60806040526040518060400160405280600681526020017f4475725065730000000000000000000000000000000000000000000000000000815250600090816200004a9190620003ce565b506040518060400160405280600281526020017f445000000000000000000000000000000000000000000000000000000000000081525060019081620000919190620003ce565b506103e96002556000600355600a600455348015620000af57600080fd5b50600254600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004b5565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001d657607f821691505b602082108103620001ec57620001eb6200018e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000217565b62000262868362000217565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002af620002a9620002a3846200027a565b62000284565b6200027a565b9050919050565b6000819050919050565b620002cb836200028e565b620002e3620002da82620002b6565b84845462000224565b825550505050565b600090565b620002fa620002eb565b62000307818484620002c0565b505050565b5b818110156200032f5762000323600082620002f0565b6001810190506200030d565b5050565b601f8211156200037e576200034881620001f2565b620003538462000207565b8101602085101562000363578190505b6200037b620003728562000207565b8301826200030c565b50505b505050565b600082821c905092915050565b6000620003a36000198460080262000383565b1980831691505092915050565b6000620003be838362000390565b9150826002028217905092915050565b620003d98262000154565b67ffffffffffffffff811115620003f557620003f46200015f565b5b620004018254620001bd565b6200040e82828562000333565b600060209050601f83116001811462000446576000841562000431578287015190505b6200043d8582620003b0565b865550620004ad565b601f1984166200045686620001f2565b60005b82811015620004805784890151825560018201915060208501945060208101905062000459565b86831015620004a057848901516200049c601f89168262000390565b8355505b6001600288020188555050505b505050505050565b610c5680620004c56000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806370a082311161006657806370a08231146101225780638d75fe051461015257806395d89b4114610170578063a0712d681461018e578063a9059cbb146101aa57610093565b806306fdde031461009857806318160ddd146100b6578063239c70ae146100d457806360aae89a146100f2575b600080fd5b6100a06101da565b6040516100ad91906107c4565b60405180910390f35b6100be610268565b6040516100cb91906107ff565b60405180910390f35b6100dc61026e565b6040516100e991906107ff565b60405180910390f35b61010c6004803603810190610107919061087d565b610274565b60405161011991906108c5565b60405180910390f35b61013c6004803603810190610137919061087d565b610294565b60405161014991906107ff565b60405180910390f35b61015a6102ac565b60405161016791906107ff565b60405180910390f35b6101786102b2565b60405161018591906107c4565b60405180910390f35b6101a860048036038101906101a3919061090c565b610340565b005b6101c460048036038101906101bf9190610939565b610595565b6040516101d191906108c5565b60405180910390f35b600080546101e7906109a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610213906109a8565b80156102605780601f1061023557610100808354040283529160200191610260565b820191906000526020600020905b81548152906001019060200180831161024357829003601f168201915b505050505081565b60025481565b60045481565b60066020528060005260406000206000915054906101000a900460ff1681565b60056020528060005260406000206000915090505481565b60035481565b600180546102bf906109a8565b80601f01602080910402602001604051908101604052809291908181526020018280546102eb906109a8565b80156103385780601f1061030d57610100808354040283529160200191610338565b820191906000526020600020905b81548152906001019060200180831161031b57829003601f168201915b505050505081565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166103cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c390610a25565b60405180910390fd5b806000811180156103df57506004548111155b61041e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041590610a91565b60405180910390fd5b6002548260035461042f9190610ae0565b1115610470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046790610b60565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104bf9190610ae0565b9250508190555081600360008282546104d89190610ae0565b9250508190555060025460035410610543576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858360405161058991906107ff565b60405180910390a25050565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090610bcc565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106689190610bec565b9250508190555081600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106be9190610ae0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161072291906107ff565b60405180910390a36001905092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561076e578082015181840152602081019050610753565b60008484015250505050565b6000601f19601f8301169050919050565b600061079682610734565b6107a0818561073f565b93506107b0818560208601610750565b6107b98161077a565b840191505092915050565b600060208201905081810360008301526107de818461078b565b905092915050565b6000819050919050565b6107f9816107e6565b82525050565b600060208201905061081460008301846107f0565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061084a8261081f565b9050919050565b61085a8161083f565b811461086557600080fd5b50565b60008135905061087781610851565b92915050565b6000602082840312156108935761089261081a565b5b60006108a184828501610868565b91505092915050565b60008115159050919050565b6108bf816108aa565b82525050565b60006020820190506108da60008301846108b6565b92915050565b6108e9816107e6565b81146108f457600080fd5b50565b600081359050610906816108e0565b92915050565b6000602082840312156109225761092161081a565b5b6000610930848285016108f7565b91505092915050565b600080604083850312156109505761094f61081a565b5b600061095e85828601610868565b925050602061096f858286016108f7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806109c057607f821691505b6020821081036109d3576109d2610979565b5b50919050565b7f4d696e74696e67206e6f7420616c6c6f77656400000000000000000000000000600082015250565b6000610a0f60138361073f565b9150610a1a826109d9565b602082019050919050565b60006020820190508181036000830152610a3e81610a02565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7400000000000000000000000000600082015250565b6000610a7b60138361073f565b9150610a8682610a45565b602082019050919050565b60006020820190508181036000830152610aaa81610a6e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610aeb826107e6565b9150610af6836107e6565b9250828201905080821115610b0e57610b0d610ab1565b5b92915050565b7f4578636565647320746f74616c20737570706c79000000000000000000000000600082015250565b6000610b4a60148361073f565b9150610b5582610b14565b602082019050919050565b60006020820190508181036000830152610b7981610b3d565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000610bb660148361073f565b9150610bc182610b80565b602082019050919050565b60006020820190508181036000830152610be581610ba9565b9050919050565b6000610bf7826107e6565b9150610c02836107e6565b9250828203905081811115610c1a57610c19610ab1565b5b9291505056fea2646970667358221220954f2488d730ed6993bffffca7e4f8311935e0484a309ede840f15facd557f3464736f6c63430008120033