0x60806040526040518060400160405280600581526020017f47686f73740000000000000000000000000000000000000000000000000000008152506000908051906020019062000051929190620001b1565b506012600160006101000a81548160ff021916908360ff1602179055506040518060400160405280600581526020017f47686f737400000000000000000000000000000000000000000000000000000081525060029080519060200190620000bb929190620001b1565b50600160009054906101000a900460ff16600a620000da9190620002ea565b620186a0620000ea919062000427565b600355348015620000fa57600080fd5b50600354600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620001a3919062000272565b60405180910390a362000540565b828054620001bf906200049f565b90600052602060002090601f016020900481019282620001e357600085556200022f565b82601f10620001fe57805160ff19168380011785556200022f565b828001600101855582156200022f579182015b828111156200022e57825182559160200191906001019062000211565b5b5090506200023e919062000242565b5090565b5b808211156200025d57600081600090555060010162000243565b5090565b6200026c8162000488565b82525050565b600060208201905062000289600083018462000261565b92915050565b6000808291508390505b6001851115620002e157808604811115620002b957620002b8620004d5565b5b6001851615620002c95780820291505b8081029050620002d98562000533565b945062000299565b94509492505050565b6000620002f78262000488565b9150620003048362000492565b9250620003337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200033b565b905092915050565b6000826200034d576001905062000420565b816200035d576000905062000420565b81600181146200037657600281146200038157620003b7565b600191505062000420565b60ff841115620003965762000395620004d5565b5b8360020a915084821115620003b057620003af620004d5565b5b5062000420565b5060208310610133831016604e8410600b8410161715620003f15782820a905083811115620003eb57620003ea620004d5565b5b62000420565b6200040084848460016200028f565b925090508184048111156200041a5762000419620004d5565b5b81810290505b9392505050565b6000620004348262000488565b9150620004418362000488565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200047d576200047c620004d5565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b60006002820490506001821680620004b857607f821691505b60208210811415620004cf57620004ce62000504565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b610e8980620005506000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806342966c681161005b57806342966c681461010357806370a082311461011f57806395d89b411461014f578063a9059cbb1461016d57610088565b806306fdde031461008d57806318160ddd146100ab578063313ce567146100c957806340c10f19146100e7575b600080fd5b61009561019d565b6040516100a29190610b5e565b60405180910390f35b6100b361022b565b6040516100c09190610c20565b60405180910390f35b6100d1610231565b6040516100de9190610c3b565b60405180910390f35b61010160048036038101906100fc91906108a0565b610244565b005b61011d600480360381019061011891906108dc565b61038d565b005b61013960048036038101906101349190610877565b6104e7565b6040516101469190610c20565b60405180910390f35b610157610530565b6040516101649190610b5e565b60405180910390f35b610187600480360381019061018291906108a0565b6105be565b6040516101949190610b43565b60405180910390f35b600080546101aa90610d84565b80601f01602080910402602001604051908101604052809291908181526020018280546101d690610d84565b80156102235780601f106101f857610100808354040283529160200191610223565b820191906000526020600020905b81548152906001019060200180831161020657829003601f168201915b505050505081565b60035481565b600160009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab90610bc0565b60405180910390fd5b80600360008282546102c69190610c72565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461031c9190610c72565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103819190610c20565b60405180910390a35050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040690610c00565b60405180910390fd5b80600360008282546104219190610cc8565b9250508190555080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546104779190610cc8565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516104dc9190610c20565b60405180910390a350565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6002805461053d90610d84565b80601f016020809104026020016040519081016040528092919081815260200182805461056990610d84565b80156105b65780601f1061058b576101008083540402835291602001916105b6565b820191906000526020600020905b81548152906001019060200180831161059957829003601f168201915b505050505081565b60006105cb3384846105d5565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610645576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063c90610be0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac90610b80565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e90610ba0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107869190610cc8565b9250508190555080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107dc9190610c72565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108409190610c20565b60405180910390a3505050565b60008135905061085c81610e25565b92915050565b60008135905061087181610e3c565b92915050565b60006020828403121561088957600080fd5b60006108978482850161084d565b91505092915050565b600080604083850312156108b357600080fd5b60006108c18582860161084d565b92505060206108d285828601610862565b9150509250929050565b6000602082840312156108ee57600080fd5b60006108fc84828501610862565b91505092915050565b61090e81610d0e565b82525050565b600061091f82610c56565b6109298185610c61565b9350610939818560208601610d51565b61094281610e14565b840191505092915050565b600061095a602383610c61565b91507f47686f73743a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006109c0602683610c61565b91507f47686f73743a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610a26601f83610c61565b91507f47686f73743a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6000610a66602583610c61565b91507f47686f73743a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610acc602283610c61565b91507f47686f73743a206275726e20616d6f756e7420657863656564732062616c616e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610b2e81610d3a565b82525050565b610b3d81610d44565b82525050565b6000602082019050610b586000830184610905565b92915050565b60006020820190508181036000830152610b788184610914565b905092915050565b60006020820190508181036000830152610b998161094d565b9050919050565b60006020820190508181036000830152610bb9816109b3565b9050919050565b60006020820190508181036000830152610bd981610a19565b9050919050565b60006020820190508181036000830152610bf981610a59565b9050919050565b60006020820190508181036000830152610c1981610abf565b9050919050565b6000602082019050610c356000830184610b25565b92915050565b6000602082019050610c506000830184610b34565b92915050565b600081519050919050565b600082825260208201905092915050565b6000610c7d82610d3a565b9150610c8883610d3a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610cbd57610cbc610db6565b5b828201905092915050565b6000610cd382610d3a565b9150610cde83610d3a565b925082821015610cf157610cf0610db6565b5b828203905092915050565b6000610d0782610d1a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015610d6f578082015181840152602081019050610d54565b83811115610d7e576000848401525b50505050565b60006002820490506001821680610d9c57607f821691505b60208210811415610db057610daf610de5565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b610e2e81610cfc565b8114610e3957600080fd5b50565b610e4581610d3a565b8114610e5057600080fd5b5056fea2646970667358221220c46818ba612480609c427a369ad890674700598fbdfb162580d4a4e3edca8dbc64736f6c63430008000033