Skip to content

Instantly share code, notes, and snippets.

@NBMSacha
Created June 8, 2022 19:32
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save NBMSacha/bff822b5f83852242032f08efbba935c to your computer and use it in GitHub Desktop.
Save NBMSacha/bff822b5f83852242032f08efbba935c to your computer and use it in GitHub Desktop.
{
"_format": "hh-sol-artifact-1",
"contractName": "ProtocolProxy",
"sourceName": "contracts/ProtocolV2.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
}
],
"name": "DataSubmitted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validations",
"type": "uint256"
}
],
"name": "FinalDecisionRejected",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validations",
"type": "uint256"
}
],
"name": "FinalDecisionValidated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "validated",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"name": "FinalValidationVote",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validations",
"type": "uint256"
}
],
"name": "FirstSortRejected",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "uint256",
"name": "validations",
"type": "uint256"
}
],
"name": "FirstSortValidated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct API.Token",
"name": "token",
"type": "tuple"
},
{
"indexed": false,
"internalType": "address",
"name": "voter",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "validated",
"type": "bool"
},
{
"indexed": false,
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"name": "FirstSortVote",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "badFinalVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "badFirstVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "claimFinalRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claimRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "demoted",
"type": "address"
}
],
"name": "demote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "demoteVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "demoted",
"type": "address"
}
],
"name": "emergencyDemote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "promoted",
"type": "address"
}
],
"name": "emergencyPromote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "finalDecisionMaxVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "finalDecisionValidationsNeeded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "validate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"name": "finalDecisionVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "finalDecisionVotes",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "finalValidationTokens",
"outputs": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "firstSortMaxVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "firstSortTokens",
"outputs": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "firstSortValidationsNeeded",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "validate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"name": "firstSortVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "firstSortVotes",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFinalValidationTokens",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"internalType": "struct API.Token[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getFirstSortTokens",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"internalType": "struct API.Token[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSubmittedTokens",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "address[]",
"name": "totalSupply",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedFromCirculation",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"internalType": "struct API.Token[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "goodFinalVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "goodFirstVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "indexOfFinalValidationTokens",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "indexOfFirstSortTokens",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_mobulaTokenAddress",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "membersToDemoteFromRankI",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "membersToDemoteFromRankII",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "membersToPromoteToRankI",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "membersToPromoteToRankII",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "paidFinalVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "paidFirstVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "promoted",
"type": "address"
}
],
"name": "promote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "promoteVotes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "rank",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "contractAddresses",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "totalSupplyAddresses",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "excludedCirculationAddresses",
"type": "address[]"
},
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
}
],
"name": "submitIPFS",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "submitPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "submittedTokens",
"outputs": [
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lastUpdate",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "utilityScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "socialScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "trustScore",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "marketScore",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenFinalRejections",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenFinalValidations",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenFirstRejections",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenFirstValidations",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenMarketScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenSocialScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenTrustScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tokenUtilityScore",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokensPerVote",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_finalDecisionMaxVotes",
"type": "uint256"
}
],
"name": "updateFinalDecisionMaxVotes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_finalDecisionValidationsNeeded",
"type": "uint256"
}
],
"name": "updateFinalDecisionValidationsNeeded",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_firstSortMaxVotes",
"type": "uint256"
}
],
"name": "updateFirstSortMaxVotes",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_firstSortValidationsNeeded",
"type": "uint256"
}
],
"name": "updateFirstSortValidationsNeeded",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_membersToDemoteToRankI",
"type": "uint256"
}
],
"name": "updateMembersToDemoteFromRankI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_membersToDemoteToRankII",
"type": "uint256"
}
],
"name": "updateMembersToDemoteFromRankII",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_membersToPromoteToRankI",
"type": "uint256"
}
],
"name": "updateMembersToPromoteToRankI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_membersToPromoteToRankII",
"type": "uint256"
}
],
"name": "updateMembersToPromoteToRankII",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_protocolAPIAddress",
"type": "address"
}
],
"name": "updateProtocolAPIAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_submitPrice",
"type": "uint256"
}
],
"name": "updateSubmitPrice",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokensPerVote",
"type": "uint256"
}
],
"name": "updateTokensPerVote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_voteCooldown",
"type": "uint256"
}
],
"name": "updateVoteCooldown",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_votesNeededToRankIDemotion",
"type": "uint256"
}
],
"name": "updateVotesNeededToRankIDemotion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_votesNeededToRankIIDemotion",
"type": "uint256"
}
],
"name": "updateVotesNeededToRankIIDemotion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_votesNeededToRankIIPromotion",
"type": "uint256"
}
],
"name": "updateVotesNeededToRankIIPromotion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_votesNeededToRankIPromotion",
"type": "uint256"
}
],
"name": "updateVotesNeededToRankIPromotion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "voteCooldown",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votesNeededToRankIDemotion",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votesNeededToRankIIDemotion",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votesNeededToRankIIPromotion",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "votesNeededToRankIPromotion",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdrawFunds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50614e25806100206000396000f3fe6080604052600436106104045760003560e01c8063891b0c1011610213578063c73a96b211610123578063dcafde7c116100ab578063f1565c741161007a578063f1565c7414610c50578063f30012a714610c70578063f7a652aa14610c9c578063f7e1807214610cc9578063f8f88dc214610ce957600080fd5b8063dcafde7c14610bda578063e767481514610bfa578063e78805c814610c1a578063efc54e7e14610c3a57600080fd5b8063d0e0813a116100f2578063d0e0813a14610b44578063d4f20dbd14610b64578063d5aedd8e14610b84578063db6390ef14610ba4578063db82a0bc14610bba57600080fd5b8063c73a96b214610ac1578063ca5a0e3f14610ae1578063cc090f3814610b01578063cf5ff4d014610b2e57600080fd5b8063a2d83dd1116101a6578063b102db4811610175578063b102db4814610a0b578063b570bf3514610a2b578063b6cfa0fa14610a41578063b6ed336f14610a74578063bc67fb6f14610a9457600080fd5b8063a2d83dd11461096d578063a544a574146109a8578063ac1c8c80146109d5578063accecc53146109eb57600080fd5b80639695f85b116101e25780639695f85b146109015780639b78c159146109175780639f712ae114610937578063a245898b1461095757600080fd5b8063891b0c10146108855780638a7f03e41461089b5780638da5cb5b146108bb57806394dd68ad146108e157600080fd5b80635a0ba9d51161031957806375461c23116102a157806383caef741161027057806383caef74146107ef5780638789e3f31461080257806387c7055c1461081857806388a301921461083857806388c411e91461085857600080fd5b806375461c2314610777578063805980ee1461078d57806380c71f72146107a257806383b4011c146107cf57600080fd5b8063630ad7cc116102e8578063630ad7cc146106f65780636540c0cb1461070b57806369ec157f146107215780636e37bf5514610741578063746270941461075757600080fd5b80635a0ba9d5146106685780635ae5dac7146106a05780635c3d005d146106c057806360430886146106e057600080fd5b80632158564d1161039c578063485cc9551161036b578063485cc955146105ae5780634c2bb33a146105ce5780634f45adba146105ee5780635001ca691461060e578063503aeb071461063b57600080fd5b80632158564d1461052a5780633007e09d1461054a578063372500ab146105775780633f49aa0b1461058c57600080fd5b806314b1eceb116103d857806314b1eceb146104bf578063155dd5ee146104d55780631849f533146104f55780631f8634a71461050a57600080fd5b8062edc37814610409578063022ef2391461042b57806302b503a414610454578063056f20591461049f575b600080fd5b34801561041557600080fd5b50610429610424366004614700565b610d16565b005b34801561043757600080fd5b5061044160075481565b6040519081526020015b60405180910390f35b34801561046057600080fd5b5061048f61046f3660046145c9565b601060209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161044b565b3480156104ab57600080fd5b506104296104ba366004614700565b610d54565b3480156104cb57600080fd5b5061044160025481565b3480156104e157600080fd5b506104296104f0366004614700565b610d89565b34801561050157600080fd5b50610429610e06565b34801561051657600080fd5b50610429610525366004614700565b610efe565b34801561053657600080fd5b50610429610545366004614700565b610f33565b34801561055657600080fd5b50610441610565366004614576565b601d6020526000908152604090205481565b34801561058357600080fd5b50610429610f68565b34801561059857600080fd5b506105a1611012565b60405161044b9190614a42565b3480156105ba57600080fd5b506104296105c9366004614597565b611266565b3480156105da57600080fd5b506104296105e9366004614700565b611362565b3480156105fa57600080fd5b50610429610609366004614700565b611397565b34801561061a57600080fd5b50610441610629366004614700565b60276020526000908152604090205481565b34801561064757600080fd5b50610441610656366004614576565b60216020526000908152604090205481565b34801561067457600080fd5b50610688610683366004614767565b6113cc565b6040516001600160a01b03909116815260200161044b565b3480156106ac57600080fd5b506104296106bb366004614700565b611404565b3480156106cc57600080fd5b506104296106db366004614576565b611439565b3480156106ec57600080fd5b50610441600d5481565b34801561070257600080fd5b506105a16116b5565b34801561071757600080fd5b50610441600a5481565b34801561072d57600080fd5b5061044161073c366004614767565b611900565b34801561074d57600080fd5b50610441600f5481565b34801561076357600080fd5b50610441610772366004614767565b611931565b34801561078357600080fd5b50610441600c5481565b34801561079957600080fd5b506105a161194d565b3480156107ae57600080fd5b506104416107bd366004614576565b60226020526000908152604090205481565b3480156107db57600080fd5b506104296107ea366004614700565b611b98565b6104296107fd3660046145f2565b611bcd565b34801561080e57600080fd5b5061044160065481565b34801561082457600080fd5b50610429610833366004614718565b61216a565b34801561084457600080fd5b50610441610853366004614767565b6133bb565b34801561086457600080fd5b50610441610873366004614576565b601c6020526000908152604090205481565b34801561089157600080fd5b50610441600e5481565b3480156108a757600080fd5b506104296108b6366004614700565b6133d7565b3480156108c757600080fd5b50600054610688906201000090046001600160a01b031681565b3480156108ed57600080fd5b506104296108fc366004614700565b61340c565b34801561090d57600080fd5b5061044160035481565b34801561092357600080fd5b50610429610932366004614576565b613441565b34801561094357600080fd5b50610688610952366004614767565b6134ce565b34801561096357600080fd5b50610441600b5481565b34801561097957600080fd5b5061048f6109883660046145c9565b601160209081526000928352604080842090915290825290205460ff1681565b3480156109b457600080fd5b506104416109c3366004614576565b601e6020526000908152604090205481565b3480156109e157600080fd5b5061044160095481565b3480156109f757600080fd5b50610429610a06366004614700565b6134ea565b348015610a1757600080fd5b50610429610a26366004614700565b61351f565b348015610a3757600080fd5b5061044160055481565b348015610a4d57600080fd5b50610a61610a5c366004614700565b613554565b60405161044b9796959493929190614aa3565b348015610a8057600080fd5b50610429610a8f366004614700565b61362e565b348015610aa057600080fd5b50610441610aaf366004614700565b60256020526000908152604090205481565b348015610acd57600080fd5b50610429610adc366004614700565b613663565b348015610aed57600080fd5b50610429610afc366004614576565b613698565b348015610b0d57600080fd5b50610441610b1c366004614576565b601b6020526000908152604090205481565b348015610b3a57600080fd5b5061044160045481565b348015610b5057600080fd5b50610429610b5f366004614576565b6136ea565b348015610b7057600080fd5b50610a61610b7f366004614700565b61392c565b348015610b9057600080fd5b50610429610b9f366004614718565b61393c565b348015610bb057600080fd5b5061044160015481565b348015610bc657600080fd5b50610688610bd5366004614767565b6141ae565b348015610be657600080fd5b50610688610bf5366004614767565b6141ca565b348015610c0657600080fd5b50610429610c15366004614700565b6141e6565b348015610c2657600080fd5b50610441610c35366004614767565b61421b565b348015610c4657600080fd5b5061044160085481565b348015610c5c57600080fd5b50610429610c6b366004614576565b614237565b348015610c7c57600080fd5b50610441610c8b366004614576565b602080526000908152604090205481565b348015610ca857600080fd5b50610441610cb7366004614576565b601f6020526000908152604090205481565b348015610cd557600080fd5b50610a61610ce4366004614700565b6142c4565b348015610cf557600080fd5b50610441610d04366004614576565b601a6020526000908152604090205481565b6000546201000090046001600160a01b03163314610d4f5760405162461bcd60e51b8152600401610d4690614bf2565b60405180910390fd5b600455565b6000546201000090046001600160a01b03163314610d845760405162461bcd60e51b8152600401610d4690614bf2565b600e55565b6000546201000090046001600160a01b03163314610dd55760405162461bcd60e51b81526020600482015260096024820152682220a79027b7363c9760b91b6044820152606401610d46565b604051339082156108fc029083906000818181858888f19350505050158015610e02573d6000803e3d6000fd5b5050565b600654336000908152602260209081526040808320546021909252822054919291610e319190614d31565b610e3b9190614d12565b905060008111610e5d5760405162461bcd60e51b8152600401610d4690614ae7565b3360008181526021602090815260408083205460229092529182902055602854905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb906044015b602060405180830381600087803b158015610ec657600080fd5b505af1158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0291906146e4565b6000546201000090046001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610d4690614bf2565b600255565b6000546201000090046001600160a01b03163314610f635760405162461bcd60e51b8152600401610d4690614bf2565b600755565b600654336000908152601f6020908152604080832054601d909252822054919291610f939190614d31565b610f9d9190614d12565b905060008111610fbf5760405162461bcd60e51b8152600401610d4690614ae7565b336000818152601d6020908152604080832054601f9092529182902055602854905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb90604401610eac565b60606024805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a02016040518061014001604052908160008201805461106a90614d5f565b80601f016020809104026020016040519081016040528092919081815260200182805461109690614d5f565b80156110e35780601f106110b8576101008083540402835291602001916110e3565b820191906000526020600020905b8154815290600101906020018083116110c657829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561114557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611127575b5050505050815260200160028201548152602001600382018054806020026020016040519081016040528092919081815260200182805480156111b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611193575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561121357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111f5575b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505081526020019060010190611036565b50505050905090565b600054610100900460ff166112815760005460ff1615611285565b303b155b6112e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d46565b600054610100900460ff1615801561130a576000805461ffff19166101011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155602880546001600160a01b031916918416919091179055801561135d576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146113925760405162461bcd60e51b8152600401610d4690614bf2565b600655565b6000546201000090046001600160a01b031633146113c75760405162461bcd60e51b8152600401610d4690614bf2565b600555565b601260205281600052604060002081815481106113e857600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000546201000090046001600160a01b031633146114345760405162461bcd60e51b8152600401610d4690614bf2565b600855565b336000908152601a6020526040902054600211156114aa5760405162461bcd60e51b815260206004820152602860248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f604482015267103232b6b7ba329760c11b6064820152608401610d46565b6001600160a01b0381166000908152601a6020526040902054600111156114e35760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a60205260409020546115df576000600b54116115455760405162461bcd60e51b815260206004820152601060248201526f2737903232b6b7ba34b7b7103cb2ba1760811b6044820152606401610d46565b6001600160a01b0381166000908152601c6020526040812080549161156983614d9a565b9091555050600d546001600160a01b0382166000908152601c602052604090205414156115dc57600b80549060006115a083614d48565b90915550506001600160a01b0381166000908152601c60209081526040808320839055601a90915281208054916115d683614d9a565b91905055505b50565b6000600c54116116245760405162461bcd60e51b815260206004820152601060248201526f2737903232b6b7ba34b7b7103cb2ba1760811b6044820152606401610d46565b6001600160a01b0381166000908152601c6020526040812080549161164883614d9a565b9091555050600e546001600160a01b0382166000908152601c602052604090205414156115dc57600c805490600061167f83614d48565b90915550506001600160a01b0381166000908152601c60209081526040808320839055601a90915281208054916115d683614d48565b60606023805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a02016040518061014001604052908160008201805461170d90614d5f565b80601f016020809104026020016040519081016040528092919081815260200182805461173990614d5f565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156117e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117ca575b50505050508152602001600282015481526020016003820180548060200260200160405190810160405280929190818152602001828054801561185457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611836575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156118b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611898575b5050505050815260200160058201548152602001600682015481526020016007820154815260200160088201548152602001600982015481525050815260200190600101906116d9565b6016602052816000526040600020818154811061191c57600080fd5b90600052602060002001600091509150505481565b6019602052816000526040600020818154811061191c57600080fd5b60606026805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a0201604051806101400160405290816000820180546119a590614d5f565b80601f01602080910402602001604051908101604052809291908181526020018280546119d190614d5f565b8015611a1e5780601f106119f357610100808354040283529160200191611a1e565b820191906000526020600020905b815481529060010190602001808311611a0157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611a8057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a62575b505050505081526020016002820154815260200160038201805480602002602001604051908101604052809291908181526020018280548015611aec57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ace575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015611b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b30575b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505081526020019060010190611971565b6000546201000090046001600160a01b03163314611bc85760405162461bcd60e51b8152600401610d4690614bf2565b600c55565b600154341015611c1f5760405162461bcd60e51b815260206004820152601c60248201527f596f75206d7573742070617920746865207375626d6974206665652e000000006044820152606401610d46565b6000845111611c7f5760405162461bcd60e51b815260206004820152602660248201527f596f75206d757374207375626d6974206174206c65617374206f6e6520636f6e6044820152653a3930b1ba1760d11b6064820152608401610d46565b60005b602454811015611dc55760005b60248281548110611cb057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050811015611db25760005b8651811015611d9f57868181518110611cf857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031660248481548110611d2a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018381548110611d5a57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611d8d5760405162461bcd60e51b8152600401610d4690614b4c565b80611d9781614d9a565b915050611ccf565b5080611daa81614d9a565b915050611c8f565b5080611dbd81614d9a565b915050611c82565b5060005b602654811015611f0c5760005b60268281548110611df757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050811015611ef95760005b8651811015611ee657868181518110611e3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031660268481548110611e7157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018381548110611ea157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611ed45760405162461bcd60e51b8152600401610d4690614b4c565b80611ede81614d9a565b915050611e16565b5080611ef181614d9a565b915050611dd6565b5080611f0481614d9a565b915050611dc9565b50604080516101408101825282815260208082018790526023805493830184905260608301879052608083018690524260a0840152600060c0840181905260e0840181905261010084018190526101208401819052600185018255528151805192938493600a9091027fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300192611fa69284929101906142d4565b506020828101518051611fbf9260018501920190614358565b506040820151600282015560608201518051611fe5916003840191602090910190614358565b5060808201518051612001916004840191602090910190614358565b5060a0820151600582015560c0820151600682015560e082015160078201556101008201516008820155610120909101516009909101556024805460408084015160009081526025602090815291812083905560018301845592909252825180518493600a9093027f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4019261209a9284929101906142d4565b5060208281015180516120b39260018501920190614358565b5060408201516002820155606082015180516120d9916003840191602090910190614358565b50608082015180516120f5916004840191602090910190614358565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015550507f3cfaf764f2f818b7a7ad480deb707719233609654698cb3421e9813e034136908160405161215b9190614c14565b60405180910390a15050505050565b336000908152601a6020526040902054600211156121d95760405162461bcd60e51b815260206004820152602660248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f604482015265103b37ba329760d11b6064820152608401610d46565b60008681526027602052604081205460268054909190811061220b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050116122645760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b7103737ba1039bab136b4ba3a32b21760611b6044820152606401610d46565b33600090815260116020908152604080832089845290915290205460ff161561229f5760405162461bcd60e51b8152600401610d4690614ba9565b3360009081526011602090815260408083208984528252808320805460ff191660019081179091556016835281842080548083018255908552838520018890558984526017835281842080548083018255908552838520018790558984526018835281842080548083018255908552838520018690558984526019835290832080549182018155835291200181905584156123675760008681526014602090815260408220805460018101825590835291200180546001600160a01b03191633179055612396565b60008681526015602090815260408220805460018101825590835291200180546001600160a01b031916331790555b600086815260276020526040902054602680547f0c2f354d644daf17949d521b85eb71746aff3e095a32f01161ca5a5618d8ba67929081106123e857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020133878787878760405161240f9796959493929190614c3a565b60405180910390a160055460008781526015602090815260408083205460149092529091205461243f9190614cda565b14156133b35760045460008781526014602052604090205410612cd45760005b60008781526012602052604090205481101561255357600087815260126020526040812080546010929190849081106124a857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601290925281208054601d9291908490811061250b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161253b83614d9a565b9190505550808061254b90614d9a565b91505061245f565b5060005b60008781526013602052604090205481101561264b57600087815260136020526040812080546010929190849081106125a057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601390925281208054601e9291908490811061260357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161263383614d9a565b9190505550808061264390614d9a565b915050612557565b5060005b600087815260146020526040902054811015612743576000878152601460205260408120805460119291908490811061269857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff191690556014909252812080546021929190849081106126fb57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161272b83614d9a565b9190505550808061273b90614d9a565b91505061264f565b5060005b600087815260156020526040902054811015612836576000878152601560205260408120805460119291908490811061279057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601583529081208054849081106127ee57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161281e83614d9a565b9190505550808061282e90614d9a565b915050612747565b506000805b6000888152601660205260409020548110156128a957600088815260166020526040902080548290811061287f57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826128959190614cda565b9150806128a181614d9a565b91505061283b565b506000878152601660205260409020546128c39082614cf2565b90506000805b60008981526017602052604090205481101561293757600089815260176020526040902080548290811061290d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826129239190614cda565b91508061292f81614d9a565b9150506128c9565b506000888152601760205260409020546129519082614cf2565b90506000805b60008a8152601860205260409020548110156129c55760008a815260186020526040902080548290811061299b57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826129b19190614cda565b9150806129bd81614d9a565b915050612957565b506000898152601860205260409020546129df9082614cf2565b90506000805b60008b815260196020526040902054811015612a535760008b8152601960205260409020805482908110612a2957634e487b7160e01b600052603260045260246000fd5b906000526020600020015482612a3f9190614cda565b915080612a4b81614d9a565b9150506129e5565b5060008a815260196020526040902054612a6d9082614cf2565b9050836026602760008d81526020019081526020016000205481548110612aa457634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160060181905550826026602760008d81526020019081526020016000205481548110612aee57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160070181905550816026602760008d81526020019081526020016000205481548110612b3857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160080181905550806026602760008d81526020019081526020016000205481548110612b8257634e487b7160e01b600052603260045260246000fd5b600091825260208083206009600a9093020191909101929092556029548c825260279092526040902054602680546001600160a01b03909316926315de2b9f92908110612bdf57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016040518263ffffffff1660e01b8152600401612c099190614c27565b600060405180830381600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050507fc83ad1914dc2114ca21cdee11903ccc28a2ce572f5aefc267087c39796fb36926026602760008d81526020019081526020016000205481548110612c9057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201601460008d815260200190815260200160002080549050604051612cc3929190614c87565b60405180910390a15050505061313d565b60005b600087815260126020526040902054811015612dcb5760008781526012602052604081208054601092919084908110612d2057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601290925281208054601e92919084908110612d8357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612db383614d9a565b91905055508080612dc390614d9a565b915050612cd7565b5060005b600087815260136020526040902054811015612ec35760008781526013602052604081208054601092919084908110612e1857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601390925281208054601d92919084908110612e7b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612eab83614d9a565b91905055508080612ebb90614d9a565b915050612dcf565b5060005b600087815260146020526040902054811015612fb65760008781526014602052604081208054601192919084908110612f1057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff1916905560148352908120805484908110612f6e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612f9e83614d9a565b91905055508080612fae90614d9a565b915050612ec7565b5060005b6000878152601560205260409020548110156130ae576000878152601560205260408120805460119291908490811061300357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff1916905560159092528120805460219291908490811061306657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161309683614d9a565b919050555080806130a690614d9a565b915050612fba565b50600086815260276020526040902054602680547f1de29ffcea7ef044c86d80f2bbae7b72dddd0e0b6d62b46ec33ac34b6d51927c9290811061310157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016014600089815260200190815260200160002080549050604051613134929190614c87565b60405180910390a15b6026805461314d90600190614d31565b8154811061316b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160266027600089815260200190815260200160002054815481106131ad57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160008201816000019080546131cf90614d5f565b6131da9291906143ad565b50600182810180546131ef9284019190614428565b50600282015481600201556003820181600301908054613210929190614428565b50600482810180546132259284019190614428565b506005828101549082015560068083015490820155600780830154908201556008808301549082015560099182015491015560008681526027602081905260408220546026805491939161327b90600190614d31565b8154811061329957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016002015481526020019081526020016000208190555060268054806132dc57634e487b7160e01b600052603160045260246000fd5b60008281526020812060001990920191600a830201906132fc8282614467565b61330a6001830160006144a1565b600282016000905560038201600061332291906144a1565b6133306004830160006144a1565b506000600582018190556006820181905560078201819055600882018190556009909101819055915586815260166020526040812061336e916144a1565b6000868152601760205260408120613385916144a1565b600086815260186020526040812061339c916144a1565b60008681526019602052604081206133b3916144a1565b505050505050565b6017602052816000526040600020818154811061191c57600080fd5b6000546201000090046001600160a01b031633146134075760405162461bcd60e51b8152600401610d4690614bf2565b600955565b6000546201000090046001600160a01b0316331461343c5760405162461bcd60e51b8152600401610d4690614bf2565b600355565b6000546201000090046001600160a01b031633146134715760405162461bcd60e51b8152600401610d4690614bf2565b6001600160a01b0381166000908152601a6020526040902054600110156134aa5760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604081208054916115d683614d9a565b601360205281600052604060002081815481106113e857600080fd5b6000546201000090046001600160a01b0316331461351a5760405162461bcd60e51b8152600401610d4690614bf2565b600155565b6000546201000090046001600160a01b0316331461354f5760405162461bcd60e51b8152600401610d4690614bf2565b600d55565b6024818154811061356457600080fd5b90600052602060002090600a020160009150905080600001805461358790614d5f565b80601f01602080910402602001604051908101604052809291908181526020018280546135b390614d5f565b80156136005780601f106135d557610100808354040283529160200191613600565b820191906000526020600020905b8154815290600101906020018083116135e357829003601f168201915b5050505050908060020154908060050154908060060154908060070154908060080154908060090154905087565b6000546201000090046001600160a01b0316331461365e5760405162461bcd60e51b8152600401610d4690614bf2565b600f55565b6000546201000090046001600160a01b031633146136935760405162461bcd60e51b8152600401610d4690614bf2565b600a55565b6000546201000090046001600160a01b031633146136c85760405162461bcd60e51b8152600401610d4690614bf2565b602980546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601a60205260409020546002111561375c5760405162461bcd60e51b815260206004820152602960248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f60448201526810383937b6b7ba329760b91b6064820152608401610d46565b6001600160a01b0381166000908152601a6020526040902054600110156137955760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604090205461388a576000600754116137f95760405162461bcd60e51b8152602060048201526012602482015271273790383937b6b7ba34b7b739903cb2ba1760711b6044820152606401610d46565b6001600160a01b0381166000908152601b6020526040812080549161381d83614d9a565b90915550506009546001600160a01b0382166000908152601b602052604090205414156115dc576007805490600061385483614d48565b90915550506001600160a01b0381166000908152601b60209081526040808320839055601a90915281208054916115d683614d9a565b6000600854116138d15760405162461bcd60e51b8152602060048201526012602482015271273790383937b6b7ba34b7b739903cb2ba1760711b6044820152606401610d46565b6001600160a01b0381166000908152601b602052604081208054916138f583614d9a565b9091555050600a546001600160a01b0382166000908152601b602052604090205414156115dc576008805490600061385483614d48565b6023818154811061356457600080fd5b336000908152601a6020526040902054600111156139aa5760405162461bcd60e51b815260206004820152602560248201527f596f75206d7573742062652052616e6b2049206f722068696768657220746f206044820152643b37ba329760d91b6064820152608401610d46565b6000868152602560205260408120546024805490919081106139dc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018054905011613a355760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b7103737ba1039bab136b4ba3a32b21760611b6044820152606401610d46565b33600090815260106020908152604080832089845290915290205460ff1615613a705760405162461bcd60e51b8152600401610d4690614ba9565b600f54600087815260256020526040902054602480549091908110613aa557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160050154613ac19190614cda565b4211613b2d5760405162461bcd60e51b815260206004820152603560248201527f596f75206d7573742077616974206265666f72652074686520656e64206f66206044820152743a34329031b7b7b63237bbb7103a37903b37ba329760591b6064820152608401610d46565b60058411158015613b3f575060058311155b8015613b4c575060058211155b8015613b59575060058111155b613ba55760405162461bcd60e51b815260206004820152601f60248201527f53636f726573206d757374206265206265747765656e203020616e6420352e006044820152606401610d46565b600086815260166020908152604080832080546001818101835591855283852001889055898452601783528184208054808301825590855283852001879055898452601883528184208054808301825590855283852001869055898452601983528184208054808301825590855283852001859055338452601083528184208a8552909252909120805460ff191690911790558415613c715760008681526012602090815260408220805460018101825590835291200180546001600160a01b03191633179055613ca0565b60008681526013602090815260408220805460018101825590835291200180546001600160a01b031916331790555b600086815260256020526040902054602480547f1783b3c99d251082029bdc744894afb1f9aac89631fbc0115daabfc6ba2f177a92908110613cf257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201338787878787604051613d199796959493929190614c3a565b60405180910390a1600254600087815260136020908152604080832054601290925290912054613d499190614cda565b106133b35760035460008781526012602052604090205410613efe5760268054600088815260276020908152604080832093909355602590522054602480549091908110613da757634e487b7160e01b600052603260045260246000fd5b6000918252602080832084546001810186559484529220600a918202909201805490939091029091019081908390613dde90614d5f565b613de99291906143ad565b5060018281018054613dfe9284019190614428565b50600282015481600201556003820181600301908054613e1f929190614428565b5060048281018054613e349284019190614428565b50600582015481600501556006820154816006015560078201548160070155600882015481600801556009820154816009015550507f153988a934c561a22afb468c7ac1689874396601ea5841280e13de170c7d1cdc6024602560008981526020019081526020016000205481548110613ebe57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016012600089815260200190815260200160002080549050604051613ef1929190614c87565b60405180910390a1613f8c565b600086815260256020526040902054602480547f12cf2271828a37db51026d5954b5e4ea9a0c5213b365e45a6c1382a1be6d391092908110613f5057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016012600089815260200190815260200160002080549050604051613f83929190614c87565b60405180910390a15b60248054613f9c90600190614d31565b81548110613fba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016024602560008981526020019081526020016000205481548110613ffc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600082018160000190805461401e90614d5f565b6140299291906143ad565b506001828101805461403e9284019190614428565b5060028201548160020155600382018160030190805461405f929190614428565b50600482810180546140749284019190614428565b50600582810154908201556006808301549082015560078083015490820155600880830154908201556009918201549101556000868152602560208190526040822054602480549193916140ca90600190614d31565b815481106140e857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160020154815260200190815260200160002081905550602480548061412b57634e487b7160e01b600052603160045260246000fd5b60008281526020812060001990920191600a8302019061414b8282614467565b6141596001830160006144a1565b600282016000905560038201600061417191906144a1565b61417f6004830160006144a1565b506000600582018190556006820181905560078201819055600882018190556009909101559055505050505050565b601460205281600052604060002081815481106113e857600080fd5b601560205281600052604060002081815481106113e857600080fd5b6000546201000090046001600160a01b031633146142165760405162461bcd60e51b8152600401610d4690614bf2565b600b55565b6018602052816000526040600020818154811061191c57600080fd5b6000546201000090046001600160a01b031633146142675760405162461bcd60e51b8152600401610d4690614bf2565b6001600160a01b0381166000908152601a6020526040902054600111156142a05760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604081208054916115d683614d48565b6026818154811061356457600080fd5b8280546142e090614d5f565b90600052602060002090601f0160209004810192826143025760008555614348565b82601f1061431b57805160ff1916838001178555614348565b82800160010185558215614348579182015b8281111561434857825182559160200191906001019061432d565b506143549291506144bb565b5090565b828054828255906000526020600020908101928215614348579160200282015b8281111561434857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614378565b8280546143b990614d5f565b90600052602060002090601f0160209004810192826143db5760008555614348565b82601f106143ec5780548555614348565b8280016001018555821561434857600052602060002091601f016020900482015b8281111561434857825482559160010191906001019061440d565b8280548282559060005260206000209081019282156143485760005260206000209182018281111561434857825482559160010191906001019061440d565b50805461447390614d5f565b6000825580601f10614483575050565b601f0160209004906000526020600020908101906115dc91906144bb565b50805460008255906000526020600020908101906115dc91905b5b8082111561435457600081556001016144bc565b80356001600160a01b03811681146144e757600080fd5b919050565b600082601f8301126144fc578081fd5b8135602067ffffffffffffffff82111561451857614518614dcb565b8160051b614527828201614ca9565b838152828101908684018388018501891015614541578687fd5b8693505b8584101561456a57614556816144d0565b835260019390930192918401918401614545565b50979650505050505050565b600060208284031215614587578081fd5b614590826144d0565b9392505050565b600080604083850312156145a9578081fd5b6145b2836144d0565b91506145c0602084016144d0565b90509250929050565b600080604083850312156145db578182fd5b6145e4836144d0565b946020939093013593505050565b60008060008060808587031215614607578182fd5b843567ffffffffffffffff8082111561461e578384fd5b61462a888389016144ec565b9550602091508187013581811115614640578485fd5b61464c89828a016144ec565b955050604087013581811115614660578485fd5b61466c89828a016144ec565b945050606087013581811115614680578384fd5b8701601f81018913614690578384fd5b8035828111156146a2576146a2614dcb565b6146b4601f8201601f19168501614ca9565b925080835289848284010111156146c9578485fd5b80848301858501378201909201929092525092959194509250565b6000602082840312156146f5578081fd5b815161459081614de1565b600060208284031215614711578081fd5b5035919050565b60008060008060008060c08789031215614730578182fd5b86359550602087013561474281614de1565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060408385031215614779578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156147c05781516001600160a01b03168752958201959082019060010161479b565b509495945050505050565b6000815480845260208085019450838352808320835b838110156147c05781546001600160a01b0316875295820195600191820191016147e1565b60008151808452815b8181101561482b5760208185018101518683018201520161480f565b8181111561483c5782602083870101525b50601f01601f19169290920160200192915050565b8054600090600181811c908083168061486b57607f831692505b602080841082141561488b57634e487b7160e01b86526022600452602486fd5b838852602088018280156148a657600181146148b7576148e2565b60ff198716825282820197506148e2565b60008981526020902060005b878110156148dc578154848201529086019084016148c3565b83019850505b5050505050505092915050565b6000610140825181855261490582860182614806565b9150506020830151848203602086015261491f8282614788565b91505060408301516040850152606083015184820360608601526149438282614788565b9150506080830151848203608086015261495d8282614788565b91505060a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152508091505092915050565b60006101408084526149b481850184614851565b905083810360208501526149cb81600185016147cb565b90506002830154604085015283810360608501526149ec81600385016147cb565b90508381036080850152614a0381600485016147cb565b600584015460a0860152600684015460c0860152600784015460e086015260088401546101008601526009909301546101209094019390935250919050565b6000602080830181845280855180835260408601915060408160051b8701019250838701855b82811015614a9657603f19888603018452614a848583516148ef565b94509285019290850190600101614a68565b5092979650505050505050565b60e081526000614ab660e083018a614806565b60208301989098525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526021908201527f596f7520646f6e2774206861766520616e797468696e6720746f20636c61696d6040820152601760f91b606082015260800190565b6020808252600a9082015269496d706f737369626c6560b01b604082015260600190565b6020808252603d908201527f4f6e65206f662074686520736d6172742d636f6e74726163747320697320616c60408201527f726561647920696e20746865206c697374696e672070726f636573732e000000606082015260800190565b60208082526029908201527f596f752063616e6e6f7420766f746520747769636520666f722074686520736160408201526836b2903a37b5b2b71760b91b606082015260800190565b60208082526008908201526744414f204f6e6c7960c01b604082015260600190565b60208152600061459060208301846148ef565b60208152600061459060208301846149a0565b60e081526000614c4d60e083018a6149a0565b6001600160a01b039890981660208301525094151560408601526060850193909352608084019190915260a083015260c090910152919050565b604081526000614c9a60408301856149a0565b90508260208301529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715614cd257614cd2614dcb565b604052919050565b60008219821115614ced57614ced614db5565b500190565b600082614d0d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614d2c57614d2c614db5565b500290565b600082821015614d4357614d43614db5565b500390565b600081614d5757614d57614db5565b506000190190565b600181811c90821680614d7357607f821691505b60208210811415614d9457634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415614dae57614dae614db5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146115dc57600080fdfea26469706673582212205b89acd3117e104e8d6f30d69cc424f7dc68bcadb9e51d0c6f23484e56b22b8364736f6c63430008040033",
"deployedBytecode": "0x6080604052600436106104045760003560e01c8063891b0c1011610213578063c73a96b211610123578063dcafde7c116100ab578063f1565c741161007a578063f1565c7414610c50578063f30012a714610c70578063f7a652aa14610c9c578063f7e1807214610cc9578063f8f88dc214610ce957600080fd5b8063dcafde7c14610bda578063e767481514610bfa578063e78805c814610c1a578063efc54e7e14610c3a57600080fd5b8063d0e0813a116100f2578063d0e0813a14610b44578063d4f20dbd14610b64578063d5aedd8e14610b84578063db6390ef14610ba4578063db82a0bc14610bba57600080fd5b8063c73a96b214610ac1578063ca5a0e3f14610ae1578063cc090f3814610b01578063cf5ff4d014610b2e57600080fd5b8063a2d83dd1116101a6578063b102db4811610175578063b102db4814610a0b578063b570bf3514610a2b578063b6cfa0fa14610a41578063b6ed336f14610a74578063bc67fb6f14610a9457600080fd5b8063a2d83dd11461096d578063a544a574146109a8578063ac1c8c80146109d5578063accecc53146109eb57600080fd5b80639695f85b116101e25780639695f85b146109015780639b78c159146109175780639f712ae114610937578063a245898b1461095757600080fd5b8063891b0c10146108855780638a7f03e41461089b5780638da5cb5b146108bb57806394dd68ad146108e157600080fd5b80635a0ba9d51161031957806375461c23116102a157806383caef741161027057806383caef74146107ef5780638789e3f31461080257806387c7055c1461081857806388a301921461083857806388c411e91461085857600080fd5b806375461c2314610777578063805980ee1461078d57806380c71f72146107a257806383b4011c146107cf57600080fd5b8063630ad7cc116102e8578063630ad7cc146106f65780636540c0cb1461070b57806369ec157f146107215780636e37bf5514610741578063746270941461075757600080fd5b80635a0ba9d5146106685780635ae5dac7146106a05780635c3d005d146106c057806360430886146106e057600080fd5b80632158564d1161039c578063485cc9551161036b578063485cc955146105ae5780634c2bb33a146105ce5780634f45adba146105ee5780635001ca691461060e578063503aeb071461063b57600080fd5b80632158564d1461052a5780633007e09d1461054a578063372500ab146105775780633f49aa0b1461058c57600080fd5b806314b1eceb116103d857806314b1eceb146104bf578063155dd5ee146104d55780631849f533146104f55780631f8634a71461050a57600080fd5b8062edc37814610409578063022ef2391461042b57806302b503a414610454578063056f20591461049f575b600080fd5b34801561041557600080fd5b50610429610424366004614700565b610d16565b005b34801561043757600080fd5b5061044160075481565b6040519081526020015b60405180910390f35b34801561046057600080fd5b5061048f61046f3660046145c9565b601060209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161044b565b3480156104ab57600080fd5b506104296104ba366004614700565b610d54565b3480156104cb57600080fd5b5061044160025481565b3480156104e157600080fd5b506104296104f0366004614700565b610d89565b34801561050157600080fd5b50610429610e06565b34801561051657600080fd5b50610429610525366004614700565b610efe565b34801561053657600080fd5b50610429610545366004614700565b610f33565b34801561055657600080fd5b50610441610565366004614576565b601d6020526000908152604090205481565b34801561058357600080fd5b50610429610f68565b34801561059857600080fd5b506105a1611012565b60405161044b9190614a42565b3480156105ba57600080fd5b506104296105c9366004614597565b611266565b3480156105da57600080fd5b506104296105e9366004614700565b611362565b3480156105fa57600080fd5b50610429610609366004614700565b611397565b34801561061a57600080fd5b50610441610629366004614700565b60276020526000908152604090205481565b34801561064757600080fd5b50610441610656366004614576565b60216020526000908152604090205481565b34801561067457600080fd5b50610688610683366004614767565b6113cc565b6040516001600160a01b03909116815260200161044b565b3480156106ac57600080fd5b506104296106bb366004614700565b611404565b3480156106cc57600080fd5b506104296106db366004614576565b611439565b3480156106ec57600080fd5b50610441600d5481565b34801561070257600080fd5b506105a16116b5565b34801561071757600080fd5b50610441600a5481565b34801561072d57600080fd5b5061044161073c366004614767565b611900565b34801561074d57600080fd5b50610441600f5481565b34801561076357600080fd5b50610441610772366004614767565b611931565b34801561078357600080fd5b50610441600c5481565b34801561079957600080fd5b506105a161194d565b3480156107ae57600080fd5b506104416107bd366004614576565b60226020526000908152604090205481565b3480156107db57600080fd5b506104296107ea366004614700565b611b98565b6104296107fd3660046145f2565b611bcd565b34801561080e57600080fd5b5061044160065481565b34801561082457600080fd5b50610429610833366004614718565b61216a565b34801561084457600080fd5b50610441610853366004614767565b6133bb565b34801561086457600080fd5b50610441610873366004614576565b601c6020526000908152604090205481565b34801561089157600080fd5b50610441600e5481565b3480156108a757600080fd5b506104296108b6366004614700565b6133d7565b3480156108c757600080fd5b50600054610688906201000090046001600160a01b031681565b3480156108ed57600080fd5b506104296108fc366004614700565b61340c565b34801561090d57600080fd5b5061044160035481565b34801561092357600080fd5b50610429610932366004614576565b613441565b34801561094357600080fd5b50610688610952366004614767565b6134ce565b34801561096357600080fd5b50610441600b5481565b34801561097957600080fd5b5061048f6109883660046145c9565b601160209081526000928352604080842090915290825290205460ff1681565b3480156109b457600080fd5b506104416109c3366004614576565b601e6020526000908152604090205481565b3480156109e157600080fd5b5061044160095481565b3480156109f757600080fd5b50610429610a06366004614700565b6134ea565b348015610a1757600080fd5b50610429610a26366004614700565b61351f565b348015610a3757600080fd5b5061044160055481565b348015610a4d57600080fd5b50610a61610a5c366004614700565b613554565b60405161044b9796959493929190614aa3565b348015610a8057600080fd5b50610429610a8f366004614700565b61362e565b348015610aa057600080fd5b50610441610aaf366004614700565b60256020526000908152604090205481565b348015610acd57600080fd5b50610429610adc366004614700565b613663565b348015610aed57600080fd5b50610429610afc366004614576565b613698565b348015610b0d57600080fd5b50610441610b1c366004614576565b601b6020526000908152604090205481565b348015610b3a57600080fd5b5061044160045481565b348015610b5057600080fd5b50610429610b5f366004614576565b6136ea565b348015610b7057600080fd5b50610a61610b7f366004614700565b61392c565b348015610b9057600080fd5b50610429610b9f366004614718565b61393c565b348015610bb057600080fd5b5061044160015481565b348015610bc657600080fd5b50610688610bd5366004614767565b6141ae565b348015610be657600080fd5b50610688610bf5366004614767565b6141ca565b348015610c0657600080fd5b50610429610c15366004614700565b6141e6565b348015610c2657600080fd5b50610441610c35366004614767565b61421b565b348015610c4657600080fd5b5061044160085481565b348015610c5c57600080fd5b50610429610c6b366004614576565b614237565b348015610c7c57600080fd5b50610441610c8b366004614576565b602080526000908152604090205481565b348015610ca857600080fd5b50610441610cb7366004614576565b601f6020526000908152604090205481565b348015610cd557600080fd5b50610a61610ce4366004614700565b6142c4565b348015610cf557600080fd5b50610441610d04366004614576565b601a6020526000908152604090205481565b6000546201000090046001600160a01b03163314610d4f5760405162461bcd60e51b8152600401610d4690614bf2565b60405180910390fd5b600455565b6000546201000090046001600160a01b03163314610d845760405162461bcd60e51b8152600401610d4690614bf2565b600e55565b6000546201000090046001600160a01b03163314610dd55760405162461bcd60e51b81526020600482015260096024820152682220a79027b7363c9760b91b6044820152606401610d46565b604051339082156108fc029083906000818181858888f19350505050158015610e02573d6000803e3d6000fd5b5050565b600654336000908152602260209081526040808320546021909252822054919291610e319190614d31565b610e3b9190614d12565b905060008111610e5d5760405162461bcd60e51b8152600401610d4690614ae7565b3360008181526021602090815260408083205460229092529182902055602854905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb906044015b602060405180830381600087803b158015610ec657600080fd5b505af1158015610eda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0291906146e4565b6000546201000090046001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610d4690614bf2565b600255565b6000546201000090046001600160a01b03163314610f635760405162461bcd60e51b8152600401610d4690614bf2565b600755565b600654336000908152601f6020908152604080832054601d909252822054919291610f939190614d31565b610f9d9190614d12565b905060008111610fbf5760405162461bcd60e51b8152600401610d4690614ae7565b336000818152601d6020908152604080832054601f9092529182902055602854905163a9059cbb60e01b81526004810192909252602482018390526001600160a01b03169063a9059cbb90604401610eac565b60606024805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a02016040518061014001604052908160008201805461106a90614d5f565b80601f016020809104026020016040519081016040528092919081815260200182805461109690614d5f565b80156110e35780601f106110b8576101008083540402835291602001916110e3565b820191906000526020600020905b8154815290600101906020018083116110c657829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561114557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611127575b5050505050815260200160028201548152602001600382018054806020026020016040519081016040528092919081815260200182805480156111b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611193575b505050505081526020016004820180548060200260200160405190810160405280929190818152602001828054801561121357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111f5575b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505081526020019060010190611036565b50505050905090565b600054610100900460ff166112815760005460ff1615611285565b303b155b6112e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d46565b600054610100900460ff1615801561130a576000805461ffff19166101011790555b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155602880546001600160a01b031916918416919091179055801561135d576000805461ff00191690555b505050565b6000546201000090046001600160a01b031633146113925760405162461bcd60e51b8152600401610d4690614bf2565b600655565b6000546201000090046001600160a01b031633146113c75760405162461bcd60e51b8152600401610d4690614bf2565b600555565b601260205281600052604060002081815481106113e857600080fd5b6000918252602090912001546001600160a01b03169150829050565b6000546201000090046001600160a01b031633146114345760405162461bcd60e51b8152600401610d4690614bf2565b600855565b336000908152601a6020526040902054600211156114aa5760405162461bcd60e51b815260206004820152602860248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f604482015267103232b6b7ba329760c11b6064820152608401610d46565b6001600160a01b0381166000908152601a6020526040902054600111156114e35760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a60205260409020546115df576000600b54116115455760405162461bcd60e51b815260206004820152601060248201526f2737903232b6b7ba34b7b7103cb2ba1760811b6044820152606401610d46565b6001600160a01b0381166000908152601c6020526040812080549161156983614d9a565b9091555050600d546001600160a01b0382166000908152601c602052604090205414156115dc57600b80549060006115a083614d48565b90915550506001600160a01b0381166000908152601c60209081526040808320839055601a90915281208054916115d683614d9a565b91905055505b50565b6000600c54116116245760405162461bcd60e51b815260206004820152601060248201526f2737903232b6b7ba34b7b7103cb2ba1760811b6044820152606401610d46565b6001600160a01b0381166000908152601c6020526040812080549161164883614d9a565b9091555050600e546001600160a01b0382166000908152601c602052604090205414156115dc57600c805490600061167f83614d48565b90915550506001600160a01b0381166000908152601c60209081526040808320839055601a90915281208054916115d683614d48565b60606023805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a02016040518061014001604052908160008201805461170d90614d5f565b80601f016020809104026020016040519081016040528092919081815260200182805461173990614d5f565b80156117865780601f1061175b57610100808354040283529160200191611786565b820191906000526020600020905b81548152906001019060200180831161176957829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156117e857602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116117ca575b50505050508152602001600282015481526020016003820180548060200260200160405190810160405280929190818152602001828054801561185457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611836575b50505050508152602001600482018054806020026020016040519081016040528092919081815260200182805480156118b657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611898575b5050505050815260200160058201548152602001600682015481526020016007820154815260200160088201548152602001600982015481525050815260200190600101906116d9565b6016602052816000526040600020818154811061191c57600080fd5b90600052602060002001600091509150505481565b6019602052816000526040600020818154811061191c57600080fd5b60606026805480602002602001604051908101604052809291908181526020016000905b8282101561125d57838290600052602060002090600a0201604051806101400160405290816000820180546119a590614d5f565b80601f01602080910402602001604051908101604052809291908181526020018280546119d190614d5f565b8015611a1e5780601f106119f357610100808354040283529160200191611a1e565b820191906000526020600020905b815481529060010190602001808311611a0157829003601f168201915b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611a8057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a62575b505050505081526020016002820154815260200160038201805480602002602001604051908101604052809291908181526020018280548015611aec57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ace575b5050505050815260200160048201805480602002602001604051908101604052809291908181526020018280548015611b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611b30575b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505081526020019060010190611971565b6000546201000090046001600160a01b03163314611bc85760405162461bcd60e51b8152600401610d4690614bf2565b600c55565b600154341015611c1f5760405162461bcd60e51b815260206004820152601c60248201527f596f75206d7573742070617920746865207375626d6974206665652e000000006044820152606401610d46565b6000845111611c7f5760405162461bcd60e51b815260206004820152602660248201527f596f75206d757374207375626d6974206174206c65617374206f6e6520636f6e6044820152653a3930b1ba1760d11b6064820152608401610d46565b60005b602454811015611dc55760005b60248281548110611cb057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050811015611db25760005b8651811015611d9f57868181518110611cf857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031660248481548110611d2a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018381548110611d5a57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611d8d5760405162461bcd60e51b8152600401610d4690614b4c565b80611d9781614d9a565b915050611ccf565b5080611daa81614d9a565b915050611c8f565b5080611dbd81614d9a565b915050611c82565b5060005b602654811015611f0c5760005b60268281548110611df757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050811015611ef95760005b8651811015611ee657868181518110611e3f57634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b031660268481548110611e7157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018381548110611ea157634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415611ed45760405162461bcd60e51b8152600401610d4690614b4c565b80611ede81614d9a565b915050611e16565b5080611ef181614d9a565b915050611dd6565b5080611f0481614d9a565b915050611dc9565b50604080516101408101825282815260208082018790526023805493830184905260608301879052608083018690524260a0840152600060c0840181905260e0840181905261010084018190526101208401819052600185018255528151805192938493600a9091027fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42300192611fa69284929101906142d4565b506020828101518051611fbf9260018501920190614358565b506040820151600282015560608201518051611fe5916003840191602090910190614358565b5060808201518051612001916004840191602090910190614358565b5060a0820151600582015560c0820151600682015560e082015160078201556101008201516008820155610120909101516009909101556024805460408084015160009081526025602090815291812083905560018301845592909252825180518493600a9093027f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4019261209a9284929101906142d4565b5060208281015180516120b39260018501920190614358565b5060408201516002820155606082015180516120d9916003840191602090910190614358565b50608082015180516120f5916004840191602090910190614358565b5060a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015550507f3cfaf764f2f818b7a7ad480deb707719233609654698cb3421e9813e034136908160405161215b9190614c14565b60405180910390a15050505050565b336000908152601a6020526040902054600211156121d95760405162461bcd60e51b815260206004820152602660248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f604482015265103b37ba329760d11b6064820152608401610d46565b60008681526027602052604081205460268054909190811061220b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160010180549050116122645760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b7103737ba1039bab136b4ba3a32b21760611b6044820152606401610d46565b33600090815260116020908152604080832089845290915290205460ff161561229f5760405162461bcd60e51b8152600401610d4690614ba9565b3360009081526011602090815260408083208984528252808320805460ff191660019081179091556016835281842080548083018255908552838520018890558984526017835281842080548083018255908552838520018790558984526018835281842080548083018255908552838520018690558984526019835290832080549182018155835291200181905584156123675760008681526014602090815260408220805460018101825590835291200180546001600160a01b03191633179055612396565b60008681526015602090815260408220805460018101825590835291200180546001600160a01b031916331790555b600086815260276020526040902054602680547f0c2f354d644daf17949d521b85eb71746aff3e095a32f01161ca5a5618d8ba67929081106123e857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020133878787878760405161240f9796959493929190614c3a565b60405180910390a160055460008781526015602090815260408083205460149092529091205461243f9190614cda565b14156133b35760045460008781526014602052604090205410612cd45760005b60008781526012602052604090205481101561255357600087815260126020526040812080546010929190849081106124a857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601290925281208054601d9291908490811061250b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161253b83614d9a565b9190505550808061254b90614d9a565b91505061245f565b5060005b60008781526013602052604090205481101561264b57600087815260136020526040812080546010929190849081106125a057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601390925281208054601e9291908490811061260357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161263383614d9a565b9190505550808061264390614d9a565b915050612557565b5060005b600087815260146020526040902054811015612743576000878152601460205260408120805460119291908490811061269857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff191690556014909252812080546021929190849081106126fb57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161272b83614d9a565b9190505550808061273b90614d9a565b91505061264f565b5060005b600087815260156020526040902054811015612836576000878152601560205260408120805460119291908490811061279057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601583529081208054849081106127ee57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161281e83614d9a565b9190505550808061282e90614d9a565b915050612747565b506000805b6000888152601660205260409020548110156128a957600088815260166020526040902080548290811061287f57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826128959190614cda565b9150806128a181614d9a565b91505061283b565b506000878152601660205260409020546128c39082614cf2565b90506000805b60008981526017602052604090205481101561293757600089815260176020526040902080548290811061290d57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826129239190614cda565b91508061292f81614d9a565b9150506128c9565b506000888152601760205260409020546129519082614cf2565b90506000805b60008a8152601860205260409020548110156129c55760008a815260186020526040902080548290811061299b57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154826129b19190614cda565b9150806129bd81614d9a565b915050612957565b506000898152601860205260409020546129df9082614cf2565b90506000805b60008b815260196020526040902054811015612a535760008b8152601960205260409020805482908110612a2957634e487b7160e01b600052603260045260246000fd5b906000526020600020015482612a3f9190614cda565b915080612a4b81614d9a565b9150506129e5565b5060008a815260196020526040902054612a6d9082614cf2565b9050836026602760008d81526020019081526020016000205481548110612aa457634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160060181905550826026602760008d81526020019081526020016000205481548110612aee57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160070181905550816026602760008d81526020019081526020016000205481548110612b3857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160080181905550806026602760008d81526020019081526020016000205481548110612b8257634e487b7160e01b600052603260045260246000fd5b600091825260208083206009600a9093020191909101929092556029548c825260279092526040902054602680546001600160a01b03909316926315de2b9f92908110612bdf57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016040518263ffffffff1660e01b8152600401612c099190614c27565b600060405180830381600087803b158015612c2357600080fd5b505af1158015612c37573d6000803e3d6000fd5b505050507fc83ad1914dc2114ca21cdee11903ccc28a2ce572f5aefc267087c39796fb36926026602760008d81526020019081526020016000205481548110612c9057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201601460008d815260200190815260200160002080549050604051612cc3929190614c87565b60405180910390a15050505061313d565b60005b600087815260126020526040902054811015612dcb5760008781526012602052604081208054601092919084908110612d2057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601290925281208054601e92919084908110612d8357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612db383614d9a565b91905055508080612dc390614d9a565b915050612cd7565b5060005b600087815260136020526040902054811015612ec35760008781526013602052604081208054601092919084908110612e1857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff19169055601390925281208054601d92919084908110612e7b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612eab83614d9a565b91905055508080612ebb90614d9a565b915050612dcf565b5060005b600087815260146020526040902054811015612fb65760008781526014602052604081208054601192919084908110612f1057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff1916905560148352908120805484908110612f6e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040018120805491612f9e83614d9a565b91905055508080612fae90614d9a565b915050612ec7565b5060005b6000878152601560205260409020548110156130ae576000878152601560205260408120805460119291908490811061300357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282810193909352604091820181208a82528352818120805460ff1916905560159092528120805460219291908490811061306657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001812080549161309683614d9a565b919050555080806130a690614d9a565b915050612fba565b50600086815260276020526040902054602680547f1de29ffcea7ef044c86d80f2bbae7b72dddd0e0b6d62b46ec33ac34b6d51927c9290811061310157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016014600089815260200190815260200160002080549050604051613134929190614c87565b60405180910390a15b6026805461314d90600190614d31565b8154811061316b57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160266027600089815260200190815260200160002054815481106131ad57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160008201816000019080546131cf90614d5f565b6131da9291906143ad565b50600182810180546131ef9284019190614428565b50600282015481600201556003820181600301908054613210929190614428565b50600482810180546132259284019190614428565b506005828101549082015560068083015490820155600780830154908201556008808301549082015560099182015491015560008681526027602081905260408220546026805491939161327b90600190614d31565b8154811061329957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016002015481526020019081526020016000208190555060268054806132dc57634e487b7160e01b600052603160045260246000fd5b60008281526020812060001990920191600a830201906132fc8282614467565b61330a6001830160006144a1565b600282016000905560038201600061332291906144a1565b6133306004830160006144a1565b506000600582018190556006820181905560078201819055600882018190556009909101819055915586815260166020526040812061336e916144a1565b6000868152601760205260408120613385916144a1565b600086815260186020526040812061339c916144a1565b60008681526019602052604081206133b3916144a1565b505050505050565b6017602052816000526040600020818154811061191c57600080fd5b6000546201000090046001600160a01b031633146134075760405162461bcd60e51b8152600401610d4690614bf2565b600955565b6000546201000090046001600160a01b0316331461343c5760405162461bcd60e51b8152600401610d4690614bf2565b600355565b6000546201000090046001600160a01b031633146134715760405162461bcd60e51b8152600401610d4690614bf2565b6001600160a01b0381166000908152601a6020526040902054600110156134aa5760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604081208054916115d683614d9a565b601360205281600052604060002081815481106113e857600080fd5b6000546201000090046001600160a01b0316331461351a5760405162461bcd60e51b8152600401610d4690614bf2565b600155565b6000546201000090046001600160a01b0316331461354f5760405162461bcd60e51b8152600401610d4690614bf2565b600d55565b6024818154811061356457600080fd5b90600052602060002090600a020160009150905080600001805461358790614d5f565b80601f01602080910402602001604051908101604052809291908181526020018280546135b390614d5f565b80156136005780601f106135d557610100808354040283529160200191613600565b820191906000526020600020905b8154815290600101906020018083116135e357829003601f168201915b5050505050908060020154908060050154908060060154908060070154908060080154908060090154905087565b6000546201000090046001600160a01b0316331461365e5760405162461bcd60e51b8152600401610d4690614bf2565b600f55565b6000546201000090046001600160a01b031633146136935760405162461bcd60e51b8152600401610d4690614bf2565b600a55565b6000546201000090046001600160a01b031633146136c85760405162461bcd60e51b8152600401610d4690614bf2565b602980546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152601a60205260409020546002111561375c5760405162461bcd60e51b815260206004820152602960248201527f596f75206d7573742062652052616e6b204949206f722068696768657220746f60448201526810383937b6b7ba329760b91b6064820152608401610d46565b6001600160a01b0381166000908152601a6020526040902054600110156137955760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604090205461388a576000600754116137f95760405162461bcd60e51b8152602060048201526012602482015271273790383937b6b7ba34b7b739903cb2ba1760711b6044820152606401610d46565b6001600160a01b0381166000908152601b6020526040812080549161381d83614d9a565b90915550506009546001600160a01b0382166000908152601b602052604090205414156115dc576007805490600061385483614d48565b90915550506001600160a01b0381166000908152601b60209081526040808320839055601a90915281208054916115d683614d9a565b6000600854116138d15760405162461bcd60e51b8152602060048201526012602482015271273790383937b6b7ba34b7b739903cb2ba1760711b6044820152606401610d46565b6001600160a01b0381166000908152601b602052604081208054916138f583614d9a565b9091555050600a546001600160a01b0382166000908152601b602052604090205414156115dc576008805490600061385483614d48565b6023818154811061356457600080fd5b336000908152601a6020526040902054600111156139aa5760405162461bcd60e51b815260206004820152602560248201527f596f75206d7573742062652052616e6b2049206f722068696768657220746f206044820152643b37ba329760d91b6064820152608401610d46565b6000868152602560205260408120546024805490919081106139dc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016001018054905011613a355760405162461bcd60e51b81526020600482015260146024820152732a37b5b2b7103737ba1039bab136b4ba3a32b21760611b6044820152606401610d46565b33600090815260106020908152604080832089845290915290205460ff1615613a705760405162461bcd60e51b8152600401610d4690614ba9565b600f54600087815260256020526040902054602480549091908110613aa557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160050154613ac19190614cda565b4211613b2d5760405162461bcd60e51b815260206004820152603560248201527f596f75206d7573742077616974206265666f72652074686520656e64206f66206044820152743a34329031b7b7b63237bbb7103a37903b37ba329760591b6064820152608401610d46565b60058411158015613b3f575060058311155b8015613b4c575060058211155b8015613b59575060058111155b613ba55760405162461bcd60e51b815260206004820152601f60248201527f53636f726573206d757374206265206265747765656e203020616e6420352e006044820152606401610d46565b600086815260166020908152604080832080546001818101835591855283852001889055898452601783528184208054808301825590855283852001879055898452601883528184208054808301825590855283852001869055898452601983528184208054808301825590855283852001859055338452601083528184208a8552909252909120805460ff191690911790558415613c715760008681526012602090815260408220805460018101825590835291200180546001600160a01b03191633179055613ca0565b60008681526013602090815260408220805460018101825590835291200180546001600160a01b031916331790555b600086815260256020526040902054602480547f1783b3c99d251082029bdc744894afb1f9aac89631fbc0115daabfc6ba2f177a92908110613cf257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201338787878787604051613d199796959493929190614c3a565b60405180910390a1600254600087815260136020908152604080832054601290925290912054613d499190614cda565b106133b35760035460008781526012602052604090205410613efe5760268054600088815260276020908152604080832093909355602590522054602480549091908110613da757634e487b7160e01b600052603260045260246000fd5b6000918252602080832084546001810186559484529220600a918202909201805490939091029091019081908390613dde90614d5f565b613de99291906143ad565b5060018281018054613dfe9284019190614428565b50600282015481600201556003820181600301908054613e1f929190614428565b5060048281018054613e349284019190614428565b50600582015481600501556006820154816006015560078201548160070155600882015481600801556009820154816009015550507f153988a934c561a22afb468c7ac1689874396601ea5841280e13de170c7d1cdc6024602560008981526020019081526020016000205481548110613ebe57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016012600089815260200190815260200160002080549050604051613ef1929190614c87565b60405180910390a1613f8c565b600086815260256020526040902054602480547f12cf2271828a37db51026d5954b5e4ea9a0c5213b365e45a6c1382a1be6d391092908110613f5057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016012600089815260200190815260200160002080549050604051613f83929190614c87565b60405180910390a15b60248054613f9c90600190614d31565b81548110613fba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a02016024602560008981526020019081526020016000205481548110613ffc57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a0201600082018160000190805461401e90614d5f565b6140299291906143ad565b506001828101805461403e9284019190614428565b5060028201548160020155600382018160030190805461405f929190614428565b50600482810180546140749284019190614428565b50600582810154908201556006808301549082015560078083015490820155600880830154908201556009918201549101556000868152602560208190526040822054602480549193916140ca90600190614d31565b815481106140e857634e487b7160e01b600052603260045260246000fd5b90600052602060002090600a020160020154815260200190815260200160002081905550602480548061412b57634e487b7160e01b600052603160045260246000fd5b60008281526020812060001990920191600a8302019061414b8282614467565b6141596001830160006144a1565b600282016000905560038201600061417191906144a1565b61417f6004830160006144a1565b506000600582018190556006820181905560078201819055600882018190556009909101559055505050505050565b601460205281600052604060002081815481106113e857600080fd5b601560205281600052604060002081815481106113e857600080fd5b6000546201000090046001600160a01b031633146142165760405162461bcd60e51b8152600401610d4690614bf2565b600b55565b6018602052816000526040600020818154811061191c57600080fd5b6000546201000090046001600160a01b031633146142675760405162461bcd60e51b8152600401610d4690614bf2565b6001600160a01b0381166000908152601a6020526040902054600111156142a05760405162461bcd60e51b8152600401610d4690614b28565b6001600160a01b0381166000908152601a602052604081208054916115d683614d48565b6026818154811061356457600080fd5b8280546142e090614d5f565b90600052602060002090601f0160209004810192826143025760008555614348565b82601f1061431b57805160ff1916838001178555614348565b82800160010185558215614348579182015b8281111561434857825182559160200191906001019061432d565b506143549291506144bb565b5090565b828054828255906000526020600020908101928215614348579160200282015b8281111561434857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614378565b8280546143b990614d5f565b90600052602060002090601f0160209004810192826143db5760008555614348565b82601f106143ec5780548555614348565b8280016001018555821561434857600052602060002091601f016020900482015b8281111561434857825482559160010191906001019061440d565b8280548282559060005260206000209081019282156143485760005260206000209182018281111561434857825482559160010191906001019061440d565b50805461447390614d5f565b6000825580601f10614483575050565b601f0160209004906000526020600020908101906115dc91906144bb565b50805460008255906000526020600020908101906115dc91905b5b8082111561435457600081556001016144bc565b80356001600160a01b03811681146144e757600080fd5b919050565b600082601f8301126144fc578081fd5b8135602067ffffffffffffffff82111561451857614518614dcb565b8160051b614527828201614ca9565b838152828101908684018388018501891015614541578687fd5b8693505b8584101561456a57614556816144d0565b835260019390930192918401918401614545565b50979650505050505050565b600060208284031215614587578081fd5b614590826144d0565b9392505050565b600080604083850312156145a9578081fd5b6145b2836144d0565b91506145c0602084016144d0565b90509250929050565b600080604083850312156145db578182fd5b6145e4836144d0565b946020939093013593505050565b60008060008060808587031215614607578182fd5b843567ffffffffffffffff8082111561461e578384fd5b61462a888389016144ec565b9550602091508187013581811115614640578485fd5b61464c89828a016144ec565b955050604087013581811115614660578485fd5b61466c89828a016144ec565b945050606087013581811115614680578384fd5b8701601f81018913614690578384fd5b8035828111156146a2576146a2614dcb565b6146b4601f8201601f19168501614ca9565b925080835289848284010111156146c9578485fd5b80848301858501378201909201929092525092959194509250565b6000602082840312156146f5578081fd5b815161459081614de1565b600060208284031215614711578081fd5b5035919050565b60008060008060008060c08789031215614730578182fd5b86359550602087013561474281614de1565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060408385031215614779578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156147c05781516001600160a01b03168752958201959082019060010161479b565b509495945050505050565b6000815480845260208085019450838352808320835b838110156147c05781546001600160a01b0316875295820195600191820191016147e1565b60008151808452815b8181101561482b5760208185018101518683018201520161480f565b8181111561483c5782602083870101525b50601f01601f19169290920160200192915050565b8054600090600181811c908083168061486b57607f831692505b602080841082141561488b57634e487b7160e01b86526022600452602486fd5b838852602088018280156148a657600181146148b7576148e2565b60ff198716825282820197506148e2565b60008981526020902060005b878110156148dc578154848201529086019084016148c3565b83019850505b5050505050505092915050565b6000610140825181855261490582860182614806565b9150506020830151848203602086015261491f8282614788565b91505060408301516040850152606083015184820360608601526149438282614788565b9150506080830151848203608086015261495d8282614788565b91505060a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152508091505092915050565b60006101408084526149b481850184614851565b905083810360208501526149cb81600185016147cb565b90506002830154604085015283810360608501526149ec81600385016147cb565b90508381036080850152614a0381600485016147cb565b600584015460a0860152600684015460c0860152600784015460e086015260088401546101008601526009909301546101209094019390935250919050565b6000602080830181845280855180835260408601915060408160051b8701019250838701855b82811015614a9657603f19888603018452614a848583516148ef565b94509285019290850190600101614a68565b5092979650505050505050565b60e081526000614ab660e083018a614806565b60208301989098525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526021908201527f596f7520646f6e2774206861766520616e797468696e6720746f20636c61696d6040820152601760f91b606082015260800190565b6020808252600a9082015269496d706f737369626c6560b01b604082015260600190565b6020808252603d908201527f4f6e65206f662074686520736d6172742d636f6e74726163747320697320616c60408201527f726561647920696e20746865206c697374696e672070726f636573732e000000606082015260800190565b60208082526029908201527f596f752063616e6e6f7420766f746520747769636520666f722074686520736160408201526836b2903a37b5b2b71760b91b606082015260800190565b60208082526008908201526744414f204f6e6c7960c01b604082015260600190565b60208152600061459060208301846148ef565b60208152600061459060208301846149a0565b60e081526000614c4d60e083018a6149a0565b6001600160a01b039890981660208301525094151560408601526060850193909352608084019190915260a083015260c090910152919050565b604081526000614c9a60408301856149a0565b90508260208301529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715614cd257614cd2614dcb565b604052919050565b60008219821115614ced57614ced614db5565b500190565b600082614d0d57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615614d2c57614d2c614db5565b500290565b600082821015614d4357614d43614db5565b500390565b600081614d5757614d57614db5565b506000190190565b600181811c90821680614d7357607f821691505b60208210811415614d9457634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415614dae57614dae614db5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b80151581146115dc57600080fdfea26469706673582212205b89acd3117e104e8d6f30d69cc424f7dc68bcadb9e51d0c6f23484e56b22b8364736f6c63430008040033",
"linkReferences": {},
"deployedLinkReferences": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment