Address Details
contract

0xe22092693967fcf76b635d123D3b8c3ad010b260

Contract Name
SmartRentFactory
Creator
0x022cba–2ddf2f at 0xf57e77–b6db7f
Balance
0 CELO ( )
Locked CELO Balance
0.00 CELO
Voting CELO Balance
0.00 CELO
Pending Unlocked Gold
0.00 CELO
Tokens
Fetching tokens...
Transactions
3 Transactions
Transfers
0 Transfers
Gas Used
3,104,691
Last Balance Update
4917435
This contract has been verified via Sourcify. View contract in Sourcify repository
Contract name:
SmartRentFactory




Optimization enabled
false
Compiler version
v0.5.16+commit.9c3226ce




EVM Version
istanbul




Verified at
2022-09-30T12:42:14.629658Z

/C/Users/User/Desktop/fyp/contracts/SmartRentFactory.sol

pragma solidity >=0.5.0;

import './SmartRentContract.sol';

contract SmartRentFactory {

    event NewLease(address contractAddress, address indexed landlord, address indexed tenant);

    string name = "Connected ";

    function createRent(
        string memory _landlord,
        address payable _landlordAddress,
        string memory _roomAddress,
        uint _startDate,
        uint _endDate,
        uint _deposit,
        uint _rent,
        address payable _tenantAddress
    ) public
    {
        address newContract = address(new SmartRentContract(_landlord, _landlordAddress, _roomAddress, _startDate, _endDate, _deposit, _rent, _tenantAddress));
        emit NewLease(newContract, _landlordAddress, _tenantAddress);
    }
}
        

/C/Users/User/Desktop/fyp/contracts/SmartRentContract.sol

// Learn more about Solidity here: https://solidity.readthedocs.io

// This statement specifies the compatible compiler versions
pragma solidity >=0.5.0;

// Declare a contract called HelloWorld
contract SmartRentContract {
    
    event TenantAssigned(address tenantAddress, uint rentAmount, uint rentDeposit);
    event TenantSigned(address tenantAddress);
    event DepositPaid(address tenantAddress, uint rentDeposit);
    event ApprovedSmartRent(address tenant);

    address payable public landlordAddress;
    string public landlordName;
    
    bool public isSigned = false;
    bool public hasPaidDeposit = false;
    
    mapping (address => bool) public tenantToSigned;
    address payable public tenantAddress;
    uint256 public rentAmount;
    uint256 public rentDeposit;
    uint256 public startDate;
    uint256 public endDate;
    string public roomAddress;

    string name = "Smart Rent";

    constructor(string memory _landlord,
            address payable _landlordAddress,
            string memory _roomAddress,
            uint _startDate,
            uint _endDate,
            uint _deposit,
            uint _rent,
            address payable _tenantAddress)
        public {
            landlordName = _landlord;
            landlordAddress = _landlordAddress;
            roomAddress = _roomAddress;
            startDate = _startDate;
            endDate = _endDate;
            rentDeposit = _deposit;
            rentAmount = _rent;
            tenantAddress = _tenantAddress;
    }

    modifier landlordOnly() {
        require(msg.sender == landlordAddress);
        _;
    }

    modifier hasSigned() {
        require(isSigned == true, "Tenant must sign the contract before invoking this functionality");
        _;
    }

    modifier notZeroAddres(address addr){
        require(addr != address(0), "0th address is not allowed!");
        _;
    }

    function setStartDate(uint _startDate) public landlordOnly {
        startDate = _startDate;
    }

    function setEndDate(uint _endDate) public landlordOnly {
        endDate = _endDate;
    }

    function setRoomAddress(string memory _roomAddress) public {
        roomAddress = _roomAddress;
    }

    function assignTenant(address _tenantAddress)
      external notZeroAddres(_tenantAddress) {
        require(_tenantAddress != landlordAddress, "Landlord is not allowed to be tenant at the same time");
        emit TenantAssigned(_tenantAddress, rentAmount, rentDeposit);
    }

    function signContract() public {
        require(isSigned == false);
        tenantToSigned[msg.sender] = true;
        isSigned = true;
        emit TenantSigned(msg.sender);
    }

    function payDeposit() external payable {
        require(hasPaidDeposit == false);
        hasPaidDeposit = true;
        emit DepositPaid(msg.sender, msg.value);
    }

    function getName() public view returns (string memory) 
    {
        // Return the storage variable 'name'
        return name;
    }
}
          

Contract ABI

