60806040523480156200001157600080fd5b506040805190810160405280600f81526020017f4368616c6c656e676520546f6b656e00000000000000000000000000000000008152506040805190810160405280600381526020017f43444f0000000000000000000000000000000000000000000000000000000000815250816004908051906020019062000096929190620000f9565b508060059080519060200190620000af929190620000f9565b50505033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001a8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013c57805160ff19168380011785556200016d565b828001600101855582156200016d579182015b828111156200016c5782518255916020019190600101906200014f565b5b5090506200017c919062000180565b5090565b620001a591905b80821115620001a157600081600090555060010162000187565b5090565b90565b61316b80620001b86000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063081812fc1461022b578063095ea7b31461029857806318160ddd146102e55780631b0fc1061461031057806323b872dd14610355578063283b19bf146103c25780632cda1bf71461040c5780632f745c59146104b257806332f26694146105135780633411c81c146105545780633a4027bb146105b957806342842e0e1461061d57806343569ffb1461068a5780634f558e79146107015780634f6ccce7146107465780635c735360146107875780636352211e146107cc57806370a08231146108395780638da5cb5b14610890578063949e8acd146108e757806395d89b4114610953578063a22cb465146109e3578063b88d4fde14610a32578063ba0179b514610ae5578063c87b56dd14610b12578063cc10e40114610bb8578063e4b50cb814610bff578063e70eb39214610cff578063e985e9c514610d4c578063f2db11af14610dc7578063f2fde38b14610e28575b600080fd5b3480156101a757600080fd5b506101b0610e6b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b5061025660048036038101908080359060200190929190505050610f0d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a457600080fd5b506102e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4a565b005b3480156102f157600080fd5b506102fa611110565b6040518082815260200191505060405180910390f35b34801561031c57600080fd5b5061033b6004803603810190808035906020019092919050505061111d565b604051808215151515815260200191505060405180910390f35b34801561036157600080fd5b506103c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ca565b005b61040a6004803603810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e1565b005b34801561041857600080fd5b50610437600480360381019080803590602001909291905050506114ed565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561047757808201518184015260208101905061045c565b50505050905090810190601f1680156104a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104be57600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061159d565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b5061053e60048036038101908080359060200190929190505050611614565b6040518082815260200191505060405180910390f35b34801561056057600080fd5b5061059f60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162c565b604051808215151515815260200191505060405180910390f35b61061b60048036038101908080359060200190820180359060200191909192939192939080351515906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061165b565b005b34801561062957600080fd5b50610688600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061193e565b005b34801561069657600080fd5b506106bf6004803603810190808035906020019092919080359060200190929190505050611976565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561070d57600080fd5b5061072c600480360381019080803590602001909291905050506119c3565b604051808215151515815260200191505060405180910390f35b34801561075257600080fd5b5061077160048036038101908080359060200190929190505050611a34565b6040518082815260200191505060405180910390f35b34801561079357600080fd5b506107b260048036038101908080359060200190929190505050611a6c565b604051808215151515815260200191505060405180910390f35b3480156107d857600080fd5b506107f760048036038101908080359060200190929190505050611a8c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561084557600080fd5b5061087a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b09565b6040518082815260200191505060405180910390f35b34801561089c57600080fd5b506108a5611b8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108f357600080fd5b506108fc611bb3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561093f578082015181840152602081019050610924565b505050509050019250505060405180910390f35b34801561095f57600080fd5b50610968611c48565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156109a857808201518184015260208101905061098d565b50505050905090810190601f1680156109d55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109ef57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611cea565b005b348015610a3e57600080fd5b50610ae3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611e26565b005b348015610af157600080fd5b50610b1060048036038101908080359060200190929190505050611e65565b005b348015610b1e57600080fd5b50610b3d60048036038101908080359060200190929190505050611ed1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b7d578082015181840152602081019050610b62565b50505050905090810190601f168015610baa5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bc457600080fd5b50610bfd600480360381019080803590602001908201803590602001919091929391929390803515159060200190929190505050611f9a565b005b348015610c0b57600080fd5b50610c2a60048036038101908080359060200190929190505050612053565b60405180851515151581526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610c7e578082015181840152602081019050610c63565b50505050905090810190601f168015610cab5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b83811015610ce7578082015181840152602081019050610ccc565b50505050905001965050505050505060405180910390f35b348015610d0b57600080fd5b50610d4a60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121e3565b005b348015610d5857600080fd5b50610dad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123ad565b604051808215151515815260200191505060405180910390f35b348015610dd357600080fd5b50610e1260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612441565b6040518082815260200191505060405180910390f35b348015610e3457600080fd5b50610e69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612466565b005b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f035780601f10610ed857610100808354040283529160200191610f03565b820191906000526020600020905b815481529060010190602001808311610ee657829003601f168201915b5050505050905090565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610f5582611a8c565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610f9257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fd25750610fd181336123ad565b5b1515610fdd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16610ffe83610f0d565b73ffffffffffffffffffffffffffffffffffffffff1614158061104e5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561110b57826001600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a35b505050565b6000600880549050905090565b600060011515600c600084815260200190815260200160002060009054906101000a900460ff16151514156111c0577f198848172490c9cede6f00b7d3d59d018f0bc4715a37f81b8ce39cc7807369ad3383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1600190506111c5565b600090505b919050565b806111d533826125be565b15156111e057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561121c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561125857600080fd5b6112628483612653565b61126c84836127bc565b61127683836129d4565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b81341415156112ef57600080fd5b600015156010600085815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561135f57600080fd5b6000600e600085815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561148957600f60008481526020019081526020016000208190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505034600e600085815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114e8565b34600e600085815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b505050565b600d6020528060005260406000206000915090508054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115955780601f1061156a57610100808354040283529160200191611595565b820191906000526020600020905b81548152906001019060200180831161157857829003601f168201915b505050505081565b60006115a883611b09565b821015156115b557600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561160157fe5b9060005260206000200154905092915050565b60116020528060005260406000206000915090505481565b60106020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6000823414151561166b57600080fd5b600015156010600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156116db57600080fd5b60016008805490500190506116f03382612aab565b8585600d6000848152602001908152602001600020919061171292919061306e565b503460116000838152602001908152602001600020600082825401925050819055506000600e600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561185e57600f60008281526020019081526020016000208290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505034600e600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118bd565b34600e600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b83600c600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5826040518082815260200191505060405180910390a2505050505050565b8061194933826125be565b151561195457600080fd5b6119708484846020604051908101604052806000815250611e26565b50505050565b600f6020528160005260406000208181548110151561199157fe5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000611a3e611110565b82101515611a4b57600080fd5b600882815481101515611a5a57fe5b90600052602060002001549050919050565b600c6020528060005260406000206000915054906101000a900460ff1681565b60008060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b0057600080fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611b4657600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611c3e57602002820191906000526020600020905b815481526020019060010190808311611c2a575b5050505050905090565b606060058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ce05780601f10611cb557610100808354040283529160200191611ce0565b820191906000526020600020905b815481529060010190602001808311611cc357829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d2557600080fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b81611e3133826125be565b1515611e3c57600080fd5b611e478585856111ca565b611e5385858585612b02565b1515611e5e57600080fd5b5050505050565b60016010600083815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6060611edc826119c3565b1515611ee757600080fd5b600a60008381526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f8e5780601f10611f6357610100808354040283529160200191611f8e565b820191906000526020600020905b815481529060010190602001808311611f7157829003601f168201915b50505050509050919050565b60006001600880549050019050611fb13382612aab565b8383600d60008481526020019081526020016000209190611fd392919061306e565b5081600c600083815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f75424253909c2f4460f8a59099700e980f5b484608c4fdd79f600f5162ac88a5826040518082815260200191505060405180910390a250505050565b6000606060006060600c600086815260200190815260200160002060009054906101000a900460ff169350600d60008681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121255780601f106120fa57610100808354040283529160200191612125565b820191906000526020600020905b81548152906001019060200180831161210857829003601f168201915b5050505050925060116000868152602001908152602001600020549150600f60008681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156121d557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161218b575b505050505090509193509193565b60003373ffffffffffffffffffffffffffffffffffffffff1661220584611a8c565b73ffffffffffffffffffffffffffffffffffffffff1614151561222757600080fd5b600115156010600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561229757600080fd5b600e600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600e600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060116000858152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156123a7573d6000803e3d6000fd5b50505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600e602052816000526040600020602052806000526040600020600091509150505481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156124c257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156124fe57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806125ca83611a8c565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061263957508373ffffffffffffffffffffffffffffffffffffffff1661262184610f0d565b73ffffffffffffffffffffffffffffffffffffffff16145b8061264a575061264981856123ad565b5b91505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1661267382611a8c565b73ffffffffffffffffffffffffffffffffffffffff1614151561269557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127b85760006001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35b5050565b60008060006127cb8585612cf0565b600760008581526020019081526020016000205492506128376001600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612e1e90919063ffffffff16565b9150600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561288557fe5b9060005260206000200154905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156128df57fe5b90600052602060002001819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561293b57fe5b9060005260206000200181905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548091906001900361299b91906130ee565b50600060076000868152602001908152602001600020819055508260076000838152602001908152602001600020819055505050505050565b60006129e08383612e37565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806007600084815260200190815260200160002081905550505050565b612ab58282612f8f565b600880549050600960008381526020019081526020016000208190555060088190806001815401808255809150509060018203906000526020600020016000909192909190915055505050565b600080612b248573ffffffffffffffffffffffffffffffffffffffff1661303f565b1515612b335760019150612ce7565b8473ffffffffffffffffffffffffffffffffffffffff1663f0b9e5ba8786866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612bf5578082015181840152602081019050612bda565b50505050905090810190601f168015612c225780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015612c4357600080fd5b505af1158015612c57573d6000803e3d6000fd5b505050506040513d6020811015612c6d57600080fd5b8101908080519060200190929190505050905063f0b9e5ba7c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff16612d1082611a8c565b73ffffffffffffffffffffffffffffffffffffffff16141515612d3257600080fd5b612d856001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1e90919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000828211151515612e2c57fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612ea457600080fd5b8160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612f486001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461305290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612fcb57600080fd5b612fd582826129d4565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080823b905060008111915050919050565b6000818301905082811015151561306557fe5b80905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130af57803560ff19168380011785556130dd565b828001600101855582156130dd579182015b828111156130dc5782358255916020019190600101906130c1565b5b5090506130ea919061311a565b5090565b81548183558181111561311557818360005260206000209182019101613114919061311a565b5b505050565b61313c91905b80821115613138576000816000905550600101613120565b5090565b905600a165627a7a723058208bccf231a0845c46f6696e390d44196201ac007df5251e2520021646a308fc930029