0x60806040526040518060400160405280600c81526020017f4e465453746f72652e546f700000000000000000000000000000000000000000815250600390805190602001906200005192919062000119565b506040518060400160405280600481526020017f4e46545300000000000000000000000000000000000000000000000000000000815250600490805190602001906200009f92919062000119565b50601260055560006006556000600760006101000a81548160ff021916908315150217905550348015620000d257600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200022e565b8280546200012790620001c9565b90600052602060002090601f0160209004810192826200014b576000855562000197565b82601f106200016657805160ff191683800117855562000197565b8280016001018555821562000197579182015b828111156200019657825182559160200191906001019062000179565b5b509050620001a69190620001aa565b5090565b5b80821115620001c5576000816000905550600101620001ab565b5090565b60006002820490506001821680620001e257607f821691505b60208210811415620001f957620001f8620001ff565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b611866806200023e6000396000f3fe608060405234801561001057600080fd5b506004361061011a5760003560e01c806379ba5097116100a2578063a398063a11610071578063a398063a146102a9578063a9059cbb146102c5578063dc39d06d146102e1578063dd62ed3e146102fd578063f2fde38b1461032d5761011b565b806379ba5097146102475780638da5cb5b1461025157806395d89b411461026f5780639dc29fac1461028d5761011b565b806323b872dd116100e957806323b872dd146101a5578063313ce567146101c157806340c10f19146101df5780634a994eef146101fb57806370a08231146102175761011b565b806306fdde031461011d578063077796271461013b578063095ea7b31461016b57806318160ddd146101875761011b565b5b005b610125610349565b60405161013291906115c4565b60405180910390f35b61015560048036038101906101509190611372565b6103db565b60405161016291906115a9565b60405180910390f35b61018560048036038101906101809190611462565b610488565b005b61018f6105ab565b60405161019c91906115e6565b60405180910390f35b6101bf60048036038101906101ba91906113d7565b6105b5565b005b6101c9610872565b6040516101d69190611601565b60405180910390f35b6101f960048036038101906101f49190611462565b61087c565b005b61021560048036038101906102109190611426565b6109e6565b005b610231600480360381019061022c9190611372565b610a83565b60405161023e91906115e6565b60405180910390f35b61024f610acc565b005b610259610c68565b604051610266919061153c565b60405180910390f35b610277610c91565b60405161028491906115c4565b60405180910390f35b6102a760048036038101906102a29190611462565b610d23565b005b6102c360048036038101906102be919061149e565b610e53565b005b6102df60048036038101906102da9190611462565b610e79565b005b6102fb60048036038101906102f69190611462565b611026565b005b6103176004803603810190610312919061139b565b6110c0565b60405161032491906115e6565b60405180910390f35b61034760048036038101906103429190611372565b611147565b005b6060600380546103589061174a565b80601f01602080910402602001604051908101604052809291908181526020018280546103849061174a565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806104815750600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104c157600080fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161059f91906115e6565b60405180910390a35050565b6000600654905090565b600760009054906101000a900460ff16156105cf57600080fd5b61065e81600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e390919063ffffffff16565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061073081600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e390919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506107c581600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120690919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161086591906115e6565b60405180910390a3505050565b6000600554905090565b61088533611229565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bf57600080fd5b600081116108cc57600080fd5b61091e81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120690919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109768160065461120690919063ffffffff16565b6006819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516109da91906115e6565b60405180910390a35050565b6109ef33611229565b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7b350280cffa461fe3ed70a958b022411c9b76d980449395cb4747918b27bc108282604051610a77929190611557565b60405180910390a15050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610ca09061174a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccc9061174a565b8015610d195780601f10610cee57610100808354040283529160200191610d19565b820191906000526020600020905b815481529060010190602001808311610cfc57829003601f168201915b5050505050905090565b610d2c33611229565b60008111610d3957600080fd5b610d8b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e390919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610de3816006546111e390919063ffffffff16565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610e4791906115e6565b60405180910390a35050565b610e5c336112d8565b80600760006101000a81548160ff02191690831515021790555050565b600760009054906101000a900460ff1615610e9357600080fd5b610ee581600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e390919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f7a81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461120690919063ffffffff16565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161101a91906115e6565b60405180910390a35050565b61102f336112d8565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161108a929190611580565b600060405180830381600087803b1580156110a457600080fd5b505af11580156110b8573d6000803e3d6000fd5b505050505050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461119f57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000828211156111f257600080fd5b81836111fe919061168e565b905092915050565b600081836112149190611638565b90508281101561122357600080fd5b92915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806112cc5750600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6112d557600080fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461133057600080fd5b50565b600081359050611342816117eb565b92915050565b60008135905061135781611802565b92915050565b60008135905061136c81611819565b92915050565b60006020828403121561138457600080fd5b600061139284828501611333565b91505092915050565b600080604083850312156113ae57600080fd5b60006113bc85828601611333565b92505060206113cd85828601611333565b9150509250929050565b6000806000606084860312156113ec57600080fd5b60006113fa86828701611333565b935050602061140b86828701611333565b925050604061141c8682870161135d565b9150509250925092565b6000806040838503121561143957600080fd5b600061144785828601611333565b925050602061145885828601611348565b9150509250929050565b6000806040838503121561147557600080fd5b600061148385828601611333565b92505060206114948582860161135d565b9150509250929050565b6000602082840312156114b057600080fd5b60006114be84828501611348565b91505092915050565b6114d0816116c2565b82525050565b6114df816116d4565b82525050565b60006114f08261161c565b6114fa8185611627565b935061150a818560208601611717565b611513816117da565b840191505092915050565b61152781611700565b82525050565b6115368161170a565b82525050565b600060208201905061155160008301846114c7565b92915050565b600060408201905061156c60008301856114c7565b61157960208301846114d6565b9392505050565b600060408201905061159560008301856114c7565b6115a2602083018461151e565b9392505050565b60006020820190506115be60008301846114d6565b92915050565b600060208201905081810360008301526115de81846114e5565b905092915050565b60006020820190506115fb600083018461151e565b92915050565b6000602082019050611616600083018461152d565b92915050565b600081519050919050565b600082825260208201905092915050565b600061164382611700565b915061164e83611700565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156116835761168261177c565b5b828201905092915050565b600061169982611700565b91506116a483611700565b9250828210156116b7576116b661177c565b5b828203905092915050565b60006116cd826116e0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101561173557808201518184015260208101905061171a565b83811115611744576000848401525b50505050565b6000600282049050600182168061176257607f821691505b60208210811415611776576117756117ab565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6117f4816116c2565b81146117ff57600080fd5b50565b61180b816116d4565b811461181657600080fd5b50565b61182281611700565b811461182d57600080fd5b5056fea2646970667358221220d7e34b33f5334367672b46286546f54d37a06916a18125b949184879f83dd8cc64736f6c63430008000033