{
  "_format": "hh-sol-artifact-1",
  "contractName": "DCNTStaking",
  "sourceName": "contracts/DCNTStaking.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Claimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "NFTStaked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "NFTUnstaked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "claimForAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "earningInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "erc20Address",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_nft",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_vaultDuration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalSupply",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "nftAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "onERC721Received",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "stake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "tokensOfOwner",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "ownerTokens",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalClaimed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalStaked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "unstake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "vault",
      "outputs": [
        {
          "internalType": "uint24",
          "name": "tokenId",
          "type": "uint24"
        },
        {
          "internalType": "uint48",
          "name": "timestamp",
          "type": "uint48"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vaultEnd",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "vaultStart",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5061001a33610023565b6001805561007e565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6118468061008d6000396000f3fe6080604052600436106101225760003560e01c8063760c4e47116100a55780638da5cb5b1161006c5780638da5cb5b1461039a578063a6b63eb8146103be578063c36be357146103de578063d54ad2a1146103fe578063e449f34114610414578063f2fde38b1461043457005b8063760c4e471461029c5780637e75dd60146102b2578063817b1cd2146102d257806381a36fb6146102e85780638462151c1461036d57005b80632e1a7d4d116100e95780632e1a7d4d146102075780635bf8633a146102275780636ba4c1381461024757806370a0823114610267578063715018a61461028757005b80630fbf0a931461012b578063150b7a021461014b57806318160ddd146101955780631997e5a2146101b9578063276184ae146101cf57005b3661012957005b005b34801561013757600080fd5b506101296101463660046114b1565b610454565b34801561015757600080fd5b50610177610166366004611508565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156101a157600080fd5b506101ab60085481565b60405190815260200161018c565b3480156101c557600080fd5b506101ab60055481565b3480156101db57600080fd5b506004546101ef906001600160a01b031681565b6040516001600160a01b03909116815260200161018c565b34801561021357600080fd5b506101296102223660046115a7565b610872565b34801561023357600080fd5b506003546101ef906001600160a01b031681565b34801561025357600080fd5b506101296102623660046114b1565b6108f0565b34801561027357600080fd5b506101ab6102823660046115c0565b61090e565b34801561029357600080fd5b5061012961096b565b3480156102a857600080fd5b506101ab60065481565b3480156102be57600080fd5b506101ab6102cd3660046115e4565b61097f565b3480156102de57600080fd5b506101ab60025481565b3480156102f457600080fd5b5061033c6103033660046115a7565b60096020526000908152604090205462ffffff8116906301000000810465ffffffffffff1690600160481b90046001600160a01b031683565b6040805162ffffff909416845265ffffffffffff90921660208401526001600160a01b03169082015260600161018c565b34801561037957600080fd5b5061038d6103883660046115c0565b610a5f565b60405161018c9190611639565b3480156103a657600080fd5b506000546201000090046001600160a01b03166101ef565b3480156103ca57600080fd5b506101296103d936600461167d565b610bd9565b3480156103ea57600080fd5b506101296103f93660046115e4565b610d47565b34801561040a57600080fd5b506101ab60075481565b34801561042057600080fd5b5061012961042f3660046114b1565b610d6a565b34801561044057600080fd5b5061012961044f3660046115c0565b610d7f565b61045c610df8565b6000828290506002600082825461047391906116ee565b90915550600090505b8083146108635783838281811061049557610495611701565b602090810292909201356000818152600990935260409092205491935050600160481b90046001600160a01b0316156105065760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481cdd185ad95960921b60448201526064015b60405180910390fd5b6003546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e90602401602060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105739190611717565b6001600160a01b0316146105ba5760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b60448201526064016104fd565b60035460405163020604bf60e21b81526004810184905230916001600160a01b03169063081812fc90602401602060405180830381865afa158015610603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106279190611717565b6001600160a01b031614806106a9575060035460405163e985e9c560e01b81523360048201523060248201526001600160a01b039091169063e985e9c590604401602060405180830381865afa158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190611734565b6106f55760405162461bcd60e51b815260206004820152601960248201527f6e6f7420617070726f76656420666f72207472616e736665720000000000000060448201526064016104fd565b600354604051632142170760e11b8152336004820152306024820152604481018490526001600160a01b03909116906342842e0e90606401600060405180830381600087803b15801561074757600080fd5b505af115801561075b573d6000803e3d6000fd5b50506040805133815260208101869052428183015290517f36b3725f1783bad4ff05b7f4c077c3aa68eeb23a4d054ba189db4d01ac278d399350908190036060019150a160405180606001604052808362ffffff1681526020016107c142600654610e51565b65ffffffffffff908116825233602092830152600085815260098352604090819020845181549486015195909201516001600160a01b0316600160481b027fffffff0000000000000000000000000000000000000000ffffffffffffffffff9590931663010000000268ffffffffffffffffff1990941662ffffff9092169190911792909217929092169190911790558061085b81611756565b91505061047c565b505061086e60018055565b5050565b61087a610e6c565b6004805460405163a9059cbb60e01b81523092810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611734565b6108f8610df8565b6109053383836000610ecd565b61086e60018055565b600080805b6008548111610964576000818152600960205260409020546001600160a01b03808616600160481b9092041603610952578161094e81611756565b9250505b8061095c81611756565b915050610913565b5092915050565b610973610e6c565b61097d6000611163565b565b6000806000805b808514610a555785858281811061099f5761099f611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff8116825265ffffffffffff6301000000820416958201959095526001600160a01b03600160481b909504851691810182905291965090928a16149050610a1e5760405162461bcd60e51b81526004016104fd9061176f565b602081015165ffffffffffff16610a34816111be565b610a3e90856116ee565b935050508080610a4d90611756565b915050610986565b5095945050505050565b6060600060085467ffffffffffffffff811115610a7e57610a7e611795565b604051908082528060200260200182016040528015610aa7578160200160208202803683370190505b5090506000805b6008548111610b35576000818152600960205260409020546001600160a01b03808716600160481b9092041603610b2357600081815260096020526040902054835162ffffff90911690849084908110610b0a57610b0a611701565b602090810291909101015281610b1f81611756565b9250505b80610b2d81611756565b915050610aae565b5060008167ffffffffffffffff811115610b5157610b51611795565b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060005b828114610bd057838181518110610b9957610b99611701565b6020026020010151828281518110610bb357610bb3611701565b602090810291909101015280610bc881611756565b915050610b80565b50949350505050565b600054610100900460ff1615808015610bf95750600054600160ff909116105b80610c135750303b158015610c13575060005460ff166001145b610c765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104fd565b6000805460ff191660011790558015610c99576000805461ff0019166101001790555b610ca286611163565b600380546001600160a01b038088166001600160a01b031992831617909255600480549287169290911691909117905542600555610ce383620151806117ab565b600554610cf091906116ee565b60065560088290558015610d3f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050505050565b610d4f610df8565b610d5c8383836000610ecd565b610d6560018055565b505050565b610d72610df8565b6109053383836001610ecd565b610d87610e6c565b6001600160a01b038116610dec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b610df581611163565b50565b600260015403610e4a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104fd565b6002600155565b600081831015610e615782610e63565b815b90505b92915050565b6000546001600160a01b036201000090910416331461097d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b600080805b80851461107a57858582818110610eeb57610eeb611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff8116825265ffffffffffff6301000000820416958201959095526001600160a01b03600160481b909504851691810182905291965090928a16149050610f6a5760405162461bcd60e51b81526004016104fd9061176f565b6000816020015165ffffffffffff1690506000610f8942600654610e51565b9050610f94826111be565b610f9e90866116ee565b945060405180606001604052808762ffffff1681526020018265ffffffffffff1681526020018b6001600160a01b03168152506009600088815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160096101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050505050808061107290611756565b915050610ed2565b508015611113576004805460405163a9059cbb60e01b81526001600160a01b03898116938201939093526024810184905291169063a9059cbb906044016020604051808303816000875af11580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fa9190611734565b50806007600082825461110d91906116ee565b90915550505b8215611124576111248686866112c5565b604080516001600160a01b0388168152602081018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9101610d36565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600480546040516370a0823160e01b8152309281019290925260009182916001600160a01b0316906370a0823190602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906117c2565b905060006007548261124291906116ee565b9050600060055460065461125691906117db565b9050600061126762015180836117ee565b90506000816008548561127a91906117ee565b61128491906117ee565b905060008761129542600654610e51565b61129f91906117db565b9050620151806112af82846117ab565b6112b991906117ee565b98975050505050505050565b600082829050600260008282546112dc91906117db565b90915550600090505b80831461145e578383828181106112fe576112fe611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff811682526301000000810465ffffffffffff1695820195909552600160481b9094046001600160a01b0316908401819052909450331490506113795760405162461bcd60e51b81526004016104fd9061176f565b60008381526009602090815260409182902080546001600160e81b031916905581516001600160a01b0389168152908101859052428183015290517fc486b9458a8637650d84d262414833a5a457bc91ae86b7da110386c8c3fa255b9181900360600190a1600354604051632142170760e11b81523060048201526001600160a01b03888116602483015260448201869052909116906342842e0e90606401600060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b5050505050808061145690611756565b9150506112e5565b5050505050565b60008083601f84011261147757600080fd5b50813567ffffffffffffffff81111561148f57600080fd5b6020830191508360208260051b85010111156114aa57600080fd5b9250929050565b600080602083850312156114c457600080fd5b823567ffffffffffffffff8111156114db57600080fd5b6114e785828601611465565b90969095509350505050565b6001600160a01b0381168114610df557600080fd5b60008060008060006080868803121561152057600080fd5b853561152b816114f3565b9450602086013561153b816114f3565b935060408601359250606086013567ffffffffffffffff8082111561155f57600080fd5b818801915088601f83011261157357600080fd5b81358181111561158257600080fd5b89602082850101111561159457600080fd5b9699959850939650602001949392505050565b6000602082840312156115b957600080fd5b5035919050565b6000602082840312156115d257600080fd5b81356115dd816114f3565b9392505050565b6000806000604084860312156115f957600080fd5b8335611604816114f3565b9250602084013567ffffffffffffffff81111561162057600080fd5b61162c86828701611465565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b8181101561167157835183529284019291840191600101611655565b50909695505050505050565b600080600080600060a0868803121561169557600080fd5b85356116a0816114f3565b945060208601356116b0816114f3565b935060408601356116c0816114f3565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e6657610e666116d8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561172957600080fd5b81516115dd816114f3565b60006020828403121561174657600080fd5b815180151581146115dd57600080fd5b600060018201611768576117686116d8565b5060010190565b6020808252600c908201526b3737ba1030b71037bbb732b960a11b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b8082028115828204841417610e6657610e666116d8565b6000602082840312156117d457600080fd5b5051919050565b81810381811115610e6657610e666116d8565b60008261180b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220a21d50a05c767621ea626f466fd019efcff01f057b1d9de97d1d1105d6c85aeb64736f6c63430008110033",
  "deployedBytecode": "0x6080604052600436106101225760003560e01c8063760c4e47116100a55780638da5cb5b1161006c5780638da5cb5b1461039a578063a6b63eb8146103be578063c36be357146103de578063d54ad2a1146103fe578063e449f34114610414578063f2fde38b1461043457005b8063760c4e471461029c5780637e75dd60146102b2578063817b1cd2146102d257806381a36fb6146102e85780638462151c1461036d57005b80632e1a7d4d116100e95780632e1a7d4d146102075780635bf8633a146102275780636ba4c1381461024757806370a0823114610267578063715018a61461028757005b80630fbf0a931461012b578063150b7a021461014b57806318160ddd146101955780631997e5a2146101b9578063276184ae146101cf57005b3661012957005b005b34801561013757600080fd5b506101296101463660046114b1565b610454565b34801561015757600080fd5b50610177610166366004611508565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156101a157600080fd5b506101ab60085481565b60405190815260200161018c565b3480156101c557600080fd5b506101ab60055481565b3480156101db57600080fd5b506004546101ef906001600160a01b031681565b6040516001600160a01b03909116815260200161018c565b34801561021357600080fd5b506101296102223660046115a7565b610872565b34801561023357600080fd5b506003546101ef906001600160a01b031681565b34801561025357600080fd5b506101296102623660046114b1565b6108f0565b34801561027357600080fd5b506101ab6102823660046115c0565b61090e565b34801561029357600080fd5b5061012961096b565b3480156102a857600080fd5b506101ab60065481565b3480156102be57600080fd5b506101ab6102cd3660046115e4565b61097f565b3480156102de57600080fd5b506101ab60025481565b3480156102f457600080fd5b5061033c6103033660046115a7565b60096020526000908152604090205462ffffff8116906301000000810465ffffffffffff1690600160481b90046001600160a01b031683565b6040805162ffffff909416845265ffffffffffff90921660208401526001600160a01b03169082015260600161018c565b34801561037957600080fd5b5061038d6103883660046115c0565b610a5f565b60405161018c9190611639565b3480156103a657600080fd5b506000546201000090046001600160a01b03166101ef565b3480156103ca57600080fd5b506101296103d936600461167d565b610bd9565b3480156103ea57600080fd5b506101296103f93660046115e4565b610d47565b34801561040a57600080fd5b506101ab60075481565b34801561042057600080fd5b5061012961042f3660046114b1565b610d6a565b34801561044057600080fd5b5061012961044f3660046115c0565b610d7f565b61045c610df8565b6000828290506002600082825461047391906116ee565b90915550600090505b8083146108635783838281811061049557610495611701565b602090810292909201356000818152600990935260409092205491935050600160481b90046001600160a01b0316156105065760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481cdd185ad95960921b60448201526064015b60405180910390fd5b6003546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e90602401602060405180830381865afa15801561054f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105739190611717565b6001600160a01b0316146105ba5760405162461bcd60e51b815260206004820152600e60248201526d3737ba103cb7bab9103a37b5b2b760911b60448201526064016104fd565b60035460405163020604bf60e21b81526004810184905230916001600160a01b03169063081812fc90602401602060405180830381865afa158015610603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106279190611717565b6001600160a01b031614806106a9575060035460405163e985e9c560e01b81523360048201523060248201526001600160a01b039091169063e985e9c590604401602060405180830381865afa158015610685573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a99190611734565b6106f55760405162461bcd60e51b815260206004820152601960248201527f6e6f7420617070726f76656420666f72207472616e736665720000000000000060448201526064016104fd565b600354604051632142170760e11b8152336004820152306024820152604481018490526001600160a01b03909116906342842e0e90606401600060405180830381600087803b15801561074757600080fd5b505af115801561075b573d6000803e3d6000fd5b50506040805133815260208101869052428183015290517f36b3725f1783bad4ff05b7f4c077c3aa68eeb23a4d054ba189db4d01ac278d399350908190036060019150a160405180606001604052808362ffffff1681526020016107c142600654610e51565b65ffffffffffff908116825233602092830152600085815260098352604090819020845181549486015195909201516001600160a01b0316600160481b027fffffff0000000000000000000000000000000000000000ffffffffffffffffff9590931663010000000268ffffffffffffffffff1990941662ffffff9092169190911792909217929092169190911790558061085b81611756565b91505061047c565b505061086e60018055565b5050565b61087a610e6c565b6004805460405163a9059cbb60e01b81523092810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611734565b6108f8610df8565b6109053383836000610ecd565b61086e60018055565b600080805b6008548111610964576000818152600960205260409020546001600160a01b03808616600160481b9092041603610952578161094e81611756565b9250505b8061095c81611756565b915050610913565b5092915050565b610973610e6c565b61097d6000611163565b565b6000806000805b808514610a555785858281811061099f5761099f611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff8116825265ffffffffffff6301000000820416958201959095526001600160a01b03600160481b909504851691810182905291965090928a16149050610a1e5760405162461bcd60e51b81526004016104fd9061176f565b602081015165ffffffffffff16610a34816111be565b610a3e90856116ee565b935050508080610a4d90611756565b915050610986565b5095945050505050565b6060600060085467ffffffffffffffff811115610a7e57610a7e611795565b604051908082528060200260200182016040528015610aa7578160200160208202803683370190505b5090506000805b6008548111610b35576000818152600960205260409020546001600160a01b03808716600160481b9092041603610b2357600081815260096020526040902054835162ffffff90911690849084908110610b0a57610b0a611701565b602090810291909101015281610b1f81611756565b9250505b80610b2d81611756565b915050610aae565b5060008167ffffffffffffffff811115610b5157610b51611795565b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060005b828114610bd057838181518110610b9957610b99611701565b6020026020010151828281518110610bb357610bb3611701565b602090810291909101015280610bc881611756565b915050610b80565b50949350505050565b600054610100900460ff1615808015610bf95750600054600160ff909116105b80610c135750303b158015610c13575060005460ff166001145b610c765760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104fd565b6000805460ff191660011790558015610c99576000805461ff0019166101001790555b610ca286611163565b600380546001600160a01b038088166001600160a01b031992831617909255600480549287169290911691909117905542600555610ce383620151806117ab565b600554610cf091906116ee565b60065560088290558015610d3f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b505050505050565b610d4f610df8565b610d5c8383836000610ecd565b610d6560018055565b505050565b610d72610df8565b6109053383836001610ecd565b610d87610e6c565b6001600160a01b038116610dec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b610df581611163565b50565b600260015403610e4a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104fd565b6002600155565b600081831015610e615782610e63565b815b90505b92915050565b6000546001600160a01b036201000090910416331461097d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b600080805b80851461107a57858582818110610eeb57610eeb611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff8116825265ffffffffffff6301000000820416958201959095526001600160a01b03600160481b909504851691810182905291965090928a16149050610f6a5760405162461bcd60e51b81526004016104fd9061176f565b6000816020015165ffffffffffff1690506000610f8942600654610e51565b9050610f94826111be565b610f9e90866116ee565b945060405180606001604052808762ffffff1681526020018265ffffffffffff1681526020018b6001600160a01b03168152506009600088815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160096101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050505050808061107290611756565b915050610ed2565b508015611113576004805460405163a9059cbb60e01b81526001600160a01b03898116938201939093526024810184905291169063a9059cbb906044016020604051808303816000875af11580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fa9190611734565b50806007600082825461110d91906116ee565b90915550505b8215611124576111248686866112c5565b604080516001600160a01b0388168152602081018390527fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9101610d36565b600080546001600160a01b038381166201000081810262010000600160b01b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b600480546040516370a0823160e01b8152309281019290925260009182916001600160a01b0316906370a0823190602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123091906117c2565b905060006007548261124291906116ee565b9050600060055460065461125691906117db565b9050600061126762015180836117ee565b90506000816008548561127a91906117ee565b61128491906117ee565b905060008761129542600654610e51565b61129f91906117db565b9050620151806112af82846117ab565b6112b991906117ee565b98975050505050505050565b600082829050600260008282546112dc91906117db565b90915550600090505b80831461145e578383828181106112fe576112fe611701565b602090810292909201356000818152600984526040908190208151606081018352905462ffffff811682526301000000810465ffffffffffff1695820195909552600160481b9094046001600160a01b0316908401819052909450331490506113795760405162461bcd60e51b81526004016104fd9061176f565b60008381526009602090815260409182902080546001600160e81b031916905581516001600160a01b0389168152908101859052428183015290517fc486b9458a8637650d84d262414833a5a457bc91ae86b7da110386c8c3fa255b9181900360600190a1600354604051632142170760e11b81523060048201526001600160a01b03888116602483015260448201869052909116906342842e0e90606401600060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b5050505050808061145690611756565b9150506112e5565b5050505050565b60008083601f84011261147757600080fd5b50813567ffffffffffffffff81111561148f57600080fd5b6020830191508360208260051b85010111156114aa57600080fd5b9250929050565b600080602083850312156114c457600080fd5b823567ffffffffffffffff8111156114db57600080fd5b6114e785828601611465565b90969095509350505050565b6001600160a01b0381168114610df557600080fd5b60008060008060006080868803121561152057600080fd5b853561152b816114f3565b9450602086013561153b816114f3565b935060408601359250606086013567ffffffffffffffff8082111561155f57600080fd5b818801915088601f83011261157357600080fd5b81358181111561158257600080fd5b89602082850101111561159457600080fd5b9699959850939650602001949392505050565b6000602082840312156115b957600080fd5b5035919050565b6000602082840312156115d257600080fd5b81356115dd816114f3565b9392505050565b6000806000604084860312156115f957600080fd5b8335611604816114f3565b9250602084013567ffffffffffffffff81111561162057600080fd5b61162c86828701611465565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b8181101561167157835183529284019291840191600101611655565b50909695505050505050565b600080600080600060a0868803121561169557600080fd5b85356116a0816114f3565b945060208601356116b0816114f3565b935060408601356116c0816114f3565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e6657610e666116d8565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561172957600080fd5b81516115dd816114f3565b60006020828403121561174657600080fd5b815180151581146115dd57600080fd5b600060018201611768576117686116d8565b5060010190565b6020808252600c908201526b3737ba1030b71037bbb732b960a11b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b8082028115828204841417610e6657610e666116d8565b6000602082840312156117d457600080fd5b5051919050565b81810381811115610e6657610e666116d8565b60008261180b57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220a21d50a05c767621ea626f466fd019efcff01f057b1d9de97d1d1105d6c85aeb64736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
