608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a27b46536c66c8e300000006006819055506115c5806100726000396000f3fe608060405234801561001057600080fd5b5060043610610190576000357c01000000000000000000000000000000000000000000000000000000009004806366188463116100fb5780638da5cb5b116100b4578063a9059cbb1161008e578063a9059cbb14610645578063d73dd623146106ab578063dd62ed3e14610711578063f2fde38b1461078957610190565b80638da5cb5b1461054757806395d89b4114610591578063965232c0146105ed57610190565b80636618846314610405578063676cb63d1461046b57806370a082311461048d57806379fdf548146104e55780637d64bcb41461053357806383197ef01461053d57610190565b806323b872dd1161014d57806323b872dd146102d357806324f65ee7146103595780632854bc7e146103775780632f087a28146103a5578063313ce567146103c3578063355274ea146103e757610190565b806305d2035b1461019557806306fdde03146101b7578063095ea7b3146101d5578063150704011461023b57806317d7de7c1461029757806318160ddd146102b5575b600080fd5b61019d6107cd565b604051808215151515815260200191505060405180910390f35b6101bf6107e0565b6040518082815260200191505060405180910390f35b610221600480360360408110156101eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610804565b604051808215151515815260200191505060405180910390f35b6102436108bb565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61029f6108e3565b6040518082815260200191505060405180910390f35b6102bd61090b565b6040518082815260200191505060405180910390f35b61033f600480360360608110156102e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610915565b604051808215151515815260200191505060405180910390f35b610361610a24565b6040518082815260200191505060405180910390f35b6103a36004803603602081101561038d57600080fd5b8101908080359060200190929190505050610a30565b005b6103ad610a95565b6040518082815260200191505060405180910390f35b6103cb610a9f565b604051808260ff1660ff16815260200191505060405180910390f35b6103ef610aa4565b6040518082815260200191505060405180910390f35b6104516004803603604081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aaa565b604051808215151515815260200191505060405180910390f35b610473610ba5565b604051808215151515815260200191505060405180910390f35b6104cf600480360360208110156104a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bbc565b6040518082815260200191505060405180910390f35b610531600480360360408110156104fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b005b61053b610c6e565b005b610545610d13565b005b61054f610d8e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610599610db3565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61062f6004803603602081101561060357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dd7565b6040518082815260200191505060405180910390f35b6106916004803603604081101561065b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e20565b604051808215151515815260200191505060405180910390f35b6106f7600480360360408110156106c157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f2b565b604051808215151515815260200191505060405180910390f35b6107736004803603604081101561072757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611006565b6040518082815260200191505060405180910390f35b6107cb6004803603602081101561079f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108d565b005b600760009054906101000a900460ff1681565b7f53594e436f696e0000000000000000000000000000000000000000000000000081565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561084157600080fd5b61084c3384846111e2565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60007f53594e4300000000000000000000000000000000000000000000000000000000905090565b60007f53594e436f696e00000000000000000000000000000000000000000000000000905090565b6000600554905090565b600061092084610bbc565b821115151561092e57600080fd5b6109388484611006565b821115151561094657600080fd5b61096a846109658461095788610bbc565b61130090919063ffffffff16565b611319565b61098e836109898461097b87610bbc565b61139d90919063ffffffff16565b611319565b6109b484846109af856109a18989611006565b61130090919063ffffffff16565b6111e2565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000601260ff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a8b57600080fd5b8060068190555050565b6000600654905090565b601281565b60065481565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610ae757600080fd5b6000610af33385611006565b905080831115610b0e57610b09338560006111e2565b610b2c565b610b2b3385610b26868561130090919063ffffffff16565b6111e2565b5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925610b853388611006565b6040518082815260200191505060405180910390a3600191505092915050565b6000600760009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c6057600080fd5b610c6a82826113bb565b5050565b600760009054906101000a900460ff16151515610c8a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ce557600080fd5b7fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d6e57600080fd5b610d7661151e565b73ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f53594e430000000000000000000000000000000000000000000000000000000081565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610e5d57600080fd5b610e6633610bbc565b8211151515610e7457600080fd5b610e9833610e9384610e8533610bbc565b61130090919063ffffffff16565b611319565b610ebc83610eb784610ea987610bbc565b61139d90919063ffffffff16565b611319565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610f6857600080fd5b610f8e3384610f8985610f7b3389611006565b61139d90919063ffffffff16565b6111e2565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925610fe73387611006565b6040518082815260200191505060405180910390a36001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110e857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561112457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561121e57600080fd5b6000611256826112486112318787611006565b61123a88610dd7565b61130090919063ffffffff16565b61139d90919063ffffffff16565b905061126184610bbc565b811115151561126f57600080fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fa8482611547565b50505050565b600082821115151561130e57fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561135557600080fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60008082840190508381101515156113b157fe5b8091505092915050565b600760009054906101000a900460ff161515156113d757600080fd5b6113e082610bbc565b8111156114675760006114046113f584610bbc565b8361130090919063ffffffff16565b905061140e610a95565b6114288261141a61090b565b61139d90919063ffffffff16565b1115151561143557600080fd5b6114576114528261144461090b565b61139d90919063ffffffff16565b61158f565b6114618383611319565b506114b4565b60006114848261147685610bbc565b61130090919063ffffffff16565b90506114a86114a38261149561090b565b61130090919063ffffffff16565b61158f565b6114b28383611319565b505b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b806005819055505056fea165627a7a72305820fc959ffedd02e6eb38c95a2c05824bb021723dcd1e326ca5756c63940e91028c0029