"0x608060405234801561001057600080fd5b5060043610610112576000357c01000000000000000000000000000000000000000000000000000000009004806357de26a4116100b45780638da5cb5b116100835780638da5cb5b146104db57806391f2700a14610525578063bf7e214f14610569578063f8897945146105b357610112565b806357de26a41461028357806359e02dd7146102a15780637a9e5e4b146102ca57806389bbb8b21461030e57610112565b80633c278bd5116100f05780633c278bd5146101d55780633c6bb4361461021957806345dc3dd8146102375780634ca299231461026557610112565b8063020b2e321461011757806313af403514610173578063262a9dff146101b7575b600080fd5b6101596004803603602081101561012d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d1565b604051808215151515815260200191505060405180910390f35b6101b56004803603602081101561018957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f1565b005b6101bf61073c565b6040518082815260200191505060405180910390f35b610217600480360360208110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610742565b005b6102216108e4565b6040518082815260200191505060405180910390f35b6102636004803603602081101561024d57600080fd5b81019080803590602001909291905050506108ea565b005b61026d6109f1565b6040518082815260200191505060405180910390f35b61028b6109f7565b6040518082815260200191505060405180910390f35b6102a9610a7d565b60405180838152602001821515151581526020019250505060405180910390f35b61030c600480360360208110156102e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a94565b005b6104d9600480360360a081101561032457600080fd5b810190808035906020019064010000000081111561034157600080fd5b82018360208201111561035357600080fd5b8035906020019184602083028401116401000000008311171561037557600080fd5b90919293919293908035906020019064010000000081111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460208302840111640100000000831117156103ca57600080fd5b9091929391929390803590602001906401000000008111156103eb57600080fd5b8201836020820111156103fd57600080fd5b8035906020019184602083028401116401000000008311171561041f57600080fd5b90919293919293908035906020019064010000000081111561044057600080fd5b82018360208201111561045257600080fd5b8035906020019184602083028401116401000000008311171561047457600080fd5b90919293919293908035906020019064010000000081111561049557600080fd5b8201836020820111156104a757600080fd5b803590602001918460208302840111640100000000831117156104c957600080fd5b9091929391929390505050610bdd565b005b6104e36110a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105676004803603602081101561053b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110cf565b005b6105716111cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105bb6111f1565b6040518082815260200191505060405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b61061f336000357fffffffff00000000000000000000000000000000000000000000000000000000166111f7565b1515610693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60035481565b610770336000357fffffffff00000000000000000000000000000000000000000000000000000000166111f7565b15156107e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f4e6f206f7261636c65203000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60025481565b610918336000357fffffffff00000000000000000000000000000000000000000000000000000000166111f7565b151561098c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000811115156109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806115a86021913960400191505060405180910390fd5b8060058190555050565b60045481565b600080600254111515610a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c69642070726963652066656564000000000000000000000000000081525060200191505060405180910390fd5b600254600102905090565b600080600254600102600060025411915091509091565b610ac2336000357fffffffff00000000000000000000000000000000000000000000000000000000166111f7565b1515610b36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b60008a8a905090506005548110151515610c5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4e6f7420656e6f756768207369676e6564206d6573736167657300000000000081525060200191505060405180910390fd5b6000600282811515610c6d57fe5b0614151515610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e656564206f6464206e756d626572206f66206d65737361676573000000000081525060200191505060405180910390fd5b600080905060008090505b82811015611026576000610d708e8e848181101515610d0a57fe5b905060200201358d8d858181101515610d1f57fe5b905060200201358c8c868181101515610d3457fe5b9050602002013560ff168b8b878181101515610d4c57fe5b905060200201358a8a888181101515610d6157fe5b9050602002013560045461146c565b9050600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610e33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5369676e617475726520627920696e76616c6964206f7261636c65000000000081525060200191505060405180910390fd5b6003548c8c848181101515610e4457fe5b90506020020135111515610ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f5374616c65206d6573736167650000000000000000000000000000000000000081525060200191505060405180910390fd5b83600183011015610f6f578d8d600184018181101515610edc57fe5b905060200201358e8e848181101515610ef157fe5b9050602002013511151515610f6e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d65737361676573206e6f7420696e206f72646572000000000000000000000081525060200191505060405180910390fd5b5b6000610f7a82611565565b905060006002610f8d868460ff16611591565b811515610f9657fe5b0614151561100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4f7261636c6520616c7265616479207369676e6564000000000000000000000081525060200191505060405180910390fd5b8060ff1660020a8401935050508080600101915050610cef565b508b8b60026001850381151561103857fe5b04818110151561104457fe5b90506020020135600281905550426003819055507fb78ebc573f1f889ca9e1e0fb62c843c836f3d3a2e1f43ef62940e9b894f4ea4c600254600354604051808381526020018281526020019250505060405180910390a1505050505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110fd336000357fffffffff00000000000000000000000000000000000000000000000000000000166111f7565b1515611171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112365760019050611466565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112955760019050611466565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112f45760009050611466565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561142857600080fd5b505afa15801561143c573d6000803e3d6000fd5b505050506040513d602081101561145257600080fd5b810190808051906020019092919050505090505b92915050565b600060018787846040516020018084815260200183815260200182815260200193505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012086868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561154f573d6000803e3d6000fd5b5050506020604051035190509695505050505050565b600060988273ffffffffffffffffffffffffffffffffffffffff16908060020a82049150509050919050565b60008183908060020a820491505090509291505056fe4d696e696d756d2076616c6964206f7261636c65732063616e6e6f742062652030a165627a7a72305820d5b07f17abdb75d6167f9d2dd4ac9481b7d3bc5ca7c09761221b2d39bdd6f0d90029"