60806040526040805190810160405280600a81526020017f43617264696f436f696e000000000000000000000000000000000000000000008152506001908051906020019062000051929190620001b7565b506040805190810160405280600481526020017f4352444300000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620001b7565b506012600360006101000a81548160ff021916908360ff160217905550600360009054906101000a900460ff1660ff16600a0a640ba43b7400026004556000600655348015620000ee57600080fd5b50620000f96200023e565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045481600001818152505080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816003015560608201518160040155905050506200028f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001fa57805160ff19168380011785556200022b565b828001600101855582156200022b579182015b828111156200022a5782518255916020019190600101906200020d565b5b5090506200023a919062000267565b5090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b6200028c91905b80821115620002885760008160009055506001016200026e565b5090565b90565b613b0d806200029f6000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101855780630bb6940114610215578063114e7913146102b257806318160ddd1461030957806324207e0214610334578063259a28cf146103b95780632fca23ac146103e457806330095f0b1461040f578063313ce5671461044557806338e3de4914610476578063413198311461054057806342966c681461056b57806356219f9e1461059857806370a08231146105ef578063715018a61461064657806374e31d081461065d57806384276d50146106745780638da5cb5b146106ca5780638f752de714610721578063922517911461076e57806395d89b41146107b15780639656fd57146108415780639b4a266d1461088e578063a9059cbb14610907578063b4a547811461096c578063bfeaedc3146109b9578063df43934a146109fc578063dfefe8e714610a57578063e0adde4714610aae578063f2fde38b14610b05575b600080fd5b34801561019157600080fd5b5061019a610b48565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101da5780820151818401526020810190506101bf565b50505050905090810190601f1680156102075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022157600080fd5b506102b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919080359060200190929190505050610be6565b005b3480156102be57600080fd5b506102f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e68565b6040518082815260200191505060405180910390f35b34801561031557600080fd5b5061031e610eb4565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ebe565b604051808215151515815260200191505060405180910390f35b3480156103c557600080fd5b506103ce611195565b6040518082815260200191505060405180910390f35b3480156103f057600080fd5b506103f961119c565b6040518082815260200191505060405180910390f35b610443600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a1565b005b34801561045157600080fd5b5061045a611500565b604051808260ff1660ff16815260200191505060405180910390f35b34801561048257600080fd5b506104b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611513565b6040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156105035780820151818401526020810190506104e8565b50505050905090810190601f1680156105305780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b34801561054c57600080fd5b50610555611679565b6040518082815260200191505060405180910390f35b34801561057757600080fd5b5061059660048036038101908080359060200190929190505050611681565b005b3480156105a457600080fd5b506105d9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061168e565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c4565b6040518082815260200191505060405180910390f35b34801561065257600080fd5b5061065b611864565b005b34801561066957600080fd5b50610672611966565b005b6106c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a61565b005b3480156106d657600080fd5b506106df611d28565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561072d57600080fd5b5061076c60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d4d565b005b34801561077a57600080fd5b506107af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f37565b005b3480156107bd57600080fd5b506107c6612157565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108065780820151818401526020810190506107eb565b50505050905090810190601f1680156108335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084d57600080fd5b5061088c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121f5565b005b34801561089a57600080fd5b506108ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061248c565b604051808215151515815260200191505060405180910390f35b34801561091357600080fd5b50610952600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506126f1565b604051808215151515815260200191505060405180910390f35b34801561097857600080fd5b506109b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b8e565b005b3480156109c557600080fd5b506109fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e22565b005b348015610a0857600080fd5b50610a3d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f1a565b604051808215151515815260200191505060405180910390f35b348015610a6357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f73565b6040518082815260200191505060405180910390f35b348015610aba57600080fd5b50610aef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fbc565b6040518082815260200191505060405180910390f35b348015610b1157600080fd5b50610b46600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613008565b005b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b505050505081565b6000610bf061399e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4b57600080fd5b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160000160009054906101000a900460ff16151515610caa57600080fd5b60018160000190151590811515815250508481602001819052508381604001818152505082816060018181525050600081608001901515908115158152505080600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001019080519060200190610d659291906139d2565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050508573ffffffffffffffffffffffffffffffffffffffff167fa6d9befabd290d7508939bd7443f80373d25f6667021c137fc0d258c24e3cba28686866040518080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015610e24578082015181840152602081019050610e09565b50505050905090810190601f168015610e515780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a2505050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000600454905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515610f5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610f9357600080fd5b600082111515610fa257600080fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515610ff057600080fd5b81600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015151561106257600080fd5b6110b482600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306f90919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061110c8260065461306f90919063ffffffff16565b600681905550611125838342635cf1c00003600a613088565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f384ed25d2ea8110fef485482097000053c977b3b3aeb65da815408b6ff66835f846040518082815260200191505060405180910390a3600190509392505050565b62278d0081565b600a81565b6111a961399e565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156111e657600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a060405190810160405290816000820160009054906101000a900460ff16151515158152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112e55780601f106112ba576101008083540402835291602001916112e5565b820191906000526020600020905b8154815290600101906020018083116112c857829003601f168201915b5050505050815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff16151515158152505091508160800151151561132f57600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff16151561138d57600080fd5b806001015461139b846117c4565b1415156113a757600080fd5b8060020154341415156113b957600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561141757600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561145d573d6000803e3d6000fd5b5061146d833383600101546131b3565b60008160000160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f77d88557326329ff3b691e87c8e1d4ad0c6e20ff0cc08083259e80c8ad3431cc836001015434604051808381526020018281526020019250505060405180910390a3505050565b600360009054906101000a900460ff1681565b606060008061152061399e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060a060405190810160405290816000820160009054906101000a900460ff16151515158152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561161f5780601f106115f45761010080835404028352916020019161161f565b820191906000526020600020905b81548152906001019060200180831161160257829003601f168201915b5050505050815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff1615151515815250509050806020015181604001518260600151829250935093509350509193909250565b635cf1c00081565b61168b3382613303565b50565b6000806000806000806000600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020955085600101549450600086600301541180156116fc575085600301548660040154105b156117b657856004015493505b85600301548410156117b55785600201600085815260200190815260200160002092504283600101541115156117a8576117508360010154846002015485600301546134c2565b915061177f836003015461177184866000015461350490919063ffffffff16565b61353c90919063ffffffff16565b90508481111561179257600094506117b5565b6117a5818661306f90919063ffffffff16565b94505b8380600101945050611709565b5b849650505050505050919050565b600061185d600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461355290919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bf57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615156119c157600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f1715177e65f487a03d8875d9200f556ae2023cf6d9e59b6a58b2c4ccdd6276a560405160405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611afa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611b3657600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff161515611b9457600080fd5b8060010154611ba2846117c4565b141515611bae57600080fd5b806002015434141515611bc057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c3f57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611c85573d6000803e3d6000fd5b50611c95838383600101546131b3565b60008160000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f77d88557326329ff3b691e87c8e1d4ad0c6e20ff0cc08083259e80c8ad3431cc836001015434604051808381526020018281526020019250505060405180910390a3505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d55613a52565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151515611db157600080fd5b6001816000019015159081151581525050611dcb336117c4565b8160200181815250508281604001818152505081816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff021916908315150217905550602082015181600101556040820151816002015560608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050503373ffffffffffffffffffffffffffffffffffffffff167f4c7e7010f4fcf12a6ff2436b38a5e3d0ef3e695830216259fccf95a56b2bb04d82602001518360400151604051808381526020018281526020019250505060405180910390a2505050565b6000611f4161399e565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9c57600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508160000160009054906101000a900460ff16151515611ffb57600080fd5b60018160000190151590811515815250506040805190810160405280600881526020017f526573656c6c65720000000000000000000000000000000000000000000000008152508160200181905250600181608001901515908115158152505080600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010190805190602001906120d79291906139d2565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050508273ffffffffffffffffffffffffffffffffffffffff167ffdee36cbccd611f119c32205b091f639eb47f63a00e0a67ae4fee18631f291b060405160405180910390a2505050565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121ed5780601f106121c2576101008083540402835291602001916121ed565b820191906000526020600020905b8154815290600101906020018083116121d057829003601f168201915b505050505081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561225257600080fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156122d057600080fd5b6000821115156122df57600080fd5b8181101515156122ee57600080fd5b61234082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461306f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123988260065461306f90919063ffffffff16565b6006819055506123f382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461355290919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff167fbd188d3a5762f5bf3811fbeb63dd524c9c935bf8de54463e8d0725cf944c434a836040518082815260200191505060405180910390a2505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124e957600080fd5b600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154841115151561255b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415151561259757600080fd5b61260d84600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461306f90919063ffffffff16565b600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061268085858585613088565b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019050949350505050565b6000806000806000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002093508360040160009054906101000a900460ff16801561275b575042635cf1c000105b156128535760008460000160006101000a81548160ff02191690831515021790555060008460040160006101000a81548160ff02191690831515021790555062278d00635cf1c00042038115156127ae57fe5b049250600a83101561285257600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600a83600a0383600001540281151561281057fe5b04905061282a81836000015461306f90919063ffffffff16565b82600001819055506128513382426001870162278d0002635cf1c000010386600a03613088565b5b5b61285c3361356e565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015486111515156128ad57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156128e957600080fd5b8360000160009054906101000a900460ff16156129e45761295586600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461306f90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508360040160009054906101000a900460ff16156129ca576129c5878742635cf1c00003600a613088565b6129df565b6129de878786600201548760030154613088565b5b612b1b565b612a3986600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461306f90919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612ad486600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461355290919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600194505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612be957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612c2557600080fd5b600081111515612c3457600080fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515612c8557600080fd5b612cd781600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461355290919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6f81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461306f90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612dca8160065461355290919063ffffffff16565b6006819055508173ffffffffffffffffffffffffffffffffffffffff167ff7de51a0a07cd08827163191103898b0da35e6b82114bbed7663f86e93101c8b826040518082815260200191505060405180910390a25050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e7f57600080fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612efd57600080fd5b600081111515612f0c57600080fd5b612f1682826121f5565b5050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561306357600080fd5b61306c816138a4565b50565b600082821115151561307d57fe5b818303905092915050565b6000613092613a93565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091508481600001818152505083420181602001818152505082816060018181525050848260010160008282540192505081905550808260020160008460030154815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155905050600182600301600082825401925050819055508573ffffffffffffffffffffffffffffffffffffffff167ff9626bca62c59d77fa45a204dc096874ee066a5c5e124aa9ce6c438dbdf7387a866040518082815260200191505060405180910390a2505050505050565b600080826131c0866117c4565b1415156131cc57600080fd5b6131d58561356e565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008260000181905550600082600101819055508160030154826004018190555061328f83826000015461355290919063ffffffff16565b81600001819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35050505050565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154811115151561335457600080fd5b6133a981600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461306f90919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506134048160045461306f90919063ffffffff16565b6004819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008060008091504290505b80861080156134de575083828601105b156134f857818060010192505062278d00860195506134ce565b81925050509392505050565b6000808314156135175760009050613536565b818302905081838281151561352857fe5b0414151561353257fe5b8090505b92915050565b6000818381151561354957fe5b04905092915050565b6000818301905082811015151561356557fe5b80905092915050565b600080600080600061357e613a93565b613586613a93565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209650600087600301541180156135e2575086600301548760040154105b1561389a57866004015495505b866003015486101561389957866002016000878152602001908152602001600020945042856001015411151561388c576136368560010154866002015487600301546134c2565b9350613665856003015461365786886000015461350490919063ffffffff16565b61353c90919063ffffffff16565b9250866001015483111561368c5786600101549250846003015485600201819055506136dd565b6136a383886000015461355290919063ffffffff16565b87600001819055506136c283886001015461306f90919063ffffffff16565b87600101819055508385600201600082825401925050819055505b8773ffffffffffffffffffffffffffffffffffffffff167f613edbda9d1e6bda8af8e869a973f88cccf93854a11f351589038de07e1ab4e3846040518082815260200191505060405180910390a2846003015485600201541415613873578660020160008781526020019081526020016000206080604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152505091508660020160008860040154815260200190815260200160002060806040519081016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080876002016000888152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050508187600201600089600401548152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050506001876004016000828254019250508190555061388b565b8362278d000285600101600082825401925050819055505b5b85806001019650506135ef565b5b5050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156138e057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60a0604051908101604052806000151581526020016060815260200160008152602001600081526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a1357805160ff1916838001178555613a41565b82800160010185558215613a41579182015b82811115613a40578251825591602001919060010190613a25565b5b509050613a4e9190613abc565b5090565b6080604051908101604052806000151581526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b613ade91905b80821115613ada576000816000905550600101613ac2565b5090565b905600a165627a7a72305820530cc85ccb5c542ef132ae43a65b2573523910f51d10d50bb3c69670547d777b0029