dgf-prototype/frontend/contractArtifacts/Proposals.json

356 lines
63 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Proposals",
"sourceName": "contracts/Proposals.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract DAO",
"name": "dao",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "Attestation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "NewProposal",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "ProposalAccepted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "reason",
"type": "string"
}
],
"name": "ProposalFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
}
],
"name": "ReferendumStarted",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "attest",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "evaluateAttestation",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "getPools",
"outputs": [
{
"components": [
{
"internalType": "uint256",
"name": "poolIndex",
"type": "uint256"
},
{
"internalType": "bool",
"name": "started",
"type": "bool"
},
{
"internalType": "bool",
"name": "completed",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakedFor",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedAgainst",
"type": "uint256"
},
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
}
],
"internalType": "struct Proposals.Pool[3][3]",
"name": "pools",
"type": "tuple[3][3]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "votePasses",
"type": "bool"
},
{
"internalType": "bool",
"name": "quorumMet",
"type": "bool"
},
{
"internalType": "uint256",
"name": "stakedFor",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "stakedAgainst",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "onValidate",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "proposalCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "proposals",
"outputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "fee",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "remainingFee",
"type": "uint256"
},
{
"internalType": "string",
"name": "postId",
"type": "string"
},
{
"internalType": "uint256",
"name": "startTime",
"type": "uint256"
},
{
"internalType": "enum Proposals.Stage",
"name": "stage",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "attestationTotal",
"type": "uint256"
},
{
"internalType": "bool",
"name": "callbackOnAccepted",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "contentId",
"type": "string"
},
{
"internalType": "address",
"name": "author",
"type": "address"
},
{
"internalType": "uint256[3]",
"name": "durations",
"type": "uint256[3]"
},
{
"internalType": "bool",
"name": "callbackOnAccepted",
"type": "bool"
},
{
"internalType": "bytes",
"name": "callbackData",
"type": "bytes"
}
],
"name": "propose",
"outputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "proposalIndex",
"type": "uint256"
}
],
"name": "reclaimRemainingFee",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a06040526040518060600160405280600060ff168152602001600160ff168152602001606460ff1681525060029060036200003d929190620001ef565b5060405180606001604052806000151515158152602001600015151515815260200160011515151581525060059060036200007a92919062000239565b5060405180606001604052806040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff1681525081526020016040518060400160405280600160ff168152602001600a60ff168152508152506006906003620000fc929190620002d9565b5060405180606001604052806040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff1681525081526020016040518060400160405280600260ff168152602001600360ff16815250815250600c9060036200017e929190620002d9565b503480156200018c57600080fd5b50604051620039cf380380620039cf8339818101604052810190620001b291906200044e565b808073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050505062000480565b826003810192821562000226579160200282015b8281111562000225578251829060ff1690559160200191906001019062000203565b5b50905062000235919062000331565b5090565b826003601f01602090048101928215620002c65791602002820160005b838211156200029557835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030262000256565b8015620002c45782816101000a81549060ff021916905560010160208160000104928301926001030262000295565b505b509050620002d5919062000331565b5090565b82600360020281019282156200031e579160200282015b828111156200031d578251829060026200030c92919062000350565b5091602001919060020190620002f0565b5b5090506200032d91906200039a565b5090565b5b808211156200034c57600081600090555060010162000332565b5090565b826002810192821562000387579160200282015b8281111562000386578251829060ff1690559160200191906001019062000364565b5b50905062000396919062000331565b5090565b5b80821115620003be5760008181620003b49190620003c2565b506002016200039b565b5090565b506000815560010160009055565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200040282620003d5565b9050919050565b60006200041682620003f5565b9050919050565b620004288162000409565b81146200043457600080fd5b50565b60008151905062000448816200041d565b92915050565b600060208284031215620004675762000466620003d0565b5b6000620004778482850162000437565b91505092915050565b608051613510620004bf6000396000818161046b01528181610a0101528181610bed01528181610de701528181611683015261185101526135106000f3fe60806040526004361061007b5760003560e01c8063b4e6a1d51161004e578063b4e6a1d51461015b578063c019faab14610198578063da35c664146101c1578063ea923e63146101ec5761007b565b8063013cf08b146100805780632805b5d9146100c557806362d26ed7146100f5578063a3bb24cc14610132575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611b63565b610229565b6040516100bc99989796959493929190611d57565b60405180910390f35b6100df60048036038101906100da9190611f27565b6103c1565b6040516100ec9190611fe3565b60405180910390f35b34801561010157600080fd5b5061011c60048036038101906101179190611b63565b6106c5565b60405161012991906121e3565b60405180910390f35b34801561013e57600080fd5b50610159600480360381019061015491906121ff565b6109fe565b005b34801561016757600080fd5b50610182600480360381019061017d919061223f565b610be9565b60405161018f9190611fe3565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba9190611b63565b6114be565b005b3480156101cd57600080fd5b506101d66115ea565b6040516101e39190611fe3565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611b63565b6115f0565b60405161022091906122d9565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201549080600301805461027e90612323565b80601f01602080910402602001604051908101604052809291908181526020018280546102aa90612323565b80156102f75780601f106102cc576101008083540402835291602001916102f7565b820191906000526020600020905b8154815290600101906020018083116102da57829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff169080600701549080603b0160009054906101000a900460ff169080603c01805461033e90612323565b80601f016020809104026020016040519081016040528092919081815260200182805461036a90612323565b80156103b75780601f1061038c576101008083540402835291602001916103b7565b820191906000526020600020905b81548152906001019060200180831161039a57829003601f168201915b5050505050905089565b600060606000600167ffffffffffffffff8111156103e2576103e1612354565b5b60405190808252806020026020018201604052801561041b57816020015b610408611a54565b8152602001906001900390816104005790505b5090506040518060400160405280606481526020018973ffffffffffffffffffffffffffffffffffffffff168152508160008151811061045e5761045d612383565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d827828c8c866040518563ffffffff1660e01b81526004016104c8949392919061263d565b600060405180830381600087803b1580156104e257600080fd5b505af11580156104f6573d6000803e3d6000fd5b505050506001600081548092919061050d906126ba565b91905055925060008060008581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a8a82600301918261057f9291906128b9565b504281600401819055508760006003811061059d5761059c612383565b5b6020020135816008016000600381106105b9576105b8612383565b5b6011020160000181905550876001600381106105d8576105d7612383565b5b6020020135816008016001600381106105f4576105f3612383565b5b60110201600001819055508760026003811061061357610612612383565b5b60200201358160080160026003811061062f5761062e612383565b5b6011020160000181905550348160010181905550806001015481600201819055508681603b0160006101000a81548160ff021916908315150217905550858582603c01918261067f9291906129ef565b507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e846040516106af9190611fe3565b60405180910390a1505050979650505050505050565b6106cd611a84565b60008060008481526020019081526020016000209050806008016000600381106106fa576106f9612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156107ca578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610718565b50505050826000600381106107e2576107e1612383565b5b60200201819052508060080160016003811061080157610800612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156108d1578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff1615151515815250508152602001906001019061081f565b50505050826001600381106108e9576108e8612383565b5b60200201819052508060080160026003811061090857610907612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156109d8578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610926565b50505050826002600381106109f0576109ef612383565b5b602002018190525050919050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a589190612abf565b602060405180830381865afa158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a999190612aef565b1015610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad190612b8e565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816007016000828254610b459190612bae565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081816007016000828254610ba69190612be2565b925050819055507fc23775ba00d23f337b9f790bd67eb5194aa9b95876933f9ccd1887becbb55ccb83604051610bdc9190611fe3565b60405180910390a1505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612c88565b60405180910390fd5b60008060008585810190610c8d9190612ca8565b925092509250600080600085815260200190815260200160002090506000816008018460038110610cc157610cc0612383565b5b601102019050600081600101826010015460038110610ce357610ce2612383565b5b60050201905060018160010160016101000a81548160ff0219169083151502179055508a81600201819055508981600301819055508b8160040160016101000a81548160ff0219169083151502179055508c8160040160006101000a81548160ff0219169083151502179055508b610de35760048360050160006101000a81548160ff02191690836005811115610d7d57610d7c611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb86604051610db19190612d47565b60405180910390a183836002016000828254610dcd9190612be2565b92505081905550600196505050505050506114b4565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190612aef565b8b8d610e809190612be2565b6002610e8c9190612d75565b1015905060016005811115610ea457610ea3611c70565b5b8460050160009054906101000a900460ff166005811115610ec857610ec7611c70565b5b03610fe95760008614610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790612e03565b60405180910390fd5b8d8015610f1a5750805b15610f515760028460050160006101000a81548160ff02191690836005811115610f4757610f46611c70565b5b0217905550610fe4565b6002836010015410610fc65760048460050160006101000a81548160ff02191690836005811115610f8557610f84611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610fb99190612e6f565b60405180910390a1610fe3565b6001836010016000828254610fdb9190612be2565b925050819055505b5b611390565b60026005811115610ffd57610ffc611c70565b5b8460050160009054906101000a900460ff16600581111561102157611020611c70565b5b036111425760018614611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090612ee9565b60405180910390fd5b8d80156110735750805b156110aa5760038460050160006101000a81548160ff021916908360058111156110a05761109f611c70565b5b021790555061113d565b600283601001541061111f5760048460050160006101000a81548160ff021916908360058111156110de576110dd611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516111129190612e6f565b60405180910390a161113c565b60018360100160008282546111349190612be2565b925050819055505b5b61138f565b6003600581111561115657611155611c70565b5b8460050160009054906101000a900460ff16600581111561117a57611179611c70565b5b0361138e57600286146111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b990612f55565b60405180910390fd5b8d80156111cc5750805b156112fa5760058460050160006101000a81548160ff021916908360058111156111f9576111f8611c70565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b8760405161122d9190611fe3565b60405180910390a183603b0160009054906101000a900460ff16156112f5578360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663815a05728d8d87603c016040518463ffffffff1660e01b81526004016112b093929190612ff9565b6020604051808303816000875af11580156112cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f39190612aef565b505b61138d565b600283601001541061136f5760048460050160006101000a81548160ff0219169083600581111561132e5761132d611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516113629190612e6f565b60405180910390a161138c565b60018360100160008282546113849190612be2565b925050819055505b5b5b5b5b600160058111156113a4576113a3611c70565b5b8460050160009054906101000a900460ff1660058111156113c8576113c7611c70565b5b036113ee576113e9876000600a87600101546113e49190613066565b61181c565b6114a8565b6002600581111561140257611401611c70565b5b8460050160009054906101000a900460ff16600581111561142657611425611c70565b5b0361144c57611447876001600a87600101546114429190613066565b61181c565b6114a7565b600360058111156114605761145f611c70565b5b8460050160009054906101000a900460ff16600581111561148457611483611c70565b5b036114a6576114a5876002600a87600101546114a09190613066565b61181c565b5b5b5b60009750505050505050505b9695505050505050565b60008060008381526020019081526020016000209050600460058111156114e8576114e7611c70565b5b8160050160009054906101000a900460ff16600581111561150c5761150b611c70565b5b148061154c575060058081111561152657611525611c70565b5b8160050160009054906101000a900460ff16600581111561154a57611549611c70565b5b145b61158b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115829061312f565b60405180910390fd5b600081600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156115e4573d6000803e3d6000fd5b50505050565b60015481565b60008060008084815260200190815260200160002090506000600581111561161b5761161a611c70565b5b8160050160009054906101000a900460ff16600581111561163f5761163e611c70565b5b1461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906131c1565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117109190612aef565b8260070154600a6117219190612d75565b1015905060006301e13380836004015461173b9190612be2565b42119050816117c65780156117ba5760048360050160006101000a81548160ff0219169083600581111561177257611771611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb856040516117a69190613253565b60405180910390a160009350505050611817565b60009350505050611817565b60018360050160006101000a81548160ff021916908360058111156117ee576117ed611c70565b5b021790555061180f856000600a866001015461180a9190613066565b61181c565b600193505050505b919050565b60008060008581526020019081526020016000209050818160020160008282546118469190612bae565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7384846003018560080188600381106118a6576118a5612383565b5b6011020160000154600689600381106118c2576118c1612383565b5b60020201600c8a600381106118da576118d9612383565b5b6002020160028b600381106118f2576118f1612383565b5b015460058c6003811061190857611907612383565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161193593929190613281565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401611967989796959493929190613423565b60206040518083038185885af1158015611985573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119aa9190612aef565b905060008260080185600381106119c4576119c3612383565b5b6011020190506000816001018260100154600381106119e6576119e5612383565b5b60050201905082816000018190555060018160010160006101000a81548160ff0219169083151502179055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798784604051611a439291906134b1565b60405180910390a150505050505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806003905b611a9b611ab1565b815260200190600190039081611a935790505090565b60405180606001604052806003905b611ac8611ade565b815260200190600190039081611ac05790505090565b6040518060e001604052806000815260200160001515815260200160001515815260200160008152602001600081526020016000151581526020016000151581525090565b600080fd5b600080fd5b6000819050919050565b611b4081611b2d565b8114611b4b57600080fd5b50565b600081359050611b5d81611b37565b92915050565b600060208284031215611b7957611b78611b23565b5b6000611b8784828501611b4e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bbb82611b90565b9050919050565b611bcb81611bb0565b82525050565b611bda81611b2d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c1a578082015181840152602081019050611bff565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4282611be0565b611c4c8185611beb565b9350611c5c818560208601611bfc565b611c6581611c26565b840191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611cb057611caf611c70565b5b50565b6000819050611cc182611c9f565b919050565b6000611cd182611cb3565b9050919050565b611ce181611cc6565b82525050565b60008115159050919050565b611cfc81611ce7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611d2982611d02565b611d338185611d0d565b9350611d43818560208601611bfc565b611d4c81611c26565b840191505092915050565b600061012082019050611d6d600083018c611bc2565b611d7a602083018b611bd1565b611d87604083018a611bd1565b8181036060830152611d998189611c37565b9050611da86080830188611bd1565b611db560a0830187611cd8565b611dc260c0830186611bd1565b611dcf60e0830185611cf3565b818103610100830152611de28184611d1e565b90509a9950505050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e1757611e16611df2565b5b8235905067ffffffffffffffff811115611e3457611e33611df7565b5b602083019150836001820283011115611e5057611e4f611dfc565b5b9250929050565b611e6081611bb0565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b600081905082602060030282011115611e9f57611e9e611dfc565b5b92915050565b611eae81611ce7565b8114611eb957600080fd5b50565b600081359050611ecb81611ea5565b92915050565b60008083601f840112611ee757611ee6611df2565b5b8235905067ffffffffffffffff811115611f0457611f03611df7565b5b602083019150836001820283011115611f2057611f1f611dfc565b5b9250929050565b600080600080600080600060e0888a031215611f4657611f45611b23565b5b600088013567ffffffffffffffff811115611f6457611f63611b28565b5b611f708a828b01611e01565b97509750506020611f838a828b01611e6e565b9550506040611f948a828b01611e83565b94505060a0611fa58a828b01611ebc565b93505060c088013567ffffffffffffffff811115611fc657611fc5611b28565b5b611fd28a828b01611ed1565b925092505092959891949750929550565b6000602082019050611ff86000830184611bd1565b92915050565b600060039050919050565b600081905092915050565b6000819050919050565b600060039050919050565b600081905092915050565b6000819050919050565b61204781611b2d565b82525050565b61205681611ce7565b82525050565b60e082016000820151612072600085018261203e565b506020820151612085602085018261204d565b506040820151612098604085018261204d565b5060608201516120ab606085018261203e565b5060808201516120be608085018261203e565b5060a08201516120d160a085018261204d565b5060c08201516120e460c085018261204d565b50505050565b60006120f6838361205c565b60e08301905092915050565b6000602082019050919050565b6121188161201e565b6121228184612029565b925061212d82612034565b8060005b8381101561215e57815161214587826120ea565b965061215083612102565b925050600181019050612131565b505050505050565b6000612172838361210f565b6102a08301905092915050565b6000602082019050919050565b61219581611ffe565b61219f8184612009565b92506121aa82612014565b8060005b838110156121db5781516121c28782612166565b96506121cd8361217f565b9250506001810190506121ae565b505050505050565b60006107e0820190506121f9600083018461218c565b92915050565b6000806040838503121561221657612215611b23565b5b600061222485828601611b4e565b925050602061223585828601611b4e565b9150509250929050565b60008060008060008060a0878903121561225c5761225b611b23565b5b600061226a89828a01611ebc565b965050602061227b89828a01611ebc565b955050604061228c89828a01611b4e565b945050606061229d89828a01611b4e565b935050608087013567ffffffffffffffff8111156122be576122bd611b28565b5b6122ca89828a01611ed1565b92509250509295509295509295565b60006020820190506122ee6000830184611cf3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233b57607f821691505b60208210810361234e5761234d6122f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123e781611bb0565b82525050565b604082016000820151612403600085018261203e565b50602082015161241660208501826123de565b50505050565b600061242883836123ed565b60408301905092915050565b6000602082019050919050565b600061244c826123b2565b61245681856123bd565b9350612461836123ce565b8060005b83811015612492578151612479888261241c565b975061248483612434565b925050600181019050612465565b5085935050505092915050565b82818337600083830152505050565b60006124ba8385611beb565b93506124c783858461249f565b6124d083611c26565b840190509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61251a81612507565b82525050565b600082825260208201905092915050565b600061253c82611be0565b6125468185612520565b9350612556818560208601611bfc565b61255f81611c26565b840191505092915050565b60006040830160008301516125826000860182612511565b506020830151848203602086015261259a8282612531565b9150508091505092915050565b60006125b3838361256a565b905092915050565b6000602082019050919050565b60006125d3826124db565b6125dd81856124e6565b9350836020820285016125ef856124f7565b8060005b8581101561262b578484038952815161260c85826125a7565b9450612617836125bb565b925060208a019950506001810190506125f3565b50829750879550505050505092915050565b600060608201905081810360008301526126578187612441565b9050818103602083015261266c8185876124ae565b9050818103604083015261268081846125c8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126c582611b2d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126f7576126f661268b565b5b600182019050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261276f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612732565b6127798683612732565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127b66127b16127ac84611b2d565b612791565b611b2d565b9050919050565b6000819050919050565b6127d08361279b565b6127e46127dc826127bd565b84845461273f565b825550505050565b600090565b6127f96127ec565b6128048184846127c7565b505050565b5b818110156128285761281d6000826127f1565b60018101905061280a565b5050565b601f82111561286d5761283e8161270d565b61284784612722565b81016020851015612856578190505b61286a61286285612722565b830182612809565b50505b505050565b600082821c905092915050565b600061289060001984600802612872565b1980831691505092915050565b60006128a9838361287f565b9150826002028217905092915050565b6128c38383612702565b67ffffffffffffffff8111156128dc576128db612354565b5b6128e68254612323565b6128f182828561282c565b6000601f831160018114612920576000841561290e578287013590505b612918858261289d565b865550612980565b601f19841661292e8661270d565b60005b8281101561295657848901358255600182019150602085019450602081019050612931565b86831015612973578489013561296f601f89168261287f565b8355505b6001600288020188555050505b50505050505050565b600082905092915050565b60008190508160005260206000209050919050565b601f8211156129ea576129bb81612994565b6129c484612722565b810160208510156129d3578190505b6129e76129df85612722565b830182612809565b50505b505050565b6129f98383612989565b67ffffffffffffffff811115612a1257612a11612354565b5b612a1c8254612323565b612a278282856129a9565b6000601f831160018114612a565760008415612a44578287013590505b612a4e858261289d565b865550612ab6565b601f198416612a6486612994565b60005b82811015612a8c57848901358255600182019150602085019450602081019050612a67565b86831015612aa95784890135612aa5601f89168261287f565b8355505b6001600288020188555050505b50505050505050565b6000602082019050612ad46000830184611bc2565b92915050565b600081519050612ae981611b37565b92915050565b600060208284031215612b0557612b04611b23565b5b6000612b1384828501612ada565b91505092915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612b78602383611beb565b9150612b8382612b1c565b604082019050919050565b60006020820190508181036000830152612ba781612b6b565b9050919050565b6000612bb982611b2d565b9150612bc483611b2d565b9250828203905081811115612bdc57612bdb61268b565b5b92915050565b6000612bed82611b2d565b9150612bf883611b2d565b9250828201905080821115612c1057612c0f61268b565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c72603183611beb565b9150612c7d82612c16565b604082019050919050565b60006020820190508181036000830152612ca181612c65565b9050919050565b600080600060608486031215612cc157612cc0611b23565b5b6000612ccf86828701611b4e565b9350506020612ce086828701611b4e565b9250506040612cf186828701611b4e565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b6000612d31600e83611beb565b9150612d3c82612cfb565b602082019050919050565b6000604082019050612d5c6000830184611bd1565b8181036020830152612d6d81612d24565b905092915050565b6000612d8082611b2d565b9150612d8b83611b2d565b9250828202612d9981611b2d565b91508282048414831517612db057612daf61268b565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000612ded601683611beb565b9150612df882612db7565b602082019050919050565b60006020820190508181036000830152612e1c81612de0565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000612e59601483611beb565b9150612e6482612e23565b602082019050919050565b6000604082019050612e846000830184611bd1565b8181036020830152612e9581612e4c565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000612ed3601683611beb565b9150612ede82612e9d565b602082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000612f3f601683611beb565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b60008154612f8281612323565b612f8c8186611d0d565b94506001821660008114612fa75760018114612fbd57612ff0565b60ff198316865281151560200286019350612ff0565b612fc685612994565b60005b83811015612fe857815481890152600182019150602081019050612fc9565b808801955050505b50505092915050565b600060608201905061300e6000830186611bd1565b61301b6020830185611bd1565b818103604083015261302d8184612f75565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061307182611b2d565b915061307c83611b2d565b92508261308c5761308b613037565b5b828204905092915050565b7f52656d61696e696e6720666565732063616e206f6e6c79206265207265636c6160008201527f696d6564207768656e2070726f706f73616c20686173206265656e206163636560208201527f70746564206f72206661696c6564000000000000000000000000000000000000604082015250565b6000613119604e83611beb565b915061312482613097565b606082019050919050565b600060208201905081810360008301526131488161310c565b9050919050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b60006131ab602b83611beb565b91506131b68261314f565b604082019050919050565b600060208201905081810360008301526131da8161319e565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b600061323d602d83611beb565b9150613248826131e1565b604082019050919050565b60006040820190506132686000830184611bd1565b818103602083015261327981613230565b905092915050565b60006060820190506132966000830186611bd1565b6132a36020830185611bd1565b6132b06040830184611bd1565b949350505050565b600081546132c581612323565b6132cf8186611beb565b945060018216600081146132ea576001811461330057613333565b60ff198316865281151560200286019350613333565b6133098561270d565b60005b8381101561332b5781548189015260018201915060208101905061330c565b808801955050505b50505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000613368838361203e565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b600061339e61339983613374565b613381565b9050919050565b60006133b1825461338b565b9050919050565b6000600182019050919050565b6133ce8161333c565b6133d88184613347565b92506133e382613352565b8060005b8381101561341b576133f8826133a5565b613402878261335c565b965061340d836133b8565b9250506001810190506133e7565b505050505050565b600061014082019050818103600083015261343e818b6132b8565b905061344d602083018a611bd1565b61345a60408301896133c5565b61346760808301886133c5565b61347460c0830187611bd1565b61348160e0830186611cf3565b61348f610100830185611cf3565b8181036101208301526134a28184611d1e565b90509998505050505050505050565b60006040820190506134c66000830185611bd1565b6134d36020830184611bd1565b939250505056fea26469706673582212204ff67ea9359978b21e2c15a00c0290a49a16228d21926d629968eb1d951bb13a64736f6c63430008180033",
"deployedBytecode": "0x60806040526004361061007b5760003560e01c8063b4e6a1d51161004e578063b4e6a1d51461015b578063c019faab14610198578063da35c664146101c1578063ea923e63146101ec5761007b565b8063013cf08b146100805780632805b5d9146100c557806362d26ed7146100f5578063a3bb24cc14610132575b600080fd5b34801561008c57600080fd5b506100a760048036038101906100a29190611b63565b610229565b6040516100bc99989796959493929190611d57565b60405180910390f35b6100df60048036038101906100da9190611f27565b6103c1565b6040516100ec9190611fe3565b60405180910390f35b34801561010157600080fd5b5061011c60048036038101906101179190611b63565b6106c5565b60405161012991906121e3565b60405180910390f35b34801561013e57600080fd5b50610159600480360381019061015491906121ff565b6109fe565b005b34801561016757600080fd5b50610182600480360381019061017d919061223f565b610be9565b60405161018f9190611fe3565b60405180910390f35b3480156101a457600080fd5b506101bf60048036038101906101ba9190611b63565b6114be565b005b3480156101cd57600080fd5b506101d66115ea565b6040516101e39190611fe3565b60405180910390f35b3480156101f857600080fd5b50610213600480360381019061020e9190611b63565b6115f0565b60405161022091906122d9565b60405180910390f35b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101549080600201549080600301805461027e90612323565b80601f01602080910402602001604051908101604052809291908181526020018280546102aa90612323565b80156102f75780601f106102cc576101008083540402835291602001916102f7565b820191906000526020600020905b8154815290600101906020018083116102da57829003601f168201915b5050505050908060040154908060050160009054906101000a900460ff169080600701549080603b0160009054906101000a900460ff169080603c01805461033e90612323565b80601f016020809104026020016040519081016040528092919081815260200182805461036a90612323565b80156103b75780601f1061038c576101008083540402835291602001916103b7565b820191906000526020600020905b81548152906001019060200180831161039a57829003601f168201915b5050505050905089565b600060606000600167ffffffffffffffff8111156103e2576103e1612354565b5b60405190808252806020026020018201604052801561041b57816020015b610408611a54565b8152602001906001900390816104005790505b5090506040518060400160405280606481526020018973ffffffffffffffffffffffffffffffffffffffff168152508160008151811061045e5761045d612383565b5b60200260200101819052507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e5b4d827828c8c866040518563ffffffff1660e01b81526004016104c8949392919061263d565b600060405180830381600087803b1580156104e257600080fd5b505af11580156104f6573d6000803e3d6000fd5b505050506001600081548092919061050d906126ba565b91905055925060008060008581526020019081526020016000209050338160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508a8a82600301918261057f9291906128b9565b504281600401819055508760006003811061059d5761059c612383565b5b6020020135816008016000600381106105b9576105b8612383565b5b6011020160000181905550876001600381106105d8576105d7612383565b5b6020020135816008016001600381106105f4576105f3612383565b5b60110201600001819055508760026003811061061357610612612383565b5b60200201358160080160026003811061062f5761062e612383565b5b6011020160000181905550348160010181905550806001015481600201819055508681603b0160006101000a81548160ff021916908315150217905550858582603c01918261067f9291906129ef565b507f9a863892f20a6b9c6cec64d611b5864be6373191ce2cacc3b05a299bce3bf80e846040516106af9190611fe3565b60405180910390a1505050979650505050505050565b6106cd611a84565b60008060008481526020019081526020016000209050806008016000600381106106fa576106f9612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156107ca578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610718565b50505050826000600381106107e2576107e1612383565b5b60200201819052508060080160016003811061080157610800612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156108d1578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff1615151515815250508152602001906001019061081f565b50505050826001600381106108e9576108e8612383565b5b60200201819052508060080160026003811061090857610907612383565b5b60110201600101600380602002604051908101604052809291906000905b828210156109d8578382600502016040518060e0016040529081600082015481526020016001820160009054906101000a900460ff161515151581526020016001820160019054906101000a900460ff1615151515815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581526020016004820160019054906101000a900460ff16151515158152505081526020019060010190610926565b50505050826002600381106109f0576109ef612383565b5b602002018190525050919050565b807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a589190612abf565b602060405180830381865afa158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a999190612aef565b1015610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad190612b8e565b60405180910390fd5b600080600084815260200190815260200160002090508060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816007016000828254610b459190612bae565b92505081905550818160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081816007016000828254610ba69190612be2565b925050819055507fc23775ba00d23f337b9f790bd67eb5194aa9b95876933f9ccd1887becbb55ccb83604051610bdc9190611fe3565b60405180910390a1505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7090612c88565b60405180910390fd5b60008060008585810190610c8d9190612ca8565b925092509250600080600085815260200190815260200160002090506000816008018460038110610cc157610cc0612383565b5b601102019050600081600101826010015460038110610ce357610ce2612383565b5b60050201905060018160010160016101000a81548160ff0219169083151502179055508a81600201819055508981600301819055508b8160040160016101000a81548160ff0219169083151502179055508c8160040160006101000a81548160ff0219169083151502179055508b610de35760048360050160006101000a81548160ff02191690836005811115610d7d57610d7c611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb86604051610db19190612d47565b60405180910390a183836002016000828254610dcd9190612be2565b92505081905550600196505050505050506114b4565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e749190612aef565b8b8d610e809190612be2565b6002610e8c9190612d75565b1015905060016005811115610ea457610ea3611c70565b5b8460050160009054906101000a900460ff166005811115610ec857610ec7611c70565b5b03610fe95760008614610f10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0790612e03565b60405180910390fd5b8d8015610f1a5750805b15610f515760028460050160006101000a81548160ff02191690836005811115610f4757610f46611c70565b5b0217905550610fe4565b6002836010015410610fc65760048460050160006101000a81548160ff02191690836005811115610f8557610f84611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb87604051610fb99190612e6f565b60405180910390a1610fe3565b6001836010016000828254610fdb9190612be2565b925050819055505b5b611390565b60026005811115610ffd57610ffc611c70565b5b8460050160009054906101000a900460ff16600581111561102157611020611c70565b5b036111425760018614611069576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106090612ee9565b60405180910390fd5b8d80156110735750805b156110aa5760038460050160006101000a81548160ff021916908360058111156110a05761109f611c70565b5b021790555061113d565b600283601001541061111f5760048460050160006101000a81548160ff021916908360058111156110de576110dd611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516111129190612e6f565b60405180910390a161113c565b60018360100160008282546111349190612be2565b925050819055505b5b61138f565b6003600581111561115657611155611c70565b5b8460050160009054906101000a900460ff16600581111561117a57611179611c70565b5b0361138e57600286146111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b990612f55565b60405180910390fd5b8d80156111cc5750805b156112fa5760058460050160006101000a81548160ff021916908360058111156111f9576111f8611c70565b5b02179055507fd24c2047577899547bacebb29e319fc7d73f6712b5adb401d45556f34bb2aa3b8760405161122d9190611fe3565b60405180910390a183603b0160009054906101000a900460ff16156112f5578360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663815a05728d8d87603c016040518463ffffffff1660e01b81526004016112b093929190612ff9565b6020604051808303816000875af11580156112cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f39190612aef565b505b61138d565b600283601001541061136f5760048460050160006101000a81548160ff0219169083600581111561132e5761132d611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb876040516113629190612e6f565b60405180910390a161138c565b60018360100160008282546113849190612be2565b925050819055505b5b5b5b5b600160058111156113a4576113a3611c70565b5b8460050160009054906101000a900460ff1660058111156113c8576113c7611c70565b5b036113ee576113e9876000600a87600101546113e49190613066565b61181c565b6114a8565b6002600581111561140257611401611c70565b5b8460050160009054906101000a900460ff16600581111561142657611425611c70565b5b0361144c57611447876001600a87600101546114429190613066565b61181c565b6114a7565b600360058111156114605761145f611c70565b5b8460050160009054906101000a900460ff16600581111561148457611483611c70565b5b036114a6576114a5876002600a87600101546114a09190613066565b61181c565b5b5b5b60009750505050505050505b9695505050505050565b60008060008381526020019081526020016000209050600460058111156114e8576114e7611c70565b5b8160050160009054906101000a900460ff16600581111561150c5761150b611c70565b5b148061154c575060058081111561152657611525611c70565b5b8160050160009054906101000a900460ff16600581111561154a57611549611c70565b5b145b61158b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115829061312f565b60405180910390fd5b600081600201549050600082600201819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156115e4573d6000803e3d6000fd5b50505050565b60015481565b60008060008084815260200190815260200160002090506000600581111561161b5761161a611c70565b5b8160050160009054906101000a900460ff16600581111561163f5761163e611c70565b5b1461167f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611676906131c1565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117109190612aef565b8260070154600a6117219190612d75565b1015905060006301e13380836004015461173b9190612be2565b42119050816117c65780156117ba5760048360050160006101000a81548160ff0219169083600581111561177257611771611c70565b5b02179055507f2a15f4605f8e68cbaccd2234253a8189163d500a6f60c1751405443ca1562beb856040516117a69190613253565b60405180910390a160009350505050611817565b60009350505050611817565b60018360050160006101000a81548160ff021916908360058111156117ee576117ed611c70565b5b021790555061180f856000600a866001015461180a9190613066565b61181c565b600193505050505b919050565b60008060008581526020019081526020016000209050818160020160008282546118469190612bae565b9250508190555060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16639fbe7c7384846003018560080188600381106118a6576118a5612383565b5b6011020160000154600689600381106118c2576118c1612383565b5b60020201600c8a600381106118da576118d9612383565b5b6002020160028b600381106118f2576118f1612383565b5b015460058c6003811061190857611907612383565b5b602091828204019190069054906101000a900460ff1660018e8e8e60405160200161193593929190613281565b6040516020818303038152906040526040518a63ffffffff1660e01b8152600401611967989796959493929190613423565b60206040518083038185885af1158015611985573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119aa9190612aef565b905060008260080185600381106119c4576119c3612383565b5b6011020190506000816001018260100154600381106119e6576119e5612383565b5b60050201905082816000018190555060018160010160006101000a81548160ff0219169083151502179055507f4c14e16a98683e5b8bd70d51192048d0499fb3999b27ff1e9dce7e4a2c6734798784604051611a439291906134b1565b60405180910390a150505050505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806003905b611a9b611ab1565b815260200190600190039081611a935790505090565b60405180606001604052806003905b611ac8611ade565b815260200190600190039081611ac05790505090565b6040518060e001604052806000815260200160001515815260200160001515815260200160008152602001600081526020016000151581526020016000151581525090565b600080fd5b600080fd5b6000819050919050565b611b4081611b2d565b8114611b4b57600080fd5b50565b600081359050611b5d81611b37565b92915050565b600060208284031215611b7957611b78611b23565b5b6000611b8784828501611b4e565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bbb82611b90565b9050919050565b611bcb81611bb0565b82525050565b611bda81611b2d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c1a578082015181840152602081019050611bff565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4282611be0565b611c4c8185611beb565b9350611c5c818560208601611bfc565b611c6581611c26565b840191505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60068110611cb057611caf611c70565b5b50565b6000819050611cc182611c9f565b919050565b6000611cd182611cb3565b9050919050565b611ce181611cc6565b82525050565b60008115159050919050565b611cfc81611ce7565b82525050565b600081519050919050565b600082825260208201905092915050565b6000611d2982611d02565b611d338185611d0d565b9350611d43818560208601611bfc565b611d4c81611c26565b840191505092915050565b600061012082019050611d6d600083018c611bc2565b611d7a602083018b611bd1565b611d87604083018a611bd1565b8181036060830152611d998189611c37565b9050611da86080830188611bd1565b611db560a0830187611cd8565b611dc260c0830186611bd1565b611dcf60e0830185611cf3565b818103610100830152611de28184611d1e565b90509a9950505050505050505050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e1757611e16611df2565b5b8235905067ffffffffffffffff811115611e3457611e33611df7565b5b602083019150836001820283011115611e5057611e4f611dfc565b5b9250929050565b611e6081611bb0565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b600081905082602060030282011115611e9f57611e9e611dfc565b5b92915050565b611eae81611ce7565b8114611eb957600080fd5b50565b600081359050611ecb81611ea5565b92915050565b60008083601f840112611ee757611ee6611df2565b5b8235905067ffffffffffffffff811115611f0457611f03611df7565b5b602083019150836001820283011115611f2057611f1f611dfc565b5b9250929050565b600080600080600080600060e0888a031215611f4657611f45611b23565b5b600088013567ffffffffffffffff811115611f6457611f63611b28565b5b611f708a828b01611e01565b97509750506020611f838a828b01611e6e565b9550506040611f948a828b01611e83565b94505060a0611fa58a828b01611ebc565b93505060c088013567ffffffffffffffff811115611fc657611fc5611b28565b5b611fd28a828b01611ed1565b925092505092959891949750929550565b6000602082019050611ff86000830184611bd1565b92915050565b600060039050919050565b600081905092915050565b6000819050919050565b600060039050919050565b600081905092915050565b6000819050919050565b61204781611b2d565b82525050565b61205681611ce7565b82525050565b60e082016000820151612072600085018261203e565b506020820151612085602085018261204d565b506040820151612098604085018261204d565b5060608201516120ab606085018261203e565b5060808201516120be608085018261203e565b5060a08201516120d160a085018261204d565b5060c08201516120e460c085018261204d565b50505050565b60006120f6838361205c565b60e08301905092915050565b6000602082019050919050565b6121188161201e565b6121228184612029565b925061212d82612034565b8060005b8381101561215e57815161214587826120ea565b965061215083612102565b925050600181019050612131565b505050505050565b6000612172838361210f565b6102a08301905092915050565b6000602082019050919050565b61219581611ffe565b61219f8184612009565b92506121aa82612014565b8060005b838110156121db5781516121c28782612166565b96506121cd8361217f565b9250506001810190506121ae565b505050505050565b60006107e0820190506121f9600083018461218c565b92915050565b6000806040838503121561221657612215611b23565b5b600061222485828601611b4e565b925050602061223585828601611b4e565b9150509250929050565b60008060008060008060a0878903121561225c5761225b611b23565b5b600061226a89828a01611ebc565b965050602061227b89828a01611ebc565b955050604061228c89828a01611b4e565b945050606061229d89828a01611b4e565b935050608087013567ffffffffffffffff8111156122be576122bd611b28565b5b6122ca89828a01611ed1565b92509250509295509295509295565b60006020820190506122ee6000830184611cf3565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061233b57607f821691505b60208210810361234e5761234d6122f4565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6123e781611bb0565b82525050565b604082016000820151612403600085018261203e565b50602082015161241660208501826123de565b50505050565b600061242883836123ed565b60408301905092915050565b6000602082019050919050565b600061244c826123b2565b61245681856123bd565b9350612461836123ce565b8060005b83811015612492578151612479888261241c565b975061248483612434565b925050600181019050612465565b5085935050505092915050565b82818337600083830152505050565b60006124ba8385611beb565b93506124c783858461249f565b6124d083611c26565b840190509392505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b61251a81612507565b82525050565b600082825260208201905092915050565b600061253c82611be0565b6125468185612520565b9350612556818560208601611bfc565b61255f81611c26565b840191505092915050565b60006040830160008301516125826000860182612511565b506020830151848203602086015261259a8282612531565b9150508091505092915050565b60006125b3838361256a565b905092915050565b6000602082019050919050565b60006125d3826124db565b6125dd81856124e6565b9350836020820285016125ef856124f7565b8060005b8581101561262b578484038952815161260c85826125a7565b9450612617836125bb565b925060208a019950506001810190506125f3565b50829750879550505050505092915050565b600060608201905081810360008301526126578187612441565b9050818103602083015261266c8185876124ae565b9050818103604083015261268081846125c8565b905095945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126c582611b2d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126f7576126f661268b565b5b600182019050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261276f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612732565b6127798683612732565b95508019841693508086168417925050509392505050565b6000819050919050565b60006127b66127b16127ac84611b2d565b612791565b611b2d565b9050919050565b6000819050919050565b6127d08361279b565b6127e46127dc826127bd565b84845461273f565b825550505050565b600090565b6127f96127ec565b6128048184846127c7565b505050565b5b818110156128285761281d6000826127f1565b60018101905061280a565b5050565b601f82111561286d5761283e8161270d565b61284784612722565b81016020851015612856578190505b61286a61286285612722565b830182612809565b50505b505050565b600082821c905092915050565b600061289060001984600802612872565b1980831691505092915050565b60006128a9838361287f565b9150826002028217905092915050565b6128c38383612702565b67ffffffffffffffff8111156128dc576128db612354565b5b6128e68254612323565b6128f182828561282c565b6000601f831160018114612920576000841561290e578287013590505b612918858261289d565b865550612980565b601f19841661292e8661270d565b60005b8281101561295657848901358255600182019150602085019450602081019050612931565b86831015612973578489013561296f601f89168261287f565b8355505b6001600288020188555050505b50505050505050565b600082905092915050565b60008190508160005260206000209050919050565b601f8211156129ea576129bb81612994565b6129c484612722565b810160208510156129d3578190505b6129e76129df85612722565b830182612809565b50505b505050565b6129f98383612989565b67ffffffffffffffff811115612a1257612a11612354565b5b612a1c8254612323565b612a278282856129a9565b6000601f831160018114612a565760008415612a44578287013590505b612a4e858261289d565b865550612ab6565b601f198416612a6486612994565b60005b82811015612a8c57848901358255600182019150602085019450602081019050612a67565b86831015612aa95784890135612aa5601f89168261287f565b8355505b6001600288020188555050505b50505050505050565b6000602082019050612ad46000830184611bc2565b92915050565b600081519050612ae981611b37565b92915050565b600060208284031215612b0557612b04611b23565b5b6000612b1384828501612ada565b91505092915050565b7f53656e6465722068617320696e73756666696369656e74205245502062616c6160008201527f6e63650000000000000000000000000000000000000000000000000000000000602082015250565b6000612b78602383611beb565b9150612b8382612b1c565b604082019050919050565b60006020820190508181036000830152612ba781612b6b565b9050919050565b6000612bb982611b2d565b9150612bc483611b2d565b9250828203905081811115612bdc57612bdb61268b565b5b92915050565b6000612bed82611b2d565b9150612bf883611b2d565b9250828201905080821115612c1057612c0f61268b565b5b92915050565b7f6f6e56616c6964617465206d6179206f6e6c792062652063616c6c656420627960008201527f207468652044414f20636f6e7472616374000000000000000000000000000000602082015250565b6000612c72603183611beb565b9150612c7d82612c16565b604082019050919050565b60006020820190508181036000830152612ca181612c65565b9050919050565b600080600060608486031215612cc157612cc0611b23565b5b6000612ccf86828701611b4e565b9350506020612ce086828701611b4e565b9250506040612cf186828701611b4e565b9150509250925092565b7f51756f72756d206e6f74206d6574000000000000000000000000000000000000600082015250565b6000612d31600e83611beb565b9150612d3c82612cfb565b602082019050919050565b6000604082019050612d5c6000830184611bd1565b8181036020830152612d6d81612d24565b905092915050565b6000612d8082611b2d565b9150612d8b83611b2d565b9250828202612d9981611b2d565b91508282048414831517612db057612daf61268b565b5b5092915050565b7f5374616765203020696e646578206d69736d6174636800000000000000000000600082015250565b6000612ded601683611beb565b9150612df882612db7565b602082019050919050565b60006020820190508181036000830152612e1c81612de0565b9050919050565b7f526574727920636f756e74206578636565646564000000000000000000000000600082015250565b6000612e59601483611beb565b9150612e6482612e23565b602082019050919050565b6000604082019050612e846000830184611bd1565b8181036020830152612e9581612e4c565b905092915050565b7f5374616765203120696e646578206d69736d6174636800000000000000000000600082015250565b6000612ed3601683611beb565b9150612ede82612e9d565b602082019050919050565b60006020820190508181036000830152612f0281612ec6565b9050919050565b7f5374616765203220696e646578206d69736d6174636800000000000000000000600082015250565b6000612f3f601683611beb565b9150612f4a82612f09565b602082019050919050565b60006020820190508181036000830152612f6e81612f32565b9050919050565b60008154612f8281612323565b612f8c8186611d0d565b94506001821660008114612fa75760018114612fbd57612ff0565b60ff198316865281151560200286019350612ff0565b612fc685612994565b60005b83811015612fe857815481890152600182019150602081019050612fc9565b808801955050505b50505092915050565b600060608201905061300e6000830186611bd1565b61301b6020830185611bd1565b818103604083015261302d8184612f75565b9050949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061307182611b2d565b915061307c83611b2d565b92508261308c5761308b613037565b5b828204905092915050565b7f52656d61696e696e6720666565732063616e206f6e6c79206265207265636c6160008201527f696d6564207768656e2070726f706f73616c20686173206265656e206163636560208201527f70746564206f72206661696c6564000000000000000000000000000000000000604082015250565b6000613119604e83611beb565b915061312482613097565b606082019050919050565b600060208201905081810360008301526131488161310c565b9050919050565b7f4174746573746174696f6e206f6e6c79207065727461696e7320746f2050726f60008201527f706f73616c207374616765000000000000000000000000000000000000000000602082015250565b60006131ab602b83611beb565b91506131b68261314f565b604082019050919050565b600060208201905081810360008301526131da8161319e565b9050919050565b7f4578706972656420776974686f7574206d656574696e6720617474657374617460008201527f696f6e207468726573686f6c6400000000000000000000000000000000000000602082015250565b600061323d602d83611beb565b9150613248826131e1565b604082019050919050565b60006040820190506132686000830184611bd1565b818103602083015261327981613230565b905092915050565b60006060820190506132966000830186611bd1565b6132a36020830185611bd1565b6132b06040830184611bd1565b949350505050565b600081546132c581612323565b6132cf8186611beb565b945060018216600081146132ea576001811461330057613333565b60ff198316865281151560200286019350613333565b6133098561270d565b60005b8381101561332b5781548189015260018201915060208101905061330c565b808801955050505b50505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000613368838361203e565b60208301905092915050565b60008160001c9050919050565b6000819050919050565b600061339e61339983613374565b613381565b9050919050565b60006133b1825461338b565b9050919050565b6000600182019050919050565b6133ce8161333c565b6133d88184613347565b92506133e382613352565b8060005b8381101561341b576133f8826133a5565b613402878261335c565b965061340d836133b8565b9250506001810190506133e7565b505050505050565b600061014082019050818103600083015261343e818b6132b8565b905061344d602083018a611bd1565b61345a60408301896133c5565b61346760808301886133c5565b61347460c0830187611bd1565b61348160e0830186611cf3565b61348f610100830185611cf3565b8181036101208301526134a28184611d1e565b90509998505050505050505050565b60006040820190506134c66000830185611bd1565b6134d36020830184611bd1565b939250505056fea26469706673582212204ff67ea9359978b21e2c15a00c0290a49a16228d21926d629968eb1d951bb13a64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}