[{"type":"event","name":"NewLease","inputs":[{"type":"address","name":"contractAddress","internalType":"address","indexed":false},{"type":"address","name":"landlord","internalType":"address","indexed":true},{"type":"address","name":"tenant","internalType":"address","indexed":true}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"createRent","inputs":[{"type":"string","name":"_landlord","internalType":"string"},{"type":"address","name":"_landlordAddress","internalType":"address payable"},{"type":"string","name":"_roomAddress","internalType":"string"},{"type":"uint256","name":"_startDate","internalType":"uint256"},{"type":"uint256","name":"_endDate","internalType":"uint256"},{"type":"uint256","name":"_deposit","internalType":"uint256"},{"type":"uint256","name":"_rent","internalType":"uint256"},{"type":"address","name":"_tenantAddress","internalType":"address payable"}],"constant":false}]
              

Contract Creation Code

0x60806040526040518060400160405280600a81526020017f436f6e6e656374656420000000000000000000000000000000000000000000008152506000908051906020019061004f929190610062565b5034801561005c57600080fd5b50610107565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100a357805160ff19168380011785556100d1565b828001600101855582156100d1579182015b828111156100d05782518255916020019190600101906100b5565b5b5090506100de91906100e2565b5090565b61010491905b808211156101005760008160009055506001016100e8565b5090565b90565b6116da806101166000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b9b392e614610030575b600080fd5b6101e9600480360361010081101561004757600080fd5b810190808035906020019064010000000081111561006457600080fd5b82018360208201111561007657600080fd5b8035906020019184600183028401116401000000008311171561009857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101eb565b005b6000888888888888888860405161020190610419565b80806020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183810383528b818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509a5050505050505050505050604051809103906000f08015801561037a573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f6a5e83232efe4dca9454d60fbe19e482e52f973d7fa4123b439c1f9c338a8b7983604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3505050505050505050565b61127f806104278339019056fe60806040526000600260006101000a81548160ff0219169083151502179055506000600260016101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f536d6172742052656e7400000000000000000000000000000000000000000000815250600a90805190602001906200008792919062000356565b503480156200009557600080fd5b506040516200127f3803806200127f8339818101604052610100811015620000bc57600080fd5b8101908080516040519392919084640100000000821115620000dd57600080fd5b83820191506020820185811115620000f457600080fd5b82518660018202830111640100000000821117156200011257600080fd5b8083526020830192505050908051906020019080838360005b83811015620001485780820151818401526020810190506200012b565b50505050905090810190601f168015620001765780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080516040519392919084640100000000821115620001a457600080fd5b83820191506020820185811115620001bb57600080fd5b8251866001820283011164010000000082111715620001d957600080fd5b8083526020830192505050908051906020019080838360005b838110156200020f578082015181840152602081019050620001f2565b50505050905090810190601f1680156200023d5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505087600190805190602001906200029192919062000356565b50866000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560099080519060200190620002ea92919062000356565b508460078190555083600881905550826006819055508160058190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000405565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039957805160ff1916838001178555620003ca565b82800160010185558215620003ca579182015b82811115620003c9578251825591602001919060010190620003ac565b5b509050620003d99190620003dd565b5090565b6200040291905b80821115620003fe576000816000905550600101620003e4565b5090565b90565b610e6a80620004156000396000f3fe6080604052600436106101095760003560e01c8063b8b4f1a011610095578063d964f29e11610064578063d964f29e14610474578063dc4a611c14610504578063e1746af9146105cc578063e66a6b2214610635578063f8ef1e131461066457610109565b8063b8b4f1a0146103b6578063bf8c0efc146103cd578063c24a0f8b146103f8578063d1aac1711461042357610109565b80633784f000116100dc5780633784f0001461024f5780635c274b861461028a57806382d95df5146102945780639419bc29146102cf578063aca1feea1461035f57610109565b806302d8db081461010e5780630b97bc861461016557806317d7de7c1461019057806332dd81f614610220575b600080fd5b34801561011a57600080fd5b5061012361068f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017157600080fd5b5061017a6106b4565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101a56106ba565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b5061023561075c565b604051808215151515815260200191505060405180910390f35b34801561025b57600080fd5b506102886004803603602081101561027257600080fd5b810190808035906020019092919050505061076f565b005b6102926107d2565b005b3480156102a057600080fd5b506102cd600480360360208110156102b757600080fd5b810190808035906020019092919050505061087a565b005b3480156102db57600080fd5b506102e46108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036b57600080fd5b5061037461097b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c257600080fd5b506103cb6109a1565b005b3480156103d957600080fd5b506103e2610a99565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b5061040d610a9f565b6040518082815260200191505060405180910390f35b34801561042f57600080fd5b506104726004803603602081101561044657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa5565b005b34801561048057600080fd5b50610489610c6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051057600080fd5b506105ca6004803603602081101561052757600080fd5b810190808035906020019064010000000081111561054457600080fd5b82018360208201111561055657600080fd5b8035906020019184600183028401116401000000008311171561057857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610d08565b005b3480156105d857600080fd5b5061061b600480360360208110156105ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b34801561064157600080fd5b5061064a610d42565b604051808215151515815260200191505060405180910390f35b34801561067057600080fd5b50610679610d55565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b600260019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b8060088190555050565b60001515600260019054906101000a900460ff161515146107f257600080fd5b6001600260016101000a81548160ff0219169083151502179055507ff1953715a33b9e021c0f2cf12911e8ac25fdb177bf6fc92d1331ae05201fe9f63334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d357600080fd5b8060078190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60001515600260009054906101000a900460ff161515146109c157600080fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006101000a81548160ff0219169083151502179055507fe653009d32c7245a6ff858fa3a804f5beb3b19b4bbe48178446e966401d8389433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60065481565b60085481565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f3074682061646472657373206973206e6f7420616c6c6f77656421000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610e016035913960400191505060405180910390fd5b7ff32dc6bb034b9afc20d4c7daa180b08e89cac33817a6836595b1021c4347620482600554600654604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d005780601f10610cd557610100808354040283529160200191610d00565b820191906000526020600020905b815481529060010190602001808311610ce357829003601f168201915b505050505081565b8060099080519060200190610d1e929190610d5b565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900460ff1681565b60055481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d9c57805160ff1916838001178555610dca565b82800160010185558215610dca579182015b82811115610dc9578251825591602001919060010190610dae565b5b509050610dd79190610ddb565b5090565b610dfd91905b80821115610df9576000816000905550600101610de1565b5090565b9056fe4c616e646c6f7264206973206e6f7420616c6c6f77656420746f2062652074656e616e74206174207468652073616d652074696d65a265627a7a723158203734acee69685bb319f771df28394adf56fbdd615b6722eced75bddd66ef58f564736f6c63430005100032a265627a7a723158201a76fa263d4e4834d8750d32b99dda74f744c82207779f62fddf25db4f23f17664736f6c63430005100032

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063b9b392e614610030575b600080fd5b6101e9600480360361010081101561004757600080fd5b810190808035906020019064010000000081111561006457600080fd5b82018360208201111561007657600080fd5b8035906020019184600183028401116401000000008311171561009857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011b57600080fd5b82018360208201111561012d57600080fd5b8035906020019184600183028401116401000000008311171561014f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101eb565b005b6000888888888888888860405161020190610419565b80806020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183810383528b818151815260200191508051906020019080838360005b838110156102be5780820151818401526020810190506102a3565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b50838103825289818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509a5050505050505050505050604051809103906000f08015801561037a573d6000803e3d6000fd5b5090508173ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f6a5e83232efe4dca9454d60fbe19e482e52f973d7fa4123b439c1f9c338a8b7983604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a3505050505050505050565b61127f806104278339019056fe60806040526000600260006101000a81548160ff0219169083151502179055506000600260016101000a81548160ff0219169083151502179055506040518060400160405280600a81526020017f536d6172742052656e7400000000000000000000000000000000000000000000815250600a90805190602001906200008792919062000356565b503480156200009557600080fd5b506040516200127f3803806200127f8339818101604052610100811015620000bc57600080fd5b8101908080516040519392919084640100000000821115620000dd57600080fd5b83820191506020820185811115620000f457600080fd5b82518660018202830111640100000000821117156200011257600080fd5b8083526020830192505050908051906020019080838360005b83811015620001485780820151818401526020810190506200012b565b50505050905090810190601f168015620001765780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080516040519392919084640100000000821115620001a457600080fd5b83820191506020820185811115620001bb57600080fd5b8251866001820283011164010000000082111715620001d957600080fd5b8083526020830192505050908051906020019080838360005b838110156200020f578082015181840152602081019050620001f2565b50505050905090810190601f1680156200023d5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505087600190805190602001906200029192919062000356565b50866000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560099080519060200190620002ea92919062000356565b508460078190555083600881905550826006819055508160058190555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050505062000405565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200039957805160ff1916838001178555620003ca565b82800160010185558215620003ca579182015b82811115620003c9578251825591602001919060010190620003ac565b5b509050620003d99190620003dd565b5090565b6200040291905b80821115620003fe576000816000905550600101620003e4565b5090565b90565b610e6a80620004156000396000f3fe6080604052600436106101095760003560e01c8063b8b4f1a011610095578063d964f29e11610064578063d964f29e14610474578063dc4a611c14610504578063e1746af9146105cc578063e66a6b2214610635578063f8ef1e131461066457610109565b8063b8b4f1a0146103b6578063bf8c0efc146103cd578063c24a0f8b146103f8578063d1aac1711461042357610109565b80633784f000116100dc5780633784f0001461024f5780635c274b861461028a57806382d95df5146102945780639419bc29146102cf578063aca1feea1461035f57610109565b806302d8db081461010e5780630b97bc861461016557806317d7de7c1461019057806332dd81f614610220575b600080fd5b34801561011a57600080fd5b5061012361068f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017157600080fd5b5061017a6106b4565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101a56106ba565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b5061023561075c565b604051808215151515815260200191505060405180910390f35b34801561025b57600080fd5b506102886004803603602081101561027257600080fd5b810190808035906020019092919050505061076f565b005b6102926107d2565b005b3480156102a057600080fd5b506102cd600480360360208110156102b757600080fd5b810190808035906020019092919050505061087a565b005b3480156102db57600080fd5b506102e46108dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610324578082015181840152602081019050610309565b50505050905090810190601f1680156103515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036b57600080fd5b5061037461097b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103c257600080fd5b506103cb6109a1565b005b3480156103d957600080fd5b506103e2610a99565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b5061040d610a9f565b6040518082815260200191505060405180910390f35b34801561042f57600080fd5b506104726004803603602081101561044657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aa5565b005b34801561048057600080fd5b50610489610c6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c95780820151818401526020810190506104ae565b50505050905090810190601f1680156104f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561051057600080fd5b506105ca6004803603602081101561052757600080fd5b810190808035906020019064010000000081111561054457600080fd5b82018360208201111561055657600080fd5b8035906020019184600183028401116401000000008311171561057857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610d08565b005b3480156105d857600080fd5b5061061b600480360360208110156105ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d22565b604051808215151515815260200191505060405180910390f35b34801561064157600080fd5b5061064a610d42565b604051808215151515815260200191505060405180910390f35b34801561067057600080fd5b50610679610d55565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107525780601f1061072757610100808354040283529160200191610752565b820191906000526020600020905b81548152906001019060200180831161073557829003601f168201915b5050505050905090565b600260019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107c857600080fd5b8060088190555050565b60001515600260019054906101000a900460ff161515146107f257600080fd5b6001600260016101000a81548160ff0219169083151502179055507ff1953715a33b9e021c0f2cf12911e8ac25fdb177bf6fc92d1331ae05201fe9f63334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108d357600080fd5b8060078190555050565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109735780601f1061094857610100808354040283529160200191610973565b820191906000526020600020905b81548152906001019060200180831161095657829003601f168201915b505050505081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60001515600260009054906101000a900460ff161515146109c157600080fd5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260006101000a81548160ff0219169083151502179055507fe653009d32c7245a6ff858fa3a804f5beb3b19b4bbe48178446e966401d8389433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60065481565b60085481565b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f3074682061646472657373206973206e6f7420616c6c6f77656421000000000081525060200191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610e016035913960400191505060405180910390fd5b7ff32dc6bb034b9afc20d4c7daa180b08e89cac33817a6836595b1021c4347620482600554600654604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d005780601f10610cd557610100808354040283529160200191610d00565b820191906000526020600020905b815481529060010190602001808311610ce357829003601f168201915b505050505081565b8060099080519060200190610d1e929190610d5b565b5050565b60036020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900460ff1681565b60055481565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d9c57805160ff1916838001178555610dca565b82800160010185558215610dca579182015b82811115610dc9578251825591602001919060010190610dae565b5b509050610dd79190610ddb565b5090565b610dfd91905b80821115610df9576000816000905550600101610de1565b5090565b9056fe4c616e646c6f7264206973206e6f7420616c6c6f77656420746f2062652074656e616e74206174207468652073616d652074696d65a265627a7a723158203734acee69685bb319f771df28394adf56fbdd615b6722eced75bddd66ef58f564736f6c63430005100032a265627a7a723158201a76fa263d4e4834d8750d32b99dda74f744c82207779f62fddf25db4f23f17664736f6c63430005100032