0x60806040526a084595161401484a00000060075534801561001f57600080fd5b5060405161192e38038061192e833981810160405281019061004191906101cf565b600160008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160048190555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360146101000a81548160ff021916908315150217905550505050610222565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101668261013b565b9050919050565b6101768161015b565b811461018157600080fd5b50565b6000815190506101938161016d565b92915050565b6000819050919050565b6101ac81610199565b81146101b757600080fd5b50565b6000815190506101c9816101a3565b92915050565b6000806000606084860312156101e8576101e7610136565b5b60006101f686828701610184565b9350506020610207868287016101ba565b925050604061021886828701610184565b9150509250925092565b6116fd806102316000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638a55d36e11610097578063bff14bbd11610066578063bff14bbd1461023e578063d0d5c2261461025c578063e3bbb8581461027a578063fed3c4e114610298576100f5565b80638a55d36e146101c85780638da5cb5b146101e65780639b5abd1114610204578063a98ad46c14610220576100f5565b80632e0f2625116100d35780632e0f262514610152578063362e496b146101705780633e3282181461017a57806350c50710146101aa576100f5565b8063047fc9aa146100fa5780630632c5751461011857806313af403514610136575b600080fd5b6101026102c8565b60405161010f9190610cd7565b60405180910390f35b6101206102ce565b60405161012d9190610d33565b60405180910390f35b610150600480360381019061014b9190610d7f565b6102f4565b005b61015a6103c8565b6040516101679190610cd7565b60405180910390f35b6101786103cd565b005b610194600480360381019061018f9190610dd8565b61069b565b6040516101a19190610cd7565b60405180910390f35b6101b2610b0d565b6040516101bf9190610cd7565b60405180910390f35b6101d0610b13565b6040516101dd9190610e20565b60405180910390f35b6101ee610b26565b6040516101fb9190610d33565b60405180910390f35b61021e60048036038101906102199190610e67565b610b4c565b005b610228610bf9565b6040516102359190610ef3565b60405180910390f35b610246610c1f565b6040516102539190610ef3565b60405180910390f35b610264610c45565b6040516102719190610cd7565b60405180910390f35b610282610c4b565b60405161028f9190610cd7565b60405180910390f35b6102b260048036038101906102ad9190610d7f565b610c56565b6040516102bf9190610cd7565b60405180910390f35b60045481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610384576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037b90610f91565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461045d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045490610f91565b60405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104ba9190610d33565b602060405180830381865afa1580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb9190610fc6565b1161053b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105329061103f565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105f79190610d33565b602060405180830381865afa158015610614573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106389190610fc6565b6040518363ffffffff1660e01b815260040161065592919061105f565b6020604051808303816000875af1158015610674573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610698919061109d565b50565b60006106a5610c6e565b600360149054906101000a900460ff166106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106eb90611116565b60405180910390fd5b600064e8d4a51000836107079190611194565b90506000811161074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074390611211565b60405180910390fd5b611388811015610791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107889061127d565b60405180910390fd5b60006611c37937e080006012600a6107a991906113d0565b856107b4919061141b565b6107be9190611194565b905060075481600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461080e919061145d565b111561084f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610846906114dd565b60405180910390fd5b6004548110610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a9061156f565b60405180910390fd5b600454600654106108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d0906115db565b60405180910390fd5b600454816006546108ea919061145d565b1061092a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610921906115db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099090611647565b60405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b81526004016109f893929190611667565b6020604051808303816000875af1158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b919061109d565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a8b919061145d565b925050819055508060066000828254610aa4919061145d565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa59ac6dd8b1d00e4c8ba9abba262aaac3d4d05e77324205b07a39a002e479b5f8383604051610af392919061169e565b60405180910390a28092505050610b08610cb4565b919050565b60075481565b600360149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd390610f91565b60405180910390fd5b80600360146101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b6611c37937e0800081565b60056020528060005260406000206000915090505481565b600260005403610caa576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b6000819050919050565b610cd181610cbe565b82525050565b6000602082019050610cec6000830184610cc8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d1d82610cf2565b9050919050565b610d2d81610d12565b82525050565b6000602082019050610d486000830184610d24565b92915050565b600080fd5b610d5c81610d12565b8114610d6757600080fd5b50565b600081359050610d7981610d53565b92915050565b600060208284031215610d9557610d94610d4e565b5b6000610da384828501610d6a565b91505092915050565b610db581610cbe565b8114610dc057600080fd5b50565b600081359050610dd281610dac565b92915050565b600060208284031215610dee57610ded610d4e565b5b6000610dfc84828501610dc3565b91505092915050565b60008115159050919050565b610e1a81610e05565b82525050565b6000602082019050610e356000830184610e11565b92915050565b610e4481610e05565b8114610e4f57600080fd5b50565b600081359050610e6181610e3b565b92915050565b600060208284031215610e7d57610e7c610d4e565b5b6000610e8b84828501610e52565b91505092915050565b6000819050919050565b6000610eb9610eb4610eaf84610cf2565b610e94565b610cf2565b9050919050565b6000610ecb82610e9e565b9050919050565b6000610edd82610ec0565b9050919050565b610eed81610ed2565b82525050565b6000602082019050610f086000830184610ee4565b92915050565b600082825260208201905092915050565b7f4f6e6c7920636f6e7472616374206f776e65722063616e2063616c6c2074686960008201527f732066756e6374696f6e00000000000000000000000000000000000000000000602082015250565b6000610f7b602a83610f0e565b9150610f8682610f1f565b604082019050919050565b60006020820190508181036000830152610faa81610f6e565b9050919050565b600081519050610fc081610dac565b92915050565b600060208284031215610fdc57610fdb610d4e565b5b6000610fea84828501610fb1565b91505092915050565b7f4e6f20555344542062616c616e636520746f2077697468647261770000000000600082015250565b6000611029601b83610f0e565b915061103482610ff3565b602082019050919050565b600060208201905081810360008301526110588161101c565b9050919050565b60006040820190506110746000830185610d24565b6110816020830184610cc8565b9392505050565b60008151905061109781610e3b565b92915050565b6000602082840312156110b3576110b2610d4e565b5b60006110c184828501611088565b91505092915050565b7f53616c657320686173206265656e207061757365642100000000000000000000600082015250565b6000611100601683610f0e565b915061110b826110ca565b602082019050919050565b6000602082019050818103600083015261112f816110f3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061119f82610cbe565b91506111aa83610cbe565b9250826111ba576111b9611136565b5b828204905092915050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006111fb601d83610f0e565b9150611206826111c5565b602082019050919050565b6000602082019050818103600083015261122a816111ee565b9050919050565b7f41746c6561737420726571756972656420302e30303521000000000000000000600082015250565b6000611267601783610f0e565b915061127282611231565b602082019050919050565b600060208201905081810360008301526112968161125a565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156112f4578086048111156112d0576112cf611165565b5b60018516156112df5780820291505b80810290506112ed8561129d565b94506112b4565b94509492505050565b60008261130d57600190506113c9565b8161131b57600090506113c9565b8160018114611331576002811461133b5761136a565b60019150506113c9565b60ff84111561134d5761134c611165565b5b8360020a91508482111561136457611363611165565b5b506113c9565b5060208310610133831016604e8410600b841016171561139f5782820a90508381111561139a57611399611165565b5b6113c9565b6113ac84848460016112aa565b925090508184048111156113c3576113c2611165565b5b81810290505b9392505050565b60006113db82610cbe565b91506113e683610cbe565b92506114137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846112fd565b905092915050565b600061142682610cbe565b915061143183610cbe565b925082820261143f81610cbe565b9150828204841483151761145657611455611165565b5b5092915050565b600061146882610cbe565b915061147383610cbe565b925082820190508082111561148b5761148a611165565b5b92915050565b7f4d617820737570706c7920706572207573657220457863656564210000000000600082015250565b60006114c7601b83610f0e565b91506114d282611491565b602082019050919050565b600060208201905081810360008301526114f6816114ba565b9050919050565b7f43757272656e7420427579696e6720657863656564696e6720746f74616c205360008201527f7570706c79210000000000000000000000000000000000000000000000000000602082015250565b6000611559602683610f0e565b9150611564826114fd565b604082019050919050565b600060208201905081810360008301526115888161154c565b9050919050565b7f457863656564696e6720746f74616c20537570706c7921000000000000000000600082015250565b60006115c5601783610f0e565b91506115d08261158f565b602082019050919050565b600060208201905081810360008301526115f4816115b8565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000611631600f83610f0e565b915061163c826115fb565b602082019050919050565b6000602082019050818103600083015261166081611624565b9050919050565b600060608201905061167c6000830186610d24565b6116896020830185610d24565b6116966040830184610cc8565b949350505050565b60006040820190506116b36000830185610cc8565b6116c06020830184610cc8565b939250505056fea2646970667358221220bb4fd2d0e4b4f52eefde5675f1fb66e9bc30489b0a4491cd73d3e40b01a45b3564736f6c634300081a0033000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000005258b3ae7f886ca7400000000000000000000000000000a6fd0a34011f3ec5a5264142e51a31069c86be6a