0x60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900460ff1660ff16600a0a62b71b0002600d819055600481905550622dc6c0600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506040805190810160405280600881526020017f57494c4453494c4b000000000000000000000000000000000000000000000000815250600190805190602001906200016d92919062000224565b506040805190810160405280600481526020017f5744534b0000000000000000000000000000000000000000000000000000000081525060029080519060200190620001bb92919062000224565b506012600360006101000a81548160ff021916908360ff1602179055506102ee6006819055506103a96007819055506903540414ac30606c000060088190555042600a819055506249d400600a5401600b8190555062127500600a5401600c81905550620002d3565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026757805160ff191683800117855562000298565b8280016001018555821562000298579182015b82811115620002975782518255916020019190600101906200027a565b5b509050620002a79190620002ab565b5090565b620002d091905b80821115620002cc576000816000905550600101620002b2565b5090565b90565b61142280620002e36000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461013e5780630b97bc86146101ce5780630d981536146101f95780630ef2d7af1461024657806318160ddd1461027157806329dcb0cf1461029c578063313ce567146102c7578063590791f2146102f857806369bb4dc21461032357806369ef5e0a1461034e5780636dad12b71461036557806370a08231146103945780637a3a0e84146103eb5780637b3e5e7b146104165780638da5cb5b1461044157806395d89b41146104985780639eb866cc14610528578063a321babf14610557578063a6f2ae3a14610582578063a9059cbb146105a4578063d0ebd90914610609578063d3eb6f6114610634578063f2fde38b14610663575b61013b6106a6565b50005b34801561014a57600080fd5b50610153610be7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610193578082015181840152602081019050610178565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101e3610c85565b6040518082815260200191505060405180910390f35b34801561020557600080fd5b50610244600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c8b565b005b34801561025257600080fd5b5061025b610e72565b6040518082815260200191505060405180910390f35b34801561027d57600080fd5b50610286610e78565b6040518082815260200191505060405180910390f35b3480156102a857600080fd5b506102b1610e82565b6040518082815260200191505060405180910390f35b3480156102d357600080fd5b506102dc610e88565b604051808260ff1660ff16815260200191505060405180910390f35b34801561030457600080fd5b5061030d610e9b565b6040518082815260200191505060405180910390f35b34801561032f57600080fd5b50610338610f03565b6040518082815260200191505060405180910390f35b34801561035a57600080fd5b50610363610f09565b005b34801561037157600080fd5b5061037a610f74565b604051808215151515815260200191505060405180910390f35b3480156103a057600080fd5b506103d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa0565b6040518082815260200191505060405180910390f35b3480156103f757600080fd5b50610400610fe9565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b5061042b610fef565b6040518082815260200191505060405180910390f35b34801561044d57600080fd5b50610456610ff5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104a457600080fd5b506104ad61101a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ed5780820151818401526020810190506104d2565b50505050905090810190601f16801561051a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053457600080fd5b5061053d6110b8565b604051808215151515815260200191505060405180910390f35b34801561056357600080fd5b5061056c6110d6565b6040518082815260200191505060405180910390f35b61058a6106a6565b604051808215151515815260200191505060405180910390f35b3480156105b057600080fd5b506105ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110dc565b604051808215151515815260200191505060405180910390f35b34801561061557600080fd5b5061061e6112fb565b6040518082815260200191505060405180910390f35b34801561064057600080fd5b50610649611301565b604051808215151515815260200191505060405180910390f35b34801561066f57600080fd5b506106a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611321565b005b6000806000670de0b6b3a764000034101515156106c257600080fd5b670de0b6b3a764000060065434028115156106d957fe5b04915081600d54101515156106ed57600080fd5b670de0b6b3a7640000600754340281151561070457fe5b049050600c544211151561097a5761076481600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113bf90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107bc81600d546113dd90919063ffffffff16565b600d819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610829573d6000803e3d6000fd5b5061083f346009546113bf90919063ffffffff16565b6009819055503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f134e340554ff8a7d64280a2a28b982df554e2595e5bf45cd39368f31099172a633600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1610bde565b6109cc82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113bf90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a2482600d546113dd90919063ffffffff16565b600d819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610a91573d6000803e3d6000fd5b50610aa7346009546113bf90919063ffffffff16565b6009819055503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37f134e340554ff8a7d64280a2a28b982df554e2595e5bf45cd39368f31099172a633600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b60019250505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c7d5780601f10610c5257610100808354040283529160200191610c7d565b820191906000526020600020905b815481529060010190602001808311610c6057829003601f168201915b505050505081565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ce657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610d4157600080fd5b610d5681600d546113bf90919063ffffffff16565b600d81905550610d71816004546113bf90919063ffffffff16565b6004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600c5481565b6000600454905090565b600b5481565b600360009054906101000a900460ff1681565b6000600560008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6457600080fd5b62127500600b5401600b81905550565b6000600a544210158015610f8a5750600b544211155b15610f985760009050610f9d565b600190505b90565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60085481565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110b05780601f10611085576101008083540402835291602001916110b0565b820191906000526020600020905b81548152906001019060200180831161109357829003601f168201915b505050505081565b6000600c54421115156110ce57600190506110d3565b600090505b90565b60065481565b6000808373ffffffffffffffffffffffffffffffffffffffff161415151561110357600080fd5b600b54421015151561111457600080fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561116257600080fd5b6111b482600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113dd90919063ffffffff16565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061124982600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113bf90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60075481565b6000600854600954101515611319576001905061131e565b600090505b90565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561137c57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082840190508381101515156113d357fe5b8091505092915050565b60008282111515156113eb57fe5b8183039050929150505600a165627a7a7230582018596d354afb3df5c8878494ebacd8f52a9fa14e0fdaad471a7ddeb0e66fba890029