60806040526040805190810160405280600981526020017f55584220546f6b656e00000000000000000000000000000000000000000000008152506008908051906020019062000051929190620005cd565b506040805190810160405280600381526020017f5558420000000000000000000000000000000000000000000000000000000000815250600990805190602001906200009f929190620005cd565b506012600a60006101000a81548160ff021916908360ff1602179055506b06765c793fa10079d0000000600b55348015620000d957600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3620001b03362000208640100000000026401000000009004565b620001ca3362000272640100000000026401000000009004565b6000600760006101000a81548160ff0219169083151502179055506200020233600b54620002dc640100000000026401000000009004565b6200067c565b6200022c816005620004536401000000000262002997179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b62000296816006620004536401000000000262002997179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200031957600080fd5b6200033e816003546200051664010000000002620024e4179091906401000000009004565b600381905550620003a681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200051664010000000002620024e4179091906401000000009004565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200049057600080fd5b620004ab828262000538640100000000026401000000009004565b151515620004b857600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008082840190508381101515156200052e57600080fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200057657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200061057805160ff191683800117855562000641565b8280016001018555821562000641579182015b828111156200064057825182559160200191906001019062000623565b5b50905062000650919062000654565b5090565b6200067991905b80821115620006755760008160009055506001016200065b565b5090565b90565b612c5a806200068c6000396000f3fe60806040526004361061022c576000357c01000000000000000000000000000000000000000000000000000000009004806382dc1ec411610135578063a9059cbb116100bd578063dd41f3511161008c578063dd41f35114610c46578063dd62ed3e14610c99578063e8d1e96114610d1e578063f26c159f14610d71578063f2fde38b14610dc25761022c565b8063a9059cbb14610a8e578063aa271e1a14610b01578063b414d4b614610b6a578063c0a4550b14610bd35761022c565b806395d89b411161010457806395d89b41146108b0578063983b2d56146109405780639865027514610991578063a02be1aa146109a8578063a457c2d714610a1b5761022c565b806382dc1ec4146107c25780638456cb59146108135780638da5cb5b1461082a5780638f32d59b146108815761022c565b806342966c68116101b85780636ef8d66d116101875780636ef8d66d1461066f57806370a0823114610686578063715018a6146106eb578063718ccce91461070257806379cc6790146107675761022c565b806342966c681461054b57806346fbf68e1461058657806353cc2fae146105ef5780635c975abb146106405761022c565b80632ff2e9dc116101ff5780632ff2e9dc146103f2578063313ce5671461041d578063395093511461044e5780633f4ba83a146104c157806340c10f19146104d85761022c565b806306fdde0314610231578063095ea7b3146102c157806318160ddd1461033457806323b872dd1461035f575b600080fd5b34801561023d57600080fd5b50610246610e13565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028657808201518184015260208101905061026b565b50505050905090810190601f1680156102b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102cd57600080fd5b5061031a600480360360408110156102e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb1565b604051808215151515815260200191505060405180910390f35b34801561034057600080fd5b50610349610ee1565b6040518082815260200191505060405180910390f35b34801561036b57600080fd5b506103d86004803603606081101561038257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eeb565b604051808215151515815260200191505060405180910390f35b3480156103fe57600080fd5b5061040761100c565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610432611012565b604051808260ff1660ff16815260200191505060405180910390f35b34801561045a57600080fd5b506104a76004803603604081101561047157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611025565b604051808215151515815260200191505060405180910390f35b3480156104cd57600080fd5b506104d6611055565b005b3480156104e457600080fd5b50610531600480360360408110156104fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611104565b604051808215151515815260200191505060405180910390f35b34801561055757600080fd5b506105846004803603602081101561056e57600080fd5b810190808035906020019092919050505061112e565b005b34801561059257600080fd5b506105d5600480360360208110156105a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113b565b604051808215151515815260200191505060405180910390f35b3480156105fb57600080fd5b5061063e6004803603602081101561061257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611158565b005b34801561064c57600080fd5b506106556112c5565b604051808215151515815260200191505060405180910390f35b34801561067b57600080fd5b506106846112dc565b005b34801561069257600080fd5b506106d5600480360360208110156106a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b6040518082815260200191505060405180910390f35b3480156106f757600080fd5b50610700611330565b005b34801561070e57600080fd5b506107516004803603602081101561072557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611402565b6040518082815260200191505060405180910390f35b34801561077357600080fd5b506107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061141a565b005b3480156107ce57600080fd5b50610811600480360360208110156107e557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611428565b005b34801561081f57600080fd5b50610828611448565b005b34801561083657600080fd5b5061083f6114f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561088d57600080fd5b50610896611521565b604051808215151515815260200191505060405180910390f35b3480156108bc57600080fd5b506108c5611578565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109055780820151818401526020810190506108ea565b50505050905090810190601f1680156109325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561094c57600080fd5b5061098f6004803603602081101561096357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611616565b005b34801561099d57600080fd5b506109a6611636565b005b3480156109b457600080fd5b50610a01600480360360408110156109cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611641565b604051808215151515815260200191505060405180910390f35b348015610a2757600080fd5b50610a7460048036036040811015610a3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118aa565b604051808215151515815260200191505060405180910390f35b348015610a9a57600080fd5b50610ae760048036036040811015610ab157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118da565b604051808215151515815260200191505060405180910390f35b348015610b0d57600080fd5b50610b5060048036036020811015610b2457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a0565b604051808215151515815260200191505060405180910390f35b348015610b7657600080fd5b50610bb960048036036020811015610b8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119bd565b604051808215151515815260200191505060405180910390f35b348015610bdf57600080fd5b50610c2c60048036036040811015610bf657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119dd565b604051808215151515815260200191505060405180910390f35b348015610c5257600080fd5b50610c7f60048036036020811015610c6957600080fd5b8101908080359060200190929190505050611c46565b604051808215151515815260200191505060405180910390f35b348015610ca557600080fd5b50610d0860048036036040811015610cbc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c5c565b6040518082815260200191505060405180910390f35b348015610d2a57600080fd5b50610d5760048036036020811015610d4157600080fd5b8101908080359060200190929190505050611ce3565b604051808215151515815260200191505060405180910390f35b348015610d7d57600080fd5b50610dc060048036036020811015610d9457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf9565b005b348015610dce57600080fd5b50610e1160048036036020811015610de557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b005b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ea95780601f10610e7e57610100808354040283529160200191610ea9565b820191906000526020600020905b815481529060010190602001808311610e8c57829003601f168201915b505050505081565b6000600760009054906101000a900460ff16151515610ecf57600080fd5b610ed98383611e85565b905092915050565b6000600354905090565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f4657600080fd5b600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610f9f57600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610ff857600080fd5b611003848484611e9c565b90509392505050565b600b5481565b600a60009054906101000a900460ff1681565b6000600760009054906101000a900460ff1615151561104357600080fd5b61104d8383611ece565b905092915050565b61105e3361113b565b151561106957600080fd5b600760009054906101000a900460ff16151561108457600080fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600061110f336119a0565b151561111a57600080fd5b6111248383611f73565b6001905092915050565b61113833826120c9565b50565b600061115182600661221f90919063ffffffff16565b9050919050565b611160611521565b151561116b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111a757600080fd5b60001515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415151561120757600080fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8a56897dfce8680cbcfd8a39fc9a77d55677650ea50712197f14b6fbc7e0677b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600760009054906101000a900460ff16905090565b6112e5336122b3565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611338611521565b151561134357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60046020528060005260406000206000915090505481565b611424828261230d565b5050565b6114313361113b565b151561143c57600080fd5b611445816123b4565b50565b6114513361113b565b151561145c57600080fd5b600760009054906101000a900460ff1615151561147857600080fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561160e5780601f106115e35761010080835404028352916020019161160e565b820191906000526020600020905b8154815290600101906020018083116115f157829003601f168201915b505050505081565b61161f336119a0565b151561162a57600080fd5b6116338161240e565b50565b61163f33612468565b565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561167e57600080fd5b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156116cc57600080fd5b61171e82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117b382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fb371d42b3715509a27f3109f6ac1ef6b7d7e7f8e9232b738ed17338be6cf958083600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000600760009054906101000a900460ff161515156118c857600080fd5b6118d28383612505565b905092915050565b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561193557600080fd5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561198e57600080fd5b61199883836125aa565b905092915050565b60006119b682600561221f90919063ffffffff16565b9050919050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611a1a57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515611a6857600080fd5b611aba82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b4f82600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f625fed9875dada8643f2418b838ae0bc78d9a148a18eee4ee1979ff0f3f5d42783600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16001905092915050565b6000611c523383611641565b5060019050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000611cef33836119dd565b5060019050919050565b611d01611521565b1515611d0c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611d4857600080fd5b60011515600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151515611da857600080fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611e6e611521565b1515611e7957600080fd5b611e82816125da565b50565b6000611e923384846126d4565b6001905092915050565b6000600760009054906101000a900460ff16151515611eba57600080fd5b611ec5848484612837565b90509392505050565b6000611f693384611f6485600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b6126d4565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611faf57600080fd5b611fc4816003546124e490919063ffffffff16565b60038190555061201c81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561210557600080fd5b61211a816003546124c290919063ffffffff16565b60038190555061217281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561225c57600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6122c78160066128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b61231782826120c9565b6123b082336123ab84600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b5050565b6123c881600661299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b61242281600561299790919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61247c8160056128e890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008282111515156124d357600080fd5b600082840390508091505092915050565b60008082840190508381101515156124fb57600080fd5b8091505092915050565b60006125a0338461259b85600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b6001905092915050565b6000600760009054906101000a900460ff161515156125c857600080fd5b6125d28383612a47565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561261657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561271057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561274c57600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6000612844848484612a5e565b6128dd84336128d885600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b6126d4565b600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561292457600080fd5b61292e828261221f565b151561293957600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156129d357600080fd5b6129dd828261221f565b1515156129e957600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000612a54338484612a5e565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612a9a57600080fd5b612aec81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124c290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b8181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e490919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fea165627a7a723058204f58975f71b789f9f69443e6b9622ee71cfe616b189ed2d25554d66be69157cc0029