0x608060405234801561000f575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3610f7a806101155f395ff3fe60806040526004361061007a575f3560e01c8063593dae5b1161004d578063593dae5b146100fa578063620fbdc514610116578063893d20e814610132578063a6f9dae11461015c5761007a565b80630178be5f1461007e578063390fc6d41461009a57806339cf630a146100b657806351cff8d9146100d2575b5f80fd5b61009860048036038101906100939190610bba565b610184565b005b6100b460048036038101906100af9190610bba565b6102f4565b005b6100d060048036038101906100cb9190610bba565b610464565b005b3480156100dd575f80fd5b506100f860048036038101906100f39190610c20565b6105d4565b005b610114600480360381019061010f9190610bba565b61070d565b005b610130600480360381019061012b9190610bba565b61087d565b005b34801561013d575f80fd5b506101466109ed565b6040516101539190610c5a565b60405180910390f35b348015610167575f80fd5b50610182600480360381019061017d9190610bba565b610a14565b005b5f34116101c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101bd90610ccd565b60405180910390fd5b5f60056004346101d69190610d21565b6101e09190610d8f565b90505f8273ffffffffffffffffffffffffffffffffffffffff168260405161020790610dec565b5f6040518083038185875af1925050503d805f8114610241576040519150601f19603f3d011682016040523d82523d5f602084013e610246565b606091505b505090508061028a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028190610e4a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9fb8ad2ece9bb02e5537aac1cb3dc1394935cb37b53e06f7ad49af20cf1c1a78346040516102e79190610e77565b60405180910390a3505050565b5f3411610336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161032d90610ccd565b60405180910390fd5b5f60056004346103469190610d21565b6103509190610d8f565b90505f8273ffffffffffffffffffffffffffffffffffffffff168260405161037790610dec565b5f6040518083038185875af1925050503d805f81146103b1576040519150601f19603f3d011682016040523d82523d5f602084013e6103b6565b606091505b50509050806103fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f190610e4a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9fb8ad2ece9bb02e5537aac1cb3dc1394935cb37b53e06f7ad49af20cf1c1a78346040516104579190610e77565b60405180910390a3505050565b5f34116104a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049d90610ccd565b60405180910390fd5b5f60056004346104b69190610d21565b6104c09190610d8f565b90505f8273ffffffffffffffffffffffffffffffffffffffff16826040516104e790610dec565b5f6040518083038185875af1925050503d805f8114610521576040519150601f19603f3d011682016040523d82523d5f602084013e610526565b606091505b505090508061056a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056190610e4a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9fb8ad2ece9bb02e5537aac1cb3dc1394935cb37b53e06f7ad49af20cf1c1a78346040516105c79190610e77565b60405180910390a3505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065890610f26565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff164760405161068690610dec565b5f6040518083038185875af1925050503d805f81146106c0576040519150601f19603f3d011682016040523d82523d5f602084013e6106c5565b606091505b5050905080610709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070090610e4a565b60405180910390fd5b5050565b5f341161074f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074690610ccd565b60405180910390fd5b5f600560043461075f9190610d21565b6107699190610d8f565b90505f8273ffffffffffffffffffffffffffffffffffffffff168260405161079090610dec565b5f6040518083038185875af1925050503d805f81146107ca576040519150601f19603f3d011682016040523d82523d5f602084013e6107cf565b606091505b5050905080610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90610e4a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9fb8ad2ece9bb02e5537aac1cb3dc1394935cb37b53e06f7ad49af20cf1c1a78346040516108709190610e77565b60405180910390a3505050565b5f34116108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690610ccd565b60405180910390fd5b5f60056004346108cf9190610d21565b6108d99190610d8f565b90505f8273ffffffffffffffffffffffffffffffffffffffff168260405161090090610dec565b5f6040518083038185875af1925050503d805f811461093a576040519150601f19603f3d011682016040523d82523d5f602084013e61093f565b606091505b5050905080610983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097a90610e4a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9fb8ad2ece9bb02e5537aac1cb3dc1394935cb37b53e06f7ad49af20cf1c1a78346040516109e09190610e77565b60405180910390a3505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890610f26565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a350565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b8982610b60565b9050919050565b610b9981610b7f565b8114610ba3575f80fd5b50565b5f81359050610bb481610b90565b92915050565b5f60208284031215610bcf57610bce610b5c565b5b5f610bdc84828501610ba6565b91505092915050565b5f610bef82610b60565b9050919050565b610bff81610be5565b8114610c09575f80fd5b50565b5f81359050610c1a81610bf6565b92915050565b5f60208284031215610c3557610c34610b5c565b5b5f610c4284828501610c0c565b91505092915050565b610c5481610b7f565b82525050565b5f602082019050610c6d5f830184610c4b565b92915050565b5f82825260208201905092915050565b7f4e69636520747279206d6f726f6e0000000000000000000000000000000000005f82015250565b5f610cb7600e83610c73565b9150610cc282610c83565b602082019050919050565b5f6020820190508181035f830152610ce481610cab565b9050919050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d2b82610ceb565b9150610d3683610ceb565b9250828202610d4481610ceb565b91508282048414831517610d5b57610d5a610cf4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610d9982610ceb565b9150610da483610ceb565b925082610db457610db3610d62565b5b828204905092915050565b5f81905092915050565b50565b5f610dd75f83610dbf565b9150610de282610dc9565b5f82019050919050565b5f610df682610dcc565b9150819050919050565b7f455448205472616e73666572206661696c65642e0000000000000000000000005f82015250565b5f610e34601483610c73565b9150610e3f82610e00565b602082019050919050565b5f6020820190508181035f830152610e6181610e28565b9050919050565b610e7181610ceb565b82525050565b5f602082019050610e8a5f830184610e68565b92915050565b7f54686973206d6574686f642063616e206f6e6c792062652063616c6c656420625f8201527f792074686520636f6e7472616374206f776e65722e204e6f77206675636b206f60208201527f6666000000000000000000000000000000000000000000000000000000000000604082015250565b5f610f10604283610c73565b9150610f1b82610e90565b606082019050919050565b5f6020820190508181035f830152610f3d81610f04565b905091905056fea2646970667358221220c4bb6c1671f26aae4d921a6a63a82c7d4ebb7165bd396478e3bacf0b0ab5f61a64736f6c63430008160